Преглед изворни кода

fix(首页快捷): 未配置时保持默认6格,不按频度重排

用户未保存过自定义快捷方式时(myShortcuts为空),
快捷区固定显示默认 6 个:任务/互动/天盘/成员/圈子/商城,
不再按使用频度混入其他应用。
iwt пре 1 дан
родитељ
комит
5196053df1
1 измењених фајлова са 32 додато и 23 уклоњено
  1. 32 23
      cfc-frontend/pages/index-home/index.vue

+ 32 - 23
cfc-frontend/pages/index-home/index.vue

@@ -775,41 +775,50 @@ title: '添加家庭成员',
       })
       return lockedApps.concat(candidates.slice(0, remaining))
     },
-    // 后端返回 myShortcuts(含 locked/sortOrder),无配置时为空数组 → 前端按频度填充
+    // 默认 6 个快捷入口(未配置自定义快捷方式时使用)
+    getDefaultQuickApps: function() {
+      var defaultKeys = ['task', 'interaction', 'tiandi', 'members', 'circle', 'shop']
+      var shown = []
+      defaultKeys.forEach(function(key) {
+        var app = findAppByKey(key)
+        if (app) shown.push({ key: app.key, name: app.name, icon: app.icon, route: app.route, locked: 0 })
+      })
+      return shown
+    },
+    // 后端返回 myShortcuts(含 locked/sortOrder);未配置(myShortcuts 为空)时使用默认 6 个
     loadQuickApps: function() {
       var self = this
       getAppLibrary().then(function(res) {
         if (res.code === 200 && res.data) {
           self.myShortcuts = res.data.myShortcuts || []
           self.appUsage = res.data.usage || {}
-          var result = self.computeQuickApps(self.myShortcuts, self.appUsage)
-          // 转成展示对象:从应用库取 icon/name/route
           var shown = []
-          result.forEach(function(item) {
-            var appKey = item.appKey
-            var app = findAppByKey(appKey)
-            if (app) {
-              shown.push({
-                key: app.key,
-                name: app.name,
-                icon: app.icon,
-                route: app.route,
-                locked: item.locked
-              })
-            }
-          })
+          if (!self.myShortcuts || self.myShortcuts.length === 0) {
+            // 用户未配置:使用默认 6 个(不按频度重排)
+            shown = self.getDefaultQuickApps()
+          } else {
+            // 已配置:锁定占位 + 频度填充
+            var result = self.computeQuickApps(self.myShortcuts, self.appUsage)
+            result.forEach(function(item) {
+              var appKey = item.appKey
+              var app = findAppByKey(appKey)
+              if (app) {
+                shown.push({
+                  key: app.key,
+                  name: app.name,
+                  icon: app.icon,
+                  route: app.route,
+                  locked: item.locked
+                })
+              }
+            })
+          }
           self.quickApps = shown
           self.quickLoaded = true
         }
       }).catch(function() {
         // 接口失败:回退到默认 6 个
-        var defaultKeys = ['task', 'interaction', 'tiandi', 'members', 'circle', 'shop']
-        var shown = []
-        defaultKeys.forEach(function(key) {
-          var app = findAppByKey(key)
-          if (app) shown.push({ key: app.key, name: app.name, icon: app.icon, route: app.route, locked: 0 })
-        })
-        self.quickApps = shown
+        self.quickApps = self.getDefaultQuickApps()
         self.quickLoaded = true
       })
     },