浏览代码

feat:修改子系统标题

liuyuedi 2 年之前
父节点
当前提交
9bf5487a6c
共有 6 个文件被更改,包括 67 次插入19 次删除
  1. 23 0
      public/index.html
  2. 11 11
      src/App.vue
  3. 4 1
      src/layout/components/Sidebar/Logo.vue
  4. 7 2
      src/permission.js
  5. 10 0
      src/utils/auth.js
  6. 12 5
      src/utils/sso.js

+ 23 - 0
public/index.html

@@ -198,6 +198,29 @@
       }
     </style>
   </head>
+  <script>
+    var queryParamsString = window.location.search.substring(1);
+    var queryParamsArray = queryParamsString.split('&');
+    var queryParams = {};
+    for (var i = 0; i < queryParamsArray.length; i++) {
+      var currentParam = queryParamsArray[i].split('=');
+      var key = decodeURIComponent(currentParam[0]);
+      var value = decodeURIComponent(currentParam[1]);
+      queryParams[key] = value;
+    }
+    if (queryParams.subName) {
+      document.title = queryParams.subName;
+    } else {
+      let menuConfigId = localStorage.getItem('SYS_WPR_MENUCFGID');
+      if (menuConfigId) {
+        menuConfigId = JSON.parse(menuConfigId);
+        const sysTitle = localStorage.getItem('SYS_TITLE:' + menuConfigId);
+        if (sysTitle) {
+          document.title = JSON.parse(sysTitle);
+        }
+      }
+    }
+  </script>
   <body>
     <div id="app">
       <div id="loader-wrapper">

+ 11 - 11
src/App.vue

@@ -6,19 +6,19 @@
 </template>
 
 <script>
-import ThemePicker from "@/components/ThemePicker";
+import ThemePicker from '@/components/ThemePicker';
 
 export default {
-  name: "App",
-  components: { ThemePicker },
-    metaInfo() {
-        return {
-            title: this.$store.state.settings.dynamicTitle && this.$store.state.settings.title,
-            titleTemplate: title => {
-                return title ? `${title} - ${process.env.VUE_APP_TITLE}` : process.env.VUE_APP_TITLE
-            }
-        }
-    }
+  name: 'App',
+  components: { ThemePicker }
+  // metaInfo() {
+  //     return {
+  //         title: this.$store.state.settings.dynamicTitle && this.$store.state.settings.title,
+  //         titleTemplate: title => {
+  //             return title ? `${title} - ${process.env.VUE_APP_TITLE}` : process.env.VUE_APP_TITLE
+  //         }
+  //     }
+  // }
 };
 </script>
 <style scoped>

+ 4 - 1
src/layout/components/Sidebar/Logo.vue

@@ -66,11 +66,14 @@ export default {
     },
     sideTheme() {
       return this.$store.state.settings.sideTheme;
+    },
+    title() {
+      return document.title;
     }
   },
   data() {
     return {
-      title: '水价改革管理系统',
+      // title: '水价改革管理系统',
       logo: logoImg
     };
   }

+ 7 - 2
src/permission.js

@@ -5,7 +5,12 @@ import NProgress from 'nprogress';
 import 'nprogress/nprogress.css';
 import { getToken, removeToken } from '@/utils/auth';
 import { isRelogin } from '@/utils/request';
-import { getResdirectAppUrl, parseSSoToken, ssoConfig } from '@/utils/sso';
+import {
+  getResdirectAppUrl,
+  parseSSoToken,
+  ssoConfig,
+  refreshTitle
+} from '@/utils/sso';
 
 NProgress.configure({ showSpinner: false });
 
@@ -24,7 +29,7 @@ router.beforeEach(async (to, from, next) => {
   if (!store.getters.ssoConfigInfo) {
     await store.dispatch('sso/getSSOConfigInfo');
   }
-
+  refreshTitle();
   if (token) {
     to.meta.title && store.dispatch('settings/setTitle', to.meta.title);
     /* has token*/

+ 10 - 0
src/utils/auth.js

@@ -5,6 +5,7 @@ const SSOConfigKey = 'SY-SSOCONFIG';
 const MenuVisibleKey = 'SY-MENUS-VISIBLE';
 const PlatformTokenKey = 'PLATFORM-Token';
 const SYSTEMAPPMENUCFGID = 'SYS_WPR_MENUCFGID';
+const SYS_TITLE_KEY = 'SYS_TITLE';
 
 export function getToken() {
   return Cookies.get(TokenKey);
@@ -67,3 +68,12 @@ export function setSysMenuConfigID(token) {
 export function removeSysMenuConfigID() {
   return Cookies.remove(SYSTEMAPPMENUCFGID);
 }
+export function setSysTitle(title, menuConfigId) {
+  return Cookies.set(SYS_TITLE_KEY + ':' + menuConfigId, title);
+}
+export function getSysTitle() {
+  return (
+    Cookies.get(SYS_TITLE_KEY + ':' + getSysMenuConfigID()) ||
+    process.env.VUE_APP_TITLE
+  );
+}

+ 12 - 5
src/utils/sso.js

@@ -2,7 +2,8 @@ import request from '@/utils/request';
 import {
   getSSOConfig,
   setPlatformToken,
-  setSysMenuConfigID
+  setSysMenuConfigID,
+  refreshTitle
 } from '@/utils/auth';
 import { defaults, omit } from 'lodash-es';
 const baseURL = process.env.VUE_APP_BASE_API;
@@ -145,14 +146,17 @@ export function getResdirectAppUrl(ssoToken) {
   }
 }
 
-export function parseSSoToken(store, next, to, router) {
+export function parseSSoToken(store, next, to, router, subName) {
   updateSSOConfig();
   const { token, siblingToken, subid } = to.query;
 
   if (subid) {
     setSysMenuConfigID(subid);
   }
-
+  if (subName) {
+    setSysTitle(subName, subid);
+  }
+  refreshTitle();
   if (token) {
     let ssoToken = token;
     // alert('全局ssoToken=' + ssoToken);
@@ -170,7 +174,7 @@ export function parseSSoToken(store, next, to, router) {
       return store.dispatch('SaveBindToken', ssoToken).then(() => {
         router.replace({
           path: to.path,
-          query: omit(to.query, ['token', 'siblingToken', 'subid'])
+          query: omit(to.query, ['token', 'siblingToken', 'subid', 'subName'])
         });
 
         return true;
@@ -182,7 +186,7 @@ export function parseSSoToken(store, next, to, router) {
     return store.dispatch('SaveSiblingToken', siblingToken).then(() => {
       router.replace({
         path: to.path,
-        query: omit(to.query, ['token', 'siblingToken', 'subid']),
+        query: omit(to.query, ['token', 'siblingToken', 'subid', 'subName']),
         replace: true
       });
 
@@ -192,3 +196,6 @@ export function parseSSoToken(store, next, to, router) {
     return Promise.resolve(false);
   }
 }
+export function refreshTitle() {
+  // document.title = getSysTitle();
+}