优化字典显示,用户管理增加左树右表

dev
smallchill 6 years ago
parent 02de800cce
commit 6588d5953d
  1. 6
      src/api/system/user.js
  2. 1
      src/const/system/dict.js
  3. 1
      src/const/system/dictbiz.js
  4. 2
      src/const/user/info.js
  5. 192
      src/views/system/dict.vue
  6. 192
      src/views/system/dictbiz.vue
  7. 8
      src/views/system/param.vue
  8. 155
      src/views/system/user.vue

@ -1,16 +1,18 @@
import request from '@/router/axios'; import request from '@/router/axios';
export const getList = (current, size, params) => { export const getList = (current, size, params, deptId) => {
return request({ return request({
url: '/api/blade-user/list', url: '/api/blade-user/page',
method: 'get', method: 'get',
params: { params: {
...params, ...params,
current, current,
size, size,
deptId,
} }
}) })
} }
export const remove = (ids) => { export const remove = (ids) => {
return request({ return request({
url: '/api/blade-user/remove', url: '/api/blade-user/remove',

@ -44,6 +44,7 @@ export const optionParent = {
type: "number", type: "number",
align: "right", align: "right",
width: 80, width: 80,
hide: true,
rules: [ rules: [
{ {
required: true, required: true,

@ -44,6 +44,7 @@ export const optionParent = {
type: "number", type: "number",
align: "right", align: "right",
width: 80, width: 80,
hide: true,
rules: [ rules: [
{ {
required: true, required: true,

@ -13,7 +13,7 @@ export default {
url: 'link', url: 'link',
}, },
canvasOption: { canvasOption: {
text: '', text: ' ',
ratio: 0.1 ratio: 0.1
}, },
action: '/api/blade-resource/oss/endpoint/put-file', action: '/api/blade-resource/oss/endpoint/put-file',

@ -1,101 +1,99 @@
<template> <template>
<div> <el-row>
<el-row> <el-col :span="11">
<el-col :span="11"> <basic-container>
<basic-container> <el-card class="box-card">
<el-card class="box-card"> <div slot="header" class="clearfix">
<div slot="header" class="clearfix"> <span>字典列表</span>
<span>字典列表</span> </div>
</div> <div class="clearfix">
<div class="clearfix"> <avue-crud
<avue-crud :option="optionParent"
:option="optionParent" :table-loading="loading"
:table-loading="loading" :data="dataParent"
:data="dataParent" :page="pageParent"
:page="pageParent" ref="crud"
ref="crud" v-model="formParent"
v-model="formParent" :permission="permissionList"
:permission="permissionList" :before-open="beforeOpen"
:before-open="beforeOpen" @row-del="rowDel"
@row-del="rowDel" @row-update="rowUpdate"
@row-update="rowUpdate" @row-save="rowSave"
@row-save="rowSave" @row-click="handleRowClick"
@row-click="handleRowClick" @search-change="searchChange"
@search-change="searchChange" @search-reset="searchReset"
@search-reset="searchReset" @selection-change="selectionChange"
@selection-change="selectionChange" @current-change="currentChange"
@current-change="currentChange" @size-change="sizeChange"
@size-change="sizeChange" @refresh-change="refreshChange"
@refresh-change="refreshChange" @on-load="onLoadParent"
@on-load="onLoadParent" >
> <template slot="menuLeft">
<template slot="menuLeft"> <el-button
<el-button type="danger"
type="danger" size="small"
size="small" icon="el-icon-delete"
icon="el-icon-delete" v-if="permission.dict_delete"
v-if="permission.dict_delete" plain
plain @click="handleDelete"
@click="handleDelete" >
> </el-button>
</el-button> </template>
</template> <template slot-scope="{row}" slot="isSealed">
<template slot-scope="{row}" slot="isSealed"> <el-tag>{{row.isSealed===0?'否':'是'}}</el-tag>
<el-tag>{{row.isSealed===0?'否':'是'}}</el-tag> </template>
</template> </avue-crud>
</avue-crud> </div>
</div> </el-card>
</el-card> </basic-container>
</basic-container> </el-col>
</el-col> <el-col :span="13">
<el-col :span="13"> <basic-container>
<basic-container> <el-card class="box-card">
<el-card class="box-card"> <div slot="header" class="clearfix">
<div slot="header" class="clearfix"> <span>[{{dictValue}}] 字典详情</span>
<span>[{{dictValue}}] 字典详情</span> </div>
</div> <div class="clearfix">
<div class="clearfix"> <avue-crud
<avue-crud :option="optionChild"
:option="optionChild" :table-loading="loading"
:table-loading="loading" :data="dataChild"
:data="dataChild" :page="pageChild"
:page="pageChild" ref="crudChild"
ref="crudChild" v-model="formChild"
v-model="formChild" :permission="permissionList"
:permission="permissionList" :before-open="beforeOpenChild"
:before-open="beforeOpenChild" @row-del="rowDelChild"
@row-del="rowDelChild" @row-update="rowUpdateChild"
@row-update="rowUpdateChild" @row-save="rowSaveChild"
@row-save="rowSaveChild" @search-change="searchChangeChild"
@search-change="searchChangeChild" @search-reset="searchResetChild"
@search-reset="searchResetChild" @selection-change="selectionChangeChild"
@selection-change="selectionChangeChild" @current-change="currentChangeChild"
@current-change="currentChangeChild" @size-change="sizeChangeChild"
@size-change="sizeChangeChild" @refresh-change="refreshChangeChild"
@refresh-change="refreshChangeChild" @on-load="onLoadChild"
@on-load="onLoadChild" >
> <template slot="menuLeft">
<template slot="menuLeft"> <el-button
<el-button type="danger"
type="danger" size="small"
size="small" icon="el-icon-delete"
icon="el-icon-delete" v-if="permission.dict_delete"
v-if="permission.dict_delete" plain
plain @click="handleDelete"
@click="handleDelete" >
> </el-button>
</el-button> </template>
</template> <template slot-scope="{row}" slot="isSealed">
<template slot-scope="{row}" slot="isSealed"> <el-tag>{{row.isSealed===0?'否':'是'}}</el-tag>
<el-tag>{{row.isSealed===0?'否':'是'}}</el-tag> </template>
</template> </avue-crud>
</avue-crud> </div>
</div> </el-card>
</el-card> </basic-container>
</basic-container> </el-col>
</el-col> </el-row>
</el-row>
</div>
</template> </template>
<script> <script>

@ -1,101 +1,99 @@
<template> <template>
<div> <el-row>
<el-row> <el-col :span="11">
<el-col :span="11"> <basic-container>
<basic-container> <el-card class="box-card">
<el-card class="box-card"> <div slot="header" class="clearfix">
<div slot="header" class="clearfix"> <span>业务字典列表</span>
<span>业务字典列表</span> </div>
</div> <div class="clearfix">
<div class="clearfix"> <avue-crud
<avue-crud :option="optionParent"
:option="optionParent" :table-loading="loading"
:table-loading="loading" :data="dataParent"
:data="dataParent" :page="pageParent"
:page="pageParent" ref="crud"
ref="crud" v-model="formParent"
v-model="formParent" :permission="permissionList"
:permission="permissionList" :before-open="beforeOpen"
:before-open="beforeOpen" @row-del="rowDel"
@row-del="rowDel" @row-update="rowUpdate"
@row-update="rowUpdate" @row-save="rowSave"
@row-save="rowSave" @row-click="handleRowClick"
@row-click="handleRowClick" @search-change="searchChange"
@search-change="searchChange" @search-reset="searchReset"
@search-reset="searchReset" @selection-change="selectionChange"
@selection-change="selectionChange" @current-change="currentChange"
@current-change="currentChange" @size-change="sizeChange"
@size-change="sizeChange" @refresh-change="refreshChange"
@refresh-change="refreshChange" @on-load="onLoadParent"
@on-load="onLoadParent" >
> <template slot="menuLeft">
<template slot="menuLeft"> <el-button
<el-button type="danger"
type="danger" size="small"
size="small" icon="el-icon-delete"
icon="el-icon-delete" v-if="permission.dict_delete"
v-if="permission.dict_delete" plain
plain @click="handleDelete"
@click="handleDelete" >
> </el-button>
</el-button> </template>
</template> <template slot-scope="{row}" slot="isSealed">
<template slot-scope="{row}" slot="isSealed"> <el-tag>{{row.isSealed===0?'否':'是'}}</el-tag>
<el-tag>{{row.isSealed===0?'否':'是'}}</el-tag> </template>
</template> </avue-crud>
</avue-crud> </div>
</div> </el-card>
</el-card> </basic-container>
</basic-container> </el-col>
</el-col> <el-col :span="13">
<el-col :span="13"> <basic-container>
<basic-container> <el-card class="box-card">
<el-card class="box-card"> <div slot="header" class="clearfix">
<div slot="header" class="clearfix"> <span>[{{dictValue}}] 业务字典详情</span>
<span>[{{dictValue}}] 业务字典详情</span> </div>
</div> <div class="clearfix">
<div class="clearfix"> <avue-crud
<avue-crud :option="optionChild"
:option="optionChild" :table-loading="loading"
:table-loading="loading" :data="dataChild"
:data="dataChild" :page="pageChild"
:page="pageChild" ref="crudChild"
ref="crudChild" v-model="formChild"
v-model="formChild" :permission="permissionList"
:permission="permissionList" :before-open="beforeOpenChild"
:before-open="beforeOpenChild" @row-del="rowDelChild"
@row-del="rowDelChild" @row-update="rowUpdateChild"
@row-update="rowUpdateChild" @row-save="rowSaveChild"
@row-save="rowSaveChild" @search-change="searchChangeChild"
@search-change="searchChangeChild" @search-reset="searchResetChild"
@search-reset="searchResetChild" @selection-change="selectionChangeChild"
@selection-change="selectionChangeChild" @current-change="currentChangeChild"
@current-change="currentChangeChild" @size-change="sizeChangeChild"
@size-change="sizeChangeChild" @refresh-change="refreshChangeChild"
@refresh-change="refreshChangeChild" @on-load="onLoadChild"
@on-load="onLoadChild" >
> <template slot="menuLeft">
<template slot="menuLeft"> <el-button
<el-button type="danger"
type="danger" size="small"
size="small" icon="el-icon-delete"
icon="el-icon-delete" v-if="permission.dict_delete"
v-if="permission.dict_delete" plain
plain @click="handleDelete"
@click="handleDelete" >
> </el-button>
</el-button> </template>
</template> <template slot-scope="{row}" slot="isSealed">
<template slot-scope="{row}" slot="isSealed"> <el-tag>{{row.isSealed===0?'否':'是'}}</el-tag>
<el-tag>{{row.isSealed===0?'否':'是'}}</el-tag> </template>
</template> </avue-crud>
</avue-crud> </div>
</div> </el-card>
</el-card> </basic-container>
</basic-container> </el-col>
</el-col> </el-row>
</el-row>
</div>
</template> </template>
<script> <script>

@ -47,8 +47,8 @@
total: 0 total: 0
}, },
option: { option: {
height:'auto', height: 'auto',
calcHeight:350, calcHeight: 350,
tip: false, tip: false,
border: true, border: true,
index: true, index: true,
@ -189,10 +189,10 @@
this.$refs.crud.toggleSelection(); this.$refs.crud.toggleSelection();
}); });
}, },
currentChange(currentPage){ currentChange(currentPage) {
this.page.currentPage = currentPage; this.page.currentPage = currentPage;
}, },
sizeChange(pageSize){ sizeChange(pageSize) {
this.page.pageSize = pageSize; this.page.pageSize = pageSize;
}, },
refreshChange() { refreshChange() {

@ -1,49 +1,58 @@
<template> <template>
<basic-container> <el-row>
<avue-crud :option="option" <el-col :span="5">
:table-loading="loading" <basic-container>
:data="data" <avue-tree :option="treeOption" :data="treeData" @node-click="nodeClick"/>
ref="crud" </basic-container>
v-model="form" </el-col>
:permission="permissionList" <el-col :span="19">
@row-del="rowDel" <basic-container>
@row-update="rowUpdate" <avue-crud :option="option"
@row-save="rowSave" :table-loading="loading"
:before-open="beforeOpen" :data="data"
:page="page" ref="crud"
@search-change="searchChange" v-model="form"
@search-reset="searchReset" :permission="permissionList"
@selection-change="selectionChange" @row-del="rowDel"
@current-change="currentChange" @row-update="rowUpdate"
@size-change="sizeChange" @row-save="rowSave"
@refresh-change="refreshChange" :before-open="beforeOpen"
@on-load="onLoad"> :page="page"
<template slot="menuLeft"> @search-change="searchChange"
<el-button type="danger" @search-reset="searchReset"
size="small" @selection-change="selectionChange"
icon="el-icon-delete" @current-change="currentChange"
plain @size-change="sizeChange"
v-if="permission.user_delete" @refresh-change="refreshChange"
@click="handleDelete"> @on-load="onLoad">
</el-button> <template slot="menuLeft">
<el-button type="primary" <el-button type="danger"
size="small" size="small"
plain icon="el-icon-delete"
v-if="permission.user_reset" plain
icon="el-icon-refresh" v-if="permission.user_delete"
@click="handleReset">密码重置 @click="handleDelete">
</el-button> </el-button>
</template> <el-button type="primary"
<template slot-scope="{row}" size="small"
slot="roleId"> plain
<el-tag>{{row.roleName}}</el-tag> v-if="permission.user_reset"
</template> icon="el-icon-refresh"
<template slot-scope="{row}" @click="handleReset">密码重置
slot="deptId"> </el-button>
<el-tag>{{row.deptName}}</el-tag> </template>
</template> <template slot-scope="{row}"
</avue-crud> slot="roleId">
</basic-container> <el-tag>{{row.roleName}}</el-tag>
</template>
<template slot-scope="{row}"
slot="deptId">
<el-tag>{{row.deptName}}</el-tag>
</template>
</avue-crud>
</basic-container>
</el-col>
</el-row>
</template> </template>
<script> <script>
@ -92,6 +101,27 @@
roleTree: [], roleTree: [],
deptTree: [], deptTree: [],
}, },
treeDeptId: '',
treeData: [],
treeOption: {
nodeKey: 'id',
addBtn: false,
menu: false,
size: 'small',
formOption: {
labelWidth: 100,
column: [{
label: '自定义项',
prop: 'test'
}],
},
props: {
labelText: '标题',
label: 'title',
value: 'value',
children: 'children'
}
},
option: { option: {
height: 'auto', height: 'auto',
calcHeight: 350, calcHeight: 350,
@ -153,7 +183,7 @@
{ {
label: "用户昵称", label: "用户昵称",
prop: "name", prop: "name",
search: true, hide: true,
rules: [{ rules: [{
required: true, required: true,
message: "请输入用户昵称", message: "请输入用户昵称",
@ -163,6 +193,7 @@
{ {
label: "用户姓名", label: "用户姓名",
prop: "realName", prop: "realName",
search: true,
rules: [{ rules: [{
required: true, required: true,
message: "请输入用户姓名", message: "请输入用户姓名",
@ -287,7 +318,28 @@
return ids.join(","); return ids.join(",");
}, },
}, },
created() {
this.initData();
},
methods: { methods: {
nodeClick(data) {
this.treeDeptId = data.id;
this.page.currentPage = 1;
this.onLoad(this.page);
},
initData() {
getDeptTree().then(res => {
this.treeData = res.data.data;
});
getDeptTree(this.form.tenantId).then(res => {
const index = this.$refs.crud.findColumnIndex("deptId");
this.option.column[index].dicData = res.data.data;
});
getRoleTree(this.form.tenantId).then(res => {
const index = this.$refs.crud.findColumnIndex("roleId");
this.option.column[index].dicData = res.data.data;
});
},
rowSave(row, loading, done) { rowSave(row, loading, done) {
row.deptId = row.deptId.join(","); row.deptId = row.deptId.join(",");
row.roleId = row.roleId.join(","); row.roleId = row.roleId.join(",");
@ -337,6 +389,7 @@
}, },
searchReset() { searchReset() {
this.query = {}; this.query = {};
this.treeDeptId = '';
this.onLoad(this.page); this.onLoad(this.page);
}, },
searchChange(params) { searchChange(params) {
@ -421,21 +474,13 @@
}, },
onLoad(page, params = {}) { onLoad(page, params = {}) {
this.loading = true; this.loading = true;
getList(page.currentPage, page.pageSize, Object.assign(params, this.query)).then(res => { getList(page.currentPage, page.pageSize, Object.assign(params, this.query), this.treeDeptId).then(res => {
const data = res.data.data; const data = res.data.data;
this.page.total = data.total; this.page.total = data.total;
this.data = data.records; this.data = data.records;
this.loading = false; this.loading = false;
this.selectionClear(); this.selectionClear();
}); });
getDeptTree(this.form.tenantId).then(res => {
const index = this.$refs.crud.findColumnIndex("deptId");
this.option.column[index].dicData = res.data.data;
});
getRoleTree(this.form.tenantId).then(res => {
const index = this.$refs.crud.findColumnIndex("roleId");
this.option.column[index].dicData = res.data.data;
});
} }
} }
}; };

Loading…
Cancel
Save