mirror of
https://github.com/pure-admin/vue-pure-admin.git
synced 2025-06-07 17:07:19 +08:00
chore: update
This commit is contained in:
parent
acaeb0cb42
commit
f27787d560
@ -1,23 +1,18 @@
|
|||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import {
|
import { useGlobal } from "@pureadmin/utils";
|
||||||
h,
|
|
||||||
ref,
|
|
||||||
computed,
|
|
||||||
Transition,
|
|
||||||
defineComponent,
|
|
||||||
getCurrentInstance
|
|
||||||
} from "vue";
|
|
||||||
import backTop from "/@/assets/svg/back_top.svg?component";
|
import backTop from "/@/assets/svg/back_top.svg?component";
|
||||||
|
import { h, computed, Transition, defineComponent } from "vue";
|
||||||
import { usePermissionStoreHook } from "/@/store/modules/permission";
|
import { usePermissionStoreHook } from "/@/store/modules/permission";
|
||||||
|
|
||||||
const props = defineProps({
|
const props = defineProps({
|
||||||
fixedHeader: Boolean
|
fixedHeader: Boolean
|
||||||
});
|
});
|
||||||
const keepAlive: Boolean = ref(
|
|
||||||
getCurrentInstance().appContext.config.globalProperties.$config?.KeepAlive
|
const { $storage, $config } = useGlobal<GlobalPropertiesApi>();
|
||||||
);
|
|
||||||
const instance =
|
const keepAlive = computed(() => {
|
||||||
getCurrentInstance().appContext.app.config.globalProperties.$storage;
|
return $config?.KeepAlive;
|
||||||
|
});
|
||||||
|
|
||||||
const transitions = computed(() => {
|
const transitions = computed(() => {
|
||||||
return route => {
|
return route => {
|
||||||
@ -26,11 +21,11 @@ const transitions = computed(() => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
const hideTabs = computed(() => {
|
const hideTabs = computed(() => {
|
||||||
return instance?.configure.hideTabs;
|
return $storage?.configure.hideTabs;
|
||||||
});
|
});
|
||||||
|
|
||||||
const layout = computed(() => {
|
const layout = computed(() => {
|
||||||
return instance?.layout.layout === "vertical";
|
return $storage?.layout.layout === "vertical";
|
||||||
});
|
});
|
||||||
|
|
||||||
const getSectionStyle = computed(() => {
|
const getSectionStyle = computed(() => {
|
||||||
|
@ -20,6 +20,7 @@ import { useDataThemeChange } from "/@/layout/hooks/useDataThemeChange";
|
|||||||
import {
|
import {
|
||||||
useDark,
|
useDark,
|
||||||
debounce,
|
debounce,
|
||||||
|
useGlobal,
|
||||||
storageLocal,
|
storageLocal,
|
||||||
storageSession
|
storageSession
|
||||||
} from "@pureadmin/utils";
|
} from "@pureadmin/utils";
|
||||||
@ -31,6 +32,7 @@ import darkIcon from "/@/assets/svg/dark.svg?component";
|
|||||||
const router = useRouter();
|
const router = useRouter();
|
||||||
const { isDark } = useDark();
|
const { isDark } = useDark();
|
||||||
const { isSelect } = useCssModule();
|
const { isSelect } = useCssModule();
|
||||||
|
const { $storage } = useGlobal<GlobalPropertiesApi>();
|
||||||
|
|
||||||
const mixRef = templateRef<HTMLElement | null>("mixRef", null);
|
const mixRef = templateRef<HTMLElement | null>("mixRef", null);
|
||||||
const verticalRef = templateRef<HTMLElement | null>("verticalRef", null);
|
const verticalRef = templateRef<HTMLElement | null>("verticalRef", null);
|
||||||
@ -38,7 +40,6 @@ const horizontalRef = templateRef<HTMLElement | null>("horizontalRef", null);
|
|||||||
|
|
||||||
const {
|
const {
|
||||||
body,
|
body,
|
||||||
instance,
|
|
||||||
dataTheme,
|
dataTheme,
|
||||||
layoutTheme,
|
layoutTheme,
|
||||||
themeColors,
|
themeColors,
|
||||||
@ -58,17 +59,17 @@ if (unref(layoutTheme)) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/** 默认灵动模式 */
|
/** 默认灵动模式 */
|
||||||
const markValue = ref(instance.configure?.showModel ?? "smart");
|
const markValue = ref($storage.configure?.showModel ?? "smart");
|
||||||
|
|
||||||
const logoVal = ref(instance.configure?.showLogo ?? true);
|
const logoVal = ref($storage.configure?.showLogo ?? true);
|
||||||
|
|
||||||
const settings = reactive({
|
const settings = reactive({
|
||||||
greyVal: instance.configure.grey,
|
greyVal: $storage.configure.grey,
|
||||||
weakVal: instance.configure.weak,
|
weakVal: $storage.configure.weak,
|
||||||
tabsVal: instance.configure.hideTabs,
|
tabsVal: $storage.configure.hideTabs,
|
||||||
showLogo: instance.configure.showLogo,
|
showLogo: $storage.configure.showLogo,
|
||||||
showModel: instance.configure.showModel,
|
showModel: $storage.configure.showModel,
|
||||||
multiTagsCache: instance.configure.multiTagsCache
|
multiTagsCache: $storage.configure.multiTagsCache
|
||||||
});
|
});
|
||||||
|
|
||||||
const getThemeColorStyle = computed(() => {
|
const getThemeColorStyle = computed(() => {
|
||||||
@ -85,9 +86,9 @@ const showThemeColors = computed(() => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
function storageConfigureChange<T>(key: string, val: T): void {
|
function storageConfigureChange<T>(key: string, val: T): void {
|
||||||
const storageConfigure = instance.configure;
|
const storageConfigure = $storage.configure;
|
||||||
storageConfigure[key] = val;
|
storageConfigure[key] = val;
|
||||||
instance.configure = storageConfigure;
|
$storage.configure = storageConfigure;
|
||||||
}
|
}
|
||||||
|
|
||||||
function toggleClass(flag: boolean, clsName: string, target?: HTMLElement) {
|
function toggleClass(flag: boolean, clsName: string, target?: HTMLElement) {
|
||||||
@ -116,7 +117,7 @@ const weekChange = (value): void => {
|
|||||||
const tagsChange = () => {
|
const tagsChange = () => {
|
||||||
let showVal = settings.tabsVal;
|
let showVal = settings.tabsVal;
|
||||||
storageConfigureChange("hideTabs", showVal);
|
storageConfigureChange("hideTabs", showVal);
|
||||||
emitter.emit("tagViewsChange", showVal);
|
emitter.emit("tagViewsChange", showVal as unknown as string);
|
||||||
};
|
};
|
||||||
|
|
||||||
const multiTagsCacheChange = () => {
|
const multiTagsCacheChange = () => {
|
||||||
@ -158,7 +159,7 @@ function setFalse(Doms): any {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
watch(instance, ({ layout }) => {
|
watch($storage, ({ layout }) => {
|
||||||
/* 设置wangeditorV5主题色 */
|
/* 设置wangeditorV5主题色 */
|
||||||
body.style.setProperty("--w-e-toolbar-active-color", layout["epThemeColor"]);
|
body.style.setProperty("--w-e-toolbar-active-color", layout["epThemeColor"]);
|
||||||
switch (layout["layout"]) {
|
switch (layout["layout"]) {
|
||||||
@ -203,12 +204,11 @@ const getThemeColor = computed(() => {
|
|||||||
function setLayoutModel(layout: string) {
|
function setLayoutModel(layout: string) {
|
||||||
layoutTheme.value.layout = layout;
|
layoutTheme.value.layout = layout;
|
||||||
window.document.body.setAttribute("layout", layout);
|
window.document.body.setAttribute("layout", layout);
|
||||||
instance.layout = {
|
$storage.layout = {
|
||||||
layout,
|
layout,
|
||||||
theme: layoutTheme.value.theme,
|
theme: layoutTheme.value.theme,
|
||||||
darkMode: instance.layout.darkMode,
|
darkMode: $storage.layout.darkMode,
|
||||||
sidebarStatus: instance.layout.sidebarStatus,
|
sidebarStatus: $storage.layout.sidebarStatus
|
||||||
epThemeColor: instance.layout.epThemeColor
|
|
||||||
};
|
};
|
||||||
useAppStoreHook().setLayout(layout);
|
useAppStoreHook().setLayout(layout);
|
||||||
}
|
}
|
||||||
|
@ -6,10 +6,10 @@ import avatars from "/@/assets/avatars.jpg";
|
|||||||
import { useNav } from "/@/layout/hooks/useNav";
|
import { useNav } from "/@/layout/hooks/useNav";
|
||||||
import screenfull from "../screenfull/index.vue";
|
import screenfull from "../screenfull/index.vue";
|
||||||
import { deviceDetection } from "@pureadmin/utils";
|
import { deviceDetection } from "@pureadmin/utils";
|
||||||
import { ref, watch, nextTick, onMounted } from "vue";
|
|
||||||
import { useTranslationLang } from "../../hooks/useTranslationLang";
|
import { useTranslationLang } from "../../hooks/useTranslationLang";
|
||||||
import { usePermissionStoreHook } from "/@/store/modules/permission";
|
import { usePermissionStoreHook } from "/@/store/modules/permission";
|
||||||
import globalization from "/@/assets/svg/globalization.svg?component";
|
import globalization from "/@/assets/svg/globalization.svg?component";
|
||||||
|
import { ref, watch, nextTick, onMounted, onBeforeUnmount } from "vue";
|
||||||
|
|
||||||
const menuRef = ref();
|
const menuRef = ref();
|
||||||
|
|
||||||
@ -29,10 +29,18 @@ const {
|
|||||||
getDropdownItemClass
|
getDropdownItemClass
|
||||||
} = useNav();
|
} = useNav();
|
||||||
|
|
||||||
onMounted(() => {
|
function onResizeMenu() {
|
||||||
nextTick(() => {
|
nextTick(() => {
|
||||||
handleResize(menuRef.value);
|
handleResize(menuRef.value);
|
||||||
});
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
onMounted(() => {
|
||||||
|
window.addEventListener("resize", onResizeMenu);
|
||||||
|
});
|
||||||
|
|
||||||
|
onBeforeUnmount(() => {
|
||||||
|
window.removeEventListener("resize", onResizeMenu);
|
||||||
});
|
});
|
||||||
|
|
||||||
watch(
|
watch(
|
||||||
|
@ -6,12 +6,12 @@ import { useNav } from "/@/layout/hooks/useNav";
|
|||||||
import { transformI18n } from "/@/plugins/i18n";
|
import { transformI18n } from "/@/plugins/i18n";
|
||||||
import screenfull from "../screenfull/index.vue";
|
import screenfull from "../screenfull/index.vue";
|
||||||
import { deviceDetection } from "@pureadmin/utils";
|
import { deviceDetection } from "@pureadmin/utils";
|
||||||
import { ref, toRaw, watch, nextTick, onMounted } from "vue";
|
|
||||||
import { useRenderIcon } from "/@/components/ReIcon/src/hooks";
|
import { useRenderIcon } from "/@/components/ReIcon/src/hooks";
|
||||||
import { getParentPaths, findRouteByPath } from "/@/router/utils";
|
import { getParentPaths, findRouteByPath } from "/@/router/utils";
|
||||||
import { useTranslationLang } from "../../hooks/useTranslationLang";
|
import { useTranslationLang } from "../../hooks/useTranslationLang";
|
||||||
import { usePermissionStoreHook } from "/@/store/modules/permission";
|
import { usePermissionStoreHook } from "/@/store/modules/permission";
|
||||||
import globalization from "/@/assets/svg/globalization.svg?component";
|
import globalization from "/@/assets/svg/globalization.svg?component";
|
||||||
|
import { ref, toRaw, watch, nextTick, onMounted, onBeforeUnmount } from "vue";
|
||||||
|
|
||||||
const menuRef = ref();
|
const menuRef = ref();
|
||||||
let defaultActive = ref(null);
|
let defaultActive = ref(null);
|
||||||
@ -42,11 +42,19 @@ function getDefaultActive(routePath) {
|
|||||||
)?.children[0]?.path;
|
)?.children[0]?.path;
|
||||||
}
|
}
|
||||||
|
|
||||||
onMounted(() => {
|
function onResizeMenu() {
|
||||||
getDefaultActive(route.path);
|
|
||||||
nextTick(() => {
|
nextTick(() => {
|
||||||
handleResize(menuRef.value);
|
handleResize(menuRef.value);
|
||||||
});
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
onMounted(() => {
|
||||||
|
getDefaultActive(route.path);
|
||||||
|
window.addEventListener("resize", onResizeMenu);
|
||||||
|
});
|
||||||
|
|
||||||
|
onBeforeUnmount(() => {
|
||||||
|
window.removeEventListener("resize", onResizeMenu);
|
||||||
});
|
});
|
||||||
|
|
||||||
watch(
|
watch(
|
||||||
|
@ -45,7 +45,7 @@ getSubMenuData(route.path);
|
|||||||
|
|
||||||
onBeforeMount(() => {
|
onBeforeMount(() => {
|
||||||
emitter.on("logoChange", key => {
|
emitter.on("logoChange", key => {
|
||||||
showLogo.value = key as unknown as boolean;
|
showLogo.value = key;
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -1,9 +1,10 @@
|
|||||||
|
import { ref } from "vue";
|
||||||
import { getConfig } from "/@/config";
|
import { getConfig } from "/@/config";
|
||||||
import { find } from "lodash-unified";
|
import { find } from "lodash-unified";
|
||||||
import { useLayout } from "./useLayout";
|
import { useLayout } from "./useLayout";
|
||||||
import { themeColorsType } from "../types";
|
import { themeColorsType } from "../types";
|
||||||
import { TinyColor } from "@ctrl/tinycolor";
|
import { TinyColor } from "@ctrl/tinycolor";
|
||||||
import { ref, getCurrentInstance } from "vue";
|
import { useGlobal } from "@pureadmin/utils";
|
||||||
import { useEpThemeStoreHook } from "/@/store/modules/epTheme";
|
import { useEpThemeStoreHook } from "/@/store/modules/epTheme";
|
||||||
import {
|
import {
|
||||||
darken,
|
darken,
|
||||||
@ -34,9 +35,9 @@ export function useDataThemeChange() {
|
|||||||
{ color: "#722ed1", themeColor: "saucePurple" }
|
{ color: "#722ed1", themeColor: "saucePurple" }
|
||||||
]);
|
]);
|
||||||
|
|
||||||
|
const { $storage } = useGlobal<GlobalPropertiesApi>();
|
||||||
|
|
||||||
const body = document.documentElement as HTMLElement;
|
const body = document.documentElement as HTMLElement;
|
||||||
const instance =
|
|
||||||
getCurrentInstance().appContext.app.config.globalProperties.$storage;
|
|
||||||
|
|
||||||
/** 设置导航主题色 */
|
/** 设置导航主题色 */
|
||||||
function setLayoutThemeColor(theme = "default") {
|
function setLayoutThemeColor(theme = "default") {
|
||||||
@ -44,8 +45,8 @@ export function useDataThemeChange() {
|
|||||||
toggleTheme({
|
toggleTheme({
|
||||||
scopeName: `layout-theme-${theme}`
|
scopeName: `layout-theme-${theme}`
|
||||||
});
|
});
|
||||||
instance.layout.theme = theme;
|
$storage.layout.theme = theme;
|
||||||
instance.layout.darkMode = dataTheme.value;
|
$storage.layout.darkMode = dataTheme.value;
|
||||||
|
|
||||||
if (theme === "default" || theme === "light") {
|
if (theme === "default" || theme === "light") {
|
||||||
setEpThemeColor(getConfig().EpThemeColor);
|
setEpThemeColor(getConfig().EpThemeColor);
|
||||||
@ -81,7 +82,7 @@ export function useDataThemeChange() {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
const dataTheme = ref<boolean>(instance?.layout?.darkMode);
|
const dataTheme = ref<boolean>($storage?.layout?.darkMode);
|
||||||
|
|
||||||
/** 日间、夜间主题切换 */
|
/** 日间、夜间主题切换 */
|
||||||
function dataThemeChange() {
|
function dataThemeChange() {
|
||||||
@ -93,17 +94,16 @@ export function useDataThemeChange() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (dataTheme.value) {
|
if (dataTheme.value) {
|
||||||
instance.layout.darkMode = true;
|
$storage.layout.darkMode = true;
|
||||||
document.documentElement.classList.add("dark");
|
document.documentElement.classList.add("dark");
|
||||||
} else {
|
} else {
|
||||||
instance.layout.darkMode = false;
|
$storage.layout.darkMode = false;
|
||||||
document.documentElement.classList.remove("dark");
|
document.documentElement.classList.remove("dark");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return {
|
return {
|
||||||
body,
|
body,
|
||||||
instance,
|
|
||||||
dataTheme,
|
dataTheme,
|
||||||
layoutTheme,
|
layoutTheme,
|
||||||
themeColors,
|
themeColors,
|
||||||
|
@ -1,60 +1,59 @@
|
|||||||
|
import { computed } from "vue";
|
||||||
import { useI18n } from "vue-i18n";
|
import { useI18n } from "vue-i18n";
|
||||||
import { routerArrays } from "../types";
|
import { routerArrays } from "../types";
|
||||||
import { computed, getCurrentInstance } from "vue";
|
import { useGlobal } from "@pureadmin/utils";
|
||||||
import { useMultiTagsStore } from "/@/store/modules/multiTags";
|
import { useMultiTagsStore } from "/@/store/modules/multiTags";
|
||||||
|
|
||||||
export function useLayout() {
|
export function useLayout() {
|
||||||
const instance = getCurrentInstance().appContext.app.config.globalProperties;
|
const { $storage, $config } = useGlobal<GlobalPropertiesApi>();
|
||||||
|
|
||||||
const initStorage = () => {
|
const initStorage = () => {
|
||||||
// 路由
|
/** 路由 */
|
||||||
if (
|
if (
|
||||||
useMultiTagsStore().multiTagsCache &&
|
useMultiTagsStore().multiTagsCache &&
|
||||||
(!instance.$storage.tags || instance.$storage.tags.length === 0)
|
(!$storage.tags || $storage.tags.length === 0)
|
||||||
) {
|
) {
|
||||||
// eslint-disable-next-line vue/no-side-effects-in-computed-properties
|
$storage.tags = routerArrays;
|
||||||
instance.$storage.tags = routerArrays;
|
|
||||||
}
|
}
|
||||||
// 国际化
|
/** 国际化 */
|
||||||
if (!instance.$storage.locale) {
|
if (!$storage.locale) {
|
||||||
// eslint-disable-next-line
|
$storage.locale = { locale: $config?.Locale ?? "zh" };
|
||||||
instance.$storage.locale = { locale: instance.$config?.Locale ?? "zh" };
|
useI18n().locale.value = $config?.Locale ?? "zh";
|
||||||
useI18n().locale.value = instance.$config?.Locale ?? "zh";
|
|
||||||
}
|
}
|
||||||
// 导航
|
/** 导航 */
|
||||||
if (!instance.$storage.layout) {
|
if (!$storage.layout) {
|
||||||
// eslint-disable-next-line vue/no-side-effects-in-computed-properties
|
$storage.layout = {
|
||||||
instance.$storage.layout = {
|
layout: $config?.Layout ?? "vertical",
|
||||||
layout: instance.$config?.Layout ?? "vertical",
|
theme: $config?.Theme ?? "default",
|
||||||
theme: instance.$config?.Theme ?? "default",
|
darkMode: $config?.DarkMode ?? false,
|
||||||
darkMode: instance.$config?.DarkMode ?? false,
|
sidebarStatus: $config?.SidebarStatus ?? true,
|
||||||
sidebarStatus: instance.$config?.SidebarStatus ?? true,
|
epThemeColor: $config?.EpThemeColor ?? "#409EFF"
|
||||||
epThemeColor: instance.$config?.EpThemeColor ?? "#409EFF"
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
// 灰色模式、色弱模式、隐藏标签页
|
/** 灰色模式、色弱模式、隐藏标签页 */
|
||||||
if (!instance.$storage.configure) {
|
if (!$storage.configure) {
|
||||||
// eslint-disable-next-line
|
$storage.configure = {
|
||||||
instance.$storage.configure = {
|
grey: $config?.Grey ?? false,
|
||||||
grey: instance.$config?.Grey ?? false,
|
weak: $config?.Weak ?? false,
|
||||||
weak: instance.$config?.Weak ?? false,
|
hideTabs: $config?.HideTabs ?? false,
|
||||||
hideTabs: instance.$config?.HideTabs ?? false,
|
showLogo: $config?.ShowLogo ?? true,
|
||||||
showLogo: instance.$config?.ShowLogo ?? true,
|
showModel: $config?.ShowModel ?? "smart",
|
||||||
showModel: instance.$config?.ShowModel ?? "smart",
|
multiTagsCache: $config?.MultiTagsCache ?? false
|
||||||
multiTagsCache: instance.$config?.MultiTagsCache ?? false
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
// 清空缓存后从serverConfig.json读取默认配置并赋值到storage中
|
|
||||||
|
/** 清空缓存后从serverConfig.json读取默认配置并赋值到storage中 */
|
||||||
const layout = computed(() => {
|
const layout = computed(() => {
|
||||||
return instance.$storage?.layout.layout;
|
return $storage?.layout.layout;
|
||||||
});
|
});
|
||||||
|
|
||||||
const layoutTheme = computed(() => {
|
const layoutTheme = computed(() => {
|
||||||
return instance.$storage.layout;
|
return $storage.layout;
|
||||||
});
|
});
|
||||||
|
|
||||||
return {
|
return {
|
||||||
layout,
|
layout,
|
||||||
instance,
|
|
||||||
layoutTheme,
|
layoutTheme,
|
||||||
initStorage
|
initStorage
|
||||||
};
|
};
|
||||||
|
@ -150,6 +150,7 @@ export function useNav() {
|
|||||||
layout,
|
layout,
|
||||||
logout,
|
logout,
|
||||||
routers,
|
routers,
|
||||||
|
$storage,
|
||||||
backHome,
|
backHome,
|
||||||
onPanel,
|
onPanel,
|
||||||
changeTitle,
|
changeTitle,
|
||||||
|
@ -1,23 +1,22 @@
|
|||||||
import { useNav } from "./useNav";
|
import { useNav } from "./useNav";
|
||||||
import { useI18n } from "vue-i18n";
|
import { useI18n } from "vue-i18n";
|
||||||
import { useRoute } from "vue-router";
|
import { useRoute } from "vue-router";
|
||||||
import { watch, getCurrentInstance, type Ref } from "vue";
|
import { watch, type Ref } from "vue";
|
||||||
|
|
||||||
export function useTranslationLang(ref?: Ref) {
|
export function useTranslationLang(ref?: Ref) {
|
||||||
const { changeTitle, changeWangeditorLanguage, handleResize } = useNav();
|
const { $storage, changeTitle, changeWangeditorLanguage, handleResize } =
|
||||||
|
useNav();
|
||||||
const { locale, t } = useI18n();
|
const { locale, t } = useI18n();
|
||||||
const route = useRoute();
|
const route = useRoute();
|
||||||
const instance =
|
|
||||||
getCurrentInstance().appContext.config.globalProperties.$storage;
|
|
||||||
|
|
||||||
function translationCh() {
|
function translationCh() {
|
||||||
instance.locale = { locale: "zh" };
|
$storage.locale = { locale: "zh" };
|
||||||
locale.value = "zh";
|
locale.value = "zh";
|
||||||
ref && handleResize(ref.value);
|
ref && handleResize(ref.value);
|
||||||
}
|
}
|
||||||
|
|
||||||
function translationEn() {
|
function translationEn() {
|
||||||
instance.locale = { locale: "en" };
|
$storage.locale = { locale: "en" };
|
||||||
locale.value = "en";
|
locale.value = "en";
|
||||||
ref && handleResize(ref.value);
|
ref && handleResize(ref.value);
|
||||||
}
|
}
|
||||||
|
@ -3,8 +3,8 @@ import { setType } from "./types";
|
|||||||
import { emitter } from "/@/utils/mitt";
|
import { emitter } from "/@/utils/mitt";
|
||||||
import { useLayout } from "./hooks/useLayout";
|
import { useLayout } from "./hooks/useLayout";
|
||||||
import { useAppStoreHook } from "/@/store/modules/app";
|
import { useAppStoreHook } from "/@/store/modules/app";
|
||||||
import { deviceDetection, useDark } from "@pureadmin/utils";
|
|
||||||
import { useSettingStoreHook } from "/@/store/modules/settings";
|
import { useSettingStoreHook } from "/@/store/modules/settings";
|
||||||
|
import { deviceDetection, useDark, useGlobal } from "@pureadmin/utils";
|
||||||
import { h, reactive, computed, onMounted, defineComponent } from "vue";
|
import { h, reactive, computed, onMounted, defineComponent } from "vue";
|
||||||
|
|
||||||
import backTop from "/@/assets/svg/back_top.svg?component";
|
import backTop from "/@/assets/svg/back_top.svg?component";
|
||||||
@ -19,10 +19,10 @@ import Vertical from "./components/sidebar/vertical.vue";
|
|||||||
import Horizontal from "./components/sidebar/horizontal.vue";
|
import Horizontal from "./components/sidebar/horizontal.vue";
|
||||||
|
|
||||||
const { isDark } = useDark();
|
const { isDark } = useDark();
|
||||||
|
const { layout } = useLayout();
|
||||||
const isMobile = deviceDetection();
|
const isMobile = deviceDetection();
|
||||||
const pureSetting = useSettingStoreHook();
|
const pureSetting = useSettingStoreHook();
|
||||||
|
const { $storage } = useGlobal<GlobalPropertiesApi>();
|
||||||
const { instance, layout } = useLayout();
|
|
||||||
|
|
||||||
const set: setType = reactive({
|
const set: setType = reactive({
|
||||||
sidebar: computed(() => {
|
sidebar: computed(() => {
|
||||||
@ -47,18 +47,18 @@ const set: setType = reactive({
|
|||||||
}),
|
}),
|
||||||
|
|
||||||
hideTabs: computed(() => {
|
hideTabs: computed(() => {
|
||||||
return instance.$storage?.configure.hideTabs;
|
return $storage?.configure.hideTabs;
|
||||||
})
|
})
|
||||||
});
|
});
|
||||||
|
|
||||||
function setTheme(layoutModel: string) {
|
function setTheme(layoutModel: string) {
|
||||||
window.document.body.setAttribute("layout", layoutModel);
|
window.document.body.setAttribute("layout", layoutModel);
|
||||||
instance.$storage.layout = {
|
$storage.layout = {
|
||||||
layout: `${layoutModel}`,
|
layout: `${layoutModel}`,
|
||||||
theme: instance.$storage.layout?.theme,
|
theme: $storage.layout?.theme,
|
||||||
darkMode: instance.$storage.layout?.darkMode,
|
darkMode: $storage.layout?.darkMode,
|
||||||
sidebarStatus: instance.$storage.layout?.sidebarStatus,
|
sidebarStatus: $storage.layout?.sidebarStatus,
|
||||||
epThemeColor: instance.$storage.layout?.epThemeColor
|
epThemeColor: $storage.layout?.epThemeColor
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -11,7 +11,7 @@ type Events = {
|
|||||||
openPanel: string;
|
openPanel: string;
|
||||||
tagViewsChange: string;
|
tagViewsChange: string;
|
||||||
tagViewsShowModel: string;
|
tagViewsShowModel: string;
|
||||||
logoChange: string;
|
logoChange: boolean;
|
||||||
changLayoutRoute: {
|
changLayoutRoute: {
|
||||||
indexPath: string;
|
indexPath: string;
|
||||||
parentPath: string;
|
parentPath: string;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user