Quellcode durchsuchen

Merge branch 'develop' of git.sagacloud.cn:web/wanda-bm-guide into develop

guoxiaohuan vor 4 Jahren
Ursprung
Commit
a34030a269
7 geänderte Dateien mit 75 neuen und 21 gelöschten Zeilen
  1. 2 1
      package.json
  2. 5 2
      src/components/Legend/src/legend.vue
  3. 5 4
      src/components/menuList.vue
  4. 1 0
      src/main.ts
  5. 9 4
      src/router/index.js
  6. 32 10
      src/store/index.js
  7. 21 0
      vue.config.js

+ 2 - 1
package.json

@@ -23,7 +23,7 @@
         "leaflet": "^1.6.0",
         "leaflet-contextmenu": "^1.4.0",
         "lodash": "^4.17.19",
-        "meri-design": "^1.3.4",
+        "meri-design": "^1.3.5",
         "moment": "^2.24.0",
         "quill": "^1.3.7",
         "vue": "^2.6.10",
@@ -45,6 +45,7 @@
         "@vue/eslint-config-typescript": "^5.0.2",
         "babel-eslint": "^10.0.3",
         "babel-plugin-component": "^1.1.1",
+        "compression-webpack-plugin": "^4.0.0",
         "cross-env": "^7.0.2",
         "eslint": "^5.16.0",
         "eslint-plugin-vue": "^5.0.0",

+ 5 - 2
src/components/Legend/src/legend.vue

