From dd2ff26f240bcb79de082f1de4eaf6d2c973b28e Mon Sep 17 00:00:00 2001
From: feiyu02 <risaku@163.com>
Date: 星期一, 20 十月 2025 08:38:01 +0800
Subject: [PATCH] 2025.10.18 修改嫉妒报告生成逻辑
---
src/views/underwaymix/UnderwayMixMode.vue | 688 ++++++++++++++++++++++++++------------------------------
1 files changed, 322 insertions(+), 366 deletions(-)
diff --git a/src/views/underwaymix/UnderwayMixMode.vue b/src/views/underwaymix/UnderwayMixMode.vue
index 2ed90d6..de55333 100644
--- a/src/views/underwaymix/UnderwayMixMode.vue
+++ b/src/views/underwaymix/UnderwayMixMode.vue
@@ -1,169 +1,146 @@
<template>
<!-- <div class="p-events-none m-t-2"> -->
- <el-row justify="space-between">
+ <el-row class="m-t-2">
+ <FactorRadio @change="handleFactorTypeChange"></FactorRadio>
+ </el-row>
+ <el-row class="m-t-2" justify="space-between">
<el-row class="wrap">
<el-col span="2">
- <el-row>
- <BaseCard v-show="show" size="medium" direction="left">
- <template #content>
- <el-row>
+ <!-- <el-row> -->
+ <BaseCard v-show="show" size="medium" direction="left">
+ <template #content>
+ <!-- <el-row>
<el-form :inline="true">
- <!-- <el-form-item label="璧拌埅铻嶅悎">
- <el-select
- v-model="selectedfusionData"
- multiple
- clearable
- @change="handleChange"
- placeholder="閫夋嫨浠诲姟"
- size="small"
- style="width: 160px"
- :loading="fusionLoading"
- >
- <el-option
- v-for="(s, i) in fusionDataList"
- :key="i"
- :label="s.mixDataId"
- :value="i"
- />
- </el-select>
- </el-form-item> -->
- <!-- <el-form-item>
- <el-button
- type="primary"
- class="el-button-custom"
- size="small"
- :disabled="
- !gridCellList || selectedfusionData.length == 0
- "
- @click="handleFusionClick"
- >
- {{ '鍙犲姞璧拌埅' }}
- </el-button>
- </el-form-item> -->
+
</el-form>
- </el-row>
- <el-row class="m-t-8" justify="space-between">
- <span>铻嶅悎鍒嗘瀽</span>
- </el-row>
- <el-form :inline="false">
- <el-form-item label="鏃舵绛涢��">
- <el-select
- v-model="selectedTimeSection"
- multiple
- clearable
- placeholder="閫夋嫨鏃舵"
- size="small"
- style="width: 300px"
- >
- <el-option
- v-for="(v, i) in timeSectionList"
- :key="i"
- :label="v"
- :value="v"
- />
- </el-select>
- </el-form-item>
- <el-form-item label="鍖哄煙绛涢��">
- <el-select
- v-model="selectedZone"
- multiple
- clearable
- placeholder="閫夋嫨鍖哄煙"
- size="small"
- style="width: 300px"
- >
- <el-option
- v-for="(v, i) in zoneList"
- :key="i"
- :label="v"
- :value="v"
- />
- </el-select>
- </el-form-item>
- <el-form-item label="鑳屾櫙绛涢��">
- <el-select
- v-model="selectedPollutionDegree"
- multiple
- clearable
- placeholder="閫夋嫨鑳屾櫙"
- size="small"
- style="width: 300px"
- >
- <el-option
- v-for="(v, i) in pollutionDegreeList"
- :key="i"
- :label="v"
- :value="v"
- />
- </el-select>
- </el-form-item>
- </el-form>
- <div v-if="!gridCellList">
- <el-icon class="is-loading"><Loading /></el-icon>
- 缃戞牸淇℃伅鍔犺浇涓�...
- </div>
- <el-table
- ref="tableRef"
- :data="showFusionDataList"
- table-layout="fixed"
- size="default"
- :show-overflow-tooltip="true"
- border
- height="50vh"
- row-class-name="t-row-normal"
- cell-class-name="t-cell"
- header-row-class-name="t-header-row"
- header-cell-class-name="t-header-cell"
- :highlight-current-row="false"
- @row-click="handleRowClick"
- @selection-change="handleSelectionChange"
+ </el-row> -->
+ <el-row justify="space-between">
+ <span>铻嶅悎鍒嗘瀽</span>
+ </el-row>
+ <el-form :inline="false">
+ <el-form-item label="鏃舵绛涢��">
+ <el-select
+ v-model="selectedTimeSection"
+ multiple
+ clearable
+ placeholder="閫夋嫨鏃舵"
+ size="small"
+ style="width: 300px"
+ >
+ <el-option
+ v-for="(v, i) in timeSectionList"
+ :key="i"
+ :label="v.label"
+ :value="v.value"
+ />
+ </el-select>
+ </el-form-item>
+ <el-form-item label="鍖哄煙绛涢��">
+ <el-select
+ v-model="selectedZone"
+ multiple
+ clearable
+ placeholder="閫夋嫨鍖哄煙"
+ size="small"
+ style="width: 300px"
+ >
+ <el-option
+ v-for="(v, i) in zoneList"
+ :key="i"
+ :label="v.label"
+ :value="v.value"
+ />
+ </el-select>
+ </el-form-item>
+ <el-form-item label="鑳屾櫙绛涢��">
+ <el-select
+ v-model="selectedPollutionDegree"
+ multiple
+ clearable
+ placeholder="閫夋嫨姹℃煋鑳屾櫙"
+ size="small"
+ style="width: 300px"
+ >
+ <el-option
+ v-for="(v, i) in pollutionDegreeList"
+ :key="i"
+ :label="v.label"
+ :value="v.value"
+ />
+ </el-select>
+ </el-form-item>
+ </el-form>
+ <el-space v-if="!gridCellList">
+ <el-icon class="is-loading"><Loading /></el-icon>
+ <el-text type="info">缃戞牸淇℃伅鍔犺浇涓�...</el-text>
+ </el-space>
+ <el-table
+ ref="tableRef"
+ :data="showFusionDataList"
+ table-layout="fixed"
+ size="small"
+ :show-overflow-tooltip="true"
+ border
+ height="45vh"
+ row-class-name="t-row-normal"
+ cell-class-name="t-cell"
+ header-row-class-name="t-header-row"
+ header-cell-class-name="t-header-cell"
+ :highlight-current-row="false"
+ @row-click="handleRowClick"
+ @select="handleSelectionChange"
+ @select-all="handleSelectionChange"
+ >
+ <el-table-column width="40" v-if="!gridCellList">
+ <template #default>
+ <el-icon class="is-loading"><Loading /></el-icon>
+ </template>
+ </el-table-column>
+ <el-table-column
+ v-else
+ type="selection"
+ :selectable="selectable"
+ width="40"
>
- <el-table-column width="40" v-if="!gridCellList">
- <template #default>
- <el-icon class="is-loading"><Loading /></el-icon>
- </template>
- </el-table-column>
- <el-table-column
- v-else
- type="selection"
- :selectable="selectable"
- width="40"
- />
- <!-- <el-table-column
+ <!-- <template #header>
+ <span>閫夋嫨</span>
+ </template> -->
+ </el-table-column>
+ <!-- <el-table-column
type="index"
label="搴忓彿"
width="30"
/> -->
- <el-table-column
- prop="dataTime"
- label="鏃堕棿"
- align="center"
- :formatter="timeFormatter"
- width="120"
- />
- <el-table-column
- prop="missionCode"
- label="浠诲姟缂栧彿"
- align="center"
- width="150"
- />
- <el-table-column
- prop="zone"
- label="鍖哄煙"
- align="center"
- width="50"
- />
- <el-table-column
- prop="pollutionDegree"
- label="姹℃煋鑳屾櫙"
- align="center"
- width="70"
- />
- </el-table>
+ <el-table-column
+ prop="dataTime"
+ label="鏃堕棿"
+ align="center"
+ :formatter="timeFormatter"
+ width="100"
+ />
+ <el-table-column
+ prop="missionCode"
+ label="浠诲姟缂栧彿"
+ align="center"
+ width="150"
+ />
+ <el-table-column
+ prop="zone"
+ label="鍖哄煙"
+ align="center"
+ width="60"
+ />
+ <el-table-column
+ prop="pollutionDegree"
+ label="姹℃煋鑳屾櫙"
+ align="center"
+ width="66"
+ />
+ </el-table>
- <div class="m-t-8">鎿嶄綔</div>
- <el-space class="m-t-8 m-b-8">
- <!-- <el-button
+ <div class="m-t-8">鎿嶄綔</div>
+ <el-space class="m-t-8 m-b-8">
+ <!-- <el-button
type="primary"
class="el-button-custom"
size="small"
@@ -172,44 +149,76 @@
>
{{ '鍙犲姞璧拌埅' }}
</el-button> -->
- <CheckButton
- active-text="铻嶅悎鍒嗘瀽"
- :default-value="false"
- @change="handleMixClick"
- >
- </CheckButton>
- </el-space>
- </template>
- <template #footer> </template>
- </BaseCard>
- </el-row>
+ <el-button
+ type="primary"
+ class="el-button-custom"
+ size="small"
+ @click="handleMixClick"
+ :disabled="selectedfusionData.length < 2"
+ >
+ {{ '铻嶅悎鍒嗘瀽' }}
+ </el-button>
+ <el-button
+ type="primary"
+ class="el-button-custom"
+ size="small"
+ @click="underwayMixDialogVisible = true"
+ >
+ {{ '铻嶅悎绠$悊' }}
+ </el-button>
+ <!-- <CheckButton
+ active-text="铻嶅悎鍒嗘瀽"
+ :default-value="false"
+ @change="handleMixClick"
+ >
+ </CheckButton> -->
+ </el-space>
+ </template>
+ <template #footer> </template>
+ </BaseCard>
+ <!-- </el-row> -->
</el-col>
<el-col span="2">
- <el-row>
- <CardButton
- name="璧拌埅铻嶅悎"
- direction="right"
- @click="() => (show = !show)"
- ></CardButton>
- </el-row>
+ <!-- <el-row> -->
+ <CardButton
+ name="璧拌埅铻嶅悎"
+ direction="right"
+ @click="() => (show = !show)"
+ ></CardButton>
+ <!-- </el-row> -->
</el-col>
</el-row>
- <GridStyleTool
- :gridCtrls="gridCtrls"
- @show-underway="handleUnderwayClick"
- @on-delete="handleFusionDelete"
- ></GridStyleTool>
</el-row>
+ <GridStyleTool
+ class="style-tool"
+ :gridCtrls="gridCtrls"
+ @show-underway="handleUnderwayClick"
+ @on-delete="handleFusionDelete"
+ ></GridStyleTool>
+ <!-- <el-row class="m-t-2">
+ <FactorLegend class="m-t-2" @change="handleLegendTypeChange"></FactorLegend>
+ </el-row> -->
+ <UnderwayMixManage
+ :groupId="groupId"
+ v-model="underwayMixDialogVisible"
+ @onUpdated="fetchFusionData"
+ ></UnderwayMixManage>
<!-- </div> -->
</template>
<script setup>
-import { ref, onMounted, onUnmounted, watch, computed } from 'vue';
+import { ref, toRaw, onMounted, onUnmounted, watch, computed } from 'vue';
import moment from 'moment';
import gridApi from '@/api/gridApi';
import { SatelliteGrid } from '@/model/SatelliteGrid';
-import GridStyleTool from './component/GridStyleTool.vue';
import { useGridStore } from '@/stores/grid-info';
+import { TYPE0 } from '@/constant/device-type';
+import { defaultOptions } from '@/constant/radio-options';
+import { useMessageBox } from '@/composables/messageBox';
+import { useCloned } from '@vueuse/core';
+
+import GridStyleTool from './component/GridStyleTool.vue';
+import UnderwayMixManage from './component/UnderwayMixManage.vue';
const gridStore = useGridStore();
@@ -220,20 +229,36 @@
const props = defineProps({
groupId: {
type: Number,
- default: 3
+ default: import.meta.env.VITE_DATA_MODE == 'jingan' ? 2 : 3
}
});
const show = ref(true);
+// 鐩戞祴鍥犲瓙鐨勭被鍨嬬紪鍙�
+const factorType = ref(defaultOptions(TYPE0));
+satelliteGrid.setShowFactorType(toRaw(factorType.value));
+// const factor = computed(()=>{
+
+// })
+
+function handleFactorTypeChange(e, item) {
+ factorType.value = item;
+ // console.log(toRaw(factorType.value));
+ satelliteGrid.setShowFactorType(toRaw(factorType.value));
+}
+
const mission = ref(undefined);
+const underwayMixDialogVisible = ref(false);
const gridCellList = ref(undefined);
const fusionData = ref(undefined);
// 璧拌埅铻嶅悎鏁版嵁
const fusionLoading = ref(false);
const fusionDataList = ref([]);
+
+const lastSelectedfusionData = ref([]);
const selectedfusionData = ref([]);
-const tableRef = ref()
+const tableRef = ref();
const selectable = (row) => gridCellList.value;
const gridDataDetailMap = new Map();
@@ -248,10 +273,11 @@
const hour = moment(e.dayTimePeriodStart).hour();
const t = e.dayTimePeriod;
const option = {
+ label: `${t} ${moment(e.dayTimePeriodStart).format('HH:mm')} - ${moment(e.dayTimePeriodEnd).format('HH:mm')}`,
value: t,
index: hour
};
- if (res.indexOf(option) == -1) {
+ if (!res.find((v) => v.label == option.label)) {
res.push(option);
}
});
@@ -269,7 +295,8 @@
res = res.map((v) => {
const count = rMap.get(v.value);
- return `${v.value} (${count})`;
+ v.label = `${v.label} (${count ? count : 0})`;
+ return v;
});
return res;
});
@@ -278,8 +305,12 @@
let res = [];
fusionDataList.value.forEach((e) => {
const t = e.zone;
- if (res.indexOf(t) == -1) {
- res.push(t);
+ const option = {
+ label: t,
+ value: t
+ };
+ if (!res.find((v) => v.label == option.label)) {
+ res.push(option);
}
});
const rMap = new Map();
@@ -291,8 +322,9 @@
});
res = res.map((v) => {
- const count = rMap.get(v);
- return `${v} (${count})`;
+ const count = rMap.get(v.value);
+ v.label = `${v.label} (${count ? count : 0})`;
+ return v;
});
return res;
});
@@ -302,10 +334,11 @@
fusionDataList.value.forEach((e) => {
const t = e.pollutionDegree;
const option = {
+ label: t,
value: t,
index: e.pollutionDegreeIndex
};
- if (res.indexOf(option) == -1) {
+ if (!res.find((v) => v.label == option.label)) {
res.push(option);
}
});
@@ -322,7 +355,8 @@
res = res.map((v) => {
const count = rMap.get(v.value);
- return `${v.value} (${count})`;
+ v.label = `${v.label} (${count ? count : 0})`;
+ return v;
});
return res;
});
@@ -382,58 +416,15 @@
.finally(() => (fusionLoading.value = false));
}
-// 妫�鏌ヨ蛋鑸暟鎹槸鍚﹀拰100绫崇綉鏍煎凡铻嶅悎
-// function checkUnderwayFusionResult() {
-// const time = moment(mission.value.startTime).format('YYYY-MM-DD HH:mm:ss');
-// gridApi.fetchGridData(props.groupId, time, 3).then((res) => {
-// if (res.data.length > 0) {
-// fusionData.value = res.data[0];
-// } else {
-// fusionData.value = undefined;
-// }
-// });
-// }
-
function prepareGrid(gridInfo) {
- satelliteGrid.gridPrepare(gridInfo, (polygon) => {
- //榧犳爣绉诲叆浜嬩欢
- polygon.on('mouseover', () => {
- polygon.setOptions({
- //淇敼澶氳竟褰㈠睘鎬х殑鏂规硶
- strokeWeight: 2,
- strokeColor: 'red'
- });
- });
- //榧犳爣绉诲嚭浜嬩欢
- polygon.on('mouseout', () => {
- polygon.setOptions({
- strokeWeight: 1,
- strokeColor: 'white'
- });
- });
- });
- // satelliteGrid.setGridEvent('click', (gridCell, gridDataDetail) => {
- // // const polygon = e.target
- // // const { gridCell } = polygon.getExtData();
- // // const cellIndex = gridCell.cellIndex;
- // gridStore.selectedGridCellAndDataDetail = {
- // gridCell,
- // gridDataDetail
- // };
- // });
+ satelliteGrid.gridPrepare(gridInfo);
}
-
-// watch(mission, (nV, oV) => {
-// if (nV != oV) {
-// checkUnderwayFusionResult();
-// search(nV);
-// }
-// });
watch(
() => props.groupId,
(nV, oV) => {
if (nV != oV) {
+ satelliteGrid.gridGroupId = nV;
gridApi.fetchGridCell(nV).then((res) => {
gridCellList.value = res.data;
prepareGrid(gridCellList.value);
@@ -464,23 +455,22 @@
tag: d.id,
data: gdd,
extData: {
- name: `璧拌埅缃戞牸 - ${d.mixDataId}`,
+ name: `璧拌埅缃戞牸 - ${d.missionCode}`,
type: 0
}
});
- satelliteGrid.setGridEvent(
- [d.id],
- 'click',
- (gridCell, gridDataDetail) => {
- gridStore.selectedGridCellAndDataDetail = {
- gridCell,
- gridDataDetail
- };
- }
- );
+ satelliteGrid.setDefaultGridClickEvent([d.id]);
+ // satelliteGrid.setGridEvent(
+ // [d.id],
+ // 'click',
+ // (gridCell, gridDataDetail) => {
+ // gridStore.selectedGridCellAndDataDetail = {
+ // gridCell,
+ // gridDataDetail
+ // };
+ // }
+ // );
gridCtrls.value = [satelliteGrid];
- // gridCtrls.value = Array.from(satelliteGrid.mapViewsMap);
- // console.log(gridCtrls.value);
});
}
});
@@ -488,77 +478,17 @@
let mixTag;
function handleMixClick() {
- mixActive.value = !mixActive.value;
const tags = selectedfusionData.value.map((v) => v.id);
satelliteGrid.changeVisibility({
showGridViews: false,
showDataTxt: false,
showRankTxt: false
});
- if (mixActive.value) {
- mixTag = satelliteGrid.mixGrid(tags);
- satelliteGrid.setGridEvent(
- [mixTag],
- 'click',
- (gridCell, gridDataDetail) => {
- gridStore.selectedGridCellAndDataDetail = {
- gridCell,
- gridDataDetail
- };
- }
- );
+ gridApi.mixUnderwayGridData(props.groupId, tags).then((res) => {
+ mixTag = satelliteGrid.mixGrid2({ tags, gridDataDetailList: res.data });
+ satelliteGrid.setDefaultGridClickEvent([mixTag]);
gridCtrls.value = [satelliteGrid];
- } else {
- satelliteGrid.changeVisibility({
- tags,
- showGridViews: true
- });
- }
-}
-
-let heatTag;
-function handleHeatMapClick() {
- heatActive.value = !heatActive.value;
- satelliteGrid.changeVisibility({
- showGridViews: false,
- showDataTxt: false,
- showRankTxt: false
});
- if (heatActive.value) {
- // heatTag = satelliteGrid.drawHeatGrid(mixTag);
- // satelliteGrid.setGridEvent(
- // [heatTag],
- // 'click',
- // (gridCell, gridDataDetail) => {
- // gridStore.selectedGridCellAndDataDetail = {
- // gridCell,
- // gridDataDetail
- // };
- // }
- // );
- // gridCtrls.value = [satelliteGrid];
-
- const data = satelliteGrid.gridDataDetailMap.get(mixTag);
- gridApi.buildUnderwayHeatmap(3, data, 10).then((res) => {
- heatTag = satelliteGrid.drawHeatGrid2(mixTag, res.data);
- satelliteGrid.setGridEvent(
- [heatTag],
- 'click',
- (gridCell, gridDataDetail) => {
- gridStore.selectedGridCellAndDataDetail = {
- gridCell,
- gridDataDetail
- };
- }
- );
- gridCtrls.value = [satelliteGrid];
- });
- } else {
- satelliteGrid.changeVisibility({
- tags: [mixTag],
- showGridViews: true
- });
- }
}
function handleHeatMapSearchClick() {
@@ -578,36 +508,54 @@
console.log(res);
}
-function handleUnderwayClick({ isShow, dataId }) {
+function handleUnderwayClick({ isShow, dataId, done }) {
underwayVisible.value = !underwayVisible.value;
if (isShow) {
- draw(dataId);
+ draw(dataId).finally(() => done());
} else {
const d = fusionDataList.value.find((v) => v.id == dataId);
const mission = missionStore.missionList.find((v) => {
- return v.missionCode == d.mixDataId;
+ return v.missionCode == d.missionCode;
});
mapLine.hideLine(mission.missionCode);
+ done();
}
}
function handleFusionDelete(index, tag) {
const f = selectedfusionData.value.find((v) => v.id == tag);
if (f) {
- // const i = selectedfusionData.value.indexOf(f);
- // selectedfusionData.value.splice(i, 1);
- tableRef.value.toggleRowSelection(f, false)
+ const i = selectedfusionData.value.indexOf(f);
+ selectedfusionData.value.splice(i, 1);
+ lastSelectedfusionData.value = useCloned(
+ selectedfusionData.value
+ ).cloned.value;
+ tableRef.value.toggleRowSelection(f, false);
}
}
function handleSelectionChange(val) {
- const deleted = selectedfusionData.value.filter((v) => {
- return val.indexOf(v) == -1;
+ // console.log(val);
+
+ const deleted = lastSelectedfusionData.value.filter((v) => {
+ return !val.find((t) => t.id == v.id);
});
const deletedIdList = deleted.map((d) => d.id);
const added = val.filter((v) => {
- return selectedfusionData.value.indexOf(v) == -1;
+ return !lastSelectedfusionData.value.find((t) => t.id == v.id);
});
+
+ // 鍘婚櫎閫夋嫨涓婇檺璀﹀憡
+ if (false && val.length > 4) {
+ useMessageBox({
+ confirmMsg: '鏈�澶氬厑璁稿悓鏃跺睍绀�4娆¤蛋鑸褰�',
+ confirmTitle: '璧拌埅璁板綍閫夋嫨杩囧璀﹀憡'
+ });
+ added.forEach((a) => {
+ tableRef.value.toggleRowSelection(a, false);
+ });
+ return;
+ }
// const addedIdList = added.map(d=>d.id)
if (deletedIdList.length > 0) {
@@ -618,31 +566,57 @@
added.forEach((i) => {
const d = i;
- gridApi.fetchGridDataDetail(d.id, d.groupId).then((res) => {
- gridDataDetailMap.set(d.id, res.data);
- const gdd = res.data;
+ if (gridDataDetailMap.has(d.id)) {
+ const gdd = gridDataDetailMap.get(d.id);
satelliteGrid.drawTagGrid({
tag: d.id,
data: gdd,
extData: {
- name: `璧拌埅缃戞牸 - ${d.mixDataId}`,
+ name: `璧拌埅缃戞牸 - ${d.missionCode}`,
type: 0
}
});
- satelliteGrid.setGridEvent(
- [d.id],
- 'click',
- (gridCell, gridDataDetail) => {
- gridStore.selectedGridCellAndDataDetail = {
- gridCell,
- gridDataDetail
- };
- }
- );
+ satelliteGrid.setDefaultGridClickEvent([d.id]);
+ // satelliteGrid.setGridEvent(
+ // [d.id],
+ // 'click',
+ // (gridCell, gridDataDetail) => {
+ // gridStore.selectedGridCellAndDataDetail = {
+ // gridCell,
+ // gridDataDetail
+ // };
+ // }
+ // );
gridCtrls.value = [satelliteGrid];
- });
+ } else {
+ gridApi.fetchGridDataDetail(d.id, d.groupId).then((res) => {
+ gridDataDetailMap.set(d.id, res.data);
+ const gdd = res.data;
+ satelliteGrid.drawTagGrid({
+ tag: d.id,
+ data: gdd,
+ extData: {
+ name: `璧拌埅缃戞牸 - ${d.missionCode}`,
+ type: 0
+ }
+ });
+ satelliteGrid.setDefaultGridClickEvent([d.id]);
+ // satelliteGrid.setGridEvent(
+ // [d.id],
+ // 'click',
+ // (gridCell, gridDataDetail) => {
+ // gridStore.selectedGridCellAndDataDetail = {
+ // gridCell,
+ // gridDataDetail
+ // };
+ // }
+ // );
+ gridCtrls.value = [satelliteGrid];
+ });
+ }
});
+ lastSelectedfusionData.value = useCloned(val).cloned.value;
selectedfusionData.value = val;
}
@@ -673,8 +647,6 @@
const drawMode = ref(0);
// 鐩戞祴鏁版嵁
const factorDataMap = new Map();
-// pm2.5
-const factorType = 6;
function fetchMission() {
missionLoading.value = true;
@@ -698,43 +670,21 @@
}
function draw(dataId) {
- if (isUnmounted.value) return;
-
- // selectedfusionData.value.forEach((i) => {
- // const d = fusionDataList.value[i];
-
- // const mission = missionStore.missionList.find((v) => {
- // return v.missionCode == d.mixDataId;
- // });
-
- // if (factorDataMap.has(mission.missionCode)) {
- // const fd = factorDataMap.get(mission.missionCode);
- // drawLine(mission.missionCode, fd);
- // } else {
- // search(mission).then((res) => {
- // const fd = new FactorDatas();
- // fd.setData(res.data, drawMode.value, () => {
- // fd.refreshHeight(factorType.value);
- // factorDataMap.set(mission.missionCode, fd);
- // drawLine(mission.missionCode, fd);
- // });
- // });
- // }
- // });
-
+ if (isUnmounted.value) return Promise.resolve();
const d = fusionDataList.value.find((v) => v.id == dataId);
const mission = missionStore.missionList.find((v) => {
- return v.missionCode == d.mixDataId;
+ return v.missionCode == d.missionCode;
});
if (factorDataMap.has(mission.missionCode)) {
const fd = factorDataMap.get(mission.missionCode);
- drawLine(mission.missionCode, fd);
+ fd.refreshHeight(factorType.value.value);
+ return Promise.resolve(drawLine(mission.missionCode, fd));
} else {
- search(mission).then((res) => {
+ return search(mission).then((res) => {
const fd = new FactorDatas();
fd.setData(res.data, drawMode.value, () => {
- fd.refreshHeight(factorType.value);
+ fd.refreshHeight(factorType.value.value);
factorDataMap.set(mission.missionCode, fd);
drawLine(mission.missionCode, fd);
});
@@ -744,13 +694,19 @@
function drawLine(missionCode, fd) {
// 鍒锋柊鍥句緥
- const factor = fd.factor[factorType];
+ const factor = fd.factor[factorType.value.value];
sector.clearSector();
- fd.refreshHeight(factorType);
+ fd.refreshHeight(factorType.value.value);
mapLine.drawTagLine(missionCode, fd, factor);
}
</script>
<style scoped>
+.style-tool {
+ position: absolute;
+ top: 0;
+ right: 0;
+}
+
:deep(.el-table) {
--el-table-bg-color: transparent;
--el-table-row-hover-bg-color: var(--select_color);
--
Gitblit v1.9.3