style: SidebarItem 组件
This commit is contained in:
parent
5c0a8379c2
commit
ce8c736043
@ -72,7 +72,7 @@ const resolvePath = (routePath: string) => {
|
|||||||
<SidebarItemLink v-if="theOnlyOneChild.meta" :to="resolvePath(theOnlyOneChild.path)">
|
<SidebarItemLink v-if="theOnlyOneChild.meta" :to="resolvePath(theOnlyOneChild.path)">
|
||||||
<el-menu-item :index="resolvePath(theOnlyOneChild.path)">
|
<el-menu-item :index="resolvePath(theOnlyOneChild.path)">
|
||||||
<svg-icon v-if="theOnlyOneChild.meta.svgIcon" :name="theOnlyOneChild.meta.svgIcon" />
|
<svg-icon v-if="theOnlyOneChild.meta.svgIcon" :name="theOnlyOneChild.meta.svgIcon" />
|
||||||
<component v-else-if="theOnlyOneChild.meta.elIcon" class="el-icon" :is="theOnlyOneChild.meta.elIcon" />
|
<component v-else-if="theOnlyOneChild.meta.elIcon" :is="theOnlyOneChild.meta.elIcon" class="el-icon" />
|
||||||
<template v-if="theOnlyOneChild.meta.title" #title>
|
<template v-if="theOnlyOneChild.meta.title" #title>
|
||||||
{{ theOnlyOneChild.meta.title }}
|
{{ theOnlyOneChild.meta.title }}
|
||||||
</template>
|
</template>
|
||||||
@ -82,7 +82,7 @@ const resolvePath = (routePath: string) => {
|
|||||||
<el-sub-menu v-else :index="resolvePath(props.item.path)" popper-append-to-body>
|
<el-sub-menu v-else :index="resolvePath(props.item.path)" popper-append-to-body>
|
||||||
<template #title>
|
<template #title>
|
||||||
<svg-icon v-if="props.item.meta && props.item.meta.svgIcon" :name="props.item.meta.svgIcon" />
|
<svg-icon v-if="props.item.meta && props.item.meta.svgIcon" :name="props.item.meta.svgIcon" />
|
||||||
<component v-else-if="props.item.meta && props.item.meta.elIcon" class="el-icon" :is="props.item.meta.elIcon" />
|
<component v-else-if="props.item.meta && props.item.meta.elIcon" :is="props.item.meta.elIcon" class="el-icon" />
|
||||||
<span v-if="props.item.meta && props.item.meta.title">{{ props.item.meta.title }}</span>
|
<span v-if="props.item.meta && props.item.meta.title">{{ props.item.meta.title }}</span>
|
||||||
</template>
|
</template>
|
||||||
<template v-if="props.item.children">
|
<template v-if="props.item.children">
|
||||||
@ -101,15 +101,17 @@ const resolvePath = (routePath: string) => {
|
|||||||
|
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
.svg-icon {
|
.svg-icon {
|
||||||
margin-right: 8px;
|
|
||||||
min-width: 1em;
|
min-width: 1em;
|
||||||
font-size: 16px;
|
margin-right: 12px;
|
||||||
|
font-size: 18px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.el-icon {
|
.el-icon {
|
||||||
width: 1em;
|
width: 1em;
|
||||||
height: 1em;
|
margin-right: 12px;
|
||||||
margin-right: 8px;
|
font-size: 18px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.simple-mode {
|
.simple-mode {
|
||||||
&.first-level {
|
&.first-level {
|
||||||
:deep(.el-sub-menu) {
|
:deep(.el-sub-menu) {
|
||||||
|
@ -18,15 +18,15 @@ import "@/styles/index.scss"
|
|||||||
const app = createApp(App)
|
const app = createApp(App)
|
||||||
/** Element-Plus 组件完整引入 */
|
/** Element-Plus 组件完整引入 */
|
||||||
app.use(ElementPlus)
|
app.use(ElementPlus)
|
||||||
|
/** 注册所有 Element-Plus Icon */
|
||||||
|
for (const [key, component] of Object.entries(ElementPlusIconsVue)) {
|
||||||
|
app.component(key, component)
|
||||||
|
}
|
||||||
/** 加载全局 SVG */
|
/** 加载全局 SVG */
|
||||||
loadSvg(app)
|
loadSvg(app)
|
||||||
/** 自定义指令 */
|
/** 自定义指令 */
|
||||||
Object.keys(directives).forEach((key) => {
|
Object.keys(directives).forEach((key) => {
|
||||||
app.directive(key, (directives as { [key: string]: Directive })[key])
|
app.directive(key, (directives as { [key: string]: Directive })[key])
|
||||||
})
|
})
|
||||||
/** Element Plus Icons */
|
|
||||||
for (const [key, component] of Object.entries(ElementPlusIconsVue)) {
|
|
||||||
app.component(key, component)
|
|
||||||
}
|
|
||||||
|
|
||||||
app.use(store).use(router).mount("#app")
|
app.use(store).use(router).mount("#app")
|
||||||
|
@ -127,13 +127,17 @@ export const constantRoutes: RouteRecordRaw[] = [
|
|||||||
path: "menu1-2-1",
|
path: "menu1-2-1",
|
||||||
component: () => import("@/views/menu/menu1/menu1-2/menu1-2-1/index.vue"),
|
component: () => import("@/views/menu/menu1/menu1-2/menu1-2-1/index.vue"),
|
||||||
name: "Menu1-2-1",
|
name: "Menu1-2-1",
|
||||||
meta: { title: "menu1-2-1" }
|
meta: {
|
||||||
|
title: "menu1-2-1"
|
||||||
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: "menu1-2-2",
|
path: "menu1-2-2",
|
||||||
component: () => import("@/views/menu/menu1/menu1-2/menu1-2-2/index.vue"),
|
component: () => import("@/views/menu/menu1/menu1-2/menu1-2-2/index.vue"),
|
||||||
name: "Menu1-2-2",
|
name: "Menu1-2-2",
|
||||||
meta: { title: "menu1-2-2" }
|
meta: {
|
||||||
|
title: "menu1-2-2"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
@ -141,7 +145,9 @@ export const constantRoutes: RouteRecordRaw[] = [
|
|||||||
path: "menu1-3",
|
path: "menu1-3",
|
||||||
component: () => import("@/views/menu/menu1/menu1-3/index.vue"),
|
component: () => import("@/views/menu/menu1/menu1-3/index.vue"),
|
||||||
name: "Menu1-3",
|
name: "Menu1-3",
|
||||||
meta: { title: "menu1-3" }
|
meta: {
|
||||||
|
title: "menu1-3"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
@ -149,7 +155,9 @@ export const constantRoutes: RouteRecordRaw[] = [
|
|||||||
path: "menu2",
|
path: "menu2",
|
||||||
component: () => import("@/views/menu/menu2/index.vue"),
|
component: () => import("@/views/menu/menu2/index.vue"),
|
||||||
name: "Menu2",
|
name: "Menu2",
|
||||||
meta: { title: "menu2" }
|
meta: {
|
||||||
|
title: "menu2"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
@ -9,7 +9,7 @@
|
|||||||
--v3-navigationbar-height: 50px;
|
--v3-navigationbar-height: 50px;
|
||||||
/** Sidebar 组件 */
|
/** Sidebar 组件 */
|
||||||
--v3-sidebar-width: 220px;
|
--v3-sidebar-width: 220px;
|
||||||
--v3-sidebar-hide-width: 54px;
|
--v3-sidebar-hide-width: 58px;
|
||||||
--v3-sidebar-menu-item-height: 60px;
|
--v3-sidebar-menu-item-height: 60px;
|
||||||
--v3-sidebar-menu-tip-line-bg-color: #66b1ff;
|
--v3-sidebar-menu-tip-line-bg-color: #66b1ff;
|
||||||
--v3-sidebar-menu-bg-color: #001428;
|
--v3-sidebar-menu-bg-color: #001428;
|
||||||
|
2
types/vue-router.d.ts
vendored
2
types/vue-router.d.ts
vendored
@ -11,7 +11,7 @@ declare module "vue-router" {
|
|||||||
*/
|
*/
|
||||||
svgIcon?: string
|
svgIcon?: string
|
||||||
/**
|
/**
|
||||||
* 设置该路由的图标,集成 Element Plus 的 icon 库
|
* 设置该路由的图标,直接使用 Element Plus 的 Icon(与 svgIcon 同时设置时,svgIcon 将优先生效)
|
||||||
*/
|
*/
|
||||||
elIcon?: string
|
elIcon?: string
|
||||||
/**
|
/**
|
||||||
|
Loading…
x
Reference in New Issue
Block a user