Merge pull request #57 from cshaptx4869/patch-28

refactor: ♻️ 增加设备枚举类型
This commit is contained in:
Ray Hao 2024-03-12 13:33:54 +08:00 committed by GitHub
commit 50b257f199
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 23 additions and 7 deletions

14
src/enums/DeviceEnum.ts Normal file
View File

@ -0,0 +1,14 @@
/**
*
*/
export const enum DeviceEnum {
/**
*
*/
DESKTOP = "desktop",
/**
*
*/
MOBILE = "mobile",
}

View File

@ -1,6 +1,6 @@
<template> <template>
<div class="flex"> <div class="flex">
<template v-if="device !== 'mobile'"> <template v-if="!isMobile">
<!--全屏 --> <!--全屏 -->
<div class="setting-item" @click="toggle"> <div class="setting-item" @click="toggle">
<svg-icon <svg-icon
@ -64,6 +64,7 @@ import {
useSettingsStore, useSettingsStore,
} from "@/store"; } from "@/store";
import defaultSettings from "@/settings"; import defaultSettings from "@/settings";
import { DeviceEnum } from "@/enums/DeviceEnum";
const appStore = useAppStore(); const appStore = useAppStore();
const tagsViewStore = useTagsViewStore(); const tagsViewStore = useTagsViewStore();
@ -73,8 +74,7 @@ const settingStore = useSettingsStore();
const route = useRoute(); const route = useRoute();
const router = useRouter(); const router = useRouter();
// desktop- || mobile- const isMobile = computed(() => appStore.device === DeviceEnum.MOBILE);
const device = computed(() => appStore.device);
const { isFullscreen, toggle } = useFullscreen(); const { isFullscreen, toggle } = useFullscreen();

View File

@ -46,6 +46,7 @@
<script setup lang="ts"> <script setup lang="ts">
import { useAppStore, useSettingsStore, usePermissionStore } from "@/store"; import { useAppStore, useSettingsStore, usePermissionStore } from "@/store";
import defaultSettings from "@/settings"; import defaultSettings from "@/settings";
import { DeviceEnum } from "@/enums/DeviceEnum";
const appStore = useAppStore(); const appStore = useAppStore();
const settingsStore = useSettingsStore(); const settingsStore = useSettingsStore();
@ -71,7 +72,7 @@ watch(
const classObj = computed(() => ({ const classObj = computed(() => ({
hideSidebar: !appStore.sidebar.opened, hideSidebar: !appStore.sidebar.opened,
openSidebar: appStore.sidebar.opened, openSidebar: appStore.sidebar.opened,
mobile: appStore.device === "mobile", mobile: appStore.device === DeviceEnum.MOBILE,
"layout-left": layout.value === "left", "layout-left": layout.value === "left",
"layout-top": layout.value === "top", "layout-top": layout.value === "top",
"layout-mix": layout.value === "mix", "layout-mix": layout.value === "mix",
@ -82,10 +83,10 @@ const WIDTH = 992; // 响应式布局容器固定宽度 大屏(>=1200px
watchEffect(() => { watchEffect(() => {
if (width.value < WIDTH) { if (width.value < WIDTH) {
appStore.toggleDevice("mobile"); appStore.toggleDevice(DeviceEnum.MOBILE);
appStore.closeSideBar(); appStore.closeSideBar();
} else { } else {
appStore.toggleDevice("desktop"); appStore.toggleDevice(DeviceEnum.DESKTOP);
if (width.value >= 1200) { if (width.value >= 1200) {
appStore.openSideBar(); appStore.openSideBar();

View File

@ -4,11 +4,12 @@ import defaultSettings from "@/settings";
import zhCn from "element-plus/es/locale/lang/zh-cn"; import zhCn from "element-plus/es/locale/lang/zh-cn";
import en from "element-plus/es/locale/lang/en"; import en from "element-plus/es/locale/lang/en";
import { store } from "@/store"; import { store } from "@/store";
import { DeviceEnum } from "@/enums/DeviceEnum";
// setup // setup
export const useAppStore = defineStore("app", () => { export const useAppStore = defineStore("app", () => {
// state // state
const device = useStorage("device", "desktop"); const device = useStorage("device", DeviceEnum.DESKTOP);
const size = useStorage<any>("size", defaultSettings.size); const size = useStorage<any>("size", defaultSettings.size);
const language = useStorage("language", defaultSettings.language); const language = useStorage("language", defaultSettings.language);