perf: 路由重构
This commit is contained in:
@@ -31,7 +31,7 @@ const pkgJson: PkgJson = {
|
||||
devDependencies: Object.entries(devDependencies).map(item => transformVersionData(item))
|
||||
};
|
||||
|
||||
const latestBuildTime = BUILD_TIME;
|
||||
const latestBuildTime = "----";
|
||||
</script>
|
||||
|
||||
<template>
|
||||
|
||||
@@ -1,6 +1,4 @@
|
||||
<script lang="ts" setup>
|
||||
import type {} from 'ant-design-vue';
|
||||
import { generatedRoutes } from '@/router/elegant/routes';
|
||||
import { $t } from '@/locales';
|
||||
import type { MenuModelType } from './form';
|
||||
import { formRules, menuStatusOptions, menuTypeOptions, resetAddForm } from './form';
|
||||
@@ -30,24 +28,6 @@ const title = computed(() => {
|
||||
return titles[props.operateType];
|
||||
});
|
||||
|
||||
// TODO: 根据菜单类型动态加载组件路径、目录类型只允许选择带有子元素的,菜单类型只允许选择没有子元素的
|
||||
const componentOptions = computed(() => {
|
||||
const excludePaths = ['/404', '/403', '/500'];
|
||||
function transformRoutes(routes: any[]): any[] {
|
||||
return routes.filter(route => {
|
||||
if (route.children) {
|
||||
route.children = transformRoutes(route.children);
|
||||
return true;
|
||||
}
|
||||
if (!route.hideInMenu && !excludePaths.includes(route.path) && !route.path.startsWith('/login')) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
});
|
||||
}
|
||||
|
||||
return transformRoutes(generatedRoutes);
|
||||
});
|
||||
|
||||
watch(visible, val => {
|
||||
if (val) {
|
||||
@@ -95,10 +75,6 @@ async function getTreeData() {
|
||||
}
|
||||
}
|
||||
|
||||
function handleTreeSelect(node: any) {
|
||||
model.value.component = node.component;
|
||||
model.value.name = node.name;
|
||||
}
|
||||
|
||||
getTreeData();
|
||||
</script>
|
||||
@@ -139,20 +115,9 @@ getTreeData();
|
||||
</ARadioGroup>
|
||||
</AFormItem>
|
||||
<AFormItem v-if="model.menuType !== 'F'" label="菜单路径" name="path">
|
||||
<div>
|
||||
<!-- @vue-ignore -->
|
||||
<ATreeSelect
|
||||
v-if="model.isFrame === '1'"
|
||||
v-model:value="model.path"
|
||||
show-search
|
||||
:field-names="{ value: 'path', label: 'path' }"
|
||||
allow-clear
|
||||
:tree-data="componentOptions"
|
||||
tree-node-filter-prop="label"
|
||||
@select="(_val, node) => handleTreeSelect(node)"
|
||||
/>
|
||||
<AInput v-else v-model:value="model.path" />
|
||||
</div>
|
||||
path <AInput v-model:value="model.path" />
|
||||
component <AInput v-model:value="model.component" />
|
||||
name <AInput v-model:value="model.name" />
|
||||
</AFormItem>
|
||||
<AFormItem v-if="model.menuType === 'C'" label="隐藏菜单" name="hideInMenu">
|
||||
<ASwitch v-model:checked="model.hideInMenu" checked-value="0" un-checked-value="1" />
|
||||
|
||||
0
src/views/uui/kv/index.vue
Normal file
0
src/views/uui/kv/index.vue
Normal file
Reference in New Issue
Block a user