Selaa lähdekoodia

自定义菜单排序

Michael Wang 5 vuotta sitten
vanhempi
commit
7d9b812457
1 muutettua tiedostoa jossa 28 lisäystä ja 2 poistoa
  1. 28 2
      src/components/MainLayout/MainLayout.vue

+ 28 - 2
src/components/MainLayout/MainLayout.vue

@@ -76,7 +76,7 @@
     <nav class="nav">
       <img :src="getLogo" class="qm-logo" />
       <ul>
-        <li v-if="menus.map(v => v.routeCode).includes('STU_ONLINE_EXAM')">
+        <!-- <li v-if="menus.map(v => v.routeCode).includes('STU_ONLINE_EXAM')">
           <router-link
             class="link"
             to="/online-exam"
@@ -127,6 +127,20 @@
           <router-link class="link" to="/password" ondragstart="return false;">
             {{ menus.find(v => v.routeCode === "STU_MODIFY_PWD").name }}
           </router-link>
+        </li> -->
+        <li v-for="(menu, index) in menus" :key="index">
+          <router-link class="link" :to="menu.link" ondragstart="return false;">
+            <Badge
+              v-if="menu.routeCode === 'STU_NOTICE'"
+              :count="messageUnread"
+              :offset="[20, -20]"
+            >
+              {{ menu.name }}
+            </Badge>
+            <span v-else>
+              {{ menu.name }}
+            </span>
+          </router-link>
         </li>
       </ul>
     </nav>
@@ -195,12 +209,24 @@ export default {
     // const res = await this.$http.post(url, params, {
     //   headers: { "content-type": "application/x-www-form-urlencoded" },
     // });
+    const links = {
+      STU_ONLINE_EXAM: "/online-exam",
+      STU_ONLINE_HOMEWORK: "/online-homework",
+      STU_ONLINE_PRACTICE: "/online-practice",
+      STU_OFFLINE_EXAM: "/offline-exam",
+      STU_NOTICE: "/site-message",
+      STU_MODIFY_PWD: "/password",
+    };
     const res = await this.$http.get(url);
     // console.log(res);
     this.menus = res.data
       .sort((a, b) => b.weight - a.weight)
       .map(v => {
-        return { routeCode: v.routeCode.toUpperCase(), name: v.name };
+        return {
+          routeCode: v.routeCode.toUpperCase(),
+          name: v.name,
+          link: links[v.routeCode.toUpperCase()],
+        };
       });
   },
   methods: {