yunxinguanli

This commit is contained in:
仲么了
2023-12-29 10:05:09 +08:00
parent edead841b8
commit dc5f97b6dc
10 changed files with 239 additions and 172 deletions

View File

@@ -1,8 +1,8 @@
<template>
<component :is="config.layout.layoutMode"></component>
<component :is='config.layout.layoutMode'></component>
</template>
<script setup lang="ts">
<script setup lang='ts'>
import { reactive } from 'vue'
import { useConfig } from '@/stores/config'
import { useNavTabs } from '@/stores/navTabs'
@@ -21,6 +21,8 @@ import { isEmpty } from 'lodash-es'
import { setNavTabsWidth } from '@/utils/layout'
import { adminBaseRoutePath } from '@/router/static'
import { getRouteMenu, dictDataCache } from '@/api/auth'
import { getAreaList } from '@/api/common'
import { BasicDictData } from '@/stores/interface'
defineOptions({
components: { Default, Classic, Streamline, Double }
@@ -30,7 +32,7 @@ const navTabs = useNavTabs()
const config = useConfig()
const route = useRoute()
const adminInfo = useAdminInfo()
const DictData = useDictData()
const dictData = useDictData()
const state = reactive({
autoMenuCollapseLock: false
})
@@ -47,151 +49,159 @@ onBeforeMount(() => {
useEventListener(window, 'resize', onAdaptiveLayout)
})
const init = () => {
const init = async () => {
await Promise.all([
getAreaList(),
dictDataCache()
]).then(res => {
dictData.state.area = res[0].data
dictData.state.basic = res[1].data
})
/**
* 后台初始化请求,获取站点配置,动态路由等信息
*/
const arr = [
{
id: 1,
pid: 0,
type: 'menu',
title: '控制台',
name: 'dashboard',
path: 'dashboard',
icon: 'el-icon-Platform',
menu_type: 'tab',
url: '',
component: '/src/views/dashboard/index.vue',
keepalive: 'dashboard',
extend: 'none',
children: []
},
{
id: 3,
pid: 0,
type: 'menu',
title: '审计管理',
name: 'test',
path: 'test',
icon: 'el-icon-List',
menu_type: 'tab',
url: '',
component: '/src/views/dashboard/test.vue',
keepalive: 'test',
extend: 'none',
children: [
{
id: 1,
pid: 3,
type: 'menu',
title: '审计列表',
name: 'comptroller/list',
path: 'comptroller/list',
icon: 'el-icon-List',
menu_type: 'tab',
url: '',
component: '/src/views/comptroller/list.vue',
keepalive: 'auth/role',
extend: 'none',
children: []
}
]
},
{
id: 3,
pid: 0,
type: 'menu',
title: '电压暂降',
name: 'voltage/sags',
path: 'voltage/sags',
icon: 'el-icon-BellFilled',
menu_type: 'tab',
url: '',
component: '/src/views/dashboard/test.vue',
keepalive: 'voltage/sags',
extend: 'none',
children: [
{
id: 1,
pid: 3,
type: 'menu',
title: '运行管理',
name: 'voltage/sags/operationsManagement',
path: 'voltage/sags/operationsManagement',
icon: 'el-icon-Management',
menu_type: 'tab',
url: '',
component: '/src/views/voltage/sags/operationsManagement/index.vue',
keepalive: 'voltage/sags/operationsManagement',
extend: 'none',
children: []
},
{
id: 2,
pid: 3,
type: 'menu',
title: '区域',
name: 'Event-boot/Region/distribution',
path: 'Event-boot/Region/distribution',
icon: 'el-icon-Management',
menu_type: 'tab',
url: '',
component: '/src/views/Event-boot/Region/distribution.vue',
keepalive: 'Event-boot/Region/distribution',
extend: 'none',
children: []
}
]
},
{
id: 2,
pid: 0,
type: 'menu_dir',
title: '权限管理',
name: 'auth',
path: 'auth',
icon: 'el-icon-Tools',
menu_type: null,
url: '',
component: '',
keepalive: 0,
extend: 'none',
children: [
{
id: 3,
pid: 2,
type: 'menu',
title: '角色管理',
name: 'auth/role',
path: 'auth/role',
icon: 'el-icon-Avatar',
menu_type: 'tab',
url: '',
component: '/src/views/auth/role.vue',
keepalive: 'auth/role',
extend: 'none',
children: []
},
{
id: 13,
pid: 2,
type: 'menu',
title: '菜单规则管理',
name: 'auth/menu',
path: 'auth/menu',
icon: 'el-icon-Menu',
menu_type: 'tab',
url: '',
component: '/src/views/auth/menu/index.vue',
keepalive: 'auth/menu',
extend: 'none',
children: []
}
]
}
]
getRouteMenu().then((res: any) => {
const arr = [
{
id: 1,
pid: 0,
type: 'menu',
title: '控制台',
name: 'dashboard',
path: 'dashboard',
icon: 'el-icon-Platform',
menu_type: 'tab',
url: '',
component: '/src/views/dashboard/index.vue',
keepalive: 'dashboard',
extend: 'none',
children: []
},
{
id: 3,
pid: 0,
type: 'menu',
title: '审计管理',
name: 'test',
path: 'test',
icon: 'el-icon-List',
menu_type: 'tab',
url: '',
component: '/src/views/dashboard/test.vue',
keepalive: 'test',
extend: 'none',
children: [
{
id: 1,
pid: 3,
type: 'menu',
title: '审计列表',
name: 'comptroller/list',
path: 'comptroller/list',
icon: 'el-icon-List',
menu_type: 'tab',
url: '',
component: '/src/views/comptroller/list.vue',
keepalive: 'auth/role',
extend: 'none',
children: []
}
]
},
{
id: 3,
pid: 0,
type: 'menu',
title: '电压暂降',
name: 'voltage/sags',
path: 'voltage/sags',
icon: 'el-icon-BellFilled',
menu_type: 'tab',
url: '',
component: '/src/views/dashboard/test.vue',
keepalive: 'voltage/sags',
extend: 'none',
children: [
{
id: 1,
pid: 3,
type: 'menu',
title: '运行管理',
name: 'voltage/sags/operationsManagement',
path: 'voltage/sags/operationsManagement',
icon: 'el-icon-Management',
menu_type: 'tab',
url: '',
component: '/src/views/voltage/sags/operationsManagement/index.vue',
keepalive: 'voltage/sags/operationsManagement',
extend: 'none',
children: []
},
{
id: 2,
pid: 3,
type: 'menu',
title: '区域',
name: 'Event-boot/Region/distribution',
path: 'Event-boot/Region/distribution',
icon: 'el-icon-Management',
menu_type: 'tab',
url: '',
component: '/src/views/Event-boot/Region/distribution.vue',
keepalive: 'Event-boot/Region/distribution',
extend: 'none',
children: []
}
]
},
{
id: 2,
pid: 0,
type: 'menu_dir',
title: '权限管理',
name: 'auth',
path: 'auth',
icon: 'el-icon-Tools',
menu_type: null,
url: '',
component: '',
keepalive: 0,
extend: 'none',
children: [
{
id: 3,
pid: 2,
type: 'menu',
title: '角色管理',
name: 'auth/role',
path: 'auth/role',
icon: 'el-icon-Avatar',
menu_type: 'tab',
url: '',
component: '/src/views/auth/role.vue',
keepalive: 'auth/role',
extend: 'none',
children: []
},
{
id: 13,
pid: 2,
type: 'menu',
title: '菜单规则管理',
name: 'auth/menu',
path: 'auth/menu',
icon: 'el-icon-Menu',
menu_type: 'tab',
url: '',
component: '/src/views/auth/menu/index.vue',
keepalive: 'auth/menu',
extend: 'none',
children: []
}
]
}
]
const handlerMenu = (data: any) => {
data.forEach((item: any) => {
item.path = item.routeName || item.title
@@ -223,9 +233,6 @@ const init = () => {
console.log(firstRoute)
if (firstRoute) routePush(firstRoute.path)
})
dictDataCache().then(res => {
DictData.setBasicData(res.data)
})
}
const onAdaptiveLayout = () => {