@@ -146,7 +146,7 @@ export default {
         floors: {
             //原理图中有数据楼层
             default: () => {
-                ;[]
+                []
             },
             type: Array
         },
@@ -360,7 +360,10 @@ export default {
                 categoryId = this.categoryId
             }
             const { conf } = window.__systemConf
-            const editerUrl = conf[process.env.NODE_ENV + '_editerUrl']
+            const editerUrl = conf[process.env.NODE_ENV + '_editerUrl'];
+            if(this.plazaId){
+                return
+            }
             let data = `categoryId=${categoryId}&projectId=${this.plazaId}&BuildingID=1&FloorID=${FloorID}&FloorName=${floorName}&fmapID=${this.fmapID}&seq=${seq}&token=${this.ssoToken}`
             let url = editerUrl + 'editer?' + encodeURIComponent(data)
             window.open(url, "edit")

+ 5 - 4
src/components/menuList.vue

@@ -18,12 +18,12 @@
             >{{ item.name }}</div>
         </div>
         <div class='home-right'>
-            <span @click='dumpLegend'>
+            <span @click='dumpLegend' v-show="permissions ? permissions.includes('GLSMS_SYMBOL_MANAGE'):false">
                 <img class='img1' src='../assets/imgs/scj.png' alt />
                 <span class='span1'>图例库</span>
             </span>
 
-            <span @click='toDrafts' class='span-out'>
+            <span @click='toDrafts' class='span-out' v-show="permissions ? permissions.includes('GLSMS_PLANARGRAPH_MANAGE'):false">
                 <img class='img2' src='../assets/imgs/cgx.png' alt />
                 <span class='span2'>草稿箱</span>
                 <span class='span2-num' v-if='draftNum && draftNum <= 99'>{{draftNum}}</span>
@@ -73,7 +73,7 @@ export default {
         }
     },
     computed: {
-        ...mapGetters(['plazas', 'plazaId', 'fmapID', 'plazaName'])
+        ...mapGetters(['plazas', 'plazaId', 'fmapID', 'plazaName','permissions'])
     },
     watch: {
         $route: 'handleRoute'
@@ -92,7 +92,8 @@ export default {
         // 页面销毁前,清除定时器
         this.$once('hook:beforeDestroy', () => {
             clearInterval(this.timer)
-        })
+        });
+        console.log('permissions',this.permissions)
     },
     methods: {
         /**

+ 1 - 0
src/main.ts

@@ -43,6 +43,7 @@ const username = 'lengqiang'
 //     }
 //     next()
 // })
+console.log('main')
 new Vue({
     router,
     store,

+ 9 - 4
src/router/index.js

@@ -88,11 +88,12 @@ const router = new VueRouter({
 const ignore = ["/404"]
 
 router.beforeEach(async (to, from, next) => {
+
     // 如果路径上有plazaId就保存
     let plazaId = to.query.plazaId ?to.query.plazaId:''
     if (plazaId) {
         localStorage.setItem('PLAZAID', plazaId)
-        store.commit('STOREPLAZAID', plazaId)
+        store.commit('STOREPLAZAID', plazaId);
     }
     // 取出刷新时的 ssoToken, 路由拦截时app.vue 生命周期还没有执行,store中还没有数据,
     let beforeunload = localStorage.getItem("beforeunload"),
@@ -120,6 +121,13 @@ router.beforeEach(async (to, from, next) => {
             // 有token 将数据 isPreview赋给 vuex方便取值
             store.commit('SETISPREVIEW', sessionStorage.getItem("SETISPREVIEW"))
             // 如果在跳转获取token之前保存了指定的路径,则后去token后需要跳转到相关页面
+            if(to.path !='/group' || to.path !='/home/homepage' ){
+                if(!store.state.permissions || store.state.permissions.length ==0){
+                    // 如果没有请求permissions则请求getUserInfo
+                    await store.dispatch("getUserInfo", router)
+                }
+            }
+
             if (sessionStorage.getItem("TOURL")) {
                 // 如果去的地址等于缓存的地址
                 if (sessionStorage.getItem("TOURL") == to.path) {
@@ -130,7 +138,6 @@ router.beforeEach(async (to, from, next) => {
                     if (to.path == "/group" || to.path == "/home/homepage") {
                         if (store.state.accessLevel == -1) {
                             await store.dispatch("getUserInfo", router)
-                            console.log('getUserInfo', 4)
                             await store.dispatch("getBrand")
                             // await store.dispatch('getFact')
                         }
@@ -202,8 +209,6 @@ function redirectGetToken (to) {
         version = "1.0.0";
     // 获取token前需要保存跳转前路径
     if (!ignore.includes(to.path)) {
-        console.log('to.query.isPreview',to.query.isPreview);
-        console.log('to.query.isPreview',to.query.plazaId)
     let previewUrl = to.query.isPreview ? to.query.isPreview : '';
     let plazaId = to.query.plazaId ?to.query.plazaId:''
     if (previewUrl) {

+ 32 - 10
src/store/index.js

@@ -14,7 +14,7 @@ import router from '../router'
 Vue.use(Vuex)
 export default new Vuex.Store({
     state: {
-        ssoToken: 'admin:chuyushu',
+        ssoToken: 'admin:liulin34',
         // ssoToken: '',
         // ssoToken: null,
         plazaName: '',
@@ -70,6 +70,7 @@ export default new Vuex.Store({
         planNum: (state) => state.planNum,
         typeNum: (state) => state.typeNum,
         isrequestAuth: (state) => state.isrequestAuth,
+        permissions:(state)=>state.permissions
     },
     mutations: {
         SETPLAZENAME(state, data) {
@@ -94,10 +95,10 @@ export default new Vuex.Store({
         // 设置相关权限信息
         SETAUTHMSG(state, palyload) {
             state.permissions = palyload.permissions
-            state.plazas = palyload.plazas
-            state.userInfo.employeename = palyload.employeename
-            state.userInfo.orgCode = palyload.orgCode
-            state.userInfo.username = palyload.username
+            // state.plazas = palyload.plazas
+            // state.userInfo.employeename = palyload.employeename
+            // state.userInfo.orgCode = palyload.orgCode
+            // state.userInfo.username = palyload.username
         },
         SETISMESSAGE(state, data) {
             state.isMessage = data
@@ -169,7 +170,6 @@ export default new Vuex.Store({
         async getUserInfo({
             commit
         }, palyload) {
-            console.log('getUserInfo', 1)
             await login({
                     returnTree: true,
                 })
@@ -177,10 +177,10 @@ export default new Vuex.Store({
                     // 获取用户当前权限
                     console.log(res.result)
                     if (res.result === 'success') {
-                        console.log('getUserInfo', 2)
                         commit('STOREACCESSLEVEL', res.level)
-                        let level = res.level
-                        if (window.opener) {
+                        commit('SETAUTHMSG',res)
+                        let level = res.level;
+                        if (window.opener.__fromGroupPage) {
                             let data = window.opener.__fromGroupPage
                             level = data.level
                             commit('SETPLAZENAME', data.plazaName)
@@ -216,7 +216,29 @@ export default new Vuex.Store({
                     // })
                     // commit('SETISREQUESTtAUTH', err)
                 })
-            console.log('getUserInfo', 3)
+        },
+        async getUserInfoNoPath({
+            commit
+        }, palyload) {
+            await login({
+                    returnTree: true,
+                })
+                .then((res) => {
+                    if (res.result === 'success') {
+                        commit('STOREACCESSLEVEL', res.level)
+                        commit('SETAUTHMSG',res)
+                        localStorage.setItem('PLAZAID', res.treeData[0].ccode)
+                        commit('STOREPLAZAID', res.treeData[0].ccode)
+                        commit('SETPLAZENAME', res.treeData[0].cname)
+                    }
+                })
+                .catch((err) => {
+                    console.log('getuserfo catch', err)
+                    // router.push({
+                    //     path: '/404',
+                    // })
+                    // commit('SETISREQUESTtAUTH', err)
+                })
         },
         async getFloors(context) {
             await queryFloor({

+ 21 - 0
vue.config.js

@@ -1,3 +1,4 @@
+const CompressionPlugin = require('compression-webpack-plugin')
 module.exports = {
     devServer: {
         port: 8090,
@@ -63,6 +64,8 @@ module.exports = {
             .end()
             .use('vue-svg-loader')
             .loader('vue-svg-loader')
+        config.output.filename('static/js/[name].[hash].js').end()
+        config.output.chunkFilename('static/js/[name].[hash].js').end()
     },
     lintOnSave: false,
     publicPath: '/wandaBmGuide',
@@ -76,4 +79,22 @@ module.exports = {
         "element-ui"
     ],
     productionSourceMap: false, //
+    // CSS 相关选项
+    css: {
+        // 将组件内的 CSS 提取到一个单独的 CSS 文件 (只用在生产环境中)
+        extract: true,
+    },
+    // 配置webpack
+    configureWebpack: (config) => {
+        return {
+            plugins: [
+                // 压缩代码
+                new CompressionPlugin({
+                    test: /\.js$|\.html$|.\css/, // 匹配文件名
+                    threshold: 10240, // 对超过10k的数据压缩
+                    deleteOriginalAssets: false, // true 不删除源文件 false 删除源文件
+                }),
+            ],
+        }
+    },
 }