Przeglądaj źródła

修改系统配置

秦鹏 3 lat temu
rodzic
commit
1b3860d319
7 zmienionych plików z 193 dodań i 119 usunięć
  1. 81 79
      package-lock.json
  2. 18 2
      src/components/Header.vue
  3. 45 35
      src/permission.js
  4. 10 1
      src/settings.js
  5. 14 0
      src/utils/auth.js
  6. 14 0
      src/utils/index.js
  7. 11 2
      src/views/login.vue

+ 81 - 79
package-lock.json

@@ -1717,16 +1717,6 @@
           "integrity": "sha1-/q7SVZc9LndVW4PbwIhRpsY1IPo=",
           "dev": true
         },
-        "ansi-styles": {
-          "version": "4.3.0",
-          "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
-          "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "color-convert": "^2.0.1"
-          }
-        },
         "cacache": {
           "version": "13.0.1",
           "resolved": "https://registry.npm.taobao.org/cacache/download/cacache-13.0.1.tgz",
@@ -1753,53 +1743,6 @@
             "unique-filename": "^1.1.1"
           }
         },
-        "chalk": {
-          "version": "4.1.2",
-          "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
-          "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "ansi-styles": "^4.1.0",
-            "supports-color": "^7.1.0"
-          }
-        },
-        "color-convert": {
-          "version": "2.0.1",
-          "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
-          "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "color-name": "~1.1.4"
-          }
-        },
-        "color-name": {
-          "version": "1.1.4",
-          "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
-          "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
-          "dev": true,
-          "optional": true
-        },
-        "has-flag": {
-          "version": "4.0.0",
-          "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
-          "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
-          "dev": true,
-          "optional": true
-        },
-        "loader-utils": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz",
-          "integrity": "sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==",
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "big.js": "^5.2.2",
-            "emojis-list": "^3.0.0",
-            "json5": "^2.1.2"
-          }
-        },
         "source-map": {
           "version": "0.6.1",
           "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz?cache=0&sync_timestamp=1598275560784&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map%2Fdownload%2Fsource-map-0.6.1.tgz",
@@ -1816,16 +1759,6 @@
             "minipass": "^3.1.1"
           }
         },
-        "supports-color": {
-          "version": "7.2.0",
-          "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
-          "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "has-flag": "^4.0.0"
-          }
-        },
         "terser-webpack-plugin": {
           "version": "2.3.8",
           "resolved": "https://registry.npm.taobao.org/terser-webpack-plugin/download/terser-webpack-plugin-2.3.8.tgz",
@@ -1842,18 +1775,6 @@
             "terser": "^4.6.12",
             "webpack-sources": "^1.4.3"
           }
-        },
-        "vue-loader-v16": {
-          "version": "npm:vue-loader@16.5.0",
-          "resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-16.5.0.tgz",
-          "integrity": "sha512-WXh+7AgFxGTgb5QAkQtFeUcHNIEq3PGVQ8WskY5ZiFbWBkOwcCPRs4w/2tVyTbh2q6TVRlO3xfvIukUtjsu62A==",
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "chalk": "^4.1.0",
-            "hash-sum": "^2.0.0",
-            "loader-utils": "^2.0.0"
-          }
         }
       }
     },
@@ -11936,6 +11857,87 @@
         }
       }
     },
