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