Bladeren bron

权限问题

YaolongHan 4 jaren geleden
bovenliggende
commit
e2733f4c1f
4 gewijzigde bestanden met toevoegingen van 65 en 62 verwijderingen
  1. 2 1
      src/main.ts
  2. 3 2
      src/router/index.js
  3. 7 6
      src/store/index.js
  4. 53 53
      src/views/statistics/index.vue

+ 2 - 1
src/main.ts

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

+ 3 - 2
src/router/index.js

@@ -121,10 +121,11 @@ 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' ){
+            console.log(to.path)
+            if(to.path !='/group' && to.path !='/home/homepage' && to.path !='/' ){
                 if(!store.state.permissions || store.state.permissions.length ==0){
                     // 如果没有请求permissions则请求getUserInfo
-                    await store.dispatch("getUserInfo", router)
+                    await store.dispatch("getUserInfoNoPath", router)
                 }
             }
 

+ 7 - 6
src/store/index.js

@@ -14,7 +14,7 @@ import router from '../router'
 Vue.use(Vuex)
 export default new Vuex.Store({
     state: {
-        ssoToken: 'admin:liulin34',
+        ssoToken: 'admin:liujiandong',
         // ssoToken: '',
         // ssoToken: null,
         plazaName: '',
@@ -180,7 +180,8 @@ export default new Vuex.Store({
                         commit('STOREACCESSLEVEL', res.level)
                         commit('SETAUTHMSG',res)
                         let level = res.level;
-                        if (window.opener.__fromGroupPage) {
+                        console.log('window.opener',window.opener)
+                        if (window.opener && window.opener.__fromGroupPage) {
                             let data = window.opener.__fromGroupPage
                             level = data.level
                             commit('SETPLAZENAME', data.plazaName)
@@ -225,11 +226,11 @@ export default new Vuex.Store({
                 })
                 .then((res) => {
                     if (res.result === 'success') {
-                        commit('STOREACCESSLEVEL', res.level)
+                        // 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)
+                        // localStorage.setItem('PLAZAID', res.treeData[0].ccode)
+                        // commit('STOREPLAZAID', res.treeData[0].ccode)
+                        // commit('SETPLAZENAME', res.treeData[0].cname)
                     }
                 })
                 .catch((err) => {

+ 53 - 53
src/views/statistics/index.vue

@@ -178,7 +178,7 @@ export default {
                 "东南": 'dongnan',
                 "其他": 'Other'
             },
-            provinceCities: {  // 各个区域的的省会城市  坐标 缩放级别 
+            provinceCities: {  // 各个区域的的省会城市  坐标 缩放级别
                 "青岛": { province: 'shandong', center: [36.06667, 120.33333], zoom: 8 },
                 "北京": { province: 'beijing', center: [39.604882122321174, 116.43660987308282], zoom: 8 },
                 "天津": { province: 'tianjin', center: [39.130593, 117.260892], zoom: 7 },
@@ -263,12 +263,12 @@ export default {
         this.currentTime()
     },
     mounted() {
-    
+
         window.vm = this
         this.getFrameworkTreeData()
         window.addEventListener('resize', this.reinitalMap, false)
     },
-    methods: {  
+    methods: {
         showToolTip (index) {
             this.maintainList.forEach(item => {item.showToolTip = false})
             this.maintainList[index].showToolTip = true
@@ -321,7 +321,7 @@ export default {
             this.currentZoneData = data
         },
         /**
-         * @Description 通过导航进行导航 
+         * @Description 通过导航进行导航
          * @Param id 所选区域的id
          * @Param index 点击项的序号
          */
@@ -332,8 +332,8 @@ export default {
             this.currentZoneData = data
             this.currentLevel = level
             this.getEventStatusData(level, data.ccode)
-            this.queryPlazaInfoCount(data.ccode, data.level, data.cid) 
-            this.getSystemList(data.ccode, data.level) 
+            this.queryPlazaInfoCount(data.ccode, data.level, data.cid)
+            this.getSystemList(data.ccode, data.level)
             if (level === 1) {
                 this.pantGroupMap(data, this.currentSysId)
             } else if (level === 2) {
@@ -356,12 +356,12 @@ export default {
             } else {
                 this.queryPlazaInfoCount(data.ccode, data.level)
             }
-       
-            this.getSystemList(data.ccode, data.level) 
+
+            this.getSystemList(data.ccode, data.level)
             this.getEventStatusData(this.currentLevel, data.ccode)
             this.createNavpathByData(data)
             this.currentZoneData = data
-  
+
             let level = data.level // //1集团 2中心 3区域 0广场
             if (level === 1) {
                 this.pantGroupMap(data, this.currentSysId)
@@ -371,22 +371,22 @@ export default {
                 this.pantProjectsMap(data, this.currentSysId)
             } else {   // 点击项为广场时 直接跳转到详情页  地图不用响应
                 let pathData = {fromGroup: 'true'}
-                let routeData = this.$router.resolve({  
-                    name:'/home/homePage',
-                })
+                let routeData = this.$router.resolve({
+                    path:'/home/overview',query:{plazaId:data.ccode}
+                     });
                 window.open(routeData.href, true);
                 window.__fromGroupPage = {
                     level: 0,
                     plazaName: data.cname,
                     plazaId: data.ccode
                 }
-                this.$store.commit('SETPLAZENAME', data.cname) 
+                this.$store.commit('SETPLAZENAME', data.cname)
                 localStorage.setItem('PLAZAID', data.ccode)
-                this.$store.commit('STOREPLAZAID', data.ccode) 
-                this.$store.commit('SETISGETMAP',true) 
+                this.$store.commit('STOREPLAZAID', data.ccode)
+                this.$store.commit('SETISGETMAP',true)
             }
         },
-   
+
         /**
          * @Description  查询项目信息统计数量
          * @Param  ccode  管理分区编码 必填
@@ -471,7 +471,7 @@ export default {
             })
         },
          /**
-        * @Description 展开 维保 第三方检测 专维 
+        * @Description 展开 维保 第三方检测 专维
         * @Param  item 展开的某一项
         */
         toggerPanel(item) {
@@ -506,7 +506,7 @@ export default {
         /**
         *@Description 根据数据计算维保/第三方检测/专维各自颜色条的长度  维保、第三方检测是用即将逾期数据判断;专维是如果有逾期未完成直接标红,如果没有,按照即将逾期的数量显示颜色
         *@Param item 某一项的数据
-        *@Param title 标题 
+        *@Param title 标题
         */
         barStyle(item, title) {
             let bg = ''
@@ -514,7 +514,7 @@ export default {
             let ratio = 0
             if (title === '专维') {
                 if (item.unfinished>0) {
-                    bg = 'linear-gradient(to right, #F54E45 , #F54E45)'  
+                    bg = 'linear-gradient(to right, #F54E45 , #F54E45)'
                 } else {
                     bg = this.barColors[type]
                 }
@@ -529,11 +529,11 @@ export default {
             }
         },
         /**
-         * @Description 根据数据来返 维保/第三方检测/专维 三个模块中显示条的颜色 
+         * @Description 根据数据来返 维保/第三方检测/专维 三个模块中显示条的颜色
          * @Param num 即将逾期数 / 逾期未完成数
          * @Param total 总数
          */
-        selectColorByNum (num, total) {    
+        selectColorByNum (num, total) {
             let devide =  num / total
             if ( (num > 1 && num <=24  ) || (  devide > 0.1 && devide <=0.2 ) ) {
                 return 0
@@ -543,7 +543,7 @@ export default {
                 return 2
             }
         },
-  
+
         /**
         * @Description 根据数据 判定地图上图标的显示显示颜色
         * @Param data 作为判断的数据
@@ -581,7 +581,7 @@ export default {
             this.times = moment().format('YYYY.MM.DD HH:mm')
             setTimeout(this.currentTime, 1000)
         },
- 
+
          /**
         * @Description 格式化时间
         * @method param empty
@@ -601,7 +601,7 @@ export default {
         * @method param plazaId 广场id  如果是广场则此参数必填 其他情况下非必填
         */
         getSystemList(ccode, level) {
-            let params = null 
+            let params = null
             if (level === 0) {
                 params = {getParams:{plazaId: ccode, level}}
             } else {
@@ -633,7 +633,7 @@ export default {
          * @Param ccode 管理分区编码 必填
          * @Param level 1集团 2中心 3区域 0广场 必填
          */
-        getEventStatusData(level, ccode) {  
+        getEventStatusData(level, ccode) {
             let params = {
                 getParams: {
                     level,
@@ -643,7 +643,7 @@ export default {
             queryEventStatus(params).then(res => {
                 if (res.result === 'success') {
                     let data = res.data
-                    let orginalObj = { 
+                    let orginalObj = {
                         1:{title:'维保',data:[], expand: 0, showToolTip:false},
                         2:{title:'第三方检测',data:[], expand: 0, showToolTip:false},
                         0:{title:'专维',data:[], expand: 0, showToolTip:false},
@@ -704,13 +704,13 @@ export default {
                     }
                 }
             }).addTo(myMaps)
-            if (this.currentLevel === 1) {//1集团 
+            if (this.currentLevel === 1) {//1集团
                 this.pantGroupMap(this.currentZoneData, this.currentSysId)
             } else if (this.currentLevel === 2) {  // 2中心
                 this.pantZonesMap(this.currentZoneData, this.currentSysId)
-            } else if (this.currentLevel === 3) {  // 3区域 
+            } else if (this.currentLevel === 3) {  // 3区域
                 this.pantProjectsMap(this.currentZoneData, this.currentSysId)
-            }  
+            }
         },
         /**
          * @Description 清空地图 并添加全国底图
@@ -772,7 +772,7 @@ export default {
                 let promise = new Promise((resolve, reject) => {
                     let params = {
                         getParams: {
-                            smsxt: this.currentSysId,  
+                            smsxt: this.currentSysId,
                             level: 2,    // 中心
                             ccode: item.ccode
                         }
@@ -836,7 +836,7 @@ export default {
             data.children.forEach(item => {
                 let params = {
                     getParams: {
-                        smsxt: this.currentSysId, 
+                        smsxt: this.currentSysId,
                         level: 3,   // 区域
                         ccode: item.ccode
                     }
@@ -864,7 +864,7 @@ export default {
             })
             groupLayer.addTo(myMaps)
         },
-        
+
         /**
          * @Description 用于绘制项目的点
          * @Param data 数据
@@ -888,7 +888,7 @@ export default {
             let params = {
                 getParams: {
                     plazaId: item.cid,   // 所查对象是广场的时候plazaId必传
-                    smsxt: this.currentSysId,  
+                    smsxt: this.currentSysId,
                     level: 0,   // 广场
                     ccode: item.ccode
                 }
@@ -936,9 +936,9 @@ export default {
                 html: name,
                 className: 'my-leaflet-div-icon',
                 iconSize: 30
-            }) 
+            })
             let sizes = this.circleSize[zoom]
-            if (color  && center) { 
+            if (color  && center) {
                 popup = L.popup({closeOnClick:true}).setLatLng(center).setContent(contentHtml)
                 marker = L.marker([center[0] - sizes.offset,  center[1]], { icon: myIcon }).addTo(groupLayer)
                 outCircle = L.circle(center, sizes.outer, { color: 'transparent', fillColor: color.border, fillOpacity: 1 }).bindPopup(contentHtml).addTo(groupLayer)
@@ -951,7 +951,7 @@ export default {
                     this.currentZoneData = data
                     this.currentLevel = data.level
                     this.getEventStatusData(data.level, data.ccode)
-                    this.queryPlazaInfoCount(data.ccode, data.level) 
+                    this.queryPlazaInfoCount(data.ccode, data.level)
                     if (type !== 'project') {
                         groupLayer.clearLayers()
                     }
@@ -959,28 +959,29 @@ export default {
                     this.getSystemList(data.ccode, data.level)
                     if (type === 'group') {
                         this.pantZonesMap(data, this.currentSysId)
-                    } 
+                    }
                     if (type === 'zone') {
                         this.pantProjectsMap(data, this.currentSysId)
-                    } 
+                    }
                     if (type === 'project') {
-                        let routeData = this.$router.resolve({
-                            name:'/home/homePage',
-                        })
+
+                            let routeData = this.$router.resolve({
+                    path:'/home/overview',query:{plazaId:data.ccode}
+                     });
                         window.open(routeData.href, '_blank');
                         window.__fromGroupPage = {
                             level: 0,
                             plazaName: data.cname,
                             plazaId: data.ccode
                         }
-                        this.$store.commit('SETPLAZENAME', data.cname) 
+                        this.$store.commit('SETPLAZENAME', data.cname)
                         localStorage.setItem('PLAZAID', data.ccode)
-                        this.$store.commit('STOREPLAZAID', data.ccode) 
-                        this.$store.commit('SETISGETMAP',true) 
-                    }   
+                        this.$store.commit('STOREPLAZAID', data.ccode)
+                        this.$store.commit('SETISGETMAP',true)
+                    }
                 })
             }
-          
+
         },
         /**
          *@Description 生成弹出框HTML
@@ -994,7 +995,7 @@ export default {
                     let item = data[i]
                     if (item.is_exception_num) {
                         html += `<div class="line">
-                            <span>${item.category_name}</span> 
+                            <span>${item.category_name}</span>
                             <span>${item.asset_num || '--'}台</span>
                             <span><span style="display: inline-block;width: 16px;height: 16px;line-height: 16px;border-radius: 8px; color: white; background : #F54E45;text-align: center;cursor: default;">!</span><em>${
                                 item.is_exception_num
@@ -1002,7 +1003,7 @@ export default {
                         </div>`
                     } else {
                         html += `<div class="line">
-                            <span>${item.category_name}</span> 
+                            <span>${item.category_name}</span>
                             <span>${item.asset_num || '--'}台</span>
                         </div>`
                     }
@@ -1012,7 +1013,7 @@ export default {
                 return ''
             }
         },
-        
+
     },
     beforeDestroy() {
         window.removeEventListener('resize', this.reinitalMap)
@@ -1203,7 +1204,7 @@ export default {
                 margin-left: 1.2rem;
             }
         }
-        
+
         .system-general {
             width: 25.4%;
             box-sizing: border-box;
@@ -1232,7 +1233,7 @@ export default {
                             display: flex;
                             align-items: center;
                             width: 28%;
-                            padding: 1.2rem 0 1.2rem 1rem ;  
+                            padding: 1.2rem 0 1.2rem 1rem ;
                             border-right: 1px solid #EFF0F1;
                             .img {
                                 height: 2.8rem;
@@ -1474,5 +1475,4 @@ export default {
         }
     }
 }
-</style> 
- 
+</style>