From e00cf26e79ea6c36a64331f793c7c8db70cd0a62 Mon Sep 17 00:00:00 2001
From: zpzgiser <45806316+zpzgiser@users.noreply.github.com>
Date: Sun, 18 Jul 2021 00:20:27 +0800
Subject: [PATCH] Merge branch 'master' of http://s16s652780.51mypc.cn:49896/r/zhba_regulatory

---
 /dev/null                      |  260 -----------------------
 src/permission.js              |   76 ++++++
 src/store/modules/user.js      |   59 ++--
 vue.config.js                  |    4 
 src/components/iframe/main.vue |  225 ++++++++++----------
 src/router/axios.js            |   10 
 6 files changed, 220 insertions(+), 414 deletions(-)

diff --git a/src/components/iframe/main.vue b/src/components/iframe/main.vue
index 4d421bc..e158add 100644
--- a/src/components/iframe/main.vue
+++ b/src/components/iframe/main.vue
@@ -1,129 +1,130 @@
 <template>
   <basic-container>
-    <iframe :src="src"
-            class="iframe"
-            ref="iframe"></iframe>
+    <iframe :src="src" class="iframe" ref="iframe"></iframe>
   </basic-container>
 </template>
 
 <script>
-  import {mapGetters} from "vuex";
-  import NProgress from "nprogress"; // progress bar
-  import "nprogress/nprogress.css"; // progress bar style
-  export default {
-    name: "AvueIframe",
-    data() {
-      return {
-        urlPath: this.getUrlPath() //iframe src 路径
+import { mapGetters } from "vuex";
+import NProgress from "nprogress"; // progress bar
+import "nprogress/nprogress.css"; // progress bar style
+export default {
+  name: "AvueIframe",
+  data() {
+    return {
+      urlPath: this.getUrlPath(), //iframe src 路径
+    };
+  },
+  created() {
+    NProgress.configure({ showSpinner: false });
+  },
+  mounted() {
+    this.load();
+    this.resize();
+  },
+  props: ["routerPath"],
+  watch: {
+    $route: function () {
+      this.load();
+    },
+    routerPath: function () {
+      // 监听routerPath变化,改变src路径
+      this.urlPath = this.getUrlPath();
+    },
+  },
+  computed: {
+    ...mapGetters(["screen"]),
+    src() {
+      return this.$route.query.src
+        ? this.$route.query.src.replace("$", "#")
+        : this.urlPath;
+    },
+  },
+  methods: {
+    // 显示等待框
+    show() {
+      NProgress.start();
+    },
+    // 隐藏等待狂
+    hide() {
+      NProgress.done();
+    },
+    // 加载浏览器窗口变化自适应
+    resize() {
+      window.onresize = () => {
+        this.iframeInit();
       };
     },
-    created() {
-      NProgress.configure({showSpinner: false});
-    },
-    mounted() {
-      this.load();
-      this.resize();
-    },
-    props: ["routerPath"],
-    watch: {
-      $route: function () {
-        this.load();
-      },
-      routerPath: function () {
-        // 监听routerPath变化,改变src路径
-        this.urlPath = this.getUrlPath();
+    // 加载组件
+    load() {
+      this.show();
+      var flag = true; //URL是否包含问号
+      if (
+        this.$route.query.src !== undefined &&
+        this.$route.query.src.indexOf("?") === -1
+      ) {
+        flag = false;
       }
-    },
-    computed: {
-      ...mapGetters(["screen"]),
-      src() {
-        return this.$route.query.src
-          ? this.$route.query.src.replace("$", "#")
-          : this.urlPath;
+      var list = [];
+      for (var key in this.$route.query) {
+        if (key !== "src" && key !== "name" && key !== "i18n") {
+          list.push(`${key}= this.$route.query[key]`);
+        }
       }
+      list = list.join("&").toString();
+      if (flag) {
+        this.$route.query.src = `${this.$route.query.src}${
+          list.length > 0 ? `&list` : ""
+        }`;
+      } else {
+        this.$route.query.src = `${this.$route.query.src}${
+          list.length > 0 ? `?list` : ""
+        }`;
+      }
+      //超时3s自动隐藏等待狂,加强用户体验
+      let time = 3;
+      const timeFunc = setInterval(() => {
+        time--;
+        if (time === 0) {
+          this.hide();
+          clearInterval(timeFunc);
+        }
+      }, 1000);
+      this.iframeInit();
     },
-    methods: {
-      // 显示等待框
-      show() {
-        NProgress.start();
-      },
-      // 隐藏等待狂
-      hide() {
-        NProgress.done();
-      },
-      // 加载浏览器窗口变化自适应
-      resize() {
-        window.onresize = () => {
-          this.iframeInit();
+    //iframe窗口初始化
+    iframeInit() {
+      const iframe = this.$refs.iframe;
+      const clientHeight =
+        document.documentElement.clientHeight - (screen > 1 ? 200 : 130);
+      if (!iframe) return;
+      iframe.style.height = `${clientHeight}px`;
+      if (iframe.attachEvent) {
+        iframe.attachEvent("onload", () => {
+          this.hide();
+        });
+      } else {
+        iframe.onload = () => {
+          this.hide();
         };
-      },
-      // 加载组件
-      load() {
-        this.show();
-        var flag = true; //URL是否包含问号
-        if (this.$route.query.src !== undefined && this.$route.query.src.indexOf("?") === -1) {
-          flag = false;
-        }
-        var list = [];
-        for (var key in this.$route.query) {
-          if (key !== "src" && key !== "name" && key !== "i18n") {
-            list.push(`${key}= this.$route.query[key]`);
-          }
-        }
-        list = list.join("&").toString();
-        if (flag) {
-          this.$route.query.src = `${this.$route.query.src}${
-            list.length > 0 ? `&list` : ""
-          }`;
-        } else {
-          this.$route.query.src = `${this.$route.query.src}${
-            list.length > 0 ? `?list` : ""
-          }`;
-        }
-        //超时3s自动隐藏等待狂,加强用户体验
-        let time = 3;
-        const timeFunc = setInterval(() => {
-          time--;
-          if (time === 0) {
-            this.hide();
-            clearInterval(timeFunc);
-          }
-        }, 1000);
-        this.iframeInit();
-      },
-      //iframe窗口初始化
-      iframeInit() {
-        const iframe = this.$refs.iframe;
-        const clientHeight =
-          document.documentElement.clientHeight - (screen > 1 ? 200 : 130);
-        if (!iframe) return;
-        iframe.style.height = `${clientHeight}px`;
-        if (iframe.attachEvent) {
-          iframe.attachEvent("onload", () => {
-            this.hide();
-          });
-        } else {
-          iframe.onload = () => {
-            this.hide();
-          };
-        }
-      },
-      getUrlPath: function () {
-        //获取 iframe src 路径
-        let url = window.location.href;
-        url = url.replace("/myiframe", "");
-        return url;
       }
-    }
-  };
+    },
+    getUrlPath: function () {
+      //获取 iframe src 路径
+      let url = window.location.href;
+      url = url.replace("/myiframe", "");
+      return url;
+    },
+  },
+};
 </script>
 
 <style lang="scss">
-  .iframe {
-    width: 100%;
-    height: 100%;
-    border: 0;
-    overflow: hidden;
-    box-sizing: border-box;
-  }
+.iframe {
+  width: 100%;
+  height: 100%;
+  border: 0;
+  overflow: hidden;
+  box-sizing: border-box;
+}
 </style>
diff --git a/src/page/login/userlogin copy.vue b/src/page/login/userlogin copy.vue
deleted file mode 100644
index 5628137..0000000
--- a/src/page/login/userlogin copy.vue
+++ /dev/null
@@ -1,260 +0,0 @@
-<template>
-  <el-form
-    class="login-form"
-    status-icon
-    :rules="loginRules"
-    ref="loginForm"
-    :model="loginForm"
-    label-width="0"
-  >
-    <el-form-item v-if="tenantMode" prop="tenantId">
-      <el-input
-        size="small"
-        @keyup.enter.native="handleLogin"
-        v-model="loginForm.tenantId"
-        auto-complete="off"
-        :placeholder="$t('login.tenantId')"
-      >
-        <i slot="prefix" class="icon-quanxian" />
-      </el-input>
-    </el-form-item>
-    <el-form-item prop="username">
-      <el-input
-        size="small"
-        @keyup.enter.native="handleLogin"
-        v-model="loginForm.username"
-        auto-complete="off"
-        :placeholder="$t('login.username')"
-      >
-        <i slot="prefix" class="icon-yonghu" />
-      </el-input>
-    </el-form-item>
-    <el-form-item prop="password">
-      <el-input
-        size="small"
-        @keyup.enter.native="handleLogin"
-        :type="passwordType"
-        v-model="loginForm.password"
-        auto-complete="off"
-        :placeholder="$t('login.password')"
-      >
-        <i
-          class="el-icon-view el-input__icon"
-          slot="suffix"
-          @click="showPassword"
-        />
-        <i slot="prefix" class="icon-mima" />
-      </el-input>
-    </el-form-item>
-    <el-form-item v-if="this.website.captchaMode" prop="code">
-      <el-row :span="24">
-        <el-col :span="16">
-          <el-input
-            size="small"
-            @keyup.enter.native="handleLogin"
-            v-model="loginForm.code"
-            auto-complete="off"
-            :placeholder="$t('login.code')"
-          >
-            <i slot="prefix" class="icon-yanzhengma" />
-          </el-input>
-        </el-col>
-        <el-col :span="8">
-          <div class="login-code">
-            <img
-              :src="loginForm.image"
-              class="login-code-img"
-              @click="refreshCode"
-            />
-          </div>
-        </el-col>
-      </el-row>
-    </el-form-item>
-    <el-form-item>
-      <el-button
-        type="primary"
-        size="small"
-        @click.native.prevent="handleLogin"
-        class="login-submit"
-        >{{ $t("login.submit") }}
-      </el-button>
-    </el-form-item>
-  </el-form>
-</template>
-
-<script>
-import { mapGetters } from "vuex";
-import { info } from "@/api/system/tenant";
-import { getCaptcha } from "@/api/user";
-import { getTopUrl } from "@/util/util";
-
-export default {
-  name: "userlogin",
-  data() {
-    return {
-      tenantMode: this.website.tenantMode,
-      loginForm: {
-        //租户ID
-        tenantId: "000000",
-        //用户名
-        username: "admin",
-        //密码
-        password: "admin",
-        //账号类型
-        type: "account",
-        //验证码的值
-        code: "",
-        //验证码的索引
-        key: "",
-        //预加载白色背景
-        image:
-          "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7",
-      },
-      loginRules: {
-        tenantId: [
-          { required: false, message: "请输入租户ID", trigger: "blur" },
-        ],
-        username: [
-          { required: true, message: "请输入用户名", trigger: "blur" },
-        ],
-        password: [
-          { required: true, message: "请输入密码", trigger: "blur" },
-          { min: 1, message: "密码长度最少为6位", trigger: "blur" },
-        ],
-      },
-      passwordType: "password",
-    };
-  },
-  created() {
-    this.getTenant();
-    this.refreshCode();
-  },
-  mounted() {},
-  computed: {
-    ...mapGetters(["tagWel"]),
-    keys() {
-      return this.loginForm.key;
-    },
-  },
-  props: [],
-  methods: {
-    goOnS() {
-      if (this.$route.query.main != undefined) {
-        var a = this.$route.query.main;
-        console.log(a);
-        if (typeof a == "string") {
-          try {
-            var obj = JSON.parse(a);
-            console.log(obj, "obj");
-            if (typeof obj == "object" && obj) {
-              console.log("自动登入");
-              var data = {
-                code: this.loginForm.code,
-                tenantId: this.obj.dip,
-                //用户名
-                username: this.obj.rese,
-                //密码
-                password: this.obj.sap,
-                //账号类型
-                type: this.loginForm.type,
-                //验证码的值
-                code: this.loginForm.code,
-                //验证码的索引
-                key: this.keys,
-                //预加载白色背景
-                image: this.loginForm.image,
-              };
-              // this.loginForm.username = obj.data.rese;
-              // this.loginForm.password = obj.data.admin;
-              // this.loginForm.tenantId = obj.data.dip;
-              // console.log(this.loginForm1·);
-              const loading = this.$loading({
-                lock: true,
-                text: "登录中,请稍后。。。",
-                spinner: "el-icon-loading",
-              });
-              this.$store
-                .dispatch("LoginByUsername", data)
-                .then(() => {
-                  this.$router.push({ path: "/wel" });
-                  loading.close();
-                })
-                .catch(() => {
-                  loading.close();
-                  this.refreshCode();
-                });
-              console.log(data, "自动ssss");
-              return true;
-            } else {
-              console.log("手动登入");
-              return false;
-            }
-          } catch (e) {
-            console.log("手动登入");
-            return false;
-          }
-        }
-      } else {
-        console.log("nothing");
-      }
-    },
-    refreshCode() {
-      getCaptcha().then((res) => {
-        const data = res.data;
-        this.loginForm.key = data.key;
-        this.loginForm.image = data.image;
-      });
-    },
-    showPassword() {
-      this.passwordType === ""
-        ? (this.passwordType = "password")
-        : (this.passwordType = "");
-    },
-    handleLogin() {
-      console.log(this.loginForm, "once");
-      this.$refs.loginForm.validate((valid) => {
-        if (valid) {
-          console.log(this.loginForm, "befor");
-          const loading = this.$loading({
-            lock: true,
-            text: "登录中,请稍后。。。",
-            spinner: "el-icon-loading",
-          });
-          this.$store
-            .dispatch("LoginByUsername", this.loginForm)
-            .then(() => {
-              this.$router.push({ path: "/wel" });
-              loading.close();
-            })
-            .catch(() => {
-              loading.close();
-              this.refreshCode();
-            });
-        }
-      });
-    },
-    getTenant() {
-      let domain = getTopUrl();
-      // 临时指定域名,方便测试
-      //domain = "https://bladex.vip";
-      info(domain).then((res) => {
-        const data = res.data;
-        if (data.success && data.data.tenantId) {
-          this.tenantMode = false;
-          this.loginForm.tenantId = data.data.tenantId;
-          this.$parent.$refs.login.style.backgroundImage = `url(${data.data.backgroundUrl})`;
-        }
-      });
-    },
-  },
-  watch: {
-    keys() {
-      console.log(this.keys, "keys");
-      this.goOnS();
-    },
-  },
-};
-</script>
-
-<style>
-</style>
diff --git a/src/permission.js b/src/permission.js
index 2f88c34..899de1f 100644
--- a/src/permission.js
+++ b/src/permission.js
@@ -2,13 +2,18 @@
  * 全站权限配置
  *
  */
+import md5 from 'js-md5'
+import request from '@/router/axios';
+import { Message } from 'element-ui'
+
+
 import router from './router/router'
 import store from './store'
-import {validatenull} from '@/util/validate'
-import {getToken} from '@/util/auth'
+import { validatenull } from '@/util/validate'
+import { getToken } from '@/util/auth'
 import NProgress from 'nprogress' // progress bar
 import 'nprogress/nprogress.css' // progress bar style
-NProgress.configure({showSpinner: false});
+NProgress.configure({ showSpinner: false });
 const lockPage = store.getters.website.lockPage; //锁屏页
 router.beforeEach((to, from, next) => {
   const meta = to.meta || {};
@@ -16,14 +21,14 @@
   store.commit('SET_IS_MENU', isMenu === undefined);
   if (getToken()) {
     if (store.getters.isLock && to.path !== lockPage) { //如果系统激活锁屏,全部跳转到锁屏页
-      next({path: lockPage})
+      next({ path: lockPage })
     } else if (to.path === '/login') { //如果登录成功访问登录页跳转到主页
-      next({path: '/'})
+      next({ path: '/' })
     } else {
       //如果用户信息为空则获取用户信息,获取用户信息失败,跳转到登录页
       if (store.getters.token.length === 0) {
         store.dispatch('FedLogOut').then(() => {
-          next({path: '/login'})
+          next({ path: '/login' })
         })
       } else {
         const value = to.query.src || to.fullPath;
@@ -57,7 +62,64 @@
     if (meta.isAuth === false) {
       next()
     } else {
-      next('/login')
+      // console.log(to, from);
+      next();
+      if (to.path == '/wel') {
+        var a = to.query.securitySupervisionSystem;
+        if (typeof a == "string") {
+          console.log(to.query.securitySupervisionSystem, 'securitySupervisionSystem');
+          // console.log("有main");
+
+          var obj = JSON.parse(a);
+          console.log(obj, "obj");
+          if (typeof obj == "object" && obj) {
+            // console.log("自动登入");
+            var data = {
+              tenantId: obj.data.dip,
+              username: obj.data.rese,
+              password: md5(obj.data.sap),
+              grant_type: 'password',
+              scope: 'all',
+              type: 'account'
+            };
+            // console.log(data, "自动ssss");
+            request({
+              url: 'http://192.168.109:80/blade-auth/oauth/token',
+              method: 'post',
+              headers: {
+                'Authorization': 'Basic c2FiZXI6c2FiZXJfc2VjcmV0',
+                "Tenant-Id": "000000"
+              },
+              params: data
+            }).then(res => {
+              const data = res.data;
+              if (data.error_description) {
+                Message({
+                  message: data.error_description,
+                  type: 'error'
+                })
+              } else {
+                store.commit('SET_TOKEN', data.access_token);
+                store.commit('SET_REFRESH_TOKEN', data.refresh_token);
+                store.commit('SET_TENANT_ID', data.tenant_id);
+                store.commit('SET_USER_INFO', data);
+                store.commit('DEL_ALL_TAG');
+                store.commit('CLEAR_LOCK');
+              }
+            })
+            return true;
+          } else {
+            // console.log("手动登入main不是JSON对象");
+            return false;
+          }
+
+        } else {
+          next('/login');
+        }
+
+        return;
+      }
+      next('/login');
     }
   }
 })
diff --git a/src/router/axios.js b/src/router/axios.js
index 7b0a00d..9d05a2f 100644
--- a/src/router/axios.js
+++ b/src/router/axios.js
@@ -8,11 +8,11 @@
 import axios from 'axios';
 import store from '@/store/';
 import router from '@/router/router';
-import {serialize} from '@/util/util';
-import {getToken} from '@/util/auth';
-import {Message} from 'element-ui';
+import { serialize } from '@/util/util';
+import { getToken } from '@/util/auth';
+import { Message } from 'element-ui';
 import website from '@/config/website';
-import {Base64} from 'js-base64';
+import { Base64 } from 'js-base64';
 import NProgress from 'nprogress';
 import 'nprogress/nprogress.css';
 
@@ -62,7 +62,7 @@
   //如果在白名单里则自行catch逻辑处理
   if (statusWhiteList.includes(status)) return Promise.reject(res);
   //如果是401则跳转到登录页面
-  if (status === 401) store.dispatch('FedLogOut').then(() => router.push({path: '/login'}));
+  if (status === 401) store.dispatch('FedLogOut').then(() => router.push({ path: '/login' }));
   // 如果请求为非200否者默认统一处理
   if (status !== 200) {
     Message({
diff --git a/src/store/modules/user.js b/src/store/modules/user.js
index f8fe52e..c0e5d63 100644
--- a/src/store/modules/user.js
+++ b/src/store/modules/user.js
@@ -1,11 +1,11 @@
-import {setToken, setRefreshToken, removeToken, removeRefreshToken} from '@/util/auth'
-import {Message} from 'element-ui'
-import {setStore, getStore} from '@/util/store'
-import {isURL, validatenull} from '@/util/validate'
-import {deepClone} from '@/util/util'
+import { setToken, setRefreshToken, removeToken, removeRefreshToken } from '@/util/auth'
+import { Message } from 'element-ui'
+import { setStore, getStore } from '@/util/store'
+import { isURL, validatenull } from '@/util/validate'
+import { deepClone } from '@/util/util'
 import website from '@/config/website'
-import {loginByUsername, loginBySocial, getUserInfo, logout, refreshToken, getButtons} from '@/api/user'
-import {getTopMenu, getRoutes} from '@/api/system/menu'
+import { loginByUsername, loginBySocial, getUserInfo, logout, refreshToken, getButtons } from '@/api/user'
+import { getTopMenu, getRoutes } from '@/api/system/menu'
 import md5 from 'js-md5'
 
 
@@ -34,22 +34,24 @@
 
 const user = {
   state: {
-    tenantId: getStore({name: 'tenantId'}) || '',
-    userInfo: getStore({name: 'userInfo'}) || [],
-    permission: getStore({name: 'permission'}) || {},
+    tenantId: getStore({ name: 'tenantId' }) || '',
+    userInfo: getStore({ name: 'userInfo' }) || [],
+    permission: getStore({ name: 'permission' }) || {},
     roles: [],
     menuId: {},
-    menu: getStore({name: 'menu'}) || [],
-    menuAll: getStore({name: 'menuAll'}) || [],
-    token: getStore({name: 'token'}) || '',
-    refreshToken: getStore({name: 'refreshToken'}) || '',
+    menu: getStore({ name: 'menu' }) || [],
+    menuAll: getStore({ name: 'menuAll' }) || [],
+    token: getStore({ name: 'token' }) || '',
+    refreshToken: getStore({ name: 'refreshToken' }) || '',
   },
   actions: {
     //根据用户名登录
-    LoginByUsername({commit}, userInfo) {
+    LoginByUsername({ commit }, userInfo) {
       return new Promise((resolve, reject) => {
         loginByUsername(userInfo.tenantId, userInfo.username, md5(userInfo.password), userInfo.type, userInfo.key, userInfo.code).then(res => {
+          console.log(res, 'res');
           const data = res.data;
+          console.log(data, 'data');
           if (data.error_description) {
             Message({
               message: data.error_description,
@@ -62,6 +64,7 @@
             commit('SET_USER_INFO', data);
             commit('DEL_ALL_TAG');
             commit('CLEAR_LOCK');
+            console.log(data.access_token, data.refresh_toke, data.tenant_id, data, 'usedatas');
           }
           resolve();
         }).catch(error => {
@@ -70,7 +73,7 @@
       })
     },
     //根据手机号登录
-    LoginByPhone({commit}, userInfo) {
+    LoginByPhone({ commit }, userInfo) {
       return new Promise((resolve) => {
         loginByUsername(userInfo.phone, userInfo.code).then(res => {
           const data = res.data.data;
@@ -82,7 +85,7 @@
       })
     },
     //根据第三方信息登录
-    LoginBySocial({commit}, userInfo) {
+    LoginBySocial({ commit }, userInfo) {
       return new Promise((resolve) => {
         loginBySocial(userInfo.tenantId, userInfo.source, userInfo.code, userInfo.state).then(res => {
           const data = res.data;
@@ -103,7 +106,7 @@
       })
     },
     //获取用户信息
-    GetUserInfo({commit}) {
+    GetUserInfo({ commit }) {
       return new Promise((resolve, reject) => {
         getUserInfo().then((res) => {
           const data = res.data.data;
@@ -115,7 +118,7 @@
       })
     },
     //刷新token
-    refreshToken({state, commit}) {
+    refreshToken({ state, commit }) {
       window.console.log('handle refresh token')
       return new Promise((resolve, reject) => {
         refreshToken(state.refreshToken, state.tenantId).then(res => {
@@ -129,7 +132,7 @@
       })
     },
     // 登出
-    LogOut({commit}) {
+    LogOut({ commit }) {
       return new Promise((resolve, reject) => {
         logout().then(() => {
           commit('SET_TOKEN', '');
@@ -148,7 +151,7 @@
       })
     },
     //注销session
-    FedLogOut({commit}) {
+    FedLogOut({ commit }) {
       return new Promise(resolve => {
         commit('SET_TOKEN', '');
         commit('SET_MENU_ALL_NULL', []);
@@ -172,7 +175,7 @@
       })
     },
     //获取系统菜单
-    GetMenu({commit, dispatch}, topMenuId) {
+    GetMenu({ commit, dispatch }, topMenuId) {
       return new Promise(resolve => {
         getRoutes(topMenuId).then((res) => {
           const data = res.data.data
@@ -188,7 +191,7 @@
       })
     },
     //获取系统按钮
-    GetButtons({commit}) {
+    GetButtons({ commit }) {
       return new Promise((resolve) => {
         getButtons().then(res => {
           const data = res.data.data;
@@ -202,7 +205,7 @@
     SET_TOKEN: (state, token) => {
       setToken(token);
       state.token = token;
-      setStore({name: 'token', content: state.token})
+      setStore({ name: 'token', content: state.token })
     },
     SET_MENU_ID(state, menuId) {
       state.menuId = menuId;
@@ -228,18 +231,18 @@
     SET_REFRESH_TOKEN: (state, refreshToken) => {
       setRefreshToken(refreshToken)
       state.refreshToken = refreshToken;
-      setStore({name: 'refreshToken', content: state.refreshToken})
+      setStore({ name: 'refreshToken', content: state.refreshToken })
     },
     SET_TENANT_ID: (state, tenantId) => {
       state.tenantId = tenantId;
-      setStore({name: 'tenantId', content: state.tenantId})
+      setStore({ name: 'tenantId', content: state.tenantId })
     },
     SET_USER_INFO: (state, userInfo) => {
       if (validatenull(userInfo.avatar)) {
         userInfo.avatar = "/img/bg/img-logo.png";
       }
       state.userInfo = userInfo;
-      setStore({name: 'userInfo', content: state.userInfo})
+      setStore({ name: 'userInfo', content: state.userInfo })
     },
     SET_ROLES: (state, roles) => {
       state.roles = roles;
@@ -266,7 +269,7 @@
       result.forEach(ele => {
         state.permission[ele] = true;
       });
-      setStore({name: 'permission', content: state.permission})
+      setStore({ name: 'permission', content: state.permission })
     }
   }
 
diff --git a/vue.config.js b/vue.config.js
index 3a9b2a9..a639cee 100644
--- a/vue.config.js
+++ b/vue.config.js
@@ -23,11 +23,11 @@
   //开发模式反向代理配置,生产模式请使用Nginx部署并配置反向代理
   devServer: {
     port: 1888,
-    disableHostCheck : true,
+    disableHostCheck: true,
     proxy: {
       '/api': {
         //本地服务接口地址
-        // target: 'http://192.168.0.104',
+        // target: 'http://192.168.0.109:1',
         //远程演示服务地址,可用于直接启动项目
         target: 'http://2h3f861221.wicp.vip:58646',
         ws: true,

--
Gitblit v1.9.3