From b6df1affb9886abd0d5b20d44f38f853174fb9b5 Mon Sep 17 00:00:00 2001
From: quanyawei <401863037@qq.com>
Date: Wed, 25 Oct 2023 14:48:07 +0800
Subject: [PATCH] Merge branch 'feature_1.0'
---
src/components/Wind/WRatingArr.js | 429 ++++++++++++++++++
.eslintrc.js | 2
src/components/Wind/Map.vue | 730 +++++++++++++++++++++++++++----
src/components/Wind/dataModel.css | 173 +++++++
4 files changed, 1,233 insertions(+), 101 deletions(-)
diff --git a/.eslintrc.js b/.eslintrc.js
index 1dd83b6..54bb8f5 100644
--- a/.eslintrc.js
+++ b/.eslintrc.js
@@ -15,7 +15,7 @@
//it is base on https://github.com/vuejs/eslint-config-vue
rules: {
'eqeqeq': ['error', 'always'], // ���������������������������
- 'semi': 2, // ���������������������������������
+ 'semi': 0, // ���������������������������������
'no-use-before-define': [1, 'nofunc'], // ������������������������
'max-lines': ['error', { 'max': 2000, 'skipBlankLines': true }],
'no-mixed-spaces-and-tabs': 'warn', // ���������������������tab������������
diff --git a/src/components/Wind/Map.vue b/src/components/Wind/Map.vue
index 61678cc..f62f064 100644
--- a/src/components/Wind/Map.vue
+++ b/src/components/Wind/Map.vue
@@ -5,7 +5,9 @@
element-loading-text="���������"
element-loading-background="rgba(0, 0, 0, 0.6)"
>
- <div v-if="noneData" class="noneData">������������������������������</div>
+ <div v-if="noneData" class="noneData">
+ ������������������������������
+ </div>
<div class="top">
<span
v-for="(item, index) in params"
@@ -24,7 +26,12 @@
@click="turnState"
>
<span class="text_Time">{{ dateFormat }}</span>
- <img class="drop-icon" :src="turnImg" alt="" @click="turnState">
+ <img
+ class="drop-icon"
+ :src="turnImg"
+ alt=""
+ @click="turnState"
+ >
</span>
</div>
<div class="topDate" style="height: 60px">
@@ -263,10 +270,9 @@
:value="item.value"
/>
</el-select>
- <el-button
- type="primary"
- @click="alertData(PageSize, currentPage)"
- >������</el-button>
+ <el-button type="primary" @click="alertData(PageSize, currentPage)">
+ ������
+ </el-button>
</div>
</div>
<el-table
@@ -314,10 +320,9 @@
@current-change="handleCurrentChange"
/>
<div slot="footer" class="dialog-footer">
- <el-button
- size="mini"
- @click="alarmTableVisible = false"
- >��� ���</el-button>
+ <el-button size="mini" @click="alarmTableVisible = false">
+ ��� ���
+ </el-button>
</div>
</el-dialog>
</div>
@@ -327,9 +332,11 @@
import 'leaflet/dist/leaflet.css'
import 'leaflet-velocity/dist/leaflet-velocity.css'
import L from 'leaflet'
+import _ from 'lodash'
import 'leaflet-rotatedmarker/leaflet.rotatedMarker.js'
import 'leaflet-velocity/dist/leaflet-velocity'
import $ from 'jquery'
+import { WWindUtil } from '@/components/Wind/WRatingArr.js'
import RegionalOverview from '@/components/Wind/RegionalOverview' // ������������������
import { mapGetters } from 'vuex'
import { gcj02towgs84 } from '@/assets/json/transform'
@@ -340,10 +347,12 @@
weidu: Number,
jingdu: Number,
monitorPointId: Number,
- monitorPointIds: Array
+ monitorPointIds: Array,
},
data() {
return {
+ compassBg: require('@/assets/images/regionalOverview/wind_watch.png'),
+ compassDirection: require('@/assets/images/regionalOverview/wind_point.png'),
timerKey: '', // ���������������������������
map: null,
code: [],
@@ -389,70 +398,70 @@
factorOptions: [
{
label: '������������',
- value: 'all'
+ value: 'all',
},
{
label: 'PM10',
- value: 'PM10'
+ value: 'PM10',
},
{
label: 'PM2.5',
- value: 'PM2.5'
+ value: 'PM2.5',
},
{
label: 'SO2',
- value: 'SO2'
+ value: 'SO2',
},
{
label: 'NO2',
- value: 'NO2'
+ value: 'NO2',
},
{
label: 'CO',
- value: 'CO'
+ value: 'CO',
},
{
label: 'O3',
- value: 'O3'
- }
+ value: 'O3',
+ },
],
alertOptions: [
{
label: '������������������',
- value: 'all'
+ value: 'all',
},
{
label: '������',
- value: 'overrun'
+ value: 'overrun',
},
{
label: '���������',
- value: 'sudden'
+ value: 'sudden',
},
{
label: '������������������100%',
- value: 'state100'
+ value: 'state100',
},
{
label: '������������������150%',
- value: 'state150'
+ value: 'state150',
},
{
label: '������������������250%',
- value: 'state250'
+ value: 'state250',
},
{
label: '������������������100%',
- value: 'city100'
+ value: 'city100',
},
{
label: '������������������150%',
- value: 'city150'
+ value: 'city150',
},
{
label: '������������������250%',
- value: 'city250'
- }
+ value: 'city250',
+ },
],
currentDate: '',
turnImg: require('@/assets/images/regionalOverview/dropDown.png'),
@@ -464,11 +473,11 @@
dateInfo: '', // ���������������
timeInfo: '', // ���������������
nyr: '', // ������������������
- windJsonData: []
+ windJsonData: [],
}
},
computed: {
- ...mapGetters(['regionCode'])
+ ...mapGetters(['regionCode']),
},
watch: {
dateValue(n, o) {
@@ -484,7 +493,7 @@
this.canvasWind(newCode)
})
- }
+ },
},
mounted() {
this.currentHour()
@@ -529,7 +538,8 @@
methods: {
// ������������������������������
getDayXQ(day) {
- var days = new Date().getDay() // ������
+ var days = new Date()
+.getDay() // ������
var rq = '' // ������
if (day === 'today') {
rq = this.newData(0)
@@ -680,7 +690,7 @@
}
// ������������������������
for (let i = 0; i < lis.length; i++) {
- lis[i].onmouseenter = function() {
+ lis[i].onmouseenter = function () {
// console.log('mouseenter', i)
// mouseDiv.style.left = (1.36986 * (i - 1) + 0.68493) + '%'
mouseDiv.style.transform = 'translateX(-50%)'
@@ -691,13 +701,13 @@
inText.innerHTML = times + ':00'
// console.log(mouseDiv)
}
- lis[i].onmouseleave = function() {
+ lis[i].onmouseleave = function () {
mouseDiv.style.display = 'none'
// console.log('������������', i)
}
}
for (let i = 0; i < timeLis.length; i++) {
- timeLis[i].onmouseenter = function() {
+ timeLis[i].onmouseenter = function () {
// console.log('mouseenter', i)
// mouseDiv.style.left = (1.36986 * (i - 2) + 0.68493) + '%'
mouseDiv.style.left = 1.36986 * i + '%'
@@ -708,7 +718,7 @@
inText.innerHTML = times + ':00'
// console.log(mouseDiv)
}
- timeLis[i].onmouseleave = function() {
+ timeLis[i].onmouseleave = function () {
mouseDiv.style.display = 'none'
// console.log('������������', i)
}
@@ -768,11 +778,12 @@
// ������������������,���������
deviceMaker() {
if (this.map) {
- this.map.eachLayer(function(layer) {
+ this.map.eachLayer(function (layer) {
// ���������������������������
if (
!layer._container &&
- ('' + $(layer._container).attr('class')).replace(/\s/g, '') !==
+ ('' + $(layer._container)
+.attr('class')).replace(/\s/g, '') !==
'leaflet-layer'
) {
layer.remove()
@@ -787,11 +798,11 @@
organizationId: this.$store.state.orgId,
regionCode: this.$store.state.regionCode,
chooseTime: this.chooseTime,
- time: this.nyr
- }
- }).then((data) => {
+ time: this.nyr,
+ },
+ })
+.then((data) => {
// console.log('���������������������')
- console.log(data, 'tata')
this.markDeviceSite(data)
})
},
@@ -801,8 +812,10 @@
this.keyData = data.data.devices
// ���������������������
// this.stateControlStation()
- var groupIcon = L.layerGroup().addTo(this.map)
- var groupText = L.layerGroup().addTo(this.map)
+ var groupIcon = L.layerGroup()
+.addTo(this.map)
+ var groupText = L.layerGroup()
+.addTo(this.map)
this.keys = []
for (let i = 0; i < keyData.length; i++) {
if (keyData[i].a34002) {
@@ -812,13 +825,16 @@
} else if (keyData[i].a21026) {
this.keys.push(Math.floor(JSON.parse(keyData[i].a21026)))
} else if (keyData[i].a21004) {
- this.keys.push(Math.floor(JSON.parse(keyData[i].a21004).toFixed(0)))
+ this.keys.push(Math.floor(JSON.parse(keyData[i].a21004)
+.toFixed(0)))
} else if (keyData[i].a21005) {
- this.keys.push(JSON.parse(keyData[i].a21005).toFixed(3))
+ this.keys.push(JSON.parse(keyData[i].a21005)
+.toFixed(3))
} else if (keyData[i].a05024) {
this.keys.push(Math.floor(JSON.parse(keyData[i].a05024)))
} else if (keyData[i].a99054) {
- this.keys.push(JSON.parse(keyData[i].a99054).toFixed(3))
+ this.keys.push(JSON.parse(keyData[i].a99054)
+.toFixed(3))
} else {
// for (let j = 0; j < keyData.length; j++) {
this.keys.push(JSON.parse('null'))
@@ -946,7 +962,8 @@
}
} else if (keyData[i].a21004) {
var data = Math.floor(
- Math.floor(JSON.parse(keyData[i].a21004).toFixed(0))
+ Math.floor(JSON.parse(keyData[i].a21004)
+.toFixed(0))
)
switch (true) {
case data < 0: {
@@ -985,7 +1002,8 @@
break
}
} else if (keyData[i].a21005) {
- var data = JSON.parse(keyData[i].a21005).toFixed(3)
+ var data = JSON.parse(keyData[i].a21005)
+.toFixed(3)
switch (true) {
case data < 0: {
colorNum = 7
@@ -1061,7 +1079,8 @@
break
}
} else if (keyData[i].a99054) {
- var data = JSON.parse(keyData[i].a99054).toFixed(3)
+ var data = JSON.parse(keyData[i].a99054)
+.toFixed(3)
switch (true) {
case data < 0: {
colorNum = 7
@@ -1105,12 +1124,12 @@
// iconUrl: require('@/assets/icon/ico2.png'),
iconSize: [60, 60],
iconAnchor: [30, 48],
- className: 'my-device'
+ className: 'my-device',
})
// ���������������������
const iconMarker = L.marker([lat, lng], {
- icon: blueIcon
+ icon: blueIcon,
})
groupIcon.addLayer(iconMarker)
// console.log(JSON.parse(this.keys[i]))
@@ -1118,17 +1137,20 @@
html: this.keys[i],
className: 'my-div-icon',
iconSize: [60, 60],
- iconAnchor: [40, 40]
+ iconAnchor: [40, 40],
})
const TexteMarker = L.marker([lat, lng], { icon: myIcon })
+ TexteMarker.vuecontext = this
groupText.addLayer(TexteMarker)
const _this = this
// ������������������������������������mouseover���������������
- TexteMarker.on('click', function(e) {
+ TexteMarker.on('click', function (e) {
const MarkerTarget = e.target
- _this.getMarkerInfor(keyData[i], MarkerTarget)
+ // _this.getMarkerInfor(keyData[i], MarkerTarget)
this.noneData = false
+ // const _this = e.target.vuecontext
+ _this.handleClick(keyData[i], MarkerTarget)
})
// ������������������������������������
// TexteMarker.on('mouseout', function(e) {
@@ -1136,6 +1158,510 @@
// this.bindPopup().closePopup()
// })
}
+ console.log(' this.keys', this.keys)
+ },
+ styleBgColor(keyName) {
+ console.log('keyName', keyName)
+ let bgColorList = {
+ pm25colorbg: '',
+ pm10colorbg: '',
+ so2colorbg: '', //������������
+ no210colorbg: '', //������������
+ cocolorbg: '', //������������
+ o3colorbg: '', //������
+ tvoccolorbg: '', //TVOC
+ }
+
+ let data = ''
+ for (let i in keyName) {
+ if (i === 'a34002') {
+ data = Math.floor(JSON.parse(keyName.a34002))
+ switch (true) {
+ case data < 0: {
+ bgColorList.pm10colorbg = '#999999'
+ break
+ }
+ case data === 0: {
+ bgColorList.pm10colorbg = '#688fb1'
+ break
+ }
+ case data <= 50: {
+ bgColorList.pm10colorbg = '#00ff01'
+ break
+ }
+ case data <= 150: {
+ bgColorList.pm10colorbg = '#fdfe00'
+ break
+ }
+ case data <= 250: {
+ bgColorList.pm10colorbg = '#fd8102'
+ break
+ }
+ case data <= 350: {
+ bgColorList.pm10colorbg = '#fc0101'
+ break
+ }
+ case data <= 420: {
+ bgColorList.pm10colorbg = '#c00261'
+ break
+ }
+ case data > 420: {
+ bgColorList.pm10colorbg = '#9f012f'
+ break
+ }
+ default:
+ break
+ }
+ } else if (i === 'a34004') {
+ data = Math.floor(JSON.parse(keyName.a34004))
+ switch (true) {
+ case data < 0: {
+ bgColorList.pm25colorbg = '#999999'
+ break
+ }
+ case data === 0: {
+ bgColorList.pm25colorbg = '#688fb1'
+ break
+ }
+ case data <= 35: {
+ bgColorList.pm25colorbg = '#00ff01'
+ break
+ }
+ case data <= 75: {
+ bgColorList.pm25colorbg = '#fdfe00'
+ break
+ }
+ case data <= 115: {
+ bgColorList.pm25colorbg = '#fd8102'
+ break
+ }
+ case data <= 150: {
+ bgColorList.pm25colorbg = '#fc0101'
+ break
+ }
+ case data <= 250: {
+ bgColorList.pm25colorbg = '#c00261'
+ break
+ }
+ case data > 250: {
+ bgColorList.pm25colorbg = '#9f012f'
+ break
+ }
+ default:
+ break
+ }
+ } else if (i === 'a21026') {
+ data = Math.floor(JSON.parse(keyName.a21026))
+ switch (true) {
+ case data < 0: {
+ bgColorList.so2colorbg = '#999999'
+ break
+ }
+ case data === 0: {
+ bgColorList.so2colorbg = '#688fb1'
+ break
+ }
+ case data <= 50: {
+ bgColorList.so2colorbg = '#00ff01'
+ break
+ }
+ case data <= 150: {
+ bgColorList.so2colorbg = '#fdfe00'
+ break
+ }
+ case data <= 475: {
+ bgColorList.so2colorbg = '#fd8102'
+ break
+ }
+ case data <= 800: {
+ bgColorList.so2colorbg = '#fc0101'
+ break
+ }
+ case data <= 1600: {
+ bgColorList.so2colorbg = '#c00261'
+ break
+ }
+ case data > 1600: {
+ bgColorList.so2colorbg = '#9f012f'
+ break
+ }
+ default:
+ break
+ }
+ } else if (i === 'a21004') {
+ data = Math.floor(Math.floor(JSON.parse(keyName.a21004)
+.toFixed(0)))
+ switch (true) {
+ case data < 0: {
+ bgColorList.no210colorbg = '#999999'
+ break
+ }
+ case data === 0: {
+ bgColorList.no210colorbg = '#688fb1'
+ break
+ }
+ case data <= 40: {
+ bgColorList.no210colorbg = '#00ff01'
+ break
+ }
+ case data <= 80: {
+ bgColorList.no210colorbg = '#fdfe00'
+ break
+ }
+ case data <= 180: {
+ bgColorList.no210colorbg = '#fd8102'
+ break
+ }
+ case data <= 280: {
+ bgColorList.no210colorbg = '#fc0101'
+ break
+ }
+ case data <= 565: {
+ bgColorList.no210colorbg = '#c00261'
+ break
+ }
+ case data > 565: {
+ bgColorList.no210colorbg = '#9f012f'
+ break
+ }
+ default:
+ break
+ }
+ } else if (i === 'a21005') {
+ data = JSON.parse(keyName.a21005)
+.toFixed(3)
+ switch (true) {
+ case data < 0: {
+ bgColorList.cocolorbg = '#999999'
+ break
+ }
+ case data === 0: {
+ bgColorList.cocolorbg = '#688fb1'
+ break
+ }
+ case data <= 2: {
+ bgColorList.cocolorbg = '#00ff01'
+ break
+ }
+ case data <= 4: {
+ bgColorList.cocolorbg = '#fdfe00'
+ break
+ }
+ case data <= 14: {
+ bgColorList.cocolorbg = '#fd8102'
+ break
+ }
+ case data <= 24: {
+ bgColorList.cocolorbg = '#fc0101'
+ break
+ }
+ case data <= 36: {
+ bgColorList.cocolorbg = '#c00261'
+ break
+ }
+ case data > 36: {
+ bgColorList.cocolorbg = '#9f012f'
+ break
+ }
+ default:
+ break
+ }
+ } else if (i === 'a05024') {
+ data = Math.floor(JSON.parse(keyName.a05024))
+ switch (true) {
+ case data < 0: {
+ bgColorList.o3colorbg = '#999999'
+ break
+ }
+ case data === 0: {
+ bgColorList.o3colorbg = '#688fb1'
+ break
+ }
+ case data <= 160: {
+ bgColorList.o3colorbg = '#00ff01'
+ break
+ }
+ case data <= 200: {
+ bgColorList.o3colorbg = '#fdfe00'
+ break
+ }
+ case data <= 300: {
+ bgColorList.o3colorbg = '#fd8102'
+ break
+ }
+ case data <= 400: {
+ bgColorList.o3colorbg = '#fc0101'
+ break
+ }
+ case data <= 800: {
+ bgColorList.o3colorbg = '#c00261'
+ break
+ }
+ case data > 800: {
+ bgColorList.o3colorbg = '#9f012f'
+ break
+ }
+ default:
+ break
+ }
+ } else if (i === 'a99054') {
+ data = JSON.parse(keyName.a99054)
+.toFixed(3)
+ switch (true) {
+ case data < 0: {
+ bgColorList.tvoccolorbg = '#999999'
+ break
+ }
+ case data === 0: {
+ bgColorList.tvoccolorbg = '#688fb1'
+ break
+ }
+ case data <= 0.5: {
+ bgColorList.tvoccolorbg = '#00ff01'
+ break
+ }
+ case data <= 1: {
+ bgColorList.tvoccolorbg = '#fdfe00'
+ break
+ }
+ case data <= 1.5: {
+ bgColorList.tvoccolorbg = '#fd8102'
+ break
+ }
+ case data <= 2: {
+ bgColorList.tvoccolorbg = '#fc0101'
+ break
+ }
+ case data <= 3: {
+ bgColorList.tvoccolorbg = '#c00261'
+ break
+ }
+ case data > 3: {
+ bgColorList.tvoccolorbg = '#9f012f'
+ break
+ }
+ // default:
+ // break
+ }
+ }
+ }
+ return bgColorList
+ },
+ handleClick(data, marker) {
+ this.$request({
+ url: '/historyFiveMinutely/queryFiveDataByMac',
+ method: 'get',
+ params: {
+ mac: data.mac,
+ chooseTime: this.chooseTime,
+ time: this.nyr,
+ },
+ })
+ .then((res) => {
+ console.log('res.data', res)
+ if (res.message === '���������������������') {
+ var datafalse = '���������������������'
+ marker.bindPopup(datafalse)
+.openPopup()
+ return
+ }
+ let colorliststyleBgColor = this.styleBgColor(res.data)
+ console.log('colorliststyleBgColor', colorliststyleBgColor)
+ let deviceDetails = res.data
+ let windDeg = 0
+ let windDir = ''
+ let dushu =
+ !deviceDetails.a01008 === '-'
+ ? JSON.parse(deviceDetails.a01008)
+.toFixed(0)
+ : '-'
+ let level =
+ !deviceDetails.a01007 === '-'
+ ? WWindUtil.windFormatLevel(deviceDetails.a01007)
+ : '-'
+ console.log('level', level)
+ if (deviceDetails.a01008) {
+ var windDirs = Number(
+ deviceDetails.a01008.substr(0, deviceDetails.a01008.length - 1)
+ )
+ // console.log(windDirs)
+ windDeg = windDirs
+ if (windDirs === 0 || windDirs === '-') {
+ windDir = '������'
+ } else if (windDirs > 0 && windDirs < 90) {
+ windDir = '���������'
+ } else if (windDirs === 90) {
+ windDir = '������'
+ } else if (windDirs > 90 && windDirs < 180) {
+ windDir = '���������'
+ } else if (windDirs === 180) {
+ windDir = '������'
+ } else if (windDirs > 180 && windDirs < 270) {
+ windDir = '���������'
+ } else if (windDirs === 270) {
+ windDir = '������'
+ } else if (windDirs > 270 && windDirs < 360) {
+ windDir = '���������'
+ }
+ }
+ // ������������������������������
+ let html = ` <div data-reactroot="" class="marker_maptip">
+ <div class="marker_title_1nQ">
+ <span>������������</span>
+ </div>
+ <div class="marker_firstline_2WH">
+ <div class="marker_citypart_keg">
+ <div class="marker_name_small_1VU">${deviceDetails.name}</div>
+ <div class="marker_time_w5m">${deviceDetails.dataTime}</div>
+ </div>
+ <div class="marker_indexpart_2UI">
+ <div
+ class="marker_indexname_3TP"
+ style="color: black;background:${
+ colorliststyleBgColor.tvoccolorbg
+ }"
+ >
+ TVOC
+ </div>
+ <div class="marker_indexvalue_1O7">
+ ${this.handleCutZero(deviceDetails.a99054)}
+ </div>
+ </div>
+ </div>
+ <div class="marker_secondline_2Om">
+ <div class="marker_item_2Kk">
+ <div
+ class="marker_itemname_Wq5"
+ style="color: black;background:${
+ colorliststyleBgColor.pm25colorbg
+ } "
+ >
+ PM2.5
+ </div>
+ <div class="marker_itemvalue_1l1">
+ ${this.handleCutZero(deviceDetails.a34004)}
+ </div>
+ </div>
+ <div class="marker_item_2Kk">
+ <div
+ class="marker_itemname_Wq5"
+ style="color: black;background:${
+ colorliststyleBgColor.pm10colorbg
+ }"
+ >
+ PM10
+ </div>
+ <div class="marker_itemvalue_1l1">
+ ${this.handleCutZero(deviceDetails.a34002)}
+ </div>
+ </div>
+ <div class="marker_item_2Kk">
+ <div
+ class="marker_itemname_Wq5"
+ style="color: black;background:${
+ colorliststyleBgColor.so2colorbg
+ }"
+ >
+ SO2
+ </div>
+ <div class="marker_itemvalue_1l1">
+ ${this.handleCutZero(deviceDetails.a21026)}
+ </div>
+ </div>
+ <div class="marker_item_2Kk">
+ <div
+ class="marker_itemname_Wq5"
+ style="color: black;background:${
+ colorliststyleBgColor.no210colorbg
+ }"
+ >
+ NO2
+ </div>
+ <div class="marker_itemvalue_1l1">
+ ${this.handleCutZero(deviceDetails.a21004)}
+ </div>
+ </div>
+ <div class="marker_item_2Kk">
+ <div
+ class="marker_itemname_Wq5"
+ style="color: black;background:${
+ colorliststyleBgColor.cocolorbg
+ }"
+ >
+ CO
+ </div>
+ <div class="marker_itemvalue_1l1">
+ ${this.handleCutZero(deviceDetails.a21005)}
+ </div>
+ </div>
+ <div class="marker_item_2Kk">
+ <div
+ class="marker_itemname_Wq5"
+ style="color: black; background:${
+ colorliststyleBgColor.o3colorbg
+ }"
+ >
+ O3
+ </div>
+ <div class="marker_itemvalue_1l1">
+ ${this.handleCutZero(deviceDetails.a05024)}
+ </div>
+ </div>
+ </div>
+ <div class='windBox'>
+ <div style="position: relative;width: 50%;text-align: center;color: #999;border-right: 1px dotted #999;" clss='windIcon'>
+ <img style="width:140px; height:140px" src=${this.compassBg}>
+ <img style="width: 40px;height: 40px;position: absolute;left: 53%;top: 47%;transform: translate(-50%, -50%) rotate(${windDeg}deg)"
+ src=${this.compassDirection}
+ >
+ </div>
+ <div class='windInfor'>
+ <div>������: ${windDir} (${dushu}���)</div>
+ <div>������: ${deviceDetails.a01007}m/s</div>
+ <div>������: ${level}</div>
+ </div>
+ </div>
+
+ </div>`
+ marker.bindPopup(html, { className: 'mypopup' })
+.openPopup()
+ })
+ .catch((err) => {
+ console.log(err)
+ })
+ },
+ handleCutZero(data) {
+
+ let num = data.substring(0,data.indexOf(".")+4);
+ //������������ ������������������������
+ // let num = Number(data).toFixed(3).toString()
+ let newstr = num
+ //������������ ������������������
+ let leng = num.length - num.indexOf('.') - 1
+ //���������������������
+ if (num.indexOf('.') > -1) {
+ //������������������
+ for (let i = leng; i > 0; i--) {
+ //������newstr���������0
+ if (
+ newstr.lastIndexOf('0') > -1 &&
+ newstr.substr(newstr.length - 1, 1) === 0
+ ) {
+ let k = newstr.lastIndexOf('0')
+ //������������������������������0 ���������������
+ if (newstr.charAt(k - 1) === '.') {
+ return newstr.substring(0, k - 1)
+ } else {
+ //������ ������������0
+ newstr = newstr.substring(0, k)
+ }
+ } else {
+ //������������������0
+ return newstr
+ }
+ }
+ }
+ return num
},
getMarkerInfor(data, marker) {
this.$request({
@@ -1144,27 +1670,28 @@
params: {
mac: data.mac,
chooseTime: this.chooseTime,
- time: this.nyr
- }
+ time: this.nyr,
+ },
})
.then((res) => {
if (res.message === '���������������������') {
var datafalse = '���������������������'
- this.bindPopup(datafalse).openPopup()
+ this.bindPopup(datafalse)
+.openPopup()
return
}
for (const key in res.data) {
- var tempDecimal = res.data[key]
- .replace(/[^\d.]/g, '')
- .split('.')[1]
+ var tempDecimal = res.data[key].replace(/[^\d.]/g, '')
+.split('.')[1]
if (key !== '������' && key !== '������') {
if (Number(tempDecimal) === 0) {
res.data[key] =
- parseInt(res.data[key]) + res.data[key].split(' ')[1]
+ parseInt(res.data[key]) + res.data[key].split(' ')[1]
} else {
res.data[key] =
- Number(res.data[key].split(' ')[0]).toFixed(2) +
- res.data[key].split(' ')[1]
+ Number(res.data[key].split(' ')[0])
+.toFixed(2) +
+ res.data[key].split(' ')[1]
}
}
}
@@ -1172,7 +1699,8 @@
.replace(/,/g, `<br>`)
.replace(/{|}|"/g, '')
console.log(data)
- marker.bindPopup(data).openPopup()
+ marker.bindPopup(data)
+.openPopup()
})
.catch((err) => {
console.log(err)
@@ -1186,11 +1714,12 @@
// const that = this
// ������������������
if (this.map) {
- this.map.eachLayer(function(layer) {
+ this.map.eachLayer(function (layer) {
// ���������������������������
if (
!layer._container &&
- ('' + $(layer._container).attr('class')).replace(/\s/g, '') !==
+ ('' + $(layer._container)
+.attr('class')).replace(/\s/g, '') !==
'leaflet-layer'
) {
layer.remove()
@@ -1252,7 +1781,8 @@
}
}, 1000)
},
- findLayer(layerName) { // ������������������������������
+ findLayer(layerName) {
+ // ������������������������������
if (!this.map) {
return null
}
@@ -1276,12 +1806,13 @@
renderer: L.canvas(),
zoomControl: false, // ������������
attributionControl: false, // ���������������logol
- crs: L.CRS.EPSG3857 // ���������������������EPSG3857���������������������EPSG3395������������������������ EPSG4326 WGS84
+ crs: L.CRS.EPSG3857, // ���������������������EPSG3857���������������������EPSG3395������������������������ EPSG4326 WGS84
})
// ������������������
L.tileLayer(
'https://wprd01.is.autonavi.com/appmaptile?lang=zh_cn&size=1&style=7&x={x}&y={y}&z={z}'
- ).addTo(map)
+ )
+.addTo(map)
this.map = map // data���������������
// const that = this
// this.map.on('mousedown', function(ev) {
@@ -1343,11 +1874,12 @@
// ���������������������
initData() {
if (this.map) {
- this.map.eachLayer(function(layer) {
+ this.map.eachLayer(function (layer) {
// ���������������������������
if (
!layer._container &&
- ('' + $(layer._container).attr('class')).replace(/\s/g, '') !==
+ ('' + $(layer._container)
+.attr('class')).replace(/\s/g, '') !==
'leaflet-layer'
) {
layer.remove()
@@ -1365,8 +1897,8 @@
params: {
monitorPointIds: this.monitorPointIds.toString(),
chooseTime: this.chooseTime,
- time: this.nyr
- }
+ time: this.nyr,
+ },
})
.then((res) => {
this.windJsonData = res.data[0]
@@ -1389,7 +1921,7 @@
// velocityType: 'Global Wind',
velocityType: 'GBR Wind',
displayPosition: 'bottomleft',
- displayEmptyString: 'No wind data'
+ displayEmptyString: 'No wind data',
},
data: data, // ������ ���������������
// data: data2,
@@ -1409,8 +1941,8 @@
'#345B1B',
'#186303',
'#175103',
- '#053F03'
- ]
+ '#053F03',
+ ],
// colorScale: ['#053F03', '#053F03', '#053F03', '#053F03', '#053F03', '#053F03', '#053F03', '#053F03']
})
velocityLayer.addTo(this.map) // ���������������
@@ -1433,9 +1965,10 @@
startTime: this.dateValue[0],
endTime: this.dateValue[1],
index: this.factorValue,
- alarmType: this.alartValue
- }
- }).then((res) => {
+ alarmType: this.alartValue,
+ },
+ })
+.then((res) => {
// console.log('������������')
// console.log(res)
var tempData = res.data
@@ -1501,14 +2034,15 @@
method: 'get',
params: {
regionCode: 130900,
- sensorCode: 'a34002'
- }
+ sensorCode: 'a34002',
+ },
})
.then((res) => {
// console.log('���������������')
// console.log(res)
var gkData = res.data
- var group = L.layerGroup().addTo(this.map)
+ var group = L.layerGroup()
+.addTo(this.map)
for (let i = 0; i < gkData.length; i++) {
var glat = gkData[i].latitude
var glng = gkData[i].longitude
@@ -1517,20 +2051,22 @@
// iconUrl:require('@/assets/images/tl_PM10.png'),
iconSize: [55, 55],
iconAnchor: [13, 21],
- className: 'my-device'
+ className: 'my-device',
})
// ���������������������
L.marker([glat, glng], {
- icon: gIcon
- }).addTo(group)
+ icon: gIcon,
+ })
+.addTo(group)
var myIcon = L.divIcon({
html: gkData[i].data,
className: 'my-div-icon-g',
- iconSize: 30
+ iconSize: 30,
})
L.marker([glat, glng], {
- icon: myIcon
- }).addTo(group)
+ icon: myIcon,
+ })
+.addTo(group)
}
})
.catch((err) => {
@@ -1556,12 +2092,13 @@
},
closeAlarmTableVisible() {
this.$store.state.alarmTableVisible = false
- }
- }
+ },
+ },
}
</script>
<style lang="scss">
+@import './dataModel.css';
html,
body,
#mapContent {
@@ -1800,14 +2337,7 @@
/* padding-left: 10px; */
/* padding-top: 30px; */
}
-.leaflet-popup-content {
- width: 235px !important;
- font-size: 12px;
- -webkit-transform-origin-x: 0;
- z-index: 1000;
- /* -webkit-transform: scale(0.90); */
- /* font-family: ui-serif; */
-}
+
.buttom-left {
/* background-image: url("@/assets/images/tl_PM10.png"); */
position: absolute;
diff --git a/src/components/Wind/WRatingArr.js b/src/components/Wind/WRatingArr.js
new file mode 100644
index 0000000..ecee90c
--- /dev/null
+++ b/src/components/Wind/WRatingArr.js
@@ -0,0 +1,429 @@
+/**
+ * ������-������������������
+ */
+var WWindUtil = {};
+/**
+ * ������json
+ */
+WWindUtil.WDJson = {
+ "N": {
+ "en": "N",
+ "cn": "���",
+ "desc": "���"
+ },
+ "NNE": {
+ "en": "NNE",
+ "cn": "���������",
+ "desc": "������������"
+ },
+ "NE": {
+ "en": "NE",
+ "cn": "������",
+ "desc": "������"
+ },
+ "ENE": {
+ "en": "ENE",
+ "cn": "���������",
+ "desc": "������������"
+ },
+ "E": {
+ "en": "E",
+ "cn": "���",
+ "desc": "���"
+ },
+ "ESE": {
+ "en": "ESE",
+ "cn": "���������",
+ "desc": "������������"
+ },
+ "SE": {
+ "en": "SNE",
+ "cn": "������",
+ "desc": "������"
+ },
+ "SSE": {
+ "en": "SSE",
+ "cn": "���������",
+ "desc": "������������"
+ },
+ "S": {
+ "en": "S",
+ "cn": "���",
+ "desc": "���"
+ },
+ "SSW": {
+ "en": "SSW",
+ "cn": "���������",
+ "desc": "������������"
+ },
+ "SW": {
+ "en": "SW",
+ "cn": "������",
+ "desc": "������"
+ },
+ "WSW": {
+ "en": "WSW",
+ "cn": "���������",
+ "desc": "������������"
+ },
+ "W": {
+ "en": "W",
+ "cn": "���",
+ "desc": "���"
+ },
+ "WNW": {
+ "en": "WNW",
+ "cn": "���������",
+ "desc": "������������"
+ },
+ "NW": {
+ "en": "NW",
+ "cn": "������",
+ "desc": "������"
+ },
+ "NNW": {
+ "en": "NW",
+ "cn": "���������",
+ "desc": "������������"
+ },
+ "ERROR": {
+ "en": "error value",
+ "cn": "������������",
+ "desc": "������������"
+ }
+
+};
+
+/**
+ * ������������
+ */
+WWindUtil.WRatingArr = [
+ {
+ "min": 0,
+ "max": 1.5,
+ "level": 1,
+ "name": "������",
+ "landScene": "������������"
+ },
+ {
+ "min": 1.6,
+ "max": 3.3,
+ "level": 2,
+ "name": "������",
+ "landScene": "������������"
+ },
+ {
+ "min": 3.4,
+ "max": 5.4,
+ "level": 3,
+ "name": "������",
+ "landScene": "������������"
+ },
+ {
+ "min": 5.5,
+ "max": 7.9,
+ "level": 4,
+ "name": "������",
+ "landScene": "������������"
+ },
+ {
+ "min": 8.0,
+ "max": 10.7,
+ "level": 5,
+ "name": "������",
+ "landScene": "������������"
+ },
+ {
+ "min": 10.8,
+ "max": 13.8,
+ "level": 6,
+ "name": "������",
+ "landScene": "������������"
+ },
+ {
+ "min": 13.9,
+ "max": 17.1,
+ "level": 7,
+ "name": "������",
+ "landScene": "������������"
+ },
+ {
+ "min": 17.2,
+ "max": 20.7,
+ "level": 8,
+ "name": "������",
+ "landScene": "������������"
+ },
+ {
+ "min": 20.8,
+ "max": 24.4,
+ "level": 9,
+ "name": "������",
+ "landScene": "������������"
+ },
+ {
+ "min": 24.5,
+ "max": 28.4,
+ "level": 10,
+ "name": "������",
+ "landScene": "������������"
+ },
+ {
+ "min": 28.5,
+ "max": 32.6,
+ "level": 11,
+ "name": "������",
+ "landScene": "������������"
+ },
+ {
+ "min": 32.7,
+ "max": 36.9,
+ "level": 0,
+ "name": "������",
+ "landScene": "������������"
+ },
+ {
+ "min": 37.0,
+ "max": 41.4,
+ "level": 13,
+ "name": "",
+ "landScene": ""
+ },
+ {
+ "min": 41.5,
+ "max": 46.1,
+ "level": 14,
+ "name": "",
+ "landScene": ""
+ },
+ {
+ "min": 46.2,
+ "max": 50.9,
+ "level": 15,
+ "name": "",
+ "landScene": ""
+ },
+ {
+ "min": 51.0,
+ "max": 56.0,
+ "level": 16,
+ "name": "",
+ "landScene": ""
+ },
+ {
+ "min": 56.1,
+ "max": null,
+ "level": 17,
+ "name": "",
+ "landScene": ""
+ }
+]
+
+/** ������������������������
+ * @param {Object} windNumberValue ���������
+ */
+WWindUtil.to16WindDirection = function (windNumberValue) {
+ if (windNumberValue > 360) {
+ return WWindUtil.WDJson.ERROR;
+ }
+ let a = Math.ceil(windNumberValue / 11.25);
+ let ret;
+ switch (a) {
+ case 32:
+ case 1:
+ ret = WWindUtil.WDJson.N;
+ break;
+
+ case 2:
+ case 3:
+ ret = WWindUtil.WDJson.NNE;
+ break;
+
+
+ case 4:
+ case 5:
+ ret = WWindUtil.WDJson.NE;
+ break;
+
+ case 6:
+ case 7:
+ ret = WWindUtil.WDJson.ENE;
+ break;
+
+ case 8:
+ case 9:
+ ret = WWindUtil.WDJson.E;
+ break;
+
+ case 10:
+ case 11:
+ ret = WWindUtil.WDJson.ESE;
+ break;
+
+ case 12:
+ case 13:
+ ret = WWindUtil.WDJson.SE;
+ break;
+
+ case 14:
+ case 15:
+ ret = WWindUtil.WDJson.SSE;
+ break;
+
+ case 16:
+ case 17:
+ ret = WWindUtil.WDJson.S;
+ break;
+
+ case 18:
+ case 19:
+ ret = WWindUtil.WDJson.SSW;
+ break;
+
+ case 20:
+ case 21:
+ ret = WWindUtil.WDJson.SW;
+ break;
+
+ case 22:
+ case 23:
+ ret = WWindUtil.WDJson.WSW;
+ break;
+
+ case 24:
+ case 25:
+ ret = WWindUtil.WDJson.W;
+ break;
+
+ case 26:
+ case 27:
+ ret = WWindUtil.WDJson.WNW;
+ break;
+
+ case 28:
+ case 29:
+ ret = WWindUtil.WDJson.NW;
+ break;
+
+ case 30:
+ case 31:
+ ret = WWindUtil.WDJson.NNW;
+ break;
+
+ default:
+ ret = WWindUtil.WDJson.ERROR;
+ break;
+
+ }
+ return ret;
+}
+
+/** ������������������������
+ * @param {Object} windNumberValue ���������
+ */
+WWindUtil.to8WindDirection = function (windNumberValue) {
+ if (windNumberValue > 360) {
+ return WWindUtil.WDJson.ERROR;
+ }
+ let a = Math.ceil(windNumberValue / 22.5);
+ let ret;
+ switch (a) {
+ case 16:
+ case 1:
+ ret = WWindUtil.WDJson.N;
+ break;
+
+ case 2:
+ case 3:
+ ret = WWindUtil.WDJson.NE;
+ break;
+
+
+ case 4:
+ case 5:
+ ret = WWindUtil.WDJson.E;
+ break;
+
+ case 6:
+ case 7:
+ ret = WWindUtil.WDJson.SE;
+ break;
+
+ case 8:
+ case 9:
+ ret = WWindUtil.WDJson.S;
+ break;
+
+ case 10:
+ case 11:
+ ret = WWindUtil.WDJson.SW;
+ break;
+
+ case 12:
+ case 13:
+ ret = WWindUtil.WDJson.W;
+ break;
+
+ case 14:
+ case 15:
+ ret = WWindUtil.WDJson.NW;
+ break;
+
+ default:
+ ret = WWindUtil.WDJson.ERROR;
+ break;
+
+ }
+ return ret;
+}
+
+/** ���������������������
+ * @param {Object} value ��������� (m/s)
+ */
+WWindUtil.WindtoLevel = function (value) {
+ let vl = Number(value);
+ if (!vl || vl < 0) { return null; }
+ let arr = WWindUtil.WRatingArr;
+ if (vl >= arr[arr.length - 1].min) {
+ return arr[arr.length - 1];
+ }
+ for (let i = 0; i < arr.length; i++) {
+ if (vl >= arr[i].min && vl <= arr[i].max) {
+ return arr[i];
+ }
+ }
+ return null;
+}
+
+// ������������������
+WWindUtil.windValueFormat = function (value) {
+ try {
+ let vl = Number(value);
+ if (!vl || vl > 360 || vl < 0) {
+ return '-';
+ }
+ return WWindUtil.to16WindDirection(value).desc;
+ } catch (e) {
+ return '-';
+ }
+}
+
+/** ������������������������
+ * @param {Object} value ���������
+ */
+WWindUtil.windFormatLevel = function (value) {
+ try {
+ let vl = Number(value);
+ if (!vl || vl > 100 || vl < 0) {
+ return "-";
+ }
+ return WWindUtil.WindtoLevel(value).level + "���(" + WWindUtil.WindtoLevel(value).name + ")";
+ } catch (e) {
+ return "-";
+ }
+}
+
+
+export {
+ WWindUtil
+};
diff --git a/src/components/Wind/dataModel.css b/src/components/Wind/dataModel.css
new file mode 100644
index 0000000..2b70606
--- /dev/null
+++ b/src/components/Wind/dataModel.css
@@ -0,0 +1,173 @@
+.mypopup {
+ .leaflet-popup-content-wrapper {
+ width: 415px;
+ height: 300px;
+
+ }
+
+}
+
+.marker_maptip {
+ width: 380px;
+ background: #fff;
+ padding: 0;
+}
+
+.marker_maptip .marker_title_1nQ {
+ font-size: 18px;
+ margin-bottom: 10px;
+ border-bottom: 1px solid #ddd;
+}
+
+.marker_maptip .marker_title_1nQ icon {
+ float: right;
+ display: block;
+ margin-right: 8px;
+ margin-top: 8px;
+ cursor: pointer;
+}
+
+.marker_maptip .marker_title_1nQ icon:hover {
+ box-shadow: 2px 2px 1px #888;
+}
+
+.marker_maptip .marker_firstline_2WH {
+ width: 100%;
+ height: 44px;
+ margin-bottom: 8px;
+ text-align: center;
+}
+
+.marker_maptip .marker_firstline_2WH .marker_citypart_keg {
+ float: left;
+ width: 74.6%;
+ margin-right: 0.8%;
+ background: #eee;
+}
+
+.marker_maptip .marker_firstline_2WH .marker_citypart_keg .marker_name_3Lz {
+ font-size: 20px;
+ white-space: nowrap;
+}
+
+.marker_maptip .marker_firstline_2WH .marker_citypart_keg .marker_name_small_1VU {
+ font-size: 16px;
+ height: 28px;
+ line-height: 28px;
+ white-space: nowrap;
+}
+
+.marker_maptip .marker_firstline_2WH .marker_citypart_keg .marker_time_w5m {
+ font-size: 12px;
+}
+
+.marker_maptip .marker_firstline_2WH .marker_indexpart_2UI {
+ width: 24.4%;
+ float: left;
+ margin-right: 0.8%;
+}
+
+.marker_maptip .marker_firstline_2WH .marker_indexpart_2UI .marker_indexname_3TP {
+ height: 20px;
+ line-height: 20px;
+}
+
+.marker_maptip .marker_firstline_2WH .marker_indexpart_2UI .marker_indexvalue_1O7 {
+ height: 24px;
+ font-size: 16px;
+ line-height: 24px;
+ color: #666;
+ background: #eee;
+}
+
+.marker_maptip .marker_firstline_2WH .marker_indexpart_2UI:last-child {
+ margin-right: 0;
+}
+
+.marker_maptip .marker_secondline_2Om {
+ width: 100%;
+ height: 44px;
+ margin-bottom: 8px;
+}
+
+.marker_maptip .marker_secondline_2Om .marker_item_2Kk {
+ width: 16%;
+ height: 44px;
+ float: left;
+ text-align: center;
+ margin-right: 0.8%;
+}
+
+.marker_maptip .marker_secondline_2Om .marker_item_2Kk .marker_itemname_Wq5 {
+ height: 20px;
+ line-height: 20px;
+}
+
+.marker_maptip .marker_secondline_2Om .marker_item_2Kk .marker_itemvalue_1l1 {
+ height: 24px;
+ font-size: 15px;
+ line-height: 24px;
+ color: #666;
+ background: #eee;
+ text-align: center;
+}
+
+.marker_maptip .marker_secondline_2Om .marker_item_2Kk .marker_itemvalue_1l1 .marker_redpoint_2aL {
+ width: 4px;
+ height: 4px;
+ padding: 3px;
+ border-radius: 50%;
+ background: red;
+ margin: -5px auto 0;
+}
+
+.marker_maptip .marker_secondline_2Om .marker_item_2Kk:last-child {
+ margin-right: 0;
+}
+
+.marker_maptip .marker_thirdline_1q_ {
+ border: 0;
+ color: #999;
+ width: 100%;
+ margin-bottom: 8px;
+}
+
+.marker_maptip .marker_thirdline_1q_ .marker_tablename_XLo {
+ text-align: left;
+ width: 12%;
+}
+
+.marker_maptip .marker_thirdline_1q_ .marker_tablevalue_23Q {
+ text-align: left;
+ width: 18.333%;
+ white-space: nowrap;
+}
+
+.marker_maptip .marker_fourthline_27d {
+ height: 120px;
+ width: 100%;
+}
+
+.marker_maptip .windBox {
+ display: flex;
+ justify-content: space-between;
+}
+
+.marker_maptip .windBox .windInfor {
+ width: 50%;
+ color: #999;
+ font-size: 17px;
+ padding-top: 15px;
+ padding-left: 30px;
+}
+
+.marker_maptip .windBox .windInfor div {
+ margin-top: 10px;
+}
+
+.marker_maptip .windBox .windIcon {
+ text-align: center;
+ font-size: 15px;
+ width: 50%;
+ color: #999;
+}
\ No newline at end of file
--
Gitblit v1.8.0