diff --git a/src/views/system/Menu/Setting/index.vue b/src/views/system/Menu/Setting/index.vue index cad1e29d..c26096f3 100644 --- a/src/views/system/Menu/Setting/index.vue +++ b/src/views/system/Menu/Setting/index.vue @@ -10,30 +10,31 @@
+ - +
@@ -70,6 +71,7 @@ import { getMaxDepth, mergeArr, findAllParentsAndChildren, + handleSorts } from './utils'; import BaseMenu from '@/views/init-home/data/baseMenu'; import type { AntTreeNodeDropEvent } from 'ant-design-vue/es/tree'; @@ -134,9 +136,9 @@ function filterTree(nodes: Array, selectedKeys: Array) { const handleOk = async () => { const _dataArr = filterTree(cloneDeep(treeData.value), selectedKeys.value); - + const _dataSorts = handleSorts(_dataArr) loading.value = true; - const res = await updateMenus(_dataArr).catch(() => {}); + const res = await updateMenus(_dataSorts).catch(() => {}); if (res?.status === 200) { onlyMessage('操作成功', 'success'); } @@ -260,6 +262,7 @@ onMounted(() => { border-radius: 4px; overflow: hidden; width: 100%; + height: 540px; &-content { display: flex; diff --git a/src/views/system/Menu/Setting/utils.ts b/src/views/system/Menu/Setting/utils.ts index 1b48299c..c49f6661 100644 --- a/src/views/system/Menu/Setting/utils.ts +++ b/src/views/system/Menu/Setting/utils.ts @@ -304,3 +304,17 @@ export const getNodeDepth = (node: any) => { } return depth; }; + + +export const handleSorts = (node: any[]) => { + if (!node) return [] + return node.map((item, index) => { + if (item.index !== index) { + item.sortIndex = index + if (item.children) { + item.children = handleSorts(item.children) + } + } + return item + }) +} \ No newline at end of file