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

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

Loading…
Cancel
Save