fix: bug修复

This commit is contained in:
xuziqiang
2024-06-19 18:23:49 +08:00
parent 8a554f5871
commit ab3960fff8
3 changed files with 51 additions and 4 deletions

View File

@@ -5,6 +5,8 @@ export enum permission {
queryRolePermission = `${BASE_URL}/api/dept/queryRolePermission`, queryRolePermission = `${BASE_URL}/api/dept/queryRolePermission`,
queryFilterDeptPermission = `${BASE_URL}/api/dept/queryFilterDeptPermission`, queryFilterDeptPermission = `${BASE_URL}/api/dept/queryFilterDeptPermission`,
queryDeptPermission = `${BASE_URL}/api/dept/queryDeptPermission`, queryDeptPermission = `${BASE_URL}/api/dept/queryDeptPermission`,
queryDeptPermissionFilter = `${BASE_URL}/api/dept/queryDeptPermissionFilter`,
queryRolePermissionFilter = `${BASE_URL}/api/dept/queryRolePermissionFilter`,
} }
export enum origanizemanage { export enum origanizemanage {

View File

@@ -37,6 +37,7 @@
</a-tab-pane> </a-tab-pane>
<a-tab-pane :key="2" :disabled="selectRef?.hasOwnProperty('orgInfo')" tab="部门权限"> <a-tab-pane :key="2" :disabled="selectRef?.hasOwnProperty('orgInfo')" tab="部门权限">
<a-tree <a-tree
v-if="deptPermissionTreeData?.length"
:tree-data="deptPermissionTreeData" :tree-data="deptPermissionTreeData"
:fieldNames="{ children: 'menus', title: 'label', key: 'permissionId' }" :fieldNames="{ children: 'menus', title: 'label', key: 'permissionId' }"
v-model:checkedKeys="deptcheckedKeys" v-model:checkedKeys="deptcheckedKeys"
@@ -91,6 +92,7 @@
</a-tab-pane> </a-tab-pane>
<a-tab-pane :key="2" tab="角色权限"> <a-tab-pane :key="2" tab="角色权限">
<a-tree <a-tree
v-if="rolePermissionTreeData?.length"
:tree-data="rolePermissionTreeData" :tree-data="rolePermissionTreeData"
v-model:checkedKeys="roleCheckedKeys" v-model:checkedKeys="roleCheckedKeys"
defaultExpandAll defaultExpandAll
@@ -207,17 +209,33 @@
}; };
/**操作拦截 */ /**操作拦截 */
// 部门权限树
const getPermissionTree = (params) => { const getPermissionTree = (params) => {
return http.post(permission.queryOrgPermission, params).then((res) => { return http.post(permission.queryOrgPermission, params).then((res) => {
deptPermissionTreeData.value = get(res, 'data'); deptPermissionTreeData.value = get(res, 'data');
}); });
}; };
// 子级部门权限树
const getDeptsonPermissionTree = (params) => {
return http.post(permission.queryDeptPermissionFilter, params).then((res) => {
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) => {
rolePermissionTreeData.value = get(res, 'data'); rolePermissionTreeData.value = get(res, 'data');
}); });
}; };
// 子级角色权限树
const getRolesonPermissionTree = (params) => {
return http.post(permission.queryRolePermissionFilter, params).then((res) => {
rolePermissionTreeData.value = get(res, 'data');
});
};
getPermissionTree({ projectId, orgId }); getPermissionTree({ projectId, orgId });
// 部门树 // 部门树
@@ -294,7 +312,7 @@
opMap.type = 'addson'; opMap.type = 'addson';
formData.value = {}; formData.value = {};
let sourceOrgId = ''; let sourceOrgId = '';
if (!currentOrgRef.value?.own) { if (!currentOrgRef.value?.own && orgId !== selectRef.value.deptInfo?.orgId) {
sourceOrgId = orgId; sourceOrgId = orgId;
} }
opMap.fuc = (params) => { opMap.fuc = (params) => {
@@ -524,15 +542,26 @@
selectRef.value = info.node.dataRef; selectRef.value = info.node.dataRef;
// 确定是否是企业 // 确定是否是企业
if (!selectRef.value.hasOwnProperty('own')) { if (!selectRef.value.hasOwnProperty('own') && !selectRef.value.hasOwnProperty('orgInfo')) {
// 部门
formData.value = cloneDeep(info.node.dataRef.deptInfo); formData.value = cloneDeep(info.node.dataRef.deptInfo);
} else { } else {
activeKey.value = 1; activeKey.value = 1;
currentOrgRef.value = selectRef.value; currentOrgRef.value = selectRef.value;
formData.value = {}; formData.value = {};
} }
if (selectRef.value.deptInfo?.pdeptId) {
// 查询子部门
getDeptsonPermissionTree({ deptId: selectRef.value.deptInfo?.pdeptId });
} else {
getPermissionTree({ projectId, orgId });
}
getDeptPermission(); getDeptPermission();
// 切换部门重置逻辑
deptcheckedKeys.value = []; deptcheckedKeys.value = [];
rolePermissionTreeData.value = [];
roleCheckedKeys.value = [];
roleTreeSelectedKeys.value = [];
}; };
/** /**
@@ -559,8 +588,13 @@
selectRoleRef.value = info.node.dataRef; selectRoleRef.value = info.node.dataRef;
roleFormData.value = cloneDeep(info.node.dataRef); roleFormData.value = cloneDeep(info.node.dataRef);
roleCheckedKeys.value = []; roleCheckedKeys.value = [];
if (selectRoleRef.value?.proleId) {
// 查询子部门
getRolesonPermissionTree({ roleId: selectRoleRef.value?.proleId });
} else {
getRolePermissionTree({ deptId: selectRef.value.deptInfo.deptId });
}
getRolePermission(); getRolePermission();
getRolePermissionTree({ deptId: selectRef.value.deptInfo.deptId });
}; };
const CancelApartment = () => { const CancelApartment = () => {

View File

@@ -204,20 +204,31 @@
}; };
const handleOk = () => { const handleOk = () => {
console.log(casData.value, 'formData2.value');
if (casData.value?.length !== 3) { if (casData.value?.length !== 3) {
NsMessage.error('未选择角色'); NsMessage.error('未选择角色');
} }
const currentOrgId = casData.value[0].value;
const isSameOrg = userAuthList.value.filter(({ orgId }) => {
return orgId === currentOrgId;
});
if (isSameOrg?.length) {
NsMessage.error('同一组织只能添加一个角色');
return;
}
console.log(casData.value, userAuthList.value, 'formData2.value');
const str = casData.value.map((item) => item?.label).join('/'); const str = casData.value.map((item) => item?.label).join('/');
userAuthList.value.push({ userAuthList.value.push({
deptRoleInfoList: str, deptRoleInfoList: str,
roleId: casData.value[2].value, roleId: casData.value[2].value,
roleName: casData.value[2].label, roleName: casData.value[2].label,
orgId: casData.value[0].value,
} as never); } as never);
handleClose(); handleClose();
}; };
const handleClose = () => { const handleClose = () => {
addformvisible.value = false; addformvisible.value = false;
casData.value = [];
modalFormRef.value.reset(); modalFormRef.value.reset();
}; };