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

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';
export const getList = (current, size, params) => {
export const getList = (current, size, params, deptId) => {
return request({
url: '/api/blade-user/list',
url: '/api/blade-user/page',
method: 'get',
params: {
...params,
current,
size,
deptId,
}
})
}
export const remove = (ids) => {
return request({
url: '/api/blade-user/remove',

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

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

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

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

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

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

@ -1,49 +1,58 @@
<template>
<basic-container>
<avue-crud :option="option"
:table-loading="loading"
:data="data"
ref="crud"
v-model="form"
:permission="permissionList"
@row-del="rowDel"
@row-update="rowUpdate"
@row-save="rowSave"
:before-open="beforeOpen"
:page="page"
@search-change="searchChange"
@search-reset="searchReset"
@selection-change="selectionChange"
@current-change="currentChange"
@size-change="sizeChange"
@refresh-change="refreshChange"
@on-load="onLoad">
<template slot="menuLeft">
<el-button type="danger"
size="small"
icon="el-icon-delete"
plain
v-if="permission.user_delete"
@click="handleDelete">
</el-button>
<el-button type="primary"
size="small"
plain
v-if="permission.user_reset"
icon="el-icon-refresh"
@click="handleReset">密码重置
</el-button>
</template>
<template slot-scope="{row}"
slot="roleId">
<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-row>
<el-col :span="5">
<basic-container>
<avue-tree :option="treeOption" :data="treeData" @node-click="nodeClick"/>
</basic-container>
</el-col>
<el-col :span="19">
<basic-container>
<avue-crud :option="option"
:table-loading="loading"
:data="data"
ref="crud"
v-model="form"
:permission="permissionList"
@row-del="rowDel"
@row-update="rowUpdate"
@row-save="rowSave"
:before-open="beforeOpen"
:page="page"
@search-change="searchChange"
@search-reset="searchReset"
@selection-change="selectionChange"
@current-change="currentChange"
@size-change="sizeChange"
@refresh-change="refreshChange"
@on-load="onLoad">
<template slot="menuLeft">
<el-button type="danger"
size="small"
icon="el-icon-delete"
plain
v-if="permission.user_delete"
@click="handleDelete">
</el-button>
<el-button type="primary"
size="small"
plain
v-if="permission.user_reset"
icon="el-icon-refresh"
@click="handleReset">密码重置
</el-button>
</template>
<template slot-scope="{row}"
slot="roleId">
<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>
<script>
@ -92,6 +101,27 @@
roleTree: [],
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: {
height: 'auto',
calcHeight: 350,
@ -153,7 +183,7 @@
{
label: "用户昵称",
prop: "name",
search: true,
hide: true,
rules: [{
required: true,
message: "请输入用户昵称",
@ -163,6 +193,7 @@
{
label: "用户姓名",
prop: "realName",
search: true,
rules: [{
required: true,
message: "请输入用户姓名",
@ -287,7 +318,28 @@
return ids.join(",");
},
},
created() {
this.initData();
},
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) {
row.deptId = row.deptId.join(",");
row.roleId = row.roleId.join(",");
@ -337,6 +389,7 @@
},
searchReset() {
this.query = {};
this.treeDeptId = '';
this.onLoad(this.page);
},
searchChange(params) {
@ -421,21 +474,13 @@
},
onLoad(page, params = {}) {
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;
this.page.total = data.total;
this.data = data.records;
this.loading = false;
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