Browse Source

自定义菜单

Michael Wang 5 năm trước cách đây
mục cha
commit
7c6bb8d769

+ 5 - 5
.env.development

@@ -8,10 +8,10 @@ VUE_APP_SKIP_CHECK_NATIVE=true
 #VUE_APP_OE_STUDENT_HOST_URL=https://192.168.10.38:8878
 
 VUE_APP_CONFIG_FILE_SEVER_URL=https://ecs-test-static.qmth.com.cn
-VUE_APP_TK_SERVER_HTML_URL=http://ecs-test.qmth.com.cn
-VUE_APP_TK_SERVER_API_URL=http://ecs-test.qmth.com.cn
+VUE_APP_TK_SERVER_HTML_URL=http://ecs-dev.qmth.com.cn
+VUE_APP_TK_SERVER_API_URL=http://ecs-dev.qmth.com.cn
 #VUE_APP_WK_SERVER_SOCKET=wss://ecs-test.qmth.com.cn:8878/api/ws/faceBiopsy
 #VUE_APP_WK_SERVER_SOCKET_FOR_AUDIO=wss://ecs-test.qmth.com.cn:8878
-VUE_APP_CORE_HOST_URL=https://ecs-test.qmth.com.cn:8878
-VUE_APP_OE_ADMIN_HOST_URL=https://ecs-test.qmth.com.cn:8878
-VUE_APP_OE_STUDENT_HOST_URL=https://ecs-test.qmth.com.cn:8878
+VUE_APP_CORE_HOST_URL=https://ecs-dev.qmth.com.cn:8878
+VUE_APP_OE_ADMIN_HOST_URL=https://ecs-dev.qmth.com.cn:8878
+VUE_APP_OE_STUDENT_HOST_URL=https://ecs-dev.qmth.com.cn:8878

+ 20 - 16
src/components/MainLayout/MainLayout.vue

@@ -76,61 +76,61 @@
     <nav class="nav">
       <img :src="getLogo" class="qm-logo" />
       <ul>
-        <li v-if="menus.includes('STU_ONLINE_EXAM')">
+        <li v-if="menus.map(v => v.routeCode).includes('STU_ONLINE_EXAM')">
           <router-link
             class="link"
             to="/online-exam"
             ondragstart="return false;"
           >
-            在线考试
+            {{ menus.find(v => v.routeCode === "STU_ONLINE_EXAM").name }}
           </router-link>
         </li>
-        <li v-if="menus.includes('STU_ONLINE_HOMEWORK')">
+        <li v-if="menus.map(v => v.routeCode).includes('STU_ONLINE_HOMEWORK')">
           <router-link
             class="link"
             to="/online-homework"
             ondragstart="return false;"
           >
-            在线作业
+            {{ menus.find(v => v.routeCode === "STU_ONLINE_HOMEWORK").name }}
           </router-link>
         </li>
-        <li v-if="menus.includes('STU_ONLINE_PRACTICE')">
+        <li v-if="menus.map(v => v.routeCode).includes('STU_ONLINE_PRACTICE')">
           <router-link
             class="link"
             to="/online-practice"
             ondragstart="return false;"
           >
-            在线练习
+            {{ menus.find(v => v.routeCode === "STU_ONLINE_PRACTICE").name }}
           </router-link>
         </li>
-        <li v-if="menus.includes('STU_OFFLINE_EXAM')">
+        <li v-if="menus.map(v => v.routeCode).includes('STU_OFFLINE_EXAM')">
           <router-link
             class="link"
             to="/offline-exam"
             ondragstart="return false;"
           >
-            离线考试
+            {{ menus.find(v => v.routeCode === "STU_OFFLINE_EXAM").name }}
           </router-link>
         </li>
-        <li v-if="menus.includes('STU_NOTICE')">
+        <li v-if="menus.map(v => v.routeCode).includes('STU_NOTICE')">
           <router-link
             class="link"
             to="/site-message"
             ondragstart="return false;"
           >
             <Badge :count="messageUnread" :offset="[20, -20]">
