Compare commits

...

2 Commits

  1. 209
      src/option/system/user.js
  2. 141
      src/views/authority/role.vue
  3. 6
      src/views/system/client.vue
  4. 143
      src/views/system/dept.vue
  5. 8
      src/views/system/dict.vue
  6. 8
      src/views/system/dictbiz.vue
  7. 4
      src/views/system/menu.vue
  8. 4
      src/views/system/param.vue
  9. 46
      src/views/system/post.vue
  10. 2
      src/views/system/tenantdatasource.vue
  11. 2
      src/views/system/tenantpackage.vue
  12. 4
      src/views/system/topmenu.vue
  13. 33
      src/views/system/user.vue

@ -32,30 +32,35 @@ export const userOption = safe => {
dialogType: 'drawer',
dialogWidth: 1000,
dialogClickModal: false,
pageSizes: [10, 20, 30, 40, 50, 100],
pageSize: 10,
column: [
{
label: '登录账号',
prop: 'account',
search: true,
display: false,
// sortable: true,
},
{
label: '所属租户',
prop: 'tenantName',
slot: true,
display: false,
},
// {
// label: '所属租户',
// prop: 'tenantName',
// slot: true,
// display: false,
// },
{
label: '用户姓名',
prop: 'realName',
search: true,
display: false,
// sortable: true,
},
{
label: '用户工号',
prop: 'workNo',
search: true,
display: false,
// sortable: true,
},
{
label: '所属角色',
@ -71,34 +76,34 @@ export const userOption = safe => {
overHidden: true,
display: false,
},
{
label: '用户平台',
prop: 'userTypeName',
width: 100,
slot: true,
display: false,
},
{
label: '用户平台',
type: 'select',
dicUrl: '/blade-system/dict/dictionary?code=user_type',
props: {
label: 'dictValue',
value: 'dictKey',
},
dataType: 'number',
search: true,
hide: true,
display: false,
prop: 'userType',
rules: [
{
required: true,
message: '请选择用户平台',
trigger: 'blur',
},
],
},
// {
// label: '用户平台',
// prop: 'userTypeName',
// width: 100,
// slot: true,
// display: false,
// },
// {
// label: '用户平台',
// type: 'select',
// dicUrl: '/blade-system/dict/dictionary?code=user_type',
// props: {
// label: 'dictValue',
// value: 'dictKey',
// },
// dataType: 'number',
// search: true,
// hide: true,
// display: false,
// prop: 'userType',
// rules: [
// {
// required: true,
// message: '请选择用户平台',
// trigger: 'blur',
// },
// ],
// },
],
group: [
{
@ -106,28 +111,28 @@ export const userOption = safe => {
prop: 'baseInfo',
icon: 'el-icon-user-solid',
column: [
{
label: '所属租户',
prop: 'tenantId',
type: 'tree',
dicUrl: '/blade-system/tenant/select',
props: {
label: 'tenantName',
value: 'tenantId',
},
hide: !website.tenantMode,
addDisplay: website.tenantMode,
editDisplay: website.tenantMode,
viewDisplay: website.tenantMode,
rules: [
{
required: true,
message: '请输入所属租户',
trigger: 'click',
},
],
span: 24,
},
// {
// label: '所属租户',
// prop: 'tenantId',
// type: 'tree',
// dicUrl: '/blade-system/tenant/select',
// props: {
// label: 'tenantName',
// value: 'tenantId',
// },
// hide: !website.tenantMode,
// addDisplay: website.tenantMode,
// editDisplay: website.tenantMode,
// viewDisplay: website.tenantMode,
// rules: [
// {
// required: true,
// message: '请输入所属租户',
// trigger: 'click',
// },
// ],
// span: 24,
// },
{
label: '登录账号',
prop: 'account',
@ -139,25 +144,25 @@ export const userOption = safe => {
},
],
},
{
label: '用户平台',
type: 'select',
dicUrl: '/blade-system/dict/dictionary?code=user_type',
props: {
label: 'dictValue',
value: 'dictKey',
},
dataType: 'number',
slot: true,
prop: 'userType',
rules: [
{
required: true,
message: '请选择用户平台',
trigger: 'blur',
},
],
},
// {
// label: '用户平台',
// type: 'select',
// dicUrl: '/blade-system/dict/dictionary?code=user_type',
// props: {
// label: 'dictValue',
// value: 'dictKey',
// },
// dataType: 'number',
// slot: true,
// prop: 'userType',
// rules: [
// {
// required: true,
// message: '请选择用户平台',
// trigger: 'blur',
// },
// ],
// },
{
label: '密码',
prop: 'password',
@ -410,33 +415,33 @@ addBtnIcon: ' ',
search: true,
display: false,
},
{
label: '用户平台',
prop: 'userTypeName',
slot: true,
display: false,
},
{
label: '用户平台',
type: 'select',
dicUrl: '/blade-system/dict/dictionary?code=user_type',
props: {
label: 'dictValue',
value: 'dictKey',
},
dataType: 'number',
search: true,
hide: true,
display: false,
prop: 'userType',
rules: [
{
required: true,
message: '请选择用户平台',
trigger: 'blur',
},
],
},
// {
// label: '用户平台',
// prop: 'userTypeName',
// slot: true,
// display: false,
// },
// {
// label: '用户平台',
// type: 'select',
// dicUrl: '/blade-system/dict/dictionary?code=user_type',
// props: {
// label: 'dictValue',
// value: 'dictKey',
// },
// dataType: 'number',
// search: true,
// hide: true,
// display: false,
// prop: 'userType',
// rules: [
// {
// required: true,
// message: '请选择用户平台',
// trigger: 'blur',
// },
// ],
// },
{
label: '用户拓展',
prop: 'userExt',

@ -5,13 +5,13 @@
@row-save="rowSave" @search-change="searchChange" @search-reset="searchReset" @selection-change="selectionChange"
@current-change="currentChange" @size-change="sizeChange" @refresh-change="refreshChange" @on-load="onLoad">
<template #menu-left>
<el-button type="danger" icon="el-icon-delete" v-if="permission.role_delete" plain @click="handleDelete">
<el-button type="danger" v-if="permission.role_delete" plain @click="handleDelete">
</el-button>
<el-button icon="el-icon-setting" @click="handleRole" v-if="userInfo.authority.includes('admin')" plain>权限设置
<el-button @click="handleRole" v-if="userInfo.authority.includes('admin')" plain>权限设置
</el-button>
</template>
<template #menu="{ row }">
<el-button type="primary" text icon="el-icon-setting" v-if="userInfo.authority.includes('admin')" plain
<el-button type="primary" text v-if="userInfo.authority.includes('admin')" plain
style="border: 0; background-color: transparent !important" @click.stop="handleRowRole(row)">权限设置
</el-button>
</template>
@ -145,69 +145,70 @@ export default {
},
],
},
{
label: '所属租户',
prop: 'tenantId',
type: 'tree',
dicUrl: '/blade-system/tenant/select',
addDisplay: false,
editDisplay: false,
viewDisplay: website.tenantMode,
span: 24,
props: {
label: 'tenantName',
value: 'tenantId',
},
hide: !website.tenantMode,
search: website.tenantMode,
rules: [
{
required: true,
message: '请输入所属租户',
trigger: 'click',
},
],
},
{
label: '角色别名',
labelTip: '用于权限校验与标注的属性,可手动录入也可点击现有别名快速录入',
prop: 'roleAlias',
search: true,
span: 24,
rules: [
{
required: true,
message: '请输入角色别名',
trigger: 'blur',
},
],
},
{
label: '现有别名',
labelTip: '当前系统已存在的角色别名,点击可快速录入',
prop: 'currentAlias',
type: 'radio',
dicData: [],
props: {
label: 'roleName',
value: 'roleAlias',
},
hide: true,
span: 24,
},
{
label: '角色排序',
prop: 'sort',
type: 'number',
span: 24,
rules: [
{
required: true,
message: '请输入角色排序',
trigger: 'blur',
},
],
},
// {
// label: '',
// prop: 'tenantId',
// type: 'tree',
// dicUrl: '/blade-system/tenant/select',
// addDisplay: false,
// editDisplay: false,
// viewDisplay: website.tenantMode,
// span: 24,
// props: {
// label: 'tenantName',
// value: 'tenantId',
// },
// hide: !website.tenantMode,
// search: website.tenantMode,
// rules: [
// {
// required: true,
// message: '',
// trigger: 'click',
// },
// ],
// },
// {
// label: '',
// labelTip: ',',
// prop: 'roleAlias',
// search: true,
// hide: true,
// span: 24,
// rules: [
// {
// required: true,
// message: '',
// trigger: 'blur',
// },
// ],
// },
// {
// label: '',
// labelTip: ',',
// prop: 'currentAlias',
// type: 'radio',
// dicData: [],
// props: {
// label: 'roleName',
// value: 'roleAlias',
// },
// hide: true,
// span: 24,
// },
// {
// label: '',
// prop: 'sort',
// type: 'number',
// span: 24,
// rules: [
// {
// required: true,
// message: '',
// trigger: 'blur',
// },
// ],
// },
],
},
data: [],
@ -268,6 +269,10 @@ export default {
});
},
rowSave(row, done, loading) {
// 使
if (!row.roleAlias || row.roleAlias.trim() === '') {
row.roleAlias = row.roleName;
}
add(row).then(
() => {
this.onLoad(this.page);
@ -284,6 +289,10 @@ export default {
);
},
rowUpdate(row, index, done, loading) {
// 使
if (!row.roleAlias || row.roleAlias.trim() === '') {
row.roleAlias = row.roleName;
}
update(row).then(
() => {
this.onLoad(this.page);

@ -23,7 +23,7 @@
<template #menu-left>
<el-button
type="danger"
icon="el-icon-delete"
plain
v-if="permission.client_delete"
@click="handleDelete"
@ -63,8 +63,8 @@ export default {
selection: true,
dialogClickModal: false,
searchLabelPosition:'left',
searchLabelPosition:'left',
searchGutter:24,
searchLabelPosition:'left',
searchGutter:24,
searchSpan:6,
menuAlign: 'left',
gridBtn:false,

@ -97,54 +97,54 @@ addBtnIcon: ' ',
align: 'center',
column: [
{
label: '机构名称',
label: '部门名称',
prop: 'deptName',
search: true,
rules: [
{
required: true,
message: '请输入机构名称',
message: '请输入部门名称',
trigger: 'blur',
},
],
},
// {
// label: '',
// prop: 'tenantId',
// type: 'tree',
// dicUrl: '/blade-system/tenant/select',
// addDisplay: false,
// editDisplay: false,
// viewDisplay: website.tenantMode,
// span: 24,
// props: {
// label: 'tenantName',
// value: 'tenantId',
// },
// hide: !website.tenantMode,
// search: website.tenantMode,
// rules: [
// {
// required: true,
// message: '',
// trigger: 'click',
// },
// ],
// },
// {
// label: '',
// prop: 'fullName',
// search: true,
// rules: [
// {
// required: true,
// message: '',
// trigger: 'blur',
// },
// ],
// },
{
label: '所属租户',
prop: 'tenantId',
type: 'tree',
dicUrl: '/blade-system/tenant/select',
addDisplay: false,
editDisplay: false,
viewDisplay: website.tenantMode,
span: 24,
props: {
label: 'tenantName',
value: 'tenantId',
},
hide: !website.tenantMode,
search: website.tenantMode,
rules: [
{
required: true,
message: '请输入所属租户',
trigger: 'click',
},
],
},
{
label: '机构全称',
prop: 'fullName',
search: true,
rules: [
{
required: true,
message: '请输入机构全称',
trigger: 'blur',
},
],
},
{
label: '上级机构',
label: '上级部门',
prop: 'parentId',
dicData: [],
type: 'tree',
@ -156,7 +156,7 @@ addBtnIcon: ' ',
rules: [
{
required: false,
message: '请选择上级机构',
message: '请选择上级部门',
trigger: 'click',
},
],
@ -176,7 +176,7 @@ addBtnIcon: ' ',
hide: true,
},
{
label: '机构类型',
label: '部门类型',
type: 'select',
dicUrl: '/blade-system/dict/dictionary?code=org_category',
props: {
@ -190,25 +190,25 @@ addBtnIcon: ' ',
rules: [
{
required: true,
message: '请输入机构类型',
trigger: 'blur',
},
],
},
{
label: '排序',
prop: 'sort',
type: 'number',
align: 'right',
width: 80,
rules: [
{
required: true,
message: '请输入排序',
message: '请输入部门类型',
trigger: 'blur',
},
],
},
// {
// label: '',
// prop: 'sort',
// type: 'number',
// align: 'right',
// width: 80,
// rules: [
// {
// required: true,
// message: '',
// trigger: 'blur',
// },
// ],
// },
{
label: '备注',
prop: 'remark',
@ -273,6 +273,12 @@ addBtnIcon: ' ',
});
//
done(row);
//
this.data = [];
this.parentId = 0;
this.$refs.crud.refreshTable();
//
this.onLoad(this.page);
},
error => {
window.console.log(error);
@ -290,6 +296,12 @@ addBtnIcon: ' ',
});
//
done(row);
//
this.data = [];
this.parentId = 0;
this.$refs.crud.refreshTable();
//
this.onLoad(this.page);
},
error => {
window.console.log(error);
@ -313,6 +325,13 @@ addBtnIcon: ' ',
});
//
done(row);
//
this.data = [];
this.parentId = 0;
this.$refs.crud.refreshTable();
this.$refs.crud.toggleSelection();
//
this.onLoad(this.page);
});
},
handleDelete() {
@ -402,6 +421,20 @@ addBtnIcon: ' ',
this.data = res.data.data;
this.loading = false;
this.selectionClear();
//
this.$nextTick(() => {
if (this.$refs.crud) {
// ID
const firstLevelIds = this.data.map(item => item.id);
//
firstLevelIds.forEach(id => {
const row = this.data.find(item => item.id === id);
if (row && this.$refs.crud.$refs.table) {
this.$refs.crud.$refs.table.toggleRowExpansion(row, true);
}
});
}
});
});
},
treeLoad(tree, treeNode, resolve) {

@ -24,7 +24,7 @@
<template #menu-left>
<el-button
type="danger"
icon="el-icon-delete"
v-if="permission.dict_delete"
plain
@click="handleDelete"
@ -35,7 +35,7 @@
<el-button
type="primary"
text
icon="el-icon-setting"
@click.stop="handleRowClick(scope.row)"
v-if="userInfo.authority.includes('admin')"
>字典配置
@ -72,7 +72,7 @@
<template #menu-left>
<el-button
type="danger"
icon="el-icon-delete"
v-if="permission.dict_delete"
plain
@click="handleDelete"
@ -83,7 +83,7 @@
<el-button
type="primary"
text
icon="el-icon-circle-plus"
@click.stop="handleAdd(scope.row, scope.index)"
v-if="userInfo.authority.includes('admin')"
>新增子项

@ -24,7 +24,7 @@
<template #menu-left>
<el-button
type="danger"
icon="el-icon-delete"
v-if="permission.dictbiz_delete"
plain
@click="handleDelete"
@ -35,7 +35,7 @@
<el-button
type="primary"
text
icon="el-icon-setting"
@click.stop="handleRowClick(scope.row)"
v-if="userInfo.authority.includes('admin')"
>字典配置
@ -72,7 +72,7 @@
<template #menu-left>
<el-button
type="danger"
icon="el-icon-delete"
v-if="permission.dict_delete"
plain
@click="handleDelete"
@ -83,7 +83,7 @@
<el-button
type="primary"
text
icon="el-icon-circle-plus"
@click.stop="handleAdd(scope.row, scope.index)"
v-if="userInfo.authority.includes('admin')"
>新增子项

@ -24,7 +24,7 @@
<template #menu-left>
<el-button
type="danger"
icon="el-icon-delete"
v-if="permission.menu_delete"
plain
@click="handleDelete"
@ -35,7 +35,7 @@
<el-button
type="primary"
text
icon="el-icon-circle-plus"
@click.stop="handleAdd(scope.row, scope.index)"
v-if="userInfo.authority.includes('admin') && scope.row.category === 1"
>新增子项

@ -12,8 +12,8 @@
</el-form-item>
<!-- 查询按钮 -->
<el-form-item>
<el-button type="primary" icon="el-icon-search" @click="searchChange"> </el-button>
<el-button icon="el-icon-delete" @click="searchReset()"> </el-button>
<el-button type="primary" @click="searchChange"> </el-button>
<el-button @click="searchReset()"> </el-button>
</el-form-item>
</el-form>
</el-row>

@ -23,7 +23,7 @@
<template #menu-left>
<el-button
type="danger"
icon="el-icon-delete"
plain
v-if="permission.post_delete"
@click="handleDelete"
@ -79,28 +79,28 @@ addBtnIcon: ' ',
searchShowBtn:false,
align: 'center',
column: [
{
label: '所属租户',
prop: 'tenantId',
type: 'tree',
dicUrl: '/blade-system/tenant/select',
addDisplay: false,
editDisplay: false,
viewDisplay: website.tenantMode,
span: 24,
props: {
label: 'tenantName',
value: 'tenantId',
},
hide: !website.tenantMode,
rules: [
{
required: true,
message: '请输入所属租户',
trigger: 'click',
},
],
},
// {
// label: '',
// prop: 'tenantId',
// type: 'tree',
// dicUrl: '/blade-system/tenant/select',
// addDisplay: false,
// editDisplay: false,
// viewDisplay: website.tenantMode,
// span: 24,
// props: {
// label: 'tenantName',
// value: 'tenantId',
// },
// hide: !website.tenantMode,
// rules: [
// {
// required: true,
// message: '',
// trigger: 'click',
// },
// ],
// },
{
label: '岗位类型',
prop: 'category',

@ -21,7 +21,7 @@
@on-load="onLoad"
>
<template #menu-left>
<el-button type="danger" icon="el-icon-delete" plain @click="handleDelete"
<el-button type="danger" plain @click="handleDelete"
>
</el-button>
</template>

@ -20,7 +20,7 @@
@on-load="onLoad"
>
<template #menu-left>
<el-button type="danger" icon="el-icon-delete" plain @click="handleDelete"> </el-button>
<el-button type="danger" plain @click="handleDelete"> </el-button>
</template>
</avue-crud>
</template>

@ -23,14 +23,14 @@
<template #menu-left>
<el-button
type="danger"
icon="el-icon-delete"
plain
v-if="permission.topmenu_delete"
@click="handleDelete"
>
</el-button>
<el-button
icon="el-icon-setting"
@click="handleMenuSetting"
v-if="permission.topmenu_setting"
plain

@ -1,6 +1,6 @@
<template>
<el-row>
<el-col :span="5">
<!-- <el-col :span="5">
<div class="box">
<el-scrollbar>
<basic-container>
@ -8,8 +8,8 @@
</basic-container>
</el-scrollbar>
</div>
</el-col>
<el-col :span="19">
</el-col> -->
<el-col :span="24">
<basic-container>
<avue-crud
:option="userOption"
@ -36,14 +36,12 @@
<el-button
v-if="permission.user_add && !auditMode"
type="primary"
icon="el-icon-plus"
@click="$refs.crud.rowAdd()"
>
</el-button>
<el-button
type="danger"
plain
icon="el-icon-delete"
v-if="permission.user_delete && !auditMode"
@click="handleDelete"
>
@ -51,7 +49,6 @@
<el-button
type="primary"
plain
icon="el-icon-operation"
v-if="userInfo.authority.includes('admin') && !auditMode"
@click="handleAudit"
>
@ -59,7 +56,6 @@
<el-button
type="success"
plain
icon="el-icon-check"
v-if="userInfo.authority.includes('admin') && auditMode"
@click="handleAuditPass"
>
@ -67,7 +63,6 @@
<el-button
type="danger"
plain
icon="el-icon-close"
v-if="userInfo.authority.includes('admin') && auditMode"
@click="handleAuditRefuse"
>
@ -75,7 +70,6 @@
<el-button
type="primary"
plain
icon="el-icon-refresh-left"
v-if="userInfo.authority.includes('admin') && auditMode"
@click="handleAuditBack"
>
@ -84,7 +78,6 @@
type="info"
plain
v-if="permission.user_role && !auditMode"
icon="el-icon-user"
@click="handleGrant"
>角色配置
</el-button>
@ -92,7 +85,6 @@
type="info"
plain
v-if="permission.user_reset && !auditMode"
icon="el-icon-refresh"
@click="handleReset"
>密码重置
</el-button>
@ -100,7 +92,6 @@
type="info"
plain
v-if="userInfo.authority.includes('admin') && !auditMode"
icon="el-icon-setting"
@click="handlePlatform"
>平台配置
</el-button>
@ -108,32 +99,37 @@
type="info"
plain
v-if="userInfo.authority.includes('admin') && !auditMode"
icon="el-icon-coordinate"
@click="handleLock"
>账号解封
</el-button>
<el-button
<!-- <el-button
type="success"
plain
v-if="userInfo.authority.includes('admin') && !auditMode"
icon="el-icon-upload"
@click="handleImport"
>导入
</el-button>
</el-button> -->
<el-button
type="warning"
plain
v-if="userInfo.authority.includes('admin') && !auditMode"
icon="el-icon-download"
@click="handleExport"
>导出
</el-button>
</template>
<template #menu-right>
<el-button
type="primary"
v-if="userInfo.authority.includes('admin') && !auditMode"
@click="handleImport"
> </el-button
>
</template>
<template #menu="{ row, index, size }">
<el-button
text
type="primary"
icon="el-icon-view"
v-if="this.permission.user_view"
@click.stop="$refs.crud.rowView(row, index)"
>
@ -141,7 +137,6 @@
<el-button
text
type="primary"
icon="el-icon-edit"
v-if="this.permission.user_edit"
@click.stop="$refs.crud.rowEdit(row, index)"
>

Loading…
Cancel
Save