Kaynağa Gözat

refactor(fg-tabbar): 使用枚举替代硬编码的tabbar策略值

将硬编码的数字策略值替换为枚举常量,提高代码可读性和可维护性
feige996 10 ay önce
ebeveyn
işleme
ad1d71adbb

+ 3 - 3
src/layouts/fg-tabbar/fg-tabbar.vue

@@ -1,10 +1,10 @@
 <script setup lang="ts">
 import { tabbarStore } from './tabbar'
 // 'i-carbon-code',
-import { tabbarList as _tabBarList, cacheTabbarEnable, selectedTabbarStrategy } from './tabbarList'
+import { tabbarList as _tabBarList, cacheTabbarEnable, selectedTabbarStrategy, TABBAR_MAP } from './tabbarList'
 
 // @ts-expect-error 预知的判断
-const customTabbarEnable = selectedTabbarStrategy === 2 || selectedTabbarStrategy === 3
+const customTabbarEnable = selectedTabbarStrategy === TABBAR_MAP.CUSTOM_TABBAR_WITH_CACHE || selectedTabbarStrategy === TABBAR_MAP.CUSTOM_TABBAR_NO_CACHE
 /** tabbarList 里面的 path 从 pages.config.ts 得到 */
 const tabbarList = _tabBarList.map(item => ({ ...item, path: `/${item.pagePath}` }))
 function selectTabBar({ value: index }: { value: number }) {
@@ -20,7 +20,7 @@ function selectTabBar({ value: index }: { value: number }) {
 onLoad(() => {
   // 解决原生 tabBar 未隐藏导致有2个 tabBar 的问题
   // @ts-expect-error 预知的判断
-  const hideRedundantTabbarEnable = selectedTabbarStrategy === 2
+  const hideRedundantTabbarEnable = selectedTabbarStrategy === TABBAR_MAP.CUSTOM_TABBAR_WITH_CACHE
   hideRedundantTabbarEnable
   && uni.hideTabBar({
     fail(err) {

+ 13 - 7
src/layouts/fg-tabbar/tabbarList.ts

@@ -7,13 +7,18 @@
  *
  * 温馨提示:本文件的任何代码更改了之后,都需要重新运行,否则 pages.json 不会更新导致错误
  */
-
+export const TABBAR_MAP = {
+  NO_TABBAR: 0,
+  NATIVE_TABBAR: 1,
+  CUSTOM_TABBAR_WITH_CACHE: 2,
+  CUSTOM_TABBAR_NO_CACHE: 3,
+}
 // TODO:通过这里切换使用tabbar的策略
-export const selectedTabbarStrategy = 1
+export const selectedTabbarStrategy = TABBAR_MAP.NATIVE_TABBAR
 
-// selectedTabbarStrategy==1 时,需要填 iconPath 和 selectedIconPath
-// selectedTabbarStrategy==2 or 3 时,需要填 icon 和 iconType
-// selectedTabbarStrategy==0 时,tabbarList 不生效
+// selectedTabbarStrategy==NATIVE_TABBAR(1) 时,需要填 iconPath 和 selectedIconPath
+// selectedTabbarStrategy==CUSTOM_TABBAR(2,3) 时,需要填 icon 和 iconType
+// selectedTabbarStrategy==NO_TABBAR(0) 时,tabbarList 不生效
 export const tabbarList = [
   {
     iconPath: 'static/tabbar/home.png',
@@ -46,8 +51,9 @@ export const tabbarList = [
   // },
 ]
 
-// 1 和 2 时,需要tabbar缓存
-export const cacheTabbarEnable = selectedTabbarStrategy === 1 || selectedTabbarStrategy === 2
+// NATIVE_TABBAR(1) 和 CUSTOM_TABBAR_WITH_CACHE(2) 时,需要tabbar缓存
+export const cacheTabbarEnable = selectedTabbarStrategy === TABBAR_MAP.NATIVE_TABBAR
+  || selectedTabbarStrategy === TABBAR_MAP.CUSTOM_TABBAR_WITH_CACHE
 
 const _tabbar = {
   color: '#999999',