mirror of
https://github.com/pure-admin/vue-pure-admin.git
synced 2025-06-06 16:37:18 +08:00
refactor: 优化主题色 (#842)
* refactor: 优化主题色 * chore: 移除`yellow`金色主题配色 * perf: 优化左侧菜单的右边框,使其不再突兀 * style: 所有层级的子菜单字体大小跟顶级菜单保持一致都是`14px` * chore: 默认亮白色`light`主题配色,并按照感官调整主题色顺序 * fix: 修复亮白主题配色,切换暗色主题后再切回亮色主题时,无法恢复之前的亮白主题配色 * style: 统一亮白主题配色下顶部菜单和混合菜单的`logo`和右侧操作功能颜色
This commit is contained in:
parent
7acdf03f87
commit
ba1f655b6e
@ -7,7 +7,7 @@
|
|||||||
"KeepAlive": true,
|
"KeepAlive": true,
|
||||||
"Locale": "zh",
|
"Locale": "zh",
|
||||||
"Layout": "vertical",
|
"Layout": "vertical",
|
||||||
"Theme": "default",
|
"Theme": "light",
|
||||||
"DarkMode": false,
|
"DarkMode": false,
|
||||||
"Grey": false,
|
"Grey": false,
|
||||||
"Weak": false,
|
"Weak": false,
|
||||||
|
@ -120,7 +120,7 @@ onBeforeUnmount(() => {
|
|||||||
right: 0;
|
right: 0;
|
||||||
z-index: 40000;
|
z-index: 40000;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
max-width: 300px;
|
max-width: 280px;
|
||||||
height: 100vh;
|
height: 100vh;
|
||||||
box-shadow: 0 0 15px 0 rgb(0 0 0 / 5%);
|
box-shadow: 0 0 15px 0 rgb(0 0 0 / 5%);
|
||||||
transition: all 0.25s cubic-bezier(0.7, 0.3, 0.1, 1);
|
transition: all 0.25s cubic-bezier(0.7, 0.3, 0.1, 1);
|
||||||
|
@ -194,7 +194,8 @@ function setLayoutModel(layout: string) {
|
|||||||
theme: layoutTheme.value.theme,
|
theme: layoutTheme.value.theme,
|
||||||
darkMode: $storage.layout?.darkMode,
|
darkMode: $storage.layout?.darkMode,
|
||||||
sidebarStatus: $storage.layout?.sidebarStatus,
|
sidebarStatus: $storage.layout?.sidebarStatus,
|
||||||
epThemeColor: $storage.layout?.epThemeColor
|
epThemeColor: $storage.layout?.epThemeColor,
|
||||||
|
themeColor: layoutTheme.value.theme
|
||||||
};
|
};
|
||||||
useAppStoreHook().setLayout(layout);
|
useAppStoreHook().setLayout(layout);
|
||||||
}
|
}
|
||||||
@ -411,7 +412,7 @@ onBeforeMount(() => {
|
|||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
border-radius: 4px;
|
border-radius: 4px;
|
||||||
|
|
||||||
&:nth-child(2) {
|
&:nth-child(1) {
|
||||||
border: 1px solid #ddd;
|
border: 1px solid #ddd;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -66,6 +66,6 @@ const toggleClick = () => {
|
|||||||
width: 100%;
|
width: 100%;
|
||||||
height: 40px;
|
height: 40px;
|
||||||
line-height: 40px;
|
line-height: 40px;
|
||||||
box-shadow: 0 0 6px -2px var(--el-color-primary);
|
box-shadow: 0 0 6px -3px var(--el-color-primary);
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
@ -18,24 +18,22 @@ import {
|
|||||||
export function useDataThemeChange() {
|
export function useDataThemeChange() {
|
||||||
const { layoutTheme, layout } = useLayout();
|
const { layoutTheme, layout } = useLayout();
|
||||||
const themeColors = ref<Array<themeColorsType>>([
|
const themeColors = ref<Array<themeColorsType>>([
|
||||||
/* 道奇蓝(默认) */
|
|
||||||
{ color: "#1b2a47", themeColor: "default" },
|
|
||||||
/* 亮白色 */
|
/* 亮白色 */
|
||||||
{ color: "#ffffff", themeColor: "light" },
|
{ color: "#ffffff", themeColor: "light" },
|
||||||
|
/* 道奇蓝 */
|
||||||
|
{ color: "#1b2a47", themeColor: "default" },
|
||||||
|
/* 深紫罗兰色 */
|
||||||
|
{ color: "#722ed1", themeColor: "saucePurple" },
|
||||||
|
/* 深粉色 */
|
||||||
|
{ color: "#eb2f96", themeColor: "pink" },
|
||||||
/* 猩红色 */
|
/* 猩红色 */
|
||||||
{ color: "#f5222d", themeColor: "dusk" },
|
{ color: "#f5222d", themeColor: "dusk" },
|
||||||
/* 橙红色 */
|
/* 橙红色 */
|
||||||
{ color: "#fa541c", themeColor: "volcano" },
|
{ color: "#fa541c", themeColor: "volcano" },
|
||||||
/* 金色 */
|
|
||||||
{ color: "#fadb14", themeColor: "yellow" },
|
|
||||||
/* 绿宝石 */
|
/* 绿宝石 */
|
||||||
{ color: "#13c2c2", themeColor: "mingQing" },
|
{ color: "#13c2c2", themeColor: "mingQing" },
|
||||||
/* 酸橙绿 */
|
/* 酸橙绿 */
|
||||||
{ color: "#52c41a", themeColor: "auroraGreen" },
|
{ color: "#52c41a", themeColor: "auroraGreen" }
|
||||||
/* 深粉色 */
|
|
||||||
{ color: "#eb2f96", themeColor: "pink" },
|
|
||||||
/* 深紫罗兰色 */
|
|
||||||
{ color: "#722ed1", themeColor: "saucePurple" }
|
|
||||||
]);
|
]);
|
||||||
|
|
||||||
const { $storage } = useGlobal<GlobalPropertiesApi>();
|
const { $storage } = useGlobal<GlobalPropertiesApi>();
|
||||||
@ -50,17 +48,23 @@ export function useDataThemeChange() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/** 设置导航主题色 */
|
/** 设置导航主题色 */
|
||||||
function setLayoutThemeColor(theme = getConfig().Theme ?? "default") {
|
function setLayoutThemeColor(
|
||||||
|
theme = getConfig().Theme ?? "light",
|
||||||
|
isClick = true
|
||||||
|
) {
|
||||||
layoutTheme.value.theme = theme;
|
layoutTheme.value.theme = theme;
|
||||||
toggleTheme({
|
toggleTheme({
|
||||||
scopeName: `layout-theme-${theme}`
|
scopeName: `layout-theme-${theme}`
|
||||||
});
|
});
|
||||||
|
// 如果非isClick,保留之前的themeColor
|
||||||
|
const storageThemeColor = $storage.layout.themeColor;
|
||||||
$storage.layout = {
|
$storage.layout = {
|
||||||
layout: layout.value,
|
layout: layout.value,
|
||||||
theme,
|
theme,
|
||||||
darkMode: dataTheme.value,
|
darkMode: dataTheme.value,
|
||||||
sidebarStatus: $storage.layout?.sidebarStatus,
|
sidebarStatus: $storage.layout?.sidebarStatus,
|
||||||
epThemeColor: $storage.layout?.epThemeColor
|
epThemeColor: $storage.layout?.epThemeColor,
|
||||||
|
themeColor: isClick ? theme : storageThemeColor
|
||||||
};
|
};
|
||||||
|
|
||||||
if (theme === "default" || theme === "light") {
|
if (theme === "default" || theme === "light") {
|
||||||
@ -93,14 +97,17 @@ export function useDataThemeChange() {
|
|||||||
/** 亮色、暗色整体风格切换 */
|
/** 亮色、暗色整体风格切换 */
|
||||||
function dataThemeChange() {
|
function dataThemeChange() {
|
||||||
if (useEpThemeStoreHook().epTheme === "light" && dataTheme.value) {
|
if (useEpThemeStoreHook().epTheme === "light" && dataTheme.value) {
|
||||||
setLayoutThemeColor("default");
|
setLayoutThemeColor("default", false);
|
||||||
} else {
|
} else {
|
||||||
setLayoutThemeColor(useEpThemeStoreHook().epTheme);
|
setLayoutThemeColor(useEpThemeStoreHook().epTheme, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (dataTheme.value) {
|
if (dataTheme.value) {
|
||||||
document.documentElement.classList.add("dark");
|
document.documentElement.classList.add("dark");
|
||||||
} else {
|
} else {
|
||||||
|
if ($storage.layout.themeColor === "light") {
|
||||||
|
setLayoutThemeColor("light", false);
|
||||||
|
}
|
||||||
document.documentElement.classList.remove("dark");
|
document.documentElement.classList.remove("dark");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -24,10 +24,11 @@ export function useLayout() {
|
|||||||
if (!$storage.layout) {
|
if (!$storage.layout) {
|
||||||
$storage.layout = {
|
$storage.layout = {
|
||||||
layout: $config?.Layout ?? "vertical",
|
layout: $config?.Layout ?? "vertical",
|
||||||
theme: $config?.Theme ?? "default",
|
theme: $config?.Theme ?? "light",
|
||||||
darkMode: $config?.DarkMode ?? false,
|
darkMode: $config?.DarkMode ?? false,
|
||||||
sidebarStatus: $config?.SidebarStatus ?? true,
|
sidebarStatus: $config?.SidebarStatus ?? true,
|
||||||
epThemeColor: $config?.EpThemeColor ?? "#409EFF"
|
epThemeColor: $config?.EpThemeColor ?? "#409EFF",
|
||||||
|
themeColor: $config?.Theme ?? "light"
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
/** 灰色模式、色弱模式、隐藏标签页 */
|
/** 灰色模式、色弱模式、隐藏标签页 */
|
||||||
|
@ -68,7 +68,8 @@ function setTheme(layoutModel: string) {
|
|||||||
theme: $storage.layout?.theme,
|
theme: $storage.layout?.theme,
|
||||||
darkMode: $storage.layout?.darkMode,
|
darkMode: $storage.layout?.darkMode,
|
||||||
sidebarStatus: $storage.layout?.sidebarStatus,
|
sidebarStatus: $storage.layout?.sidebarStatus,
|
||||||
epThemeColor: $storage.layout?.epThemeColor
|
epThemeColor: $storage.layout?.epThemeColor,
|
||||||
|
themeColor: $storage.layout?.themeColor
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -6,6 +6,19 @@ import type { multipleScopeVarsOptions } from "@pureadmin/theme";
|
|||||||
|
|
||||||
/** 预设主题色 */
|
/** 预设主题色 */
|
||||||
const themeColors = {
|
const themeColors = {
|
||||||
|
/* 亮白色 */
|
||||||
|
light: {
|
||||||
|
subMenuActiveText: "#000000d9",
|
||||||
|
menuBg: "#fff",
|
||||||
|
menuHover: "#e0ebf6",
|
||||||
|
subMenuBg: "#fff",
|
||||||
|
subMenuActiveBg: "#e0ebf6",
|
||||||
|
menuText: "rgb(0 0 0 / 60%)",
|
||||||
|
sidebarLogo: "#fff",
|
||||||
|
menuTitleHover: "#000",
|
||||||
|
menuActiveBefore: "#4091f7"
|
||||||
|
},
|
||||||
|
/* 道奇蓝 */
|
||||||
default: {
|
default: {
|
||||||
subMenuActiveText: "#fff",
|
subMenuActiveText: "#fff",
|
||||||
menuBg: "#001529",
|
menuBg: "#001529",
|
||||||
@ -17,72 +30,19 @@ const themeColors = {
|
|||||||
menuTitleHover: "#fff",
|
menuTitleHover: "#fff",
|
||||||
menuActiveBefore: "#4091f7"
|
menuActiveBefore: "#4091f7"
|
||||||
},
|
},
|
||||||
light: {
|
/* 深紫罗兰色 */
|
||||||
subMenuActiveText: "#409eff",
|
saucePurple: {
|
||||||
menuBg: "#fff",
|
|
||||||
menuHover: "#e0ebf6",
|
|
||||||
subMenuBg: "#fff",
|
|
||||||
subMenuActiveBg: "#e0ebf6",
|
|
||||||
menuText: "#7a80b4",
|
|
||||||
sidebarLogo: "#fff",
|
|
||||||
menuTitleHover: "#000",
|
|
||||||
menuActiveBefore: "#4091f7"
|
|
||||||
},
|
|
||||||
dusk: {
|
|
||||||
subMenuActiveText: "#fff",
|
subMenuActiveText: "#fff",
|
||||||
menuBg: "#2a0608",
|
menuBg: "#130824",
|
||||||
menuHover: "#e13c39",
|
menuHover: "#693ac9",
|
||||||
subMenuBg: "#000",
|
subMenuBg: "#000",
|
||||||
subMenuActiveBg: "#e13c39",
|
subMenuActiveBg: "#693ac9",
|
||||||
menuText: "rgb(254 254 254 / 65.1%)",
|
|
||||||
sidebarLogo: "#42090c",
|
|
||||||
menuTitleHover: "#fff",
|
|
||||||
menuActiveBefore: "#e13c39"
|
|
||||||
},
|
|
||||||
volcano: {
|
|
||||||
subMenuActiveText: "#fff",
|
|
||||||
menuBg: "#2b0e05",
|
|
||||||
menuHover: "#e85f33",
|
|
||||||
subMenuBg: "#0f0603",
|
|
||||||
subMenuActiveBg: "#e85f33",
|
|
||||||
menuText: "rgb(254 254 254 / 65%)",
|
|
||||||
sidebarLogo: "#441708",
|
|
||||||
menuTitleHover: "#fff",
|
|
||||||
menuActiveBefore: "#e85f33"
|
|
||||||
},
|
|
||||||
yellow: {
|
|
||||||
subMenuActiveText: "#d25f00",
|
|
||||||
menuBg: "#2b2503",
|
|
||||||
menuHover: "#f6da4d",
|
|
||||||
subMenuBg: "#0f0603",
|
|
||||||
subMenuActiveBg: "#f6da4d",
|
|
||||||
menuText: "rgb(254 254 254 / 65%)",
|
|
||||||
sidebarLogo: "#443b05",
|
|
||||||
menuTitleHover: "#fff",
|
|
||||||
menuActiveBefore: "#f6da4d"
|
|
||||||
},
|
|
||||||
mingQing: {
|
|
||||||
subMenuActiveText: "#fff",
|
|
||||||
menuBg: "#032121",
|
|
||||||
menuHover: "#59bfc1",
|
|
||||||
subMenuBg: "#000",
|
|
||||||
subMenuActiveBg: "#59bfc1",
|
|
||||||
menuText: "#7a80b4",
|
menuText: "#7a80b4",
|
||||||
sidebarLogo: "#053434",
|
sidebarLogo: "#1f0c38",
|
||||||
menuTitleHover: "#fff",
|
menuTitleHover: "#fff",
|
||||||
menuActiveBefore: "#59bfc1"
|
menuActiveBefore: "#693ac9"
|
||||||
},
|
|
||||||
auroraGreen: {
|
|
||||||
subMenuActiveText: "#fff",
|
|
||||||
menuBg: "#0b1e15",
|
|
||||||
menuHover: "#60ac80",
|
|
||||||
subMenuBg: "#000",
|
|
||||||
subMenuActiveBg: "#60ac80",
|
|
||||||
menuText: "#7a80b4",
|
|
||||||
sidebarLogo: "#112f21",
|
|
||||||
menuTitleHover: "#fff",
|
|
||||||
menuActiveBefore: "#60ac80"
|
|
||||||
},
|
},
|
||||||
|
/* 深粉色 */
|
||||||
pink: {
|
pink: {
|
||||||
subMenuActiveText: "#fff",
|
subMenuActiveText: "#fff",
|
||||||
menuBg: "#28081a",
|
menuBg: "#28081a",
|
||||||
@ -94,16 +54,53 @@ const themeColors = {
|
|||||||
menuTitleHover: "#fff",
|
menuTitleHover: "#fff",
|
||||||
menuActiveBefore: "#d84493"
|
menuActiveBefore: "#d84493"
|
||||||
},
|
},
|
||||||
saucePurple: {
|
/* 猩红色 */
|
||||||
|
dusk: {
|
||||||
subMenuActiveText: "#fff",
|
subMenuActiveText: "#fff",
|
||||||
menuBg: "#130824",
|
menuBg: "#2a0608",
|
||||||
menuHover: "#693ac9",
|
menuHover: "#e13c39",
|
||||||
subMenuBg: "#000",
|
subMenuBg: "#000",
|
||||||
subMenuActiveBg: "#693ac9",
|
subMenuActiveBg: "#e13c39",
|
||||||
menuText: "#7a80b4",
|
menuText: "rgb(254 254 254 / 65.1%)",
|
||||||
sidebarLogo: "#1f0c38",
|
sidebarLogo: "#42090c",
|
||||||
menuTitleHover: "#fff",
|
menuTitleHover: "#fff",
|
||||||
menuActiveBefore: "#693ac9"
|
menuActiveBefore: "#e13c39"
|
||||||
|
},
|
||||||
|
/* 橙红色 */
|
||||||
|
volcano: {
|
||||||
|
subMenuActiveText: "#fff",
|
||||||
|
menuBg: "#2b0e05",
|
||||||
|
menuHover: "#e85f33",
|
||||||
|
subMenuBg: "#0f0603",
|
||||||
|
subMenuActiveBg: "#e85f33",
|
||||||
|
menuText: "rgb(254 254 254 / 65%)",
|
||||||
|
sidebarLogo: "#441708",
|
||||||
|
menuTitleHover: "#fff",
|
||||||
|
menuActiveBefore: "#e85f33"
|
||||||
|
},
|
||||||
|
/* 绿宝石 */
|
||||||
|
mingQing: {
|
||||||
|
subMenuActiveText: "#fff",
|
||||||
|
menuBg: "#032121",
|
||||||
|
menuHover: "#59bfc1",
|
||||||
|
subMenuBg: "#000",
|
||||||
|
subMenuActiveBg: "#59bfc1",
|
||||||
|
menuText: "#7a80b4",
|
||||||
|
sidebarLogo: "#053434",
|
||||||
|
menuTitleHover: "#fff",
|
||||||
|
menuActiveBefore: "#59bfc1"
|
||||||
|
},
|
||||||
|
/* 酸橙绿 */
|
||||||
|
auroraGreen: {
|
||||||
|
subMenuActiveText: "#fff",
|
||||||
|
menuBg: "#0b1e15",
|
||||||
|
menuHover: "#60ac80",
|
||||||
|
subMenuBg: "#000",
|
||||||
|
subMenuActiveBg: "#60ac80",
|
||||||
|
menuText: "#7a80b4",
|
||||||
|
sidebarLogo: "#112f21",
|
||||||
|
menuTitleHover: "#fff",
|
||||||
|
menuActiveBefore: "#60ac80"
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -23,8 +23,6 @@ export const useEpThemeStore = defineStore({
|
|||||||
fill(state) {
|
fill(state) {
|
||||||
if (state.epTheme === "light") {
|
if (state.epTheme === "light") {
|
||||||
return "#409eff";
|
return "#409eff";
|
||||||
} else if (state.epTheme === "yellow") {
|
|
||||||
return "#d25f00";
|
|
||||||
} else {
|
} else {
|
||||||
return "#fff";
|
return "#fff";
|
||||||
}
|
}
|
||||||
|
@ -83,7 +83,7 @@
|
|||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
font-size: 0;
|
font-size: 0;
|
||||||
background: $menuBg;
|
background: $menuBg;
|
||||||
box-shadow: 0 0 1px #888;
|
border-right: 1px solid var(--pure-border-color);
|
||||||
|
|
||||||
/* 展开动画 */
|
/* 展开动画 */
|
||||||
transition: width var(--pure-transition-duration);
|
transition: width var(--pure-transition-duration);
|
||||||
@ -193,7 +193,7 @@
|
|||||||
.el-menu .el-menu--inline .el-sub-menu__title,
|
.el-menu .el-menu--inline .el-sub-menu__title,
|
||||||
& .el-sub-menu .el-menu-item {
|
& .el-sub-menu .el-menu-item {
|
||||||
min-width: $sideBarWidth !important;
|
min-width: $sideBarWidth !important;
|
||||||
font-size: 12px;
|
font-size: 14px;
|
||||||
background-color: $subMenuBg !important;
|
background-color: $subMenuBg !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -247,7 +247,7 @@
|
|||||||
|
|
||||||
.el-menu-item {
|
.el-menu-item {
|
||||||
span {
|
span {
|
||||||
font-size: 12px;
|
font-size: 14px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -270,7 +270,7 @@
|
|||||||
/* 子菜单中还有子菜单 */
|
/* 子菜单中还有子菜单 */
|
||||||
.el-menu .el-sub-menu__title {
|
.el-menu .el-sub-menu__title {
|
||||||
min-width: $sideBarWidth !important;
|
min-width: $sideBarWidth !important;
|
||||||
font-size: 12px;
|
font-size: 14px;
|
||||||
background-color: $subMenuBg !important;
|
background-color: $subMenuBg !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -333,7 +333,7 @@
|
|||||||
background-color: $subMenuBg;
|
background-color: $subMenuBg;
|
||||||
|
|
||||||
span {
|
span {
|
||||||
font-size: 12px;
|
font-size: 14px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -351,7 +351,7 @@
|
|||||||
/* 子菜单中还有子菜单 */
|
/* 子菜单中还有子菜单 */
|
||||||
.el-menu .el-sub-menu__title {
|
.el-menu .el-sub-menu__title {
|
||||||
min-width: $sideBarWidth !important;
|
min-width: $sideBarWidth !important;
|
||||||
font-size: 12px;
|
font-size: 14px;
|
||||||
background-color: $subMenuBg !important;
|
background-color: $subMenuBg !important;
|
||||||
|
|
||||||
&:hover {
|
&:hover {
|
||||||
|
@ -15,11 +15,13 @@ export const injectResponsiveStorage = (app: App, config: PlatformConfigs) => {
|
|||||||
// layout模式以及主题
|
// layout模式以及主题
|
||||||
layout: Storage.getData("layout", nameSpace) ?? {
|
layout: Storage.getData("layout", nameSpace) ?? {
|
||||||
layout: config.Layout ?? "vertical",
|
layout: config.Layout ?? "vertical",
|
||||||
theme: config.Theme ?? "default",
|
theme: config.Theme ?? "light",
|
||||||
darkMode: config.DarkMode ?? false,
|
darkMode: config.DarkMode ?? false,
|
||||||
sidebarStatus: config.SidebarStatus ?? true,
|
sidebarStatus: config.SidebarStatus ?? true,
|
||||||
epThemeColor: config.EpThemeColor ?? "#409EFF"
|
epThemeColor: config.EpThemeColor ?? "#409EFF",
|
||||||
|
themeColor: config.Theme ?? "light" // 主题色(对应项目配置中的主题色,与theme不同的是它不会受到亮色、暗色整体风格切换的影响,只会在手动点击主题色时改变)
|
||||||
},
|
},
|
||||||
|
// 项目配置-界面显示
|
||||||
configure: Storage.getData("configure", nameSpace) ?? {
|
configure: Storage.getData("configure", nameSpace) ?? {
|
||||||
grey: config.Grey ?? false,
|
grey: config.Grey ?? false,
|
||||||
weak: config.Weak ?? false,
|
weak: config.Weak ?? false,
|
||||||
|
9
types/global.d.ts
vendored
9
types/global.d.ts
vendored
@ -1,11 +1,4 @@
|
|||||||
import type {
|
|
||||||
VNode,
|
|
||||||
FunctionalComponent,
|
|
||||||
PropType as VuePropType,
|
|
||||||
ComponentPublicInstance
|
|
||||||
} from "vue";
|
|
||||||
import type { ECharts } from "echarts";
|
import type { ECharts } from "echarts";
|
||||||
import type { IconifyIcon } from "@iconify/vue";
|
|
||||||
import type { TableColumns } from "@pureadmin/table";
|
import type { TableColumns } from "@pureadmin/table";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -129,6 +122,7 @@ declare global {
|
|||||||
hideFooter?: boolean;
|
hideFooter?: boolean;
|
||||||
sidebarStatus?: boolean;
|
sidebarStatus?: boolean;
|
||||||
epThemeColor?: string;
|
epThemeColor?: string;
|
||||||
|
themeColor?: string;
|
||||||
showLogo?: boolean;
|
showLogo?: boolean;
|
||||||
showModel?: string;
|
showModel?: string;
|
||||||
mapConfigure?: {
|
mapConfigure?: {
|
||||||
@ -155,6 +149,7 @@ declare global {
|
|||||||
darkMode?: boolean;
|
darkMode?: boolean;
|
||||||
sidebarStatus?: boolean;
|
sidebarStatus?: boolean;
|
||||||
epThemeColor?: string;
|
epThemeColor?: string;
|
||||||
|
themeColor?: string;
|
||||||
};
|
};
|
||||||
configure: {
|
configure: {
|
||||||
grey?: boolean;
|
grey?: boolean;
|
||||||
|
3
types/router.d.ts
vendored
3
types/router.d.ts
vendored
@ -1,6 +1,7 @@
|
|||||||
// 全局路由类型声明
|
// 全局路由类型声明
|
||||||
|
|
||||||
import { type RouteComponent, type RouteLocationNormalized } from "vue-router";
|
import type { RouteComponent, RouteLocationNormalized } from "vue-router";
|
||||||
|
import type { FunctionalComponent } from "vue";
|
||||||
|
|
||||||
declare global {
|
declare global {
|
||||||
interface ToRouteType extends RouteLocationNormalized {
|
interface ToRouteType extends RouteLocationNormalized {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user