fix: bug 修复
This commit is contained in:
@@ -10,13 +10,13 @@
|
||||
新增部门
|
||||
</ns-button>
|
||||
<ns-button type="primary" @click="pipe(addApartmentSon, true)">新增子部门</ns-button>
|
||||
<ns-button style="margin: 10px" type="primary" @click="pipe(deleteDept)">
|
||||
<ns-button style="margin: 10px" type="primary" @click="pipe(deleteDept, true)">
|
||||
删除
|
||||
</ns-button>
|
||||
<a-tree
|
||||
v-if="apartmentTreeData?.length"
|
||||
:tree-data="apartmentTreeData"
|
||||
v-model:checkedKeys="deptTreeCheckedKeys"
|
||||
v-if="deptTreeData?.length"
|
||||
:tree-data="deptTreeData"
|
||||
:selectedKeys="deptTreeSelectedKeys"
|
||||
defaultExpandAll
|
||||
@select="SelectApartmentTree">
|
||||
<template #title="data">
|
||||
@@ -35,11 +35,11 @@
|
||||
formLayout="vertical"
|
||||
class="form" />
|
||||
</a-tab-pane>
|
||||
<a-tab-pane :key="2" tab="部门权限">
|
||||
<a-tab-pane :key="2" :disabled="selectRef?.hasOwnProperty('orgInfo')" tab="部门权限">
|
||||
<a-tree
|
||||
:tree-data="apartmentAdminTreeData"
|
||||
:tree-data="deptPermissionTreeData"
|
||||
:fieldNames="{ children: 'menus', title: 'label', key: 'permissionId' }"
|
||||
v-model:checkedKeys="ApartcheckedKeys"
|
||||
v-model:checkedKeys="deptcheckedKeys"
|
||||
checkable
|
||||
:selectable="false"
|
||||
defaultExpandAll
|
||||
@@ -49,7 +49,9 @@
|
||||
</a-tab-pane>
|
||||
</a-tabs>
|
||||
<ns-button style="margin: 16px" type="primary" @click="CancelApartment">取消 </ns-button>
|
||||
<ns-button v-show="disabled" type="primary" @click="pipe(deptEdit)">编辑</ns-button>
|
||||
<ns-button v-show="disabled" type="primary" @click="pipe(deptEdit, true, false)"
|
||||
>编辑</ns-button
|
||||
>
|
||||
<ns-button v-show="!disabled" type="primary" @click="deptSure">确定</ns-button>
|
||||
</a-col>
|
||||
</a-row>
|
||||
@@ -66,8 +68,9 @@
|
||||
删除
|
||||
</ns-button>
|
||||
<a-tree
|
||||
v-if="userTreeData.length"
|
||||
:tree-data="userTreeData"
|
||||
v-if="roleTreeData.length"
|
||||
:tree-data="roleTreeData"
|
||||
:selectedKeys="roleTreeSelectedKeys"
|
||||
defaultExpandAll
|
||||
@select="SelectUserTree">
|
||||
<template #title="data">
|
||||
@@ -88,8 +91,8 @@
|
||||
</a-tab-pane>
|
||||
<a-tab-pane :key="2" tab="角色权限">
|
||||
<a-tree
|
||||
:tree-data="userAdminTreeData"
|
||||
v-model:checkedKeys="UsercheckedKeys"
|
||||
:tree-data="rolePermissionTreeData"
|
||||
v-model:checkedKeys="roleCheckedKeys"
|
||||
defaultExpandAll
|
||||
:fieldNames="{ children: 'menus', title: 'label', key: 'permissionId' }"
|
||||
:selectable="false"
|
||||
@@ -98,8 +101,10 @@
|
||||
</a-tab-pane>
|
||||
</a-tabs>
|
||||
<ns-button style="margin: 16px" type="primary" @click="CancelUser">取消</ns-button>
|
||||
<ns-button v-show="roleDisabled" type="primary" @click="roleEdit"> 编辑 </ns-button>
|
||||
<ns-button v-show="!roleDisabled" type="primary" @click="UserSure"> 确定 </ns-button>
|
||||
<ns-button v-show="roleDisabled" type="primary" @click="rolePipe(roleEdit, false, false)">
|
||||
编辑
|
||||
</ns-button>
|
||||
<ns-button v-show="!roleDisabled" type="primary" @click="roleSure"> 确定 </ns-button>
|
||||
</a-col>
|
||||
</a-row>
|
||||
</div>
|
||||
@@ -128,9 +133,10 @@
|
||||
const roleActiveKey = ref(1);
|
||||
const disabled = ref(true);
|
||||
const roleDisabled = ref(true);
|
||||
const deptTreeCheckedKeys = ref(['0-0-0']);
|
||||
const ApartcheckedKeys = ref<string[]>([]);
|
||||
const UsercheckedKeys = ref<string[]>([]);
|
||||
const deptTreeSelectedKeys = ref([]);
|
||||
const roleTreeSelectedKeys = ref([]);
|
||||
const deptcheckedKeys = ref<string[]>([]);
|
||||
const roleCheckedKeys = ref<string[]>([]);
|
||||
const currentOrgRef = ref();
|
||||
const selectKey = ref();
|
||||
const selectRef = ref();
|
||||
@@ -138,11 +144,12 @@
|
||||
const selectRoleRef = ref();
|
||||
const formSchema = formConfig(disabled as any);
|
||||
const formSchema2 = formConfig2(roleDisabled as any);
|
||||
const { orgId, orgName, projectId } = JSON.parse(sessionStorage.getItem('userInfo'));
|
||||
const userAdminTreeData = ref([]);
|
||||
const apartmentTreeData = ref([]);
|
||||
const apartmentAdminTreeData = ref([]);
|
||||
const userTreeData = ref([]);
|
||||
const { orgName, projectId, orgId } = JSON.parse(sessionStorage.getItem('userInfo'));
|
||||
// const orgId = JSON.parse(sessionStorage.getItem('ORGID'));
|
||||
const roleTreeData = ref([]);
|
||||
const rolePermissionTreeData = ref([]);
|
||||
const deptTreeData = ref([]);
|
||||
const deptPermissionTreeData = ref([]);
|
||||
|
||||
// 包含半选状态的权限数据
|
||||
const deptTotalCheckedKeys = ref([]);
|
||||
@@ -159,28 +166,34 @@
|
||||
};
|
||||
|
||||
watchEffect(() => {
|
||||
disabledTree(apartmentAdminTreeData.value, disabled.value);
|
||||
disabledTree(userAdminTreeData.value, roleDisabled.value);
|
||||
disabledTree(deptPermissionTreeData.value, disabled.value);
|
||||
disabledTree(rolePermissionTreeData.value, roleDisabled.value);
|
||||
});
|
||||
|
||||
/**操作拦截 */
|
||||
const pipe = (func: Function, flag = false) => {
|
||||
const pipe = (func: Function, flag = false, toggle = true) => {
|
||||
console.log(selectRef.value);
|
||||
|
||||
if (flag && !selectRef.value?.hasOwnProperty('own')) {
|
||||
NsMessage.error('请先选择相关部门');
|
||||
return;
|
||||
}
|
||||
if (!flag && !selectRef.value?.deptInfo) {
|
||||
NsMessage.error('请先选择相关企业');
|
||||
return;
|
||||
if (toggle) activeKey.value = 1;
|
||||
if (flag) {
|
||||
// 只有部门的操作
|
||||
if (selectRef.value?.hasOwnProperty('orgInfo') || !selectRef.value?.deptInfo) {
|
||||
NsMessage.error('请先选择相关部门');
|
||||
return;
|
||||
}
|
||||
} else {
|
||||
if (!selectRef.value?.hasOwnProperty('orgInfo')) {
|
||||
NsMessage.error('请先选择相关企业');
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
func && func();
|
||||
};
|
||||
|
||||
const rolePipe = (func: Function, linkDept = false) => {
|
||||
const rolePipe = (func: Function, linkDept = false, toggle = true) => {
|
||||
console.log(selectRoleRef.value);
|
||||
|
||||
if (toggle) roleActiveKey.value = 1;
|
||||
// 需要先选择部门
|
||||
if ((linkDept && !selectRef.value?.deptInfo) || selectRef.value?.hasOwnProperty('own')) {
|
||||
NsMessage.error('请先选择相关部门');
|
||||
@@ -196,12 +209,12 @@
|
||||
|
||||
const getPermissionTree = (params) => {
|
||||
return http.post(permission.queryOrgPermission, params).then((res) => {
|
||||
apartmentAdminTreeData.value = get(res, 'data');
|
||||
deptPermissionTreeData.value = get(res, 'data');
|
||||
});
|
||||
};
|
||||
const getRolePermissionTree = (params) => {
|
||||
return http.post(permission.queryFilterDeptPermission, params).then((res) => {
|
||||
userAdminTreeData.value = get(res, 'data');
|
||||
rolePermissionTreeData.value = get(res, 'data');
|
||||
});
|
||||
};
|
||||
|
||||
@@ -223,13 +236,13 @@
|
||||
});
|
||||
};
|
||||
getDepartList({ orgId }).then((res) => {
|
||||
apartmentTreeData.value = res;
|
||||
deptTreeData.value = res;
|
||||
});
|
||||
|
||||
// 获取部门树
|
||||
const getTree = () => {
|
||||
getDepartList({ orgId }).then((res) => {
|
||||
apartmentTreeData.value = res;
|
||||
deptTreeData.value = res;
|
||||
NsMessage.success('操作成功');
|
||||
});
|
||||
};
|
||||
@@ -237,7 +250,7 @@
|
||||
// 获取角色树
|
||||
const getUserTree = (params = { deptId: selectRef.value?.deptInfo?.deptId }) => {
|
||||
http.post(department.queryRoleTree, params).then((res) => {
|
||||
userTreeData.value = res.data;
|
||||
roleTreeData.value = res.data;
|
||||
});
|
||||
};
|
||||
// 根据依赖刷新角色树
|
||||
@@ -338,12 +351,13 @@
|
||||
// 删除逻辑
|
||||
Modal.confirm({
|
||||
title: '是否确认删除',
|
||||
icon: createVNode(ExclamationCircleOutlined),
|
||||
content: createVNode('div', { style: 'color:red;' }, ''),
|
||||
onOk() {
|
||||
http.post(department.deptDel, { deptId: selectRef.value.deptInfo.deptId }).then(() => {
|
||||
getTree();
|
||||
clearDeptData();
|
||||
// 清空select树
|
||||
deptTreeSelectedKeys.value = [];
|
||||
selectRef.value = '';
|
||||
});
|
||||
},
|
||||
onCancel() {
|
||||
@@ -355,17 +369,21 @@
|
||||
const deleteUser = () => {
|
||||
Modal.confirm({
|
||||
title: '是否确认删除',
|
||||
icon: createVNode(ExclamationCircleOutlined),
|
||||
content: createVNode('div', { style: 'color:red;' }, ''),
|
||||
onOk() {
|
||||
http.post(department.delRole, { roleId: selectRoleRef.value.roleId }).then(() => {
|
||||
getUserTree({ deptId: selectRef.value.deptInfo.deptId });
|
||||
clearRoleData();
|
||||
// 清空select树
|
||||
roleTreeSelectedKeys.value = [];
|
||||
selectRoleRef.value = '';
|
||||
NsMessage.success('操作成功');
|
||||
});
|
||||
},
|
||||
|
||||
class: 'test',
|
||||
});
|
||||
};
|
||||
watchEffect(() => {
|
||||
console.log(deptTreeSelectedKeys.value, 'deptTreeData.value');
|
||||
});
|
||||
|
||||
const clearDeptData = () => {
|
||||
formData.value = {};
|
||||
@@ -452,7 +470,7 @@
|
||||
http
|
||||
.post(permission.queryDeptPermission, { deptId: selectRef.value?.deptInfo.deptId })
|
||||
.then((res) => {
|
||||
ApartcheckedKeys.value = res.data
|
||||
deptcheckedKeys.value = res.data
|
||||
?.filter((item) => !item.halfCheck)
|
||||
.map((item) => {
|
||||
return item.permissionId;
|
||||
@@ -466,7 +484,7 @@
|
||||
http
|
||||
.post(permission.queryRolePermission, { roleId: selectRoleRef.value?.roleId })
|
||||
.then((res) => {
|
||||
UsercheckedKeys.value = res.data
|
||||
roleCheckedKeys.value = res.data
|
||||
?.filter((item) => !item.halfCheck)
|
||||
.map((item) => {
|
||||
return item.permissionId;
|
||||
@@ -502,18 +520,19 @@
|
||||
const { selected } = info;
|
||||
if (!selectedKeys?.length) return;
|
||||
|
||||
selectKey.value = [info.node.key];
|
||||
deptTreeSelectedKeys.value = [info.node.key];
|
||||
selectRef.value = info.node.dataRef;
|
||||
|
||||
// 确定是否是企业
|
||||
if (!selectRef.value.hasOwnProperty('own')) {
|
||||
formData.value = cloneDeep(info.node.dataRef.deptInfo);
|
||||
} else {
|
||||
activeKey.value = 1;
|
||||
currentOrgRef.value = selectRef.value;
|
||||
formData.value = {};
|
||||
}
|
||||
getDeptPermission();
|
||||
ApartcheckedKeys.value = [];
|
||||
deptcheckedKeys.value = [];
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -536,10 +555,10 @@
|
||||
// roleDisabled.value = !selected;
|
||||
|
||||
if (!selectedKeys?.length) return;
|
||||
selectRoleKey.value = selectedKeys[0];
|
||||
roleTreeSelectedKeys.value = [info.node.key];
|
||||
selectRoleRef.value = info.node.dataRef;
|
||||
roleFormData.value = cloneDeep(info.node.dataRef);
|
||||
UsercheckedKeys.value = [];
|
||||
roleCheckedKeys.value = [];
|
||||
getRolePermission();
|
||||
getRolePermissionTree({ deptId: selectRef.value.deptInfo.deptId });
|
||||
};
|
||||
@@ -565,7 +584,7 @@
|
||||
opMap.fuc &&
|
||||
opMap.fuc(formData.value).then(() => {
|
||||
getTree();
|
||||
clearDeptData();
|
||||
opMap.type !== 'editDpet' && clearDeptData();
|
||||
disabled.value = true;
|
||||
});
|
||||
}
|
||||
@@ -578,15 +597,16 @@
|
||||
};
|
||||
|
||||
// 角色确定
|
||||
const UserSure = () => {
|
||||
const roleSure = () => {
|
||||
const typeArr = ['addUserSon', 'addUser', 'editRole'];
|
||||
if (roleActiveKey.value === 1) {
|
||||
if (typeArr.includes(opMap.type)) {
|
||||
opMap.fuc &&
|
||||
opMap.fuc(roleFormData.value).then(() => {
|
||||
getUserTree();
|
||||
clearRoleData();
|
||||
opMap.type !== 'editRole' && clearRoleData();
|
||||
roleDisabled.value = !roleDisabled.value;
|
||||
NsMessage.success('操作成功');
|
||||
});
|
||||
}
|
||||
} else {
|
||||
|
Reference in New Issue
Block a user