-              公告通知
+              {{ menus.find(v => v.routeCode === "STU_NOTICE").name }}
             </Badge>
           </router-link>
         </li>
-        <li v-if="!isEpcc">
+        <li v-if="menus.map(v => v.routeCode).includes('STU_MODIFY_PWD')">
           <router-link class="link" to="/password" ondragstart="return false;">
-            修改密码
+            {{ menus.find(v => v.routeCode === "STU_MODIFY_PWD").name }}
           </router-link>
         </li>
       </ul>
     </nav>
-    <footer class="footer">©️2019 启明泰和</footer>
+    <footer class="footer">©️2020 启明泰和</footer>
 
     <SiteMessagePopup />
   </div>
@@ -173,8 +173,8 @@ export default {
     //   return shouldShow === "true";
     // },
     getLogo() {
-      return this.isEpcc
-        ? require("./epcc-logo.png")
+      return this.QECSConfig.IS_CUSTOM_MENU_LOGO === "true"
+        ? this.QECSConfig.CUS_MENU_LOGO_FILE_URL
         : require("./qm-logo.png");
     },
   },
@@ -197,7 +197,11 @@ export default {
     // });
     const res = await this.$http.get(url);
     // console.log(res);
-    this.menus = res.data.map(v => v.code.toUpperCase());
+    this.menus = res.data
+      .sort((a, b) => b.weight - a.weight)
+      .map(v => {
+        return { routeCode: v.routeCode.toUpperCase(), name: v.name };
+      });
   },
   methods: {
     goChangePwd() {

+ 4 - 4
src/features/Login/Login.vue

@@ -650,10 +650,10 @@ export default {
           fileSever +
             "/org_properties/byOrgDomain/" +
             this.domainInUrl +
-            "/studentClientConfig.json" +
-            "?" +
-            Date.now() +
-            Math.random()
+            "/studentClientConfig.json"
+          // "?" +
+          // Date.now() +
+          // Math.random()
         );
         if (res.ok) {
           const json = await res.json();

+ 2 - 2
src/features/OfflineExam/OfflineExamUploadCug.vue

@@ -275,7 +275,7 @@ export default {
           if (this.course.offlineFileUrl) {
             this.$Modal.confirm({
               title: "已有作答附件,是否覆盖?",
-              onCancel: () => reject(-1),
+              onCancel: () => reject("离线考试,取消覆盖"),
               onOk: () => resolve(),
             });
           } else {
@@ -366,7 +366,7 @@ export default {
         if (this.course.offlineFileUrl) {
           this.$Modal.confirm({
             title: "已有作答附件,是否覆盖?",
-            onCancel: () => reject(-1),
+            onCancel: () => reject("离线考试,取消覆盖"),
             onOk: () => resolve(),
           });
         } else {

+ 1 - 1
src/features/OnlineExam/OnlineExamHome.vue

@@ -159,7 +159,7 @@ export default {
         });
         return;
       } else {
-        this.courses = examListRes.data;
+        this.courses = examListRes.data || [];
       }
 
       try {

+ 1 - 1
src/store.js

@@ -210,7 +210,7 @@ export default new Vuex.Store({
     timeDifference: 0,
     siteMessages: [],
     siteMessagesTimeStamp: Date.now(),
-    QECSConfig: {},
+    QECSConfig: {}, // getter/setter 来解决其他页面刷新访问的问题
   },
   mutations: {
     updateUser(state, payload) {

+ 14 - 0
vue.config.js

@@ -209,6 +209,20 @@ module.exports = {
             },
           },
         },
+        {
+          // 站内消息3分钟获取一次
+          urlPattern: /\/api\/ecs_core\/rolePrivilege\/getStudentClientMenu/,
+          handler: "cacheFirst",
+          options: {
+            cacheableResponse: {
+              statuses: [0, 200],
+            },
+            cacheName: "menus-cache",
+            expiration: {
+              maxAgeSeconds: 3 * 60,
+            },
+          },
+        },
       ],
     },
   },