+    "vue-loader-v16": {
+      "version": "npm:vue-loader@16.5.0",
+      "resolved": "https://registry.nlark.com/vue-loader/download/vue-loader-16.5.0.tgz?cache=0&sync_timestamp=1628666767864&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fvue-loader%2Fdownload%2Fvue-loader-16.5.0.tgz",
+      "integrity": "sha1-CcTgcSRmiZ40uZpoZSTxkWX7KJI=",
+      "dev": true,
+      "optional": true,
+      "requires": {
+        "chalk": "^4.1.0",
+        "hash-sum": "^2.0.0",
+        "loader-utils": "^2.0.0"
+      },
+      "dependencies": {
+        "ansi-styles": {
+          "version": "4.3.0",
+          "resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-4.3.0.tgz",
+          "integrity": "sha1-7dgDYornHATIWuegkG7a00tkiTc=",
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "color-convert": "^2.0.1"
+          }
+        },
+        "chalk": {
+          "version": "4.1.2",
+          "resolved": "https://registry.nlark.com/chalk/download/chalk-4.1.2.tgz?cache=0&sync_timestamp=1627646655305&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fchalk%2Fdownload%2Fchalk-4.1.2.tgz",
+          "integrity": "sha1-qsTit3NKdAhnrrFr8CqtVWoeegE=",
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "ansi-styles": "^4.1.0",
+            "supports-color": "^7.1.0"
+          }
+        },
+        "color-convert": {
+          "version": "2.0.1",
+          "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-2.0.1.tgz",
+          "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=",
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "color-name": "~1.1.4"
+          }
+        },
+        "color-name": {
+          "version": "1.1.4",
+          "resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.4.tgz",
+          "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=",
+          "dev": true,
+          "optional": true
+        },
+        "has-flag": {
+          "version": "4.0.0",
+          "resolved": "https://registry.nlark.com/has-flag/download/has-flag-4.0.0.tgz",
+          "integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=",
+          "dev": true,
+          "optional": true
+        },
+        "loader-utils": {
+          "version": "2.0.0",
+          "resolved": "https://registry.npm.taobao.org/loader-utils/download/loader-utils-2.0.0.tgz",
+          "integrity": "sha1-5MrOW4FtQloWa18JfhDNErNgZLA=",
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "big.js": "^5.2.2",
+            "emojis-list": "^3.0.0",
+            "json5": "^2.1.2"
+          }
+        },
+        "supports-color": {
+          "version": "7.2.0",
+          "resolved": "https://registry.nlark.com/supports-color/download/supports-color-7.2.0.tgz?cache=0&sync_timestamp=1626703414084&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-7.2.0.tgz",
+          "integrity": "sha1-G33NyzK4E4gBs+R4umpRyqiWSNo=",
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "has-flag": "^4.0.0"
+          }
+        }
+      }
+    },
     "vue-pdf": {
       "version": "4.2.0",
       "resolved": "https://registry.npm.taobao.org/vue-pdf/download/vue-pdf-4.2.0.tgz",

+ 18 - 2
src/components/Header.vue

@@ -1,8 +1,13 @@
 <template>
   <!-- 顶部登录导航 -->
   <div class="LoginNav1">
-    <div class="logo">
-      <span class="logo-img"> logo </span>
+    <div class="logo" v-if="configInfor">
+      <img
+        v-if="configInfor.logo_image_url"
+        :src="configInfor.logo_image_url"
+        alt=""
+      />
+      <span class="logo-img" v-else>logo</span>
       <el-menu
         :default-active="activeIndex"
         class="el-menu-demo"
@@ -127,6 +132,8 @@ import { getToken, removeToken } from "@/utils/auth";
 import Cookies from "js-cookie";
 import { getContent, getStaticContent, getLearnWebContent } from "@/api/api";
 import { setI18nLang } from "@/utils/i18n";
+import { getConfigInfor } from "@/utils/index";
+
 export default {
   name: "LayoutHeader",
   props: [],
@@ -193,6 +200,7 @@ export default {
       language_list: [],
       lang: "",
       headTimer: null,
+      configInfor: null,
     };
   },
   watch: {},
@@ -403,6 +411,9 @@ export default {
         this.is_exist = res.is_exist;
       });
     },
+    async _getConfig() {
+      this.configInfor = await getConfigInfor();
+    },
   },
   created() {},
   mounted() {
@@ -422,6 +433,7 @@ export default {
         }
       });
     }
