diff --git a/src/App.vue b/src/App.vue index 01c2826..94635a6 100644 --- a/src/App.vue +++ b/src/App.vue @@ -21,16 +21,16 @@ import { zhCN, dateZhCN, darkTheme } from 'naive-ui'; import { LockScreen } from '@/components/Lockscreen'; import { AppProvider } from '@/components/Application'; - import { useLockscreenStore } from '@/store/modules/lockscreen'; + import { useScreenLockStore } from '@/store/modules/screenLock.js'; import { useRoute } from 'vue-router'; import { useDesignSettingStore } from '@/store/modules/designSetting'; import { lighten } from '@/utils/index'; const route = useRoute(); - const useLockscreen = useLockscreenStore(); + const useScreenLock = useScreenLockStore(); const designStore = useDesignSettingStore(); - const isLock = computed(() => useLockscreen.isLock); - const lockTime = computed(() => useLockscreen.lockTime); + const isLock = computed(() => useScreenLock.isLocked); + const lockTime = computed(() => useScreenLock.lockTime); /** * @type import('naive-ui').GlobalThemeOverrides @@ -53,21 +53,21 @@ const getDarkTheme = computed(() => (designStore.darkTheme ? darkTheme : undefined)); - let timer; + let timer: NodeJS.Timer; const timekeeping = () => { clearInterval(timer); if (route.name == 'login' || isLock.value) return; // 设置不锁屏 - useLockscreen.setLock(false); + useScreenLock.setLock(false); // 重置锁屏时间 - useLockscreen.setLockTime(); + useScreenLock.setLockTime(); timer = setInterval(() => { // 锁屏倒计时递减 - useLockscreen.setLockTime(lockTime.value - 1); + useScreenLock.setLockTime(lockTime.value - 1); if (lockTime.value <= 0) { // 设置锁屏 - useLockscreen.setLock(true); + useScreenLock.setLock(true); return clearInterval(timer); } }, 1000); diff --git a/src/components/Lockscreen/Lockscreen.vue b/src/components/Lockscreen/Lockscreen.vue index c24308f..bf3dde5 100644 --- a/src/components/Lockscreen/Lockscreen.vue +++ b/src/components/Lockscreen/Lockscreen.vue @@ -60,11 +60,11 @@ -
+
{{ errorMsg }}
-
+
返回
重新登录
进入系统
@@ -91,11 +91,11 @@ import { useOnline } from '@/hooks/useOnline'; import { useTime } from '@/hooks/useTime'; import { useBattery } from '@/hooks/useBattery'; - import { useLockscreenStore } from '@/store/modules/lockscreen'; - import { useUserStore } from '@/store/modules/user'; + import { useScreenLockStore } from '@/store/modules/screenLock'; + import { UserInfoType, useUserStore } from '@/store/modules/user'; export default defineComponent({ - name: 'Lockscreen', + name: 'ScreenLock', components: { LockOutlined, LoadingOutlined, @@ -106,7 +106,7 @@ recharge, }, setup() { - const useLockscreen = useLockscreenStore(); + const useScreenLock = useScreenLockStore(); const userStore = useUserStore(); // 获取时间 @@ -117,7 +117,7 @@ const route = useRoute(); const { battery, batteryStatus, calcDischargingTime, calcChargingTime } = useBattery(); - const userInfo: object = userStore.getUserInfo || {}; + const userInfo: UserInfoType = userStore.getUserInfo || {}; const username = userInfo['username'] || ''; const state = reactive({ showLogin: false, @@ -146,7 +146,7 @@ const { code, message } = await userStore.login(params); if (code === ResultEnum.SUCCESS) { onLockLogin(false); - useLockscreen.setLock(false); + useScreenLock.setLock(false); } else { state.errorMsg = message; state.isLoginError = true; @@ -157,7 +157,7 @@ //重新登录 const goLogin = () => { onLockLogin(false); - useLockscreen.setLock(false); + useScreenLock.setLock(false); router.replace({ path: '/login', query: { diff --git a/src/directives/copy.ts b/src/directives/copy.ts index e888828..61dc3fc 100644 --- a/src/directives/copy.ts +++ b/src/directives/copy.ts @@ -4,7 +4,7 @@ * 接收参数:string类型/Ref类型/Reactive类型 */ import type { Directive, DirectiveBinding } from 'vue'; -import { useMessage } from 'naive-ui'; + interface ElType extends HTMLElement { copyData: string | number; __handleClick__: any; diff --git a/src/directives/debounce.ts b/src/directives/debounce.ts index 931092d..a1889c7 100644 --- a/src/directives/debounce.ts +++ b/src/directives/debounce.ts @@ -3,29 +3,29 @@ * 按钮防抖指令,可自行扩展至input * 接收参数:function类型 */ -import type { Directive, DirectiveBinding } from "vue"; +import type { Directive, DirectiveBinding } from 'vue'; interface ElType extends HTMLElement { - __handleClick__: () => any; + __handleClick__: () => any; } const debounce: Directive = { - mounted(el: ElType, binding: DirectiveBinding) { - if (typeof binding.value !== "function") { - throw "callback must be a function"; - } - let timer: NodeJS.Timeout | null = null; - el.__handleClick__ = function () { - if (timer) { - clearInterval(timer); - } - timer = setTimeout(() => { - binding.value(); - }, 500); - }; - el.addEventListener("click", el.__handleClick__); - }, - beforeUnmount(el: ElType) { - el.removeEventListener("click", el.__handleClick__); - } + mounted(el: ElType, binding: DirectiveBinding) { + if (typeof binding.value !== 'function') { + throw 'callback must be a function'; + } + let timer: NodeJS.Timeout | null = null; + el.__handleClick__ = function () { + if (timer) { + clearInterval(timer); + } + timer = setTimeout(() => { + binding.value(); + }, 500); + }; + el.addEventListener('click', el.__handleClick__); + }, + beforeUnmount(el: ElType) { + el.removeEventListener('click', el.__handleClick__); + }, }; export default debounce; diff --git a/src/directives/draggable.ts b/src/directives/draggable.ts index 65f0cca..1c05c76 100644 --- a/src/directives/draggable.ts +++ b/src/directives/draggable.ts @@ -10,40 +10,40 @@ 使用:在 Dom 上加上 v-draggable 即可
*/ -import type { Directive } from "vue"; +import type { Directive } from 'vue'; interface ElType extends HTMLElement { - parentNode: any; + parentNode: any; } const draggable: Directive = { - mounted: function (el: ElType) { - el.style.cursor = "move"; - el.style.position = "absolute"; - el.onmousedown = function (e) { - let disX = e.pageX - el.offsetLeft; - let disY = e.pageY - el.offsetTop; - document.onmousemove = function (e) { - let x = e.pageX - disX; - let y = e.pageY - disY; - let maxX = el.parentNode.offsetWidth - el.offsetWidth; - let maxY = el.parentNode.offsetHeight - el.offsetHeight; - if (x < 0) { - x = 0; - } else if (x > maxX) { - x = maxX; - } + mounted: function (el: ElType) { + el.style.cursor = 'move'; + el.style.position = 'absolute'; + el.onmousedown = function (e) { + const disX = e.pageX - el.offsetLeft; + const disY = e.pageY - el.offsetTop; + document.onmousemove = function (e) { + let x = e.pageX - disX; + let y = e.pageY - disY; + const maxX = el.parentNode.offsetWidth - el.offsetWidth; + const maxY = el.parentNode.offsetHeight - el.offsetHeight; + if (x < 0) { + x = 0; + } else if (x > maxX) { + x = maxX; + } - if (y < 0) { - y = 0; - } else if (y > maxY) { - y = maxY; - } - el.style.left = x + "px"; - el.style.top = y + "px"; - }; - document.onmouseup = function () { - document.onmousemove = document.onmouseup = null; - }; - }; - } + if (y < 0) { + y = 0; + } else if (y > maxY) { + y = maxY; + } + el.style.left = x + 'px'; + el.style.top = y + 'px'; + }; + document.onmouseup = function () { + document.onmousemove = document.onmouseup = null; + }; + }; + }, }; export default draggable; diff --git a/src/directives/longpress.ts b/src/directives/longpress.ts index e12d0ed..6252996 100644 --- a/src/directives/longpress.ts +++ b/src/directives/longpress.ts @@ -2,48 +2,48 @@ * v-longpress * 长按指令,长按时触发事件 */ -import type { Directive, DirectiveBinding } from "vue"; +import type { Directive, DirectiveBinding } from 'vue'; const directive: Directive = { - mounted(el: HTMLElement, binding: DirectiveBinding) { - if (typeof binding.value !== "function") { - throw "callback must be a function"; - } - // 定义变量 - let pressTimer: any = null; - // 创建计时器( 2秒后执行函数 ) - const start = (e: any) => { - if (e.button) { - if (e.type === "click" && e.button !== 0) { - return; - } - } - if (pressTimer === null) { - pressTimer = setTimeout(() => { - handler(e); - }, 1000); - } - }; - // 取消计时器 - const cancel = () => { - if (pressTimer !== null) { - clearTimeout(pressTimer); - pressTimer = null; - } - }; - // 运行函数 - const handler = (e: MouseEvent | TouchEvent) => { - binding.value(e); - }; - // 添加事件监听器 - el.addEventListener("mousedown", start); - el.addEventListener("touchstart", start); - // 取消计时器 - el.addEventListener("click", cancel); - el.addEventListener("mouseout", cancel); - el.addEventListener("touchend", cancel); - el.addEventListener("touchcancel", cancel); - } + mounted(el: HTMLElement, binding: DirectiveBinding) { + if (typeof binding.value !== 'function') { + throw 'callback must be a function'; + } + // 定义变量 + let pressTimer: any = null; + // 创建计时器( 2秒后执行函数 ) + const start = (e: any) => { + if (e.button) { + if (e.type === 'click' && e.button !== 0) { + return; + } + } + if (pressTimer === null) { + pressTimer = setTimeout(() => { + handler(e); + }, 1000); + } + }; + // 取消计时器 + const cancel = () => { + if (pressTimer !== null) { + clearTimeout(pressTimer); + pressTimer = null; + } + }; + // 运行函数 + const handler = (e: MouseEvent | TouchEvent) => { + binding.value(e); + }; + // 添加事件监听器 + el.addEventListener('mousedown', start); + el.addEventListener('touchstart', start); + // 取消计时器 + el.addEventListener('click', cancel); + el.addEventListener('mouseout', cancel); + el.addEventListener('touchend', cancel); + el.addEventListener('touchcancel', cancel); + }, }; export default directive; diff --git a/src/directives/throttle.ts b/src/directives/throttle.ts index 3050166..d407f8e 100644 --- a/src/directives/throttle.ts +++ b/src/directives/throttle.ts @@ -8,34 +8,34 @@ 使用:给 Dom 加上 v-throttle 及回调函数即可 */ -import type { Directive, DirectiveBinding } from "vue"; +import type { Directive, DirectiveBinding } from 'vue'; interface ElType extends HTMLElement { - __handleClick__: () => any; - disabled: boolean; + __handleClick__: () => any; + disabled: boolean; } const throttle: Directive = { - mounted(el: ElType, binding: DirectiveBinding) { - if (typeof binding.value !== "function") { - throw "callback must be a function"; - } - let timer: NodeJS.Timeout | null = null; - el.__handleClick__ = function () { - if (timer) { - clearTimeout(timer); - } - if (!el.disabled) { - el.disabled = true; - binding.value(); - timer = setTimeout(() => { - el.disabled = false; - }, 1000); - } - }; - el.addEventListener("click", el.__handleClick__); - }, - beforeUnmount(el: ElType) { - el.removeEventListener("click", el.__handleClick__); - } + mounted(el: ElType, binding: DirectiveBinding) { + if (typeof binding.value !== 'function') { + throw 'callback must be a function'; + } + let timer: NodeJS.Timeout | null = null; + el.__handleClick__ = function () { + if (timer) { + clearTimeout(timer); + } + if (!el.disabled) { + el.disabled = true; + binding.value(); + timer = setTimeout(() => { + el.disabled = false; + }, 1000); + } + }; + el.addEventListener('click', el.__handleClick__); + }, + beforeUnmount(el: ElType) { + el.removeEventListener('click', el.__handleClick__); + }, }; export default throttle; diff --git a/src/hooks/index.ts b/src/hooks/index.ts index 81c4556..32a7c75 100644 --- a/src/hooks/index.ts +++ b/src/hooks/index.ts @@ -1,3 +1,3 @@ -import { useAsync } from './use-async'; +import { useAsync } from './useAsync'; export { useAsync }; diff --git a/src/hooks/setting/useProjectSetting.ts b/src/hooks/setting/useProjectSetting.ts index 1a08980..3a116af 100644 --- a/src/hooks/setting/useProjectSetting.ts +++ b/src/hooks/setting/useProjectSetting.ts @@ -4,39 +4,39 @@ import { useProjectSettingStore } from '@/store/modules/projectSetting'; export function useProjectSetting() { const projectStore = useProjectSettingStore(); - const getNavMode = computed(() => projectStore.navMode); + const navMode = computed(() => projectStore.navMode); - const getNavTheme = computed(() => projectStore.navTheme); + const navTheme = computed(() => projectStore.navTheme); - const getIsMobile = computed(() => projectStore.isMobile); + const isMobile = computed(() => projectStore.isMobile); - const getHeaderSetting = computed(() => projectStore.headerSetting); + const headerSetting = computed(() => projectStore.headerSetting); - const getMultiTabsSetting = computed(() => projectStore.multiTabsSetting); + const multiTabsSetting = computed(() => projectStore.multiTabsSetting); - const getMenuSetting = computed(() => projectStore.menuSetting); + const menuSetting = computed(() => projectStore.menuSetting); - const getCrumbsSetting = computed(() => projectStore.crumbsSetting); + const crumbsSetting = computed(() => projectStore.crumbsSetting); - const getPermissionMode = computed(() => projectStore.permissionMode); + const permissionMode = computed(() => projectStore.permissionMode); - const getShowFooter = computed(() => projectStore.showFooter); + const showFooter = computed(() => projectStore.showFooter); - const getIsPageAnimate = computed(() => projectStore.isPageAnimate); + const isPageAnimate = computed(() => projectStore.isPageAnimate); - const getPageAnimateType = computed(() => projectStore.pageAnimateType); + const pageAnimateType = computed(() => projectStore.pageAnimateType); return { - getNavMode, - getNavTheme, - getIsMobile, - getHeaderSetting, - getMultiTabsSetting, - getMenuSetting, - getCrumbsSetting, - getPermissionMode, - getShowFooter, - getIsPageAnimate, - getPageAnimateType, + navMode, + navTheme, + isMobile, + headerSetting, + multiTabsSetting, + menuSetting, + crumbsSetting, + permissionMode, + showFooter, + isPageAnimate, + pageAnimateType, }; } diff --git a/src/hooks/use-async.ts b/src/hooks/useAsync.ts similarity index 100% rename from src/hooks/use-async.ts rename to src/hooks/useAsync.ts diff --git a/src/hooks/web/useECharts.ts b/src/hooks/web/useECharts.ts index 874c489..8696e92 100644 --- a/src/hooks/web/useECharts.ts +++ b/src/hooks/web/useECharts.ts @@ -106,7 +106,7 @@ export function useECharts( return chartInstance; } - function disposeInstance(){ + function disposeInstance() { if (!chartInstance) return; removeResizeFn(); chartInstance.dispose(); @@ -118,6 +118,6 @@ export function useECharts( resize, echarts, getInstance, - disposeInstance + disposeInstance, }; } diff --git a/src/layout/components/Header/index.vue b/src/layout/components/Header/index.vue index b5114ba..55d3f36 100644 --- a/src/layout/components/Header/index.vue +++ b/src/layout/components/Header/index.vue @@ -75,7 +75,7 @@