xiaohaizhao 19 годин тому
батько
коміт
db3aa79c51
2 змінених файлів з 61 додано та 0 видалено
  1. 22 0
      src/components/newLayout/modules/header.vue
  2. 39 0
      src/utils/basic-data.js

+ 22 - 0
src/components/newLayout/modules/header.vue

@@ -87,6 +87,14 @@
           >
         </el-dropdown-menu>
       </el-dropdown>
+      <el-tooltip content="强制刷新配置" placement="bottom">
+        <i
+          class="el-icon-refresh"
+          style="margin-left: 15px; margin-right: 15px; cursor: pointer; font-size: 16px"
+          :class="{ 'is-loading': refreshing }"
+          @click="refreshConfigs"
+        ></i>
+      </el-tooltip>
       <el-dropdown>
         <span class="el-dropdown-link">
           <div class="flex">
@@ -156,6 +164,7 @@ export default {
       languagename: "",
       usertype: JSON.parse(sessionStorage.getItem("active_account")).usertype,
       siteid: JSON.parse(sessionStorage.getItem("active_account")).siteid,
+      refreshing: false,
     };
   },
   props: ["onRender"],
@@ -353,6 +362,19 @@ export default {
           });
       });
     },
+    async refreshConfigs () {
+      this.refreshing = true
+      try {
+        await this.basicData.refreshAllConfigs()
+        this.$message.success('配置刷新成功')
+        setTimeout(() => {
+          this.$router.go(0)
+        }, 300)
+      } catch (e) {
+        this.refreshing = false
+        this.$message.error('配置刷新失败,请重试')
+      }
+    },
   },
   mounted() {
     this.siteInfos();

+ 39 - 0
src/utils/basic-data.js

@@ -99,6 +99,44 @@ function querySite_Parameter () {
     }
   })
 }
+function refreshAllConfigs () {
+  return new Promise((resolve, reject) => {
+    const ts = Date.now()
+    const oldApp = JSON.parse(sessionStorage.getItem('activeApp'))
+    sessionStorage.removeItem('module_info')
+    sessionStorage.removeItem('active_modules')
+    sessionStorage.removeItem('activeApp')
+    sessionStorage.removeItem('folderid')
+    Promise.all([
+      api.requested({
+        "classname": "sysmanage.develop.userauthforweb.userauth",
+        "method": "query_userauth",
+        "content": { "place": 1, "_t": ts }
+      }),
+      api.requested({
+        "classname": "webmanage.site.site",
+        "method": "querySite_Parameter",
+        "content": { "_t": ts }
+      })
+    ]).then(([authRes, siteRes]) => {
+      let active_modules = authRes.data[0].modules[0]
+      let targetApp = oldApp && findAppByName(authRes.data, oldApp.name) ? oldApp : active_modules.apps[0]
+      sessionStorage.setItem('module_info', JSON.stringify(authRes.data))
+      sessionStorage.setItem('active_modules', JSON.stringify(active_modules))
+      sessionStorage.setItem('activeApp', JSON.stringify(targetApp))
+      store.dispatch('setActiveApp', { name: targetApp.systemappname, app: targetApp, val: '' })
+      if (siteRes && siteRes.data) {
+        let obj = {
+          appfolderid: siteRes.data.appfolderid,
+          salematerialfolderid: siteRes.data.salematerialfolderid
+        }
+        sessionStorage.setItem('folderid', JSON.stringify(obj))
+      }
+      resolve()
+    }).catch(reject)
+  })
+}
+
 setTimeout(() => {
   arealist ()
   getEnterpriseList()
@@ -108,6 +146,7 @@ setTimeout(() => {
 export default{
   query_userauth,
   querySite_Parameter,
+  refreshAllConfigs,
   data () {
     return {
       areaData,