+    _this._getConfig();
     _this.getLangList();
     _this.getNotReadMessage();
     _this.headTimer = setInterval(() => {
@@ -459,6 +471,10 @@ export default {
     }
   }
   .logo {
+    > img {
+      width: 188px;
+      height: 64px;
+    }
     &-img {
       font-style: normal;
       font-weight: 600;

+ 45 - 35
src/permission.js

@@ -3,50 +3,60 @@ import store from './store'
 import { Message } from 'element-ui'
 import NProgress from 'nprogress' // progress bar
 import 'nprogress/nprogress.css' // progress bar style
-import { getToken } from '@/utils/auth' // get token from cookie
+import { getToken, getConfig } from '@/utils/auth' // get token from cookie
 import getPageTitle from '@/utils/get-page-title'
 
 NProgress.configure({ showSpinner: false }) // NProgress Configuration
 
 const whiteList = ['/login'] // no redirect whitelist
 
-router.beforeEach(async (to, from, next) => {
-  // start progress bar
-  NProgress.start()
-  // set page title
-  document.title = getPageTitle(to.meta.title)
-  next();
-  NProgress.done()
-  const hasToken = getToken()
+router.beforeEach(async(to, from, next) => {
+    // start progress bar
+    NProgress.start()
+        // set page title
+    document.title = getPageTitle(to.meta.title)
+        //next();
+    NProgress.done()
+    const hasToken = getToken()
+
+    if (hasToken) {
+        //=======重点部分以下=======
+
+        let config = getConfig();
+        if (config) {
+            if (to.path === '/login') {
+                // if is logged in, redirect to the home page
+                next({ path: '/EnterSys' })
+                NProgress.done()
+            } else {
+                try {
+                    next()
+                } catch (error) {
+                    Message.error(error || 'Has Error')
+                    next(`/login?redirect=${to.path}`)
+                    NProgress.done()
+                }
+            }
+        } else {
+            next(`/login?redirect=${to.path}`)
+            NProgress.done()
+        }
+        //=======重点部分以上=======
 
-  if (hasToken) {
-    if (to.path === '/login') {
-      // if is logged in, redirect to the home page
-      next({ path: '/' })
-      NProgress.done()
-    } else {
-      try {
-        next()
-      } catch (error) {
-        Message.error(error || 'Has Error')
-        next(`/login?redirect=${to.path}`)
-        NProgress.done()
-      }
-    }
-  } else {
-    /* has no token*/
-    if (whiteList.indexOf(to.path) !== -1) {
-      // in the free login whitelist, go directly
-      next()
     } else {
-      // other pages that do not have permission to access are redirected to the login page.
-      next(`/login?redirect=${to.path}`)
-      NProgress.done()
+        /* has no token*/
+        if (whiteList.indexOf(to.path) !== -1) {
+            // in the free login whitelist, go directly
+            next()
+        } else {
+            // other pages that do not have permission to access are redirected to the login page.
+            next(`/login?redirect=${to.path}`)
+            NProgress.done()
+        }
     }
-  }
 })
 
 router.afterEach(() => {
-  // finish progress bar
-  NProgress.done()
-})
+    // finish progress bar
+    NProgress.done()
+})

+ 10 - 1
src/settings.js

@@ -1,5 +1,14 @@
+const Cookies = require("js-cookie");
+console.log(Cookies);
+let title = ''
+let config = Cookies.get('GCLS_Config')
+if (config) {
+    let configObj = JSON.parse(config);
+    title = configObj.title
+}
+console.log(title);
 module.exports = {
-    title: '全球汉语教学平台',
+    title: title,
 
     /**
      * @type {boolean} true | false

+ 14 - 0
src/utils/auth.js

@@ -12,4 +12,18 @@ export function setToken(token) {
 
 export function removeToken() {
     return Cookies.remove(TokenKey)
+}
+
+const ConfigKey = 'GCLS_Config'
+
+export function getConfig() {
+    return Cookies.get(ConfigKey)
+}
+
+export function setConfig(val) {
+    return Cookies.set(ConfigKey, val)
+}
+
+export function removeConfig() {
+    return Cookies.remove(ConfigKey)
 }

+ 14 - 0
src/utils/index.js

@@ -0,0 +1,14 @@
+import { getStaticContent } from '@/api/api';
+import { setConfig } from './auth'
+
+export function getConfigInfor() {
+    return new Promise((resolve, reject) => {
+        let MethodName = 'sys_config_manager-GetLogo';
+        getStaticContent(MethodName, {}).then(res => {
+            setConfig(res);
+            resolve(res)
+        }).catch(err => {
+            reject(err);
+        })
+    })
+}

+ 11 - 2
src/views/login.vue

@@ -1,9 +1,9 @@
 <template>
-  <div class="login-container">
+  <div class="login-container" v-if="configInfor">
     <div class="login-left">
       <div class="login-texts">
         <p>
-          <span>全球汉语教学平台-教研中心</span>
+          <span>{{ configInfor.title }}-教培中心</span>
         </p>
       </div>
       <el-form
@@ -85,6 +85,8 @@ import { getContent } from "@/api/api";
 import { getObjArr, saveObjArr } from "@/utils/role";
 import Cookies from "js-cookie";
 import { setToken } from "@/utils/auth";
+import { getConfigInfor } from "@/utils/index";
+
 export default {
   name: "Login",
   data() {
@@ -126,6 +128,7 @@ export default {
       passwordType: "password",
       redirect: undefined,
       loginCheck: "login",
+      configInfor: null,
     };
   },
   watch: {
@@ -180,6 +183,12 @@ export default {
         }
       });
     },
+    async _getConfig() {
+      this.configInfor = await getConfigInfor();
+    },
+  },
+  mounted() {
+    this._getConfig();
   },
 };
 </script>