fix/0524_ch
向文可 2 years ago
parent 543c44dcc8
commit 46be7ae420

@ -74,42 +74,47 @@
:rules="formState.rules2"
>
<el-form-item label="系统模块菜单" prop="menuIds">
<el-tree
:data="menuList"
:default-checked-keys="formState.form.menuIds"
default-expand-all
:expand-on-click-node="false"
highlight-current
node-key="id"
:props="{
label: 'title',
value: 'id',
children: 'menuChild',
}"
show-checkbox
@check-change="handleCheckMenu"
@node-click="handleLoadPermission"
/>
<el-scrollbar max-height="420px">
<el-tree
ref="refsTree1"
:data="menuList"
:default-checked-keys="formState.form.menuIds"
default-expand-all
:expand-on-click-node="false"
highlight-current
node-key="id"
:props="{
label: 'title',
value: 'id',
children: 'menuChild',
}"
show-checkbox
@check-change="handleCheckMenu"
@node-click="handleLoadPermission"
/>
</el-scrollbar>
</el-form-item>
<el-form-item label="功能权限" prop="permissionIds">
<el-checkbox v-model="checkAll" :indeterminate="isIndeterminate" @change="handleCheckAll">
全选
</el-checkbox>
<el-tree
ref="refsTree"
:data="permissionList"
:default-checked-keys="formState.form.permissionIds"
default-expand-all
:expand-on-click-node="false"
highlight-current
node-key="id"
:props="{
label: 'name',
value: 'id',
}"
show-checkbox
@check-change="handleCheckPermission"
/>
<el-scrollbar max-height="420px">
<el-tree
ref="refsTree2"
:data="permissionList"
:default-checked-keys="formState.form.permissionIds"
default-expand-all
:expand-on-click-node="false"
highlight-current
node-key="id"
:props="{
label: 'name',
value: 'id',
}"
show-checkbox
@check-change="handleCheckPermission"
/>
</el-scrollbar>
</el-form-item>
</el-form>
</el-tab-pane>
@ -124,7 +129,7 @@
>
<el-form-item label="选择绑定组织" prop="departmentList">
<el-tree
ref="refsTree2"
ref="refsTree3"
:data="opts.dept"
:default-checked-keys="formState.form.departmentList.map((item) => item.id)"
default-expand-all
@ -236,7 +241,8 @@
departmentList: [{ required: true, trigger: 'change', message: '绑定组织不能为空' }],
},
});
const refsTree = ref(null);
const refsTree1 = ref(null);
const refsTree2 = ref(null);
const checkAll = ref(false);
const isIndeterminate = ref(false);
watch(
@ -248,7 +254,7 @@
{ immediate: true, deep: true }
);
const handleCheckAll = () => {
unref(refsTree).setCheckedKeys(unref(checkAll) ? unref(permissionList).map((item) => item.id) : []);
unref(refsTree2).setCheckedKeys(unref(checkAll) ? unref(permissionList).map((item) => item.id) : []);
};
const handleLoadPermission = async (data) => {
permissionList.value = await store.dispatch('role/loadPermission', data.id);
@ -267,7 +273,7 @@
formState.form.permissionIds.splice(formState.form.permissionIds.indexOf(data.id), 1);
}
};
const refsTree2 = ref(null);
const refsTree3 = ref(null);
const handleCheckDept = async (data, checked, childChecked) => {
if (checked || childChecked) {
formState.form.departmentList.push(data);
@ -299,7 +305,7 @@
res.role.permissionIds = [];
const deep = (arr) => {
(arr || []).forEach((item) => {
if (item.isHave) {
if (item.isHave && !item.menuChild?.length) {
res.role.menuIds.push(item.id);
}
res.role.permissionIds.push(
@ -350,6 +356,9 @@
handleSearch();
} else {
let data = _.cloneDeep(formState.form);
if (formState.currentTab === '2') {
data.menuIds = [...unref(refsTree1).getCheckedKeys(), ...unref(refsTree1).getHalfCheckedKeys()];
}
let res = await store.dispatch(
formState.currentTab === '1'
? 'role/save'

Loading…
Cancel
Save