mirror of
https://github.com/chansee97/nova-admin.git
synced 2025-08-11 08:09:45 +08:00
fix: type error
This commit is contained in:
parent
2e4f691058
commit
0a0c0e25ee
17
netlify.toml
Normal file
17
netlify.toml
Normal file
@ -0,0 +1,17 @@
|
||||
[build]
|
||||
publish = "dist"
|
||||
command = "pnpm run build"
|
||||
|
||||
[build.environment]
|
||||
NODE_VERSION = "20"
|
||||
|
||||
[[redirects]]
|
||||
from = "/*"
|
||||
to = "/index.html"
|
||||
status = 200
|
||||
|
||||
[[headers]]
|
||||
for = "/manifest.webmanifest"
|
||||
|
||||
[headers.values]
|
||||
Content-Type = "application/manifest+json"
|
@ -57,6 +57,7 @@
|
||||
"echarts": "^5.5.0",
|
||||
"md-editor-v3": "^4.11.3",
|
||||
"nprogress": "^0.2.0",
|
||||
"performant-array-to-tree": "^1.11.0",
|
||||
"pinia": "^2.1.7",
|
||||
"pinia-plugin-persist": "^1.0.0",
|
||||
"qs": "^6.12.0",
|
||||
|
@ -18,7 +18,7 @@ const appStore = useAppStore()
|
||||
const data = useVModel(props, 'modelValue', emit)
|
||||
|
||||
const theme = computed(() => {
|
||||
return appStore.darkMode ? 'dark' : 'light'
|
||||
return appStore.colorMode ? 'dark' : 'light'
|
||||
})
|
||||
|
||||
const toolbarsExclude: ToolbarNames[] = [
|
||||
|
@ -87,7 +87,7 @@ export function useEcharts(options: Ref<ECOption>) {
|
||||
return Boolean(domRef.value && chart)
|
||||
}
|
||||
async function render() {
|
||||
const chartTheme = appStore.darkMode ? 'dark' : 'light'
|
||||
const chartTheme = appStore.colorMode ? 'dark' : 'light'
|
||||
await nextTick()
|
||||
if (domRef.value) {
|
||||
chart = echarts.init(domRef.value, chartTheme)
|
||||
|
@ -13,7 +13,7 @@ import { useAuthStore } from '@/store/auth'
|
||||
|
||||
interface RoutesStatus {
|
||||
isInitAuthRoute: boolean
|
||||
menus: any
|
||||
menus: AppRoute.Route[]
|
||||
rowRoutes: AppRoute.RowRoute[]
|
||||
activeMenu: string | null
|
||||
cacheRoutes: string[]
|
||||
@ -44,6 +44,7 @@ export const useRouteStore = defineStore('route-store', {
|
||||
/* 生成侧边菜单的数据 */
|
||||
createMenus(userRoutes: AppRoute.RowRoute[]) {
|
||||
const resultMenus = clone(userRoutes).map(i => construct(i)) as AppRoute.Route[]
|
||||
// arrayToTree2()
|
||||
/** 过滤不需要显示的菜单 */
|
||||
const visibleMenus = resultMenus.filter(route => !route.meta.hide)
|
||||
// 生成侧边菜单
|
||||
@ -84,15 +85,7 @@ export const useRouteStore = defineStore('route-store', {
|
||||
)
|
||||
: item.meta.title,
|
||||
key: item.path,
|
||||
icon: renderIcon(item.meta.icon),
|
||||
}
|
||||
/** 判断子元素 */
|
||||
if (item.children) {
|
||||
const children = this.transformAuthRoutesToMenus(item.children)
|
||||
// 只有子元素有且不为空时才添加
|
||||
if (children.length !== 0)
|
||||
target.children = children
|
||||
else target.children = undefined
|
||||
icon: item.meta.icon ? renderIcon(item.meta.icon) : undefined,
|
||||
}
|
||||
return target
|
||||
})
|
||||
|
20
src/utils/array.ts
Normal file
20
src/utils/array.ts
Normal file
@ -0,0 +1,20 @@
|
||||
import { arrayToTree as _arrayToTree } from 'performant-array-to-tree'
|
||||
import { omit } from 'radash'
|
||||
|
||||
export function arrayToTree(data: any) {
|
||||
const rowTree = _arrayToTree(data, {
|
||||
parentId: 'pid',
|
||||
dataField: null,
|
||||
})
|
||||
|
||||
const transform = (node: any) => {
|
||||
if (node.children.length > 0) {
|
||||
return ({
|
||||
...node,
|
||||
children: node.children.map(transform),
|
||||
})
|
||||
}
|
||||
return omit(node, ['children'])
|
||||
}
|
||||
return rowTree.map(transform)
|
||||
}
|
@ -1,25 +1,3 @@
|
||||
export * from './icon'
|
||||
export * from './storage'
|
||||
|
||||
export function arrayToTree(arr) {
|
||||
const map = {}
|
||||
|
||||
arr.forEach((item) => {
|
||||
map[item.id] = { ...item }
|
||||
})
|
||||
|
||||
arr.forEach((item) => {
|
||||
if (item.pid !== 0) {
|
||||
const parent = map[item.pid]
|
||||
if (parent) {
|
||||
parent.children = parent.children || []
|
||||
parent.children.push(map[item.id])
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
// 找出根节点
|
||||
const tree = Object.values(map).filter(item => item.pid === 0)
|
||||
|
||||
return tree
|
||||
}
|
||||
export * from './array'
|
||||
|
@ -1,6 +1,5 @@
|
||||
<script setup lang="ts">
|
||||
import type { FormInst } from 'naive-ui'
|
||||
import { useRequest } from 'alova'
|
||||
import { local } from '@/utils'
|
||||
import { useAuthStore } from '@/store'
|
||||
|
||||
|
@ -4,7 +4,7 @@ import { usePermission } from '@/hooks'
|
||||
|
||||
const authStore = useAuthStore()
|
||||
const { hasPermission } = usePermission()
|
||||
const { role } = authStore.userInfo
|
||||
const { role } = authStore.userInfo!
|
||||
|
||||
const roleList: Auth.RoleType[] = ['super', 'admin', 'user']
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user