| | |
| | | title: 'menuName', |
| | | children: 'children', |
| | | }" |
| | | :check-strictly="checkStrictlyMenu" |
| | | > |
| | | </a-tree> |
| | | </a-tab-pane> |
| | |
| | | 'margin': '1px', |
| | | }" |
| | | class="card-demo" |
| | | title="用户所有权限" |
| | | title="角色所有权限" |
| | | hoverable |
| | | > |
| | | <a-space wrap> |
| | |
| | | let resourcevisible = ref(false); |
| | | let selectRole = ref({}); |
| | | |
| | | |
| | | const eachChildrenAdd=(node)=>{ |
| | | if (node.children?.length > 0) { |
| | | node.children.forEach((child) => { |
| | | checkStrictlyMenu.value.push({ menuId: child.menuId, menuName: child.menuName }); |
| | | eachChildrenAdd(child); |
| | | }); |
| | | } |
| | | } |
| | | |
| | | const findChild = (node, val): boolean => { |
| | | let isExist = false; |
| | | if (node.children?.length > 0) { |
| | | node.children.forEach((child) => { |
| | | if (val.menuId == child.menuId) { |
| | | isExist = isExist || true; |
| | | } else { |
| | | isExist = isExist || findChild(child, val); |
| | | } |
| | | }); |
| | | } |
| | | return isExist; |
| | | }; |
| | | |
| | | const onCheckMenu = (newCheckedKeys, event) => { |
| | | let o = { menuId: event.node.menuId, menuName: event.node.menuName }; |
| | | if (event.checked) { |
| | | checkStrictlyMenu.value.push(o); |
| | | eachChildrenAdd(event.node); |
| | | if (event.halfCheckedNodes?.length > 0) { |
| | | event.halfCheckedNodes.forEach((child) => { |
| | | let e = { menuId: child.menuId, menuName: child.menuName }; |
| | | if (checkStrictlyMenu.value.find((item) => item.menuId === e.menuId) == undefined) { |
| | | checkStrictlyMenu.value.push(e); |
| | | } |
| | | }); |
| | | } |
| | | } else { |
| | | let menus=[]; |
| | | checkStrictlyMenu.value.forEach((val, idx, array) => { |
| | | // val: 当前值 |
| | | if (val.menuId == event.node.menuId) { |
| | | checkStrictlyMenu.value.splice(idx, 1); |
| | | return true; |
| | | if (val.menuId != event.node.menuId && !findChild(event.node, val)) { |
| | | menus.push({ menuId: val.menuId, menuName: val.menuName }); |
| | | } |
| | | }); |
| | | checkStrictlyMenu.value = menus; |
| | | } |
| | | }; |
| | | const onCheckKnowledge = (newCheckedKeys, event) => { |
| | |
| | | } |
| | | }; |
| | | |
| | | const handleRemove = (key) => { |
| | | checkStrictly.value = checkStrictly.value.filter((tag) => tag !== key); |
| | | }; |
| | | |
| | | const handleMenuRemove = (key) => { |
| | | checkStrictlyMenu.value = checkStrictlyMenu.value.filter( |
| | | (tag) => tag !== key |