|
|
@ -77,7 +77,7 @@ |
|
|
|
<div class="time-item" v-for="(time, index) in times" :key="index" |
|
|
|
:class="{'active': currentTime === time.date, 'first-hour': time.day === '01'}"> |
|
|
|
<span class="hour" style="padding-left: 10px">{{ time.month }}</span> |
|
|
|
<span class="time" @click="onDayClick(time, index)">{{ time.day }}</span> |
|
|
|
<span class="time" @click="onChangeDayClick(time, index)">{{ time.day }}</span> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
|
|
|
@ -146,7 +146,7 @@ |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
<div class="picture special-picture"> |
|
|
|
<div v-loading="loadingPmStatus" |
|
|
|
<div v-loading="loadingPm10Status" |
|
|
|
style="width: 100%;" |
|
|
|
custom-class="loading" |
|
|
|
element-loading-text="加载中"> |
|
|
@ -224,6 +224,7 @@ |
|
|
|
|
|
|
|
<div class="picture-container raman-picture-container" v-show="currentElement === 'extinction'"> |
|
|
|
<div class="picture special-picture"> |
|
|
|
<h2 class="title" style="left: 3.3rem">质控前</h2> |
|
|
|
<div v-loading="loadingExtinctionBeforeStatus" |
|
|
|
style="width: 100%;" |
|
|
|
custom-class="loading" |
|
|
@ -232,6 +233,7 @@ |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
<div class="picture special-picture"> |
|
|
|
<h2 class="title">质控后</h2> |
|
|
|
<div v-loading="loadingExtinctionStatus" |
|
|
|
style="width: 100%;" |
|
|
|
custom-class="loading" |
|
|
@ -243,6 +245,7 @@ |
|
|
|
|
|
|
|
<div class="picture-container raman-picture-container" v-show="currentElement === 'watervapor'"> |
|
|
|
<div class="picture special-picture"> |
|
|
|
<h2 class="title" style="left: 3.3rem">质控前</h2> |
|
|
|
<div v-loading="loadingWatervaporBeforeStatus" |
|
|
|
style="width: 100%" |
|
|
|
element-loading-text="加载中"> |
|
|
@ -250,6 +253,7 @@ |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
<div class="picture special-picture"> |
|
|
|
<h2 class="title">质控后</h2> |
|
|
|
<div v-loading="loadingWaterVaporStatus" |
|
|
|
style="width: 100%" |
|
|
|
element-loading-text="加载中"> |
|
|
@ -264,6 +268,7 @@ |
|
|
|
</template> |
|
|
|
|
|
|
|
<script lang="ts"> |
|
|
|
|
|
|
|
import {onMounted, reactive, toRefs, watch} from 'vue'; |
|
|
|
import moment from "moment"; |
|
|
|
import {post} from '../uilts/axios'; |
|
|
@ -344,6 +349,7 @@ export default { |
|
|
|
loadingWaterVaporSingleStatus: false, |
|
|
|
loadingExtinctionOpticsStatus: false, |
|
|
|
loadingPmStatus: false, |
|
|
|
loadingPm10Status: false, |
|
|
|
loadingCloudSolStatus: false, |
|
|
|
loadingCloudRecognitionStatus: false, |
|
|
|
loadingExtinctionStatus: false, |
|
|
@ -390,7 +396,7 @@ export default { |
|
|
|
creates.boundaryLayerHeight = new HighChartCreate('BoundaryLayerHeight'); |
|
|
|
creates.boundaryLayerHeight.setChart(false,'line', 1000); |
|
|
|
creates.boundaryLayerHeight.setXAxisTypeDate(); |
|
|
|
creates.boundaryLayerHeight.setYAxis('边界层高度(m)'); |
|
|
|
creates.boundaryLayerHeight.setSpecialYAxis('边界层高度(m)'); |
|
|
|
creates.boundaryLayerHeight.setLegend(); |
|
|
|
creates.boundaryLayerHeight.setTooltip('高度: {point.y}'); |
|
|
|
creates.boundaryLayerHeight.setSeries('边界层高度',0, null, null, '#3636FF') |
|
|
@ -403,19 +409,20 @@ export default { |
|
|
|
creates.cloudsHeight.setChart(false, 'scatter', 1000); |
|
|
|
// creates.cloudsHeight.setSpecialXAxis('时间(小时)', 24, 0, 2); |
|
|
|
creates.cloudsHeight.setXAxisTypeDate(); |
|
|
|
creates.cloudsHeight.setYAxis('高度(m)'); |
|
|
|
creates.cloudsHeight.setSpecialYAxis('高度(m)'); |
|
|
|
creates.cloudsHeight.setLegend(); |
|
|
|
creates.cloudsHeight.setTooltip('高度: {point.y}'); |
|
|
|
creates.cloudsHeight.setSeries('云层高度') |
|
|
|
creates.cloudsHeight.init(); |
|
|
|
} |
|
|
|
|
|
|
|
//云顶高度 |
|
|
|
const cloudTopHeightInit = () => { |
|
|
|
creates.cloudTopHeight = new HighChartCreate('cloudTopHeight'); |
|
|
|
creates.cloudTopHeight.setChart(false, 'scatter', 1000); |
|
|
|
// creates.cloudTopHeight.setSpecialXAxis('时间(小时)', 24, 0, 2); |
|
|
|
creates.cloudTopHeight.setXAxisTypeDate(); |
|
|
|
creates.cloudTopHeight.setYAxis('高度(m)'); |
|
|
|
creates.cloudTopHeight.setSpecialYAxis('高度(m)'); |
|
|
|
creates.cloudTopHeight.setLegend(); |
|
|
|
creates.cloudTopHeight.setTooltip('高度: {point.y}'); |
|
|
|
creates.cloudTopHeight.setSeries('云顶高度') |
|
|
@ -427,7 +434,7 @@ export default { |
|
|
|
creates.LidarRatio = new HighChartCreate('LidarRatio'); |
|
|
|
creates.LidarRatio.setChart(false,'line', 1000); |
|
|
|
creates.LidarRatio.setSpecialXAxis('sr', 120, 0, 20); |
|
|
|
creates.LidarRatio.setYAxis('高度(m)'); |
|
|
|
creates.LidarRatio.setSpecialYAxis('高度(m)'); |
|
|
|
creates.LidarRatio.setLegend(); |
|
|
|
creates.LidarRatio.setTooltip('高度: {point.y}'); |
|
|
|
creates.LidarRatio.setSeries('激光雷达比', 0, null, null, '#3636FF') |
|
|
@ -438,10 +445,8 @@ export default { |
|
|
|
const opticalThicknessInit = () => { |
|
|
|
creates.opticalThickness = new HighChartCreate('opticalThickness'); |
|
|
|
creates.opticalThickness.setChart(false,'line', 1000); |
|
|
|
// creates.opticalThickness.setSpecialXAxis('时间(小时)', 24, 0, 2); |
|
|
|
// creates.opticalThickness.setXAxis('时间(天/时)', false); |
|
|
|
creates.opticalThickness.setXAxisTypeDate(); |
|
|
|
creates.opticalThickness.setYAxis('光学厚度'); |
|
|
|
creates.opticalThickness.setSpecialYAxis('光学厚度'); |
|
|
|
creates.opticalThickness.setLegend(true); |
|
|
|
creates.opticalThickness.setTooltip('{point.y}'); |
|
|
|
creates.opticalThickness.setSeries('气溶胶', 0, null, null, '#FF5352') |
|
|
@ -567,12 +572,12 @@ export default { |
|
|
|
reloadCloudRecognition('backscatter', 801, 'backscatter', drawBackscatter); |
|
|
|
break; |
|
|
|
case 'pm2_5' : |
|
|
|
initTimeLine() |
|
|
|
initTimeLine(); |
|
|
|
reloadCloudRecognition('pm2_5', 201, 'pm2_5', drawPm2Point5); |
|
|
|
reloadCloudRecognition('pm2_5', 201, 'pm10', drawPm10); |
|
|
|
reloadCloudRecognition('pm10', 201, 'pm10', drawPm10); |
|
|
|
break; |
|
|
|
case 'pblh' : |
|
|
|
initTimeLine() |
|
|
|
initTimeLine(); |
|
|
|
reloadChartsRecognition('pblh', drawBoundaryLayerCharts); |
|
|
|
break; |
|
|
|
case 'lidarratio' : |
|
|
@ -595,7 +600,6 @@ export default { |
|
|
|
// reloadCloudRecognition('layertype', 801, 'layertype', drawCloudRecognition); |
|
|
|
// break; |
|
|
|
case 'extinction' : |
|
|
|
// initTimeLineDay() |
|
|
|
initTimeLine(true); |
|
|
|
reloadExtinctionBefore(); |
|
|
|
reloadCloudRecognition('extinction', 801, 'extinction', drawExtinctionAfter, false, 12); |
|
|
@ -620,6 +624,7 @@ export default { |
|
|
|
post("/qualityCompare/findByTimeAndElement", params).then((response: any) => { |
|
|
|
options.loadingWatervaporBeforeStatus = false; |
|
|
|
if (response.error != 0){ |
|
|
|
createEmptyCanvas('watervapor_chart-before', 800, 650); |
|
|
|
console.log("未找到质控前数据文件"); |
|
|
|
return; |
|
|
|
} |
|
|
@ -629,7 +634,7 @@ export default { |
|
|
|
} |
|
|
|
|
|
|
|
let matrix = convertValueToBox(response.data); |
|
|
|
creates.watervaporBeforeDrawer = new HeatMapDrawer(800, 650, matrix, "watervapor_chart-before", 'g/kg','质控前'); |
|
|
|
creates.watervaporBeforeDrawer = new HeatMapDrawer(800, 650, matrix, "watervapor_chart-before", 'g/kg'); |
|
|
|
creates.watervaporBeforeDrawer.setAxis(new CoordinateScale(quailtyTimes), new CoordinateScale([0, 500, 1000, 1500], true, true)); |
|
|
|
creates.watervaporBeforeDrawer.setColorChart(prepareWatervaporColors()); |
|
|
|
creates.watervaporBeforeDrawer.draw(); |
|
|
@ -646,6 +651,7 @@ export default { |
|
|
|
post("/qualityCompare/findByTimeAndElement", params).then((response: any) => { |
|
|
|
options.loadingExtinctionBeforeStatus = false; |
|
|
|
if (response.error != 0){ |
|
|
|
createEmptyCanvas('extinction_chart-before', 800, 650); |
|
|
|
console.log("未找到质控前数据文件"); |
|
|
|
return; |
|
|
|
} |
|
|
@ -655,7 +661,7 @@ export default { |
|
|
|
} |
|
|
|
|
|
|
|
let matrix = convertValueToBox(response.data); |
|
|
|
creates.extinctionBeforeDrawer = new HeatMapDrawer(800, 650, matrix, "extinction_chart-before", 'km/sr','质控前'); |
|
|
|
creates.extinctionBeforeDrawer = new HeatMapDrawer(800, 650, matrix, "extinction_chart-before", '/km'); |
|
|
|
creates.extinctionBeforeDrawer.setAxis(new CoordinateScale(options.timeArray), new CoordinateScale([0, 2000, 4000, 6000, 8000, 10000, 12000], true, true)); |
|
|
|
creates.extinctionBeforeDrawer.setColorChart(prepareExtinctionnColors()); |
|
|
|
creates.extinctionBeforeDrawer.draw(); |
|
|
@ -664,7 +670,6 @@ export default { |
|
|
|
|
|
|
|
const convertValueToBox = (data) => { |
|
|
|
let timeMoment = moment(options.date).set('h', 1).add(-1, 'd'); |
|
|
|
console.log(options.currentElement) |
|
|
|
if (options.currentElement === 'extinction'){ |
|
|
|
timeMoment.add(12, 'h'); |
|
|
|
} |
|
|
@ -713,7 +718,7 @@ export default { |
|
|
|
clearHeatMapDrawer(creates.pm2Point5Drawer); |
|
|
|
break; |
|
|
|
case 'pm10': |
|
|
|
options.loadingPmStatus = true; |
|
|
|
options.loadingPm10Status = true; |
|
|
|
clearHeatMapDrawer(creates.pm10Drawer); |
|
|
|
break; |
|
|
|
case 'extinctionOptics': |
|
|
@ -814,7 +819,7 @@ export default { |
|
|
|
const drawPm10 = (result: CustomeArray<any>) => { |
|
|
|
if (result.length != 24) return; |
|
|
|
|
|
|
|
options.loadingPmStatus = false; |
|
|
|
options.loadingPm10Status = false; |
|
|
|
if (creates.pm10Drawer != null) { |
|
|
|
creates.pm10Drawer.close(); |
|
|
|
} |
|
|
@ -943,7 +948,7 @@ export default { |
|
|
|
} |
|
|
|
|
|
|
|
let matrix = converCloudRecognition(801, result, 'extinctionOptics'); |
|
|
|
creates.opticsExtinctionDrawer = new HeatMapDrawer(1200, 650, matrix, "extinction_optics_chart",'/km/sr'); |
|
|
|
creates.opticsExtinctionDrawer = new HeatMapDrawer(1200, 650, matrix, "extinction_optics_chart",'/km'); |
|
|
|
creates.opticsExtinctionDrawer.setAxis(new CoordinateScale(options.timeArray), new CoordinateScale([0, 2000, 4000, 6000, 8000, 10000, 12000], true, true)); |
|
|
|
creates.opticsExtinctionDrawer.setColorChart(prepareExtinctionnColors()); |
|
|
|
creates.opticsExtinctionDrawer.draw(); |
|
|
@ -974,7 +979,7 @@ export default { |
|
|
|
} |
|
|
|
|
|
|
|
let matrix = converCloudRecognition(101, result, 'watervapor'); |
|
|
|
creates.watervaporDrawer = new HeatMapDrawer(800, 650, matrix, "watervapor_chart-after",'g/kg', '质控前'); |
|
|
|
creates.watervaporDrawer = new HeatMapDrawer(800, 650, matrix, "watervapor_chart-after",'g/kg'); |
|
|
|
creates.watervaporDrawer.setAxis(new CoordinateScale(quailtyTimes), new CoordinateScale([0, 500, 1000, 1500], true, true)); |
|
|
|
creates.watervaporDrawer.setColorChart(prepareWatervaporColors()); |
|
|
|
creates.watervaporDrawer.draw(); |
|
|
@ -996,7 +1001,7 @@ export default { |
|
|
|
} |
|
|
|
|
|
|
|
let matrix = converCloudRecognition(801, result, 'extinction'); |
|
|
|
creates.extinctionDrawer = new HeatMapDrawer(800, 650, matrix, "extinction_chart-after", 'km/sr','质控后'); |
|
|
|
creates.extinctionDrawer = new HeatMapDrawer(800, 650, matrix, "extinction_chart-after", '/km'); |
|
|
|
creates.extinctionDrawer.setAxis(new CoordinateScale(options.timeArray), new CoordinateScale([0, 2000, 4000, 6000, 8000, 10000, 12000], true, true)); |
|
|
|
creates.extinctionDrawer.setColorChart(prepareExtinctionnColors()); |
|
|
|
creates.extinctionDrawer.draw(); |
|
|
@ -1024,7 +1029,7 @@ export default { |
|
|
|
} |
|
|
|
options.timeArray.reverse() |
|
|
|
} |
|
|
|
// |
|
|
|
|
|
|
|
const reloadChartsRecognition = (element: string, callback: any) => { |
|
|
|
preprocessingCharts(element) |
|
|
|
let result = new CustomeArray(callback); |
|
|
@ -1051,7 +1056,6 @@ export default { |
|
|
|
} |
|
|
|
|
|
|
|
let matrix = converCloudRecognition(801, result, 'layertype'); |
|
|
|
|
|
|
|
creates.cloudRecognitionDrawer = new HeatMapDrawer(1200, 600, matrix, "cloud_recognition_chart"); |
|
|
|
creates.cloudRecognitionDrawer.setAxis(new CoordinateScale(options.timeArray), new CoordinateScale([0, 2000, 4000, 6000, 8000, 10000, 12000], true, true)); |
|
|
|
creates.cloudRecognitionDrawer.setColorChart(prepareCloudRecognitionColors()); |
|
|
@ -1060,7 +1064,10 @@ export default { |
|
|
|
|
|
|
|
const prepareCloudRecognitionColors = () => { |
|
|
|
return new ColorChart(['#0000FF', '#00FF00', '#FF0000', '#FFFFFF'], |
|
|
|
[3, 2, 1, 0, -99] |
|
|
|
[{ label: '冰云', value: 3 }, { label: '水云', value: 2 }, { label: '气溶胶', value: 1 }, { label: '晴空', value: 0 }], |
|
|
|
false, |
|
|
|
false, |
|
|
|
"equal" |
|
|
|
); |
|
|
|
} |
|
|
|
|
|
|
@ -1132,12 +1139,13 @@ export default { |
|
|
|
} |
|
|
|
|
|
|
|
setCloudRecognitionResult(capacity, time, response.message, response.data, result); |
|
|
|
}).catch(error => { |
|
|
|
setCloudRecognitionResult(capacity, time, error.message, null, result); |
|
|
|
}) |
|
|
|
// .catch(error => { |
|
|
|
// setCloudRecognitionResult(capacity, time, error.message, null, result); |
|
|
|
// }) |
|
|
|
// .catch(error => { |
|
|
|
// setCloudRecognitionResult(capacity, time, error.message, null, result); |
|
|
|
// }) |
|
|
|
} |
|
|
|
|
|
|
|
// |
|
|
@ -1550,12 +1558,12 @@ export default { |
|
|
|
elementChange(element) |
|
|
|
} |
|
|
|
|
|
|
|
const onDayClick = (time, index) => { |
|
|
|
options.timeLineFormat = "hour" |
|
|
|
options.currentTime = time.date; |
|
|
|
const onChangeDayClick = (time, index) => { |
|
|
|
options.currentTime = time.date |
|
|
|
options.date = moment(time.date).format('YYYY-MM-DD'); |
|
|
|
options.index = index; |
|
|
|
elementChange(options.currentElement) |
|
|
|
options.index = index; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
const onPrevDayTimeClick = () => { |
|
|
@ -1589,7 +1597,7 @@ export default { |
|
|
|
// onSaveClick, |
|
|
|
onTabClick, |
|
|
|
onElementClick, |
|
|
|
onDayClick, |
|
|
|
onChangeDayClick, |
|
|
|
onPrevDayTimeClick, |
|
|
|
onNextDayTimeClick |
|
|
|
} |
|
|
@ -1628,35 +1636,36 @@ export default { |
|
|
|
|
|
|
|
.picture { |
|
|
|
width: 100%; |
|
|
|
height: 100%; |
|
|
|
position: relative; |
|
|
|
margin-top: 30px; |
|
|
|
//margin-top: 30px; |
|
|
|
|
|
|
|
#watervapor_single_chart { |
|
|
|
transform: translateX(9%) translateY(15px); |
|
|
|
transform: translateX(9%) translateY(20px); |
|
|
|
//transform: scale(1.0, 0.8) translateX(539px); |
|
|
|
} |
|
|
|
|
|
|
|
#extinction_optics_chart { |
|
|
|
//transform: scale(0.56, 0.85) translateX(-32%); |
|
|
|
transform: translateX(9%) translateY(15px); |
|
|
|
transform: translateX(9%) translateY(20px); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
#pm2_5_chart { |
|
|
|
transform: translateX(-50px) translateY(50px); |
|
|
|
transform: translateX(-50px) translateY(20px); |
|
|
|
} |
|
|
|
|
|
|
|
#pm10_chart { |
|
|
|
transform: translateX(-50px) translateY(50px); |
|
|
|
transform: translateX(-50px) translateY(20px); |
|
|
|
} |
|
|
|
|
|
|
|
#backscatter_chart { |
|
|
|
transform: translateX(9%) translateY(50px); |
|
|
|
transform: translateX(9%) translateY(20px); |
|
|
|
//transform: scale(0.6, 0.85) translateX(-76px); |
|
|
|
} |
|
|
|
|
|
|
|
#cloud_sol_chart { |
|
|
|
transform: translateX(9%) translateY(50px); |
|
|
|
transform: translateX(9%) translateY(20px); |
|
|
|
//transform: scale(0.6, 0.85) translate(-12%, -12px); |
|
|
|
} |
|
|
|
|
|
|
@ -1675,7 +1684,7 @@ export default { |
|
|
|
width: 100%; |
|
|
|
font-size: 0.22rem; |
|
|
|
position: absolute; |
|
|
|
left: 2.10rem; |
|
|
|
left: 3.5rem; |
|
|
|
top: 0.30rem; |
|
|
|
z-index: 100; |
|
|
|
} |
|
|
|