Bläddra i källkod

fix:抽离首页主题设置成hooks

MTrun 3 år sedan
förälder
incheckning
45884a2918
5 ändrade filer med 52 tillägg och 40 borttagningar
  1. 5 36
      src/App.vue
  2. 1 0
      src/hooks/index.ts
  3. 42 0
      src/hooks/themeHook.ts
  4. 1 1
      src/styles/common/mixins/mixins.scss
  5. 3 3
      src/utils/plugin.ts

+ 5 - 36
src/App.vue

@@ -12,50 +12,19 @@
 </template>
 
 <script lang="ts" setup>
-import { computed } from 'vue'
-import {
-  zhCN,
-  dateZhCN,
-  darkTheme,
-  NConfigProvider,
-  GlobalThemeOverrides
-} from 'naive-ui'
+import { zhCN, dateZhCN, NConfigProvider } from 'naive-ui'
 import { AppProvider } from '@/components/Application'
 import { useDesignStore } from '@/store/modules/designStore/designStore'
-import { borderRadius } from '@/settings/designSetting'
+
+import { getDarkThemeHook, getThemeOverridesHook } from '@/hooks'
 
 const designStore = useDesignStore()
 
 // 返回暗黑主题
-const getDarkTheme = computed(() =>
-  designStore.getDarkTheme ? darkTheme : undefined
-)
+const getDarkTheme = getDarkThemeHook()
 
 // 主题配置
-const getThemeOverrides = computed(
-  (): GlobalThemeOverrides => {
-    const commonObj = {
-      common: {
-        borderRadius
-      }
-    }
-    const lightObject = {
-      common: {
-        ...commonObj.common
-      }
-    }
-    const dartObject = {
-      common: {
-        primaryColor: designStore.appTheme,
-        ...commonObj.common
-      },
-      LoadingBar: {
-        colorLoading: designStore.appTheme
-      }
-    }
-    return designStore.getDarkTheme ? dartObject : lightObject
-  }
-)
+const getThemeOverrides = getThemeOverridesHook()
 </script>
 
 <style lang="scss"></style>

+ 1 - 0
src/hooks/index.ts

@@ -0,0 +1 @@
+export * from '@/hooks/themeHook'

+ 42 - 0
src/hooks/themeHook.ts

@@ -0,0 +1,42 @@
+import { computed } from 'vue'
+import { darkTheme, GlobalThemeOverrides } from 'naive-ui'
+import { useDesignStore } from '@/store/modules/designStore/designStore'
+import { borderRadius } from '@/settings/designSetting'
+
+/**
+ * 设置全局主题
+ */
+export const getThemeOverridesHook = () => {
+  const designStore = useDesignStore()
+  const getDarkTheme = computed(
+    (): GlobalThemeOverrides => {
+      const commonObj = {
+        common: {
+          borderRadius
+        }
+      }
+      const lightObject = {
+        common: {
+          ...commonObj.common
+        }
+      }
+      const dartObject = {
+        common: {
+          primaryColor: designStore.appTheme,
+          ...commonObj.common
+        },
+        LoadingBar: {
+          colorLoading: designStore.appTheme
+        }
+      }
+      return designStore.getDarkTheme ? dartObject : lightObject
+    }
+  )
+  return getDarkTheme
+}
+
+// 返回暗黑主题
+export const getDarkThemeHook = () => {
+  const designStore = useDesignStore()
+  return computed(() => (designStore.getDarkTheme ? darkTheme : undefined))
+}

+ 1 - 1
src/styles/common/mixins/mixins.scss

@@ -10,7 +10,7 @@
 }
 
 @mixin deep() {
-  ::v-deep *{
+  ::v-deep {
     @content;
   }
 }

+ 3 - 3
src/utils/plugin.ts

@@ -26,7 +26,7 @@ import { renderIcon } from '@/utils'
   const tip = {
     delete: '是否删除此数据'
   }
-  dialogFn({
+  const instance = dialogFn({
     title: '提示',
     icon: renderIcon(InformationCircleIcon, { size: dialogIconSize }),
     content: message || tip[type] || '',
@@ -34,10 +34,10 @@ import { renderIcon } from '@/utils'
     negativeText: '取消',
     maskClosable: maskClosable,
     onPositiveClick: () => {
-      onPositiveCallback && onPositiveCallback()
+      onPositiveCallback && onPositiveCallback(instance)
     },
     onNegativeClick: () => {
-      onNegativeCallback && onNegativeCallback()
+      onNegativeCallback && onNegativeCallback(instance)
     }
   })
 }