Handy_Cao пре 1 година
родитељ
комит
c54aded38a

+ 2 - 8
src/packages/pc/components/layouts/sidemenu/submenu.vue

@@ -5,7 +5,7 @@
                 <!--如果没有图标,用标题第一个字代替-->
                 <template v-if="item.icon">
                     <app-icon class="menu-icon" :icon="item.icon" />
-                    <span>{{ t(item.title) }}</span>
+                    <span>{{ item.title }}</span>
                 </template>
                 <template v-else>
                     <i class="menu-icon menu-icon--text">{{ item.title.slice(0, 1) }}</i>
@@ -17,14 +17,13 @@
         </el-sub-menu>
         <el-menu-item :index="item.code" v-else>
             <app-icon class="menu-icon" :icon="item.icon" v-if="item.icon" />
-            <span>{{ t(item.title) }}</span>
+            <span>{{ item.title }}</span>
         </el-menu-item>
     </template>
 </template>
 
 <script lang="ts">
 import { defineComponent, PropType } from 'vue'
-import { i18n } from '@/stores';
 import AppIcon from '@pc/components/base/icon/index.vue'
 
 export default defineComponent({
@@ -38,10 +37,5 @@ export default defineComponent({
             required: true,
         },
     },
-
-    setup() {
-        const { global: { t } } = i18n
-        return { t }
-    }
 })
 </script>

+ 2 - 1
src/packages/pc/router/dynamicRouter.ts

@@ -1,12 +1,13 @@
 import { RouteRecordRaw } from 'vue-router'
 import { AuthType } from '@/constants/menu'
-import { useMenuStore } from '@/stores'
+import { useMenuStore, i18n } from '@/stores'
 import router from '../router'
 
 export default new (class {
     /** 防止动态路由无限加载 */
     isReady = false;
 
+    
     /**
      * 添加404页面
      */

+ 13 - 1
src/stores/modules/menu.ts

@@ -3,17 +3,29 @@ import { AuthType } from '@/constants/menu'
 import { queryAccountMenu } from '@/services/api/account'
 import { defineStore } from '../store'
 import { sessionData } from '../storage'
+import { i18n } from "./language";
 
 export const useMenuStore = defineStore(() => {
     const loading = shallowRef(false)
     const userRoutes = sessionData.getRef('userRoutes')
 
+
     // 获取用户路由表
     const getUserRoutes = async () => {
         try {
             loading.value = true
             const res = await queryAccountMenu()
-            userRoutes.value = res
+            const loop=(data: Model.UserRoutes[])=>{
+                return data.reduce<Model.UserRoutes[]>((pre, cur) => {
+                        pre.push({
+                            ...cur,
+                            title: i18n.global.t(cur.title),
+                            children: cur.children ? loop(cur.children) : [],
+                        })
+                    return pre
+                }, [])
+            }
+            userRoutes.value = loop(res)
         } finally {
             loading.value = false
         }