Merge branch 'feature-station-renpy'
This commit is contained in:
		
						commit
						71ee6027b2
					
				|  | @ -83,6 +83,6 @@ export default { | ||||||
| </script> | </script> | ||||||
| <style lang="less" scoped> | <style lang="less" scoped> | ||||||
| .custom-chart { | .custom-chart { | ||||||
|   height: 100% !important; |   // height: 100% !important; | ||||||
| } | } | ||||||
| </style> | </style> | ||||||
|  |  | ||||||
|  | @ -28,6 +28,14 @@ export default { | ||||||
|       type: Array, |       type: Array, | ||||||
|       required: true |       required: true | ||||||
|     }, |     }, | ||||||
|  |     currList: { | ||||||
|  |       type: Array, | ||||||
|  |       required: true | ||||||
|  |     }, | ||||||
|  |     orgList: { | ||||||
|  |       type: Array, | ||||||
|  |       required: true | ||||||
|  |     }, | ||||||
|     markerType: { |     markerType: { | ||||||
|       type: Number, |       type: Number, | ||||||
|       default: 1 |       default: 1 | ||||||
|  | @ -151,23 +159,32 @@ export default { | ||||||
| 
 | 
 | ||||||
|     // 初始化波纹 |     // 初始化波纹 | ||||||
|     initRipples() { |     initRipples() { | ||||||
|       this.list |       this.currList | ||||||
|         .filter( |         // .filter( | ||||||
|           stationInfo => |         //   stationInfo => | ||||||
|             stationInfo.stationType !== MarkerType.NuclearFacility && stationInfo.stationType !== MarkerType.NRL |         //     stationInfo.stationType !== MarkerType.NuclearFacility && stationInfo.stationType !== MarkerType.NRL | ||||||
|         ) |         // ) | ||||||
|         .forEach(stationInfo => { |         .forEach(stationInfo => { | ||||||
|           this.map.addOverlay(this.getRipple(stationInfo)) |           this.map.addOverlay(this.getRipple(stationInfo)) | ||||||
|         }) |         }) | ||||||
|     }, |     }, | ||||||
| 
 | 
 | ||||||
|     getRipple({ lon, lat, stationId, stationType }) { |     getRipple({ lon, lat, stationId, stationType, quality }) { | ||||||
|       const rippleDiv = document.createElement('div') |       const rippleDiv = document.createElement('div') | ||||||
|       rippleDiv.className = 'custom-ripple' |       rippleDiv.className = 'custom-ripple' | ||||||
| 
 |       if (quality == "excellent") { | ||||||
|       rippleDiv.innerHTML = ` <div class="inner-ripple-1"></div> |         rippleDiv.innerHTML = ` <div class="inner-ripple-excellent-1"></div> | ||||||
|                               <div class="inner-ripple-2"></div> |                                 <div class="inner-ripple-excellent-2"></div> | ||||||
|                             ` |                               ` | ||||||
|  |       } else if (quality == "good") { | ||||||
|  |         rippleDiv.innerHTML = ` <div class="inner-ripple-good-1"></div> | ||||||
|  |                                 <div class="inner-ripple-good-2"></div> | ||||||
|  |                               ` | ||||||
|  |       } else if(quality == "bad"){ | ||||||
|  |         rippleDiv.innerHTML = ` <div class="inner-ripple-bad-1"></div> | ||||||
|  |                                 <div class="inner-ripple-bad-2"></div> | ||||||
|  |                               ` | ||||||
|  |       } | ||||||
| 
 | 
 | ||||||
|       return new Overlay({ |       return new Overlay({ | ||||||
|         position: fromLonLat([lon, lat]), |         position: fromLonLat([lon, lat]), | ||||||
|  | @ -209,7 +226,10 @@ export default { | ||||||
|           result.lon = decimalToDms(result.lon || result.longitude) |           result.lon = decimalToDms(result.lon || result.longitude) | ||||||
|           result.lat = decimalToDms(result.lat || result.latitude, false) |           result.lat = decimalToDms(result.lat || result.latitude, false) | ||||||
| 
 | 
 | ||||||
|           this.currStationInfo = result |           let params = this.currList.find(item => { | ||||||
|  |             return item.stationId === result.stationId | ||||||
|  |           }) || {} | ||||||
|  |           this.currStationInfo = { ...result, ...params } | ||||||
|         } else { |         } else { | ||||||
|           this.$message.error(message) |           this.$message.error(message) | ||||||
|         } |         } | ||||||
|  | @ -234,6 +254,20 @@ export default { | ||||||
|       if (this.markerType == 2) { |       if (this.markerType == 2) { | ||||||
|         this.initCircles() |         this.initCircles() | ||||||
|       } |       } | ||||||
|  |     }, | ||||||
|  |     currList: { | ||||||
|  |       handler(newVal, oldVal) { | ||||||
|  |         this.orgList.forEach(item => { | ||||||
|  |           var layer = this.map.getOverlays().getArray().find(layer=> { | ||||||
|  |             return layer.id === `ripple_${item.stationType}_${item.stationId}`; | ||||||
|  |           }); | ||||||
|  |           if (layer) { | ||||||
|  |             this.map.removeOverlay(layer); | ||||||
|  |           } | ||||||
|  |         }) | ||||||
|  |         this.initRipples() | ||||||
|  |       }, | ||||||
|  |       deep:true | ||||||
|     } |     } | ||||||
|   } |   } | ||||||
| } | } | ||||||
|  | @ -266,6 +300,7 @@ export default { | ||||||
|       line-height: 30px; |       line-height: 30px; | ||||||
|       border-bottom: 1px solid #0a544e; |       border-bottom: 1px solid #0a544e; | ||||||
|       margin-bottom: 0; |       margin-bottom: 0; | ||||||
|  |       color: rgb(187, 138, 18); | ||||||
|     } |     } | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|  | @ -301,7 +336,7 @@ export default { | ||||||
|   @duration: 1.8s; |   @duration: 1.8s; | ||||||
|   @delay: 0.9s; |   @delay: 0.9s; | ||||||
| 
 | 
 | ||||||
|   .inner-ripple-1 { |   .inner-ripple-excellent-1 { | ||||||
|     position: absolute; |     position: absolute; | ||||||
|     top: 0; |     top: 0; | ||||||
|     width: 100%; |     width: 100%; | ||||||
|  | @ -311,7 +346,7 @@ export default { | ||||||
|     animation: rippleEffect @duration linear 0s infinite; |     animation: rippleEffect @duration linear 0s infinite; | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|   .inner-ripple-2 { |   .inner-ripple-excellent-2 { | ||||||
|     position: absolute; |     position: absolute; | ||||||
|     top: 0; |     top: 0; | ||||||
|     width: 100%; |     width: 100%; | ||||||
|  | @ -321,6 +356,46 @@ export default { | ||||||
|     background-image: radial-gradient(circle, transparent 10%, rgba(15, 148, 28, 0.2) 30%, rgba(15, 148, 28, 0.5) 60%); |     background-image: radial-gradient(circle, transparent 10%, rgba(15, 148, 28, 0.2) 30%, rgba(15, 148, 28, 0.5) 60%); | ||||||
|     animation: rippleEffect @duration linear @delay infinite; |     animation: rippleEffect @duration linear @delay infinite; | ||||||
|   } |   } | ||||||
|  |   .inner-ripple-good-1 { | ||||||
|  |     position: absolute; | ||||||
|  |     top: 0; | ||||||
|  |     width: 100%; | ||||||
|  |     height: 100%; | ||||||
|  |     border-radius: 50%; | ||||||
|  |     background-image: radial-gradient(circle, transparent 10%, rgba(187, 138, 18, 0.2) 30%, rgba(187, 138, 18, 0.5) 60%); | ||||||
|  |     animation: rippleEffect @duration linear 0s infinite; | ||||||
|  |   } | ||||||
|  | 
 | ||||||
|  |   .inner-ripple-good-2 { | ||||||
|  |     position: absolute; | ||||||
|  |     top: 0; | ||||||
|  |     width: 100%; | ||||||
|  |     height: 100%; | ||||||
|  |     border-radius: 50%; | ||||||
|  |     transform: scale(0); | ||||||
|  |     background-image: radial-gradient(circle, transparent 10%, rgba(187, 138, 18, 0.2) 30%, rgba(187, 138, 18, 0.5) 60%); | ||||||
|  |     animation: rippleEffect @duration linear @delay infinite; | ||||||
|  |   } | ||||||
|  |   .inner-ripple-bad-1 { | ||||||
|  |     position: absolute; | ||||||
|  |     top: 0; | ||||||
|  |     width: 100%; | ||||||
|  |     height: 100%; | ||||||
|  |     border-radius: 50%; | ||||||
|  |     background-image: radial-gradient(circle, transparent 10%, rgba(165, 58, 35, 0.2) 30%, rgba(165, 58, 35, 0.5) 60%); | ||||||
|  |     animation: rippleEffect @duration linear 0s infinite; | ||||||
|  |   } | ||||||
|  | 
 | ||||||
|  |   .inner-ripple-bad-2 { | ||||||
|  |     position: absolute; | ||||||
|  |     top: 0; | ||||||
|  |     width: 100%; | ||||||
|  |     height: 100%; | ||||||
|  |     border-radius: 50%; | ||||||
|  |     transform: scale(0); | ||||||
|  |     background-image: radial-gradient(circle, transparent 10%, rgba(165, 58, 35, 0.2) 30%, rgba(165, 58, 35, 0.5) 60%); | ||||||
|  |     animation: rippleEffect @duration linear @delay infinite; | ||||||
|  |   } | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| @keyframes rippleEffect { | @keyframes rippleEffect { | ||||||
|  |  | ||||||
|  | @ -18,15 +18,15 @@ | ||||||
|         </div> |         </div> | ||||||
|         <div> |         <div> | ||||||
|           <img |           <img | ||||||
|             v-if="active == 1" |             v-if="active == 1 && showPane" | ||||||
|             src="@/assets/images/station-operation/station-operate-active.png" |             src="@/assets/images/station-operation/station-operate-active.png" | ||||||
|             @click="showPane = !showPane" |             @click="handleHide" | ||||||
|           /> |           /> | ||||||
|           <img v-else src="@/assets/images/station-operation/station-operate.png" @click="onPaneChange(1)" /> |           <img v-else src="@/assets/images/station-operation/station-operate.png" @click="onPaneChange(1)" /> | ||||||
|         </div> |         </div> | ||||||
|         <div> |         <div> | ||||||
|           <img |           <img | ||||||
|             v-if="active == 2" |             v-if="active == 2 && showPane" | ||||||
|             src="@/assets/images/station-operation/filter-station-active.png" |             src="@/assets/images/station-operation/filter-station-active.png" | ||||||
|             @click="showPane = !showPane" |             @click="showPane = !showPane" | ||||||
|           /> |           /> | ||||||
|  | @ -233,9 +233,10 @@ | ||||||
|         <!-- 右侧图表展示栏 --> |         <!-- 右侧图表展示栏 --> | ||||||
|         <div class="data-receive-status-chart" :class="{ 'on-screen': !leftPaneShow }"> |         <div class="data-receive-status-chart" :class="{ 'on-screen': !leftPaneShow }"> | ||||||
|           <template v-if="showChart"> |           <template v-if="showChart"> | ||||||
|             <RealTimeDataChart ref="realtimeChartRef" :list="statusList" :scale-settings="initialDataRecieveSettings" /> |             <RealTimeDataChart ref="realtimeChartRef" :spinning="spinLoading" :list="statusList" :scale-settings="initialDataRecieveSettings" /> | ||||||
|             <resize-observer @notify="handleResize" /> |             <resize-observer @notify="handleResize" /> | ||||||
|           </template> |           </template> | ||||||
|  |           <div v-show="maskVisi" style="z-index: 1;position: absolute;top: 0;left: 0;width:100%;height: 100%;background: rgba(0, 0, 0, .45);"></div> | ||||||
|         </div> |         </div> | ||||||
|         <!-- 右侧图表展示栏结束 --> |         <!-- 右侧图表展示栏结束 --> | ||||||
|       </div> |       </div> | ||||||
|  | @ -419,7 +420,9 @@ export default { | ||||||
| 
 | 
 | ||||||
|       markerList: [], // 要在地图上展示的marker列表 |       markerList: [], // 要在地图上展示的marker列表 | ||||||
| 
 | 
 | ||||||
|       showPane: true |       showPane: true, | ||||||
|  |       spinLoading: false, | ||||||
|  |       maskVisi: false | ||||||
|     } |     } | ||||||
|   }, |   }, | ||||||
|   created() { |   created() { | ||||||
|  | @ -468,6 +471,7 @@ export default { | ||||||
| 
 | 
 | ||||||
|     // 面板改变 |     // 面板改变 | ||||||
|     onPaneChange(active) { |     onPaneChange(active) { | ||||||
|  |       this.showPane = true | ||||||
|       this.active = active |       this.active = active | ||||||
|       const source = this.circleLayer.getSource() |       const source = this.circleLayer.getSource() | ||||||
|       source.clear() // 清理图层 |       source.clear() // 清理图层 | ||||||
|  | @ -483,6 +487,12 @@ export default { | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
| 
 | 
 | ||||||
|  |     handleHide() { | ||||||
|  |       this.showPane = !this.showPane | ||||||
|  |       this.emitDrawCircle(1) | ||||||
|  |       this.emitFilter() | ||||||
|  |     }, | ||||||
|  | 
 | ||||||
|     // 根据 Filter 筛选Marker |     // 根据 Filter 筛选Marker | ||||||
|     emitFilter() { |     emitFilter() { | ||||||
|       const filterType = this.filterList.filter(item => item.checked).map(item => item.type) |       const filterType = this.filterList.filter(item => item.checked).map(item => item.type) | ||||||
|  | @ -719,6 +729,8 @@ export default { | ||||||
| 
 | 
 | ||||||
|     // 获取数据接收状态列表 |     // 获取数据接收状态列表 | ||||||
|     async getDataRecieveStatusList() { |     async getDataRecieveStatusList() { | ||||||
|  |       this.maskVisi = true | ||||||
|  |       this.spinLoading = true | ||||||
|       try { |       try { | ||||||
|         this.isGettingStatusList = true |         this.isGettingStatusList = true | ||||||
|         const { success, result, message } = await getAction( |         const { success, result, message } = await getAction( | ||||||
|  | @ -727,6 +739,8 @@ export default { | ||||||
|             userId: this.$store.getters.userInfo.id |             userId: this.$store.getters.userInfo.id | ||||||
|           } |           } | ||||||
|         ) |         ) | ||||||
|  |         this.maskVisi = false | ||||||
|  |         this.spinLoading = false | ||||||
|         if (success) { |         if (success) { | ||||||
|           const statusList = [] |           const statusList = [] | ||||||
|           result.forEach(item => { |           result.forEach(item => { | ||||||
|  | @ -745,6 +759,8 @@ export default { | ||||||
|           this.$message.error(message) |           this.$message.error(message) | ||||||
|         } |         } | ||||||
|       } catch (error) { |       } catch (error) { | ||||||
|  |         this.maskVisi = false | ||||||
|  |         this.spinLoading = false | ||||||
|         console.error(error) |         console.error(error) | ||||||
|       } finally { |       } finally { | ||||||
|         this.isGettingStatusList = false |         this.isGettingStatusList = false | ||||||
|  | @ -1157,8 +1173,7 @@ export default { | ||||||
|     right: 15px; |     right: 15px; | ||||||
|     width: calc(100% - 270px); |     width: calc(100% - 270px); | ||||||
|     height: 100%; |     height: 100%; | ||||||
|     overflow: auto; |     padding: 0 0 10px 15px; | ||||||
|     padding: 0 15px 10px; |  | ||||||
|     border: 1px solid @borderColor; |     border: 1px solid @borderColor; | ||||||
|     transition: width 0.3s cubic-bezier(0.075, 0.82, 0.165, 1); |     transition: width 0.3s cubic-bezier(0.075, 0.82, 0.165, 1); | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -1,5 +1,5 @@ | ||||||
| <template> | <template> | ||||||
|   <div> |   <div style="width: 100%;height: 100%;overflow: auto;padding-top: 76px;"> | ||||||
|     <!-- 图例 --> |     <!-- 图例 --> | ||||||
|     <div class="legend"> |     <div class="legend"> | ||||||
|       <div |       <div | ||||||
|  | @ -15,6 +15,7 @@ | ||||||
|     </div> |     </div> | ||||||
|     <!-- 图例结束 --> |     <!-- 图例结束 --> | ||||||
|     <custom-chart ref="customChartRef" :option="option" :height="list.length * 295"></custom-chart> |     <custom-chart ref="customChartRef" :option="option" :height="list.length * 295"></custom-chart> | ||||||
|  |     <a-spin style="z-index: 11;position: absolute;top: 45%;left: 48%;" :spinning="spinning" /> | ||||||
|   </div> |   </div> | ||||||
| </template> | </template> | ||||||
| 
 | 
 | ||||||
|  | @ -79,6 +80,9 @@ export default { | ||||||
|     title: { |     title: { | ||||||
|       type: String |       type: String | ||||||
|     }, |     }, | ||||||
|  |     spinning: { | ||||||
|  |       type: Boolean | ||||||
|  |     }, | ||||||
|     list: { |     list: { | ||||||
|       type: Array, |       type: Array, | ||||||
|       default: () => [] |       default: () => [] | ||||||
|  | @ -295,9 +299,16 @@ export default { | ||||||
| 
 | 
 | ||||||
| <style lang="less" scoped> | <style lang="less" scoped> | ||||||
| .legend { | .legend { | ||||||
|   margin: 32px 0; |   width: 100%; | ||||||
|  |   padding: 25px 0; | ||||||
|   display: flex; |   display: flex; | ||||||
|   justify-content: center; |   justify-content: center; | ||||||
|  |   position: absolute; | ||||||
|  |   top: 0; | ||||||
|  |   left: 50%; | ||||||
|  |   transform: translateX(-50%); | ||||||
|  |   background: #022024; | ||||||
|  |   z-index: 11; | ||||||
| 
 | 
 | ||||||
|   &-item { |   &-item { | ||||||
|     color: #ade6ee; |     color: #ade6ee; | ||||||
|  |  | ||||||
|  | @ -116,6 +116,24 @@ export default { | ||||||
|     }, { |     }, { | ||||||
|         label: 'TYPE', |         label: 'TYPE', | ||||||
|         key: 'type' |         key: 'type' | ||||||
|  |     }, { | ||||||
|  |         label: 'USED', | ||||||
|  |         key: 'used' | ||||||
|  |     }, { | ||||||
|  |         label: 'PHD', | ||||||
|  |         key: 'phd' | ||||||
|  |     }, { | ||||||
|  |         label: 'PHDF', | ||||||
|  |         key: 'phdf' | ||||||
|  |     }, { | ||||||
|  |         label: 'MET', | ||||||
|  |         key: 'met' | ||||||
|  |     }, { | ||||||
|  |         label: 'SOH', | ||||||
|  |         key: 'soh' | ||||||
|  |     }, { | ||||||
|  |         label: 'PHDF+MET+SOH', | ||||||
|  |         key: 'phdMetSoh' | ||||||
|     }], |     }], | ||||||
|     [MarkerType.ImsRnStationG]: [{ |     [MarkerType.ImsRnStationG]: [{ | ||||||
|         label: 'COUNTRYCODE', |         label: 'COUNTRYCODE', | ||||||
|  | @ -153,6 +171,24 @@ export default { | ||||||
|     }, { |     }, { | ||||||
|         label: 'TYPE', |         label: 'TYPE', | ||||||
|         key: 'type' |         key: 'type' | ||||||
|  |     }, { | ||||||
|  |         label: 'USED', | ||||||
|  |         key: 'used' | ||||||
|  |     }, { | ||||||
|  |         label: 'PHD', | ||||||
|  |         key: 'phd' | ||||||
|  |     }, { | ||||||
|  |         label: 'PHDF', | ||||||
|  |         key: 'phdf' | ||||||
|  |     }, { | ||||||
|  |         label: 'MET', | ||||||
|  |         key: 'met' | ||||||
|  |     }, { | ||||||
|  |         label: 'SOH', | ||||||
|  |         key: 'soh' | ||||||
|  |     }, { | ||||||
|  |         label: 'PHDF+MET+SOH', | ||||||
|  |         key: 'phdMetSoh' | ||||||
|     }], |     }], | ||||||
|     [MarkerType.NRL]: [{ |     [MarkerType.NRL]: [{ | ||||||
|         label: 'COUNTRYCODE', |         label: 'COUNTRYCODE', | ||||||
|  |  | ||||||
|  | @ -144,7 +144,14 @@ | ||||||
|         ref="mapRef" |         ref="mapRef" | ||||||
|         token="AAPK2b935e8bbf564ef581ca3c6fcaa5f2a71ZH84cPqqFvyz3KplFRHP8HyAwJJkh6cnpcQ-qkWh5aiyDQsGJbsXglGx0QM2cPm" |         token="AAPK2b935e8bbf564ef581ca3c6fcaa5f2a71ZH84cPqqFvyz3KplFRHP8HyAwJJkh6cnpcQ-qkWh5aiyDQsGJbsXglGx0QM2cPm" | ||||||
|       > |       > | ||||||
|         <MapMarker :list="markerList" :marker-type="markerType" :radius="circleRadius" @markerClick="onMarkerClick" /> |         <MapMarker  | ||||||
|  |           :list="markerList"  | ||||||
|  |           :currList="upDateStationList"  | ||||||
|  |           :orgList="orgStationList"  | ||||||
|  |           :marker-type="markerType"  | ||||||
|  |           :radius="circleRadius"  | ||||||
|  |           @markerClick="onMarkerClick"  | ||||||
|  |         /> | ||||||
|         <MapPane |         <MapPane | ||||||
|           ref="mapPane" |           ref="mapPane" | ||||||
|           :treeData="treeData" |           :treeData="treeData" | ||||||
|  | @ -164,7 +171,7 @@ import DataListItem from './components/DataListItem.vue' | ||||||
| import ScrollContainer from '@/components/ScrollContainer/index.vue' | import ScrollContainer from '@/components/ScrollContainer/index.vue' | ||||||
| import { getAction } from '../../api/manage' | import { getAction } from '../../api/manage' | ||||||
| import { cloneDeep } from 'lodash' | import { cloneDeep } from 'lodash' | ||||||
| 
 | const key= "updateList" | ||||||
| export default { | export default { | ||||||
|   components: { |   components: { | ||||||
|     Map, |     Map, | ||||||
|  | @ -173,6 +180,19 @@ export default { | ||||||
|     ScrollContainer, |     ScrollContainer, | ||||||
|     DataListItem |     DataListItem | ||||||
|   }, |   }, | ||||||
|  |   watch: { | ||||||
|  |     "$route": { | ||||||
|  |       handler:function(val,oldVal) { | ||||||
|  |         if (val.name!=="station-operation") { | ||||||
|  |           this.$message.destroy() | ||||||
|  |           clearInterval(this.timer); | ||||||
|  |           this.timer = null | ||||||
|  |         } | ||||||
|  |       }, | ||||||
|  |       deep:true, | ||||||
|  |       immediate:true | ||||||
|  |     } | ||||||
|  |   }, | ||||||
|   data() { |   data() { | ||||||
|     return { |     return { | ||||||
|       activeKey: '1', |       activeKey: '1', | ||||||
|  | @ -183,6 +203,9 @@ export default { | ||||||
|       dataList: [], // 左侧All Data 列表 |       dataList: [], // 左侧All Data 列表 | ||||||
|       followedDataList: [], // 关注 |       followedDataList: [], // 关注 | ||||||
|       markerList: [], // 地图上标记点列表 |       markerList: [], // 地图上标记点列表 | ||||||
|  |       markerList_clone: [], // 地图上标记点列表 | ||||||
|  |       upDateStationList: [], // 有效率列表(显示波纹) | ||||||
|  |       orgStationList: [], // 地图上标记点列表 | ||||||
|       markerType: 1, // 是否绘制地图上的圆 |       markerType: 1, // 是否绘制地图上的圆 | ||||||
|       circleRadius: 0, |       circleRadius: 0, | ||||||
| 
 | 
 | ||||||
|  | @ -201,7 +224,9 @@ export default { | ||||||
| 
 | 
 | ||||||
|       stationTypeList: [], |       stationTypeList: [], | ||||||
| 
 | 
 | ||||||
|       treeData: [] // 台站树列表 |       treeData: [], // 台站树列表 | ||||||
|  |       timer: null, | ||||||
|  |       updataFilterType: [] | ||||||
|     } |     } | ||||||
|   }, |   }, | ||||||
|   created() { |   created() { | ||||||
|  | @ -210,6 +235,10 @@ export default { | ||||||
|     this.getStationTypeList() |     this.getStationTypeList() | ||||||
|     this.getStationTree() |     this.getStationTree() | ||||||
|   }, |   }, | ||||||
|  |   beforeDestroy () { | ||||||
|  |     clearInterval(this.timer); | ||||||
|  |     this.timer = null | ||||||
|  |   }, | ||||||
|   methods: { |   methods: { | ||||||
|     // 获取站点列表 |     // 获取站点列表 | ||||||
|     async getStationList() { |     async getStationList() { | ||||||
|  | @ -219,7 +248,13 @@ export default { | ||||||
|         this.originalDataList = res // 保留初始版本 |         this.originalDataList = res // 保留初始版本 | ||||||
|         this.dataList = cloneDeep(res) |         this.dataList = cloneDeep(res) | ||||||
|         this.markerList = cloneDeep(res) |         this.markerList = cloneDeep(res) | ||||||
| 
 |         this.markerList_clone = cloneDeep(res) | ||||||
|  |         this.getDataProvisionEfficiency(this.markerList_clone,"one") | ||||||
|  |         this.timer = setInterval(() => { | ||||||
|  |           setTimeout(() => { | ||||||
|  |             this.getDataProvisionEfficiency(this.markerList_clone) | ||||||
|  |           }, 0); | ||||||
|  |         }, 15000); | ||||||
|         this.$nextTick(() => { |         this.$nextTick(() => { | ||||||
|           this.$refs.scrollContainerRef.checkScrollEnd() |           this.$refs.scrollContainerRef.checkScrollEnd() | ||||||
|         }) |         }) | ||||||
|  | @ -230,6 +265,55 @@ export default { | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
| 
 | 
 | ||||||
|  |     // 查询台站数据提供率及有效率 | ||||||
|  |     async getDataProvisionEfficiency(arr, str) { | ||||||
|  |       if (str && this.$route.path=="/station-operation") { | ||||||
|  |         this.$message.loading({ content: 'Loading station data, please wait...', key,  duration: 0 }) | ||||||
|  |       } | ||||||
|  |       getAction('/stationOperation/getDataProvisionEfficiency').then(res => { | ||||||
|  |         if (res.success) { | ||||||
|  |           this.$message.destroy() | ||||||
|  |           if (str && this.$route.path == "/station-operation") {  | ||||||
|  |             this.$message.success({ content: 'Loaded!', key, duration: 2 }) | ||||||
|  |           } | ||||||
|  |           res.result.forEach(item => { | ||||||
|  |             arr.forEach(el => { | ||||||
|  |               if (parseInt(item.id) == el.stationId&&el.stationType!="Nuclear Facility"&&el.stationType!="NRL") {  | ||||||
|  |                 item.stationType = el.stationType | ||||||
|  |                 item.stationId = el.stationId | ||||||
|  |               } | ||||||
|  |             }) | ||||||
|  |           }) | ||||||
|  |           this.orgStationList = res.result | ||||||
|  |           if (this.updataFilterType.length>0) { | ||||||
|  |             this.upDateStationList = this.orgStationList.filter(item => this.updataFilterType.includes(item.stationType)) | ||||||
|  |           } else { | ||||||
|  |             this.upDateStationList = res.result | ||||||
|  |           } | ||||||
|  |           if (this.markerList.length > 0) { | ||||||
|  |             let curList = [] | ||||||
|  |             this.markerList.forEach(item => { | ||||||
|  |               if (item.stationType!="Nuclear Facility" && item.stationType!="NRL") { | ||||||
|  |                 this.orgStationList.forEach(el => { | ||||||
|  |                   if (parseInt(el.id) == item.stationId) { | ||||||
|  |                     curList.push(el) | ||||||
|  |                   } | ||||||
|  |                 }) | ||||||
|  |               } | ||||||
|  |             }) | ||||||
|  |             this.upDateStationList=curList | ||||||
|  |           } else { | ||||||
|  |             this.upDateStationList=[] | ||||||
|  |           } | ||||||
|  |         } else { | ||||||
|  |           this.$message.warning("This operation fails. Contact your system administrator") | ||||||
|  |         } | ||||||
|  |       }).catch(error => { | ||||||
|  |         this.$message.destroy() | ||||||
|  |         console.error(error) | ||||||
|  |       }) | ||||||
|  |     }, | ||||||
|  | 
 | ||||||
|     // 获取已关注站点列表 |     // 获取已关注站点列表 | ||||||
|     async getFollowedStationList() { |     async getFollowedStationList() { | ||||||
|       try { |       try { | ||||||
|  | @ -360,6 +444,23 @@ export default { | ||||||
|     // 修改地图上的marker列表 |     // 修改地图上的marker列表 | ||||||
|     onChangeMarker(markerList) { |     onChangeMarker(markerList) { | ||||||
|       this.markerList = markerList |       this.markerList = markerList | ||||||
|  |       let curList = [] | ||||||
|  |       if (markerList.length>0) { | ||||||
|  |         markerList.forEach(item => { | ||||||
|  |           if (item.stationType!="Nuclear Facility" && item.stationType!="NRL") { | ||||||
|  |             this.orgStationList.forEach(el => { | ||||||
|  |               if (parseInt(el.id) == item.stationId) { | ||||||
|  |                 el.stationType = item.stationType | ||||||
|  |                 el.stationId = item.stationId | ||||||
|  |                 curList.push(el) | ||||||
|  |               } | ||||||
|  |             }) | ||||||
|  |           } | ||||||
|  |         }) | ||||||
|  |         this.upDateStationList=curList | ||||||
|  |       } else { | ||||||
|  |         this.upDateStationList=[] | ||||||
|  |       } | ||||||
|     }, |     }, | ||||||
| 
 | 
 | ||||||
|     // 是否绘制圆圈 |     // 是否绘制圆圈 | ||||||
|  | @ -372,6 +473,7 @@ export default { | ||||||
|      * 根据类型筛选地图上的marker列表 |      * 根据类型筛选地图上的marker列表 | ||||||
|      */ |      */ | ||||||
|     onFilterMarker({ filterType, filterDataQuality }) { |     onFilterMarker({ filterType, filterDataQuality }) { | ||||||
|  |       this.updataFilterType = filterType | ||||||
|       console.log( |       console.log( | ||||||
|         '%c [ filterType, filterDataQuality ]-343', |         '%c [ filterType, filterDataQuality ]-343', | ||||||
|         'font-size:13px; background:pink; color:#bf2c9f;', |         'font-size:13px; background:pink; color:#bf2c9f;', | ||||||
|  | @ -379,6 +481,7 @@ export default { | ||||||
|         filterDataQuality |         filterDataQuality | ||||||
|       ) |       ) | ||||||
|       this.markerList = this.originalDataList.filter(item => filterType.includes(item.stationType)) |       this.markerList = this.originalDataList.filter(item => filterType.includes(item.stationType)) | ||||||
|  |       this.upDateStationList = this.orgStationList.filter(item => filterType.includes(item.stationType)) | ||||||
|     }, |     }, | ||||||
| 
 | 
 | ||||||
|     // 地图图标点击 |     // 地图图标点击 | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 任珮宇
						任珮宇