From 87e19b5a396ac8fed6a551828b87d263f6425c31 Mon Sep 17 00:00:00 2001
From: riku <risaku@163.com>
Date: 星期四, 16 十月 2025 10:26:12 +0800
Subject: [PATCH] 2025.10.16 修改季度报告生成逻辑
---
src/views/underwaymix/UnderwayMixMode.vue | 765 +++++++++++++++++++++++++++++++++++++++++-----------------
1 files changed, 538 insertions(+), 227 deletions(-)
diff --git a/src/views/underwaymix/UnderwayMixMode.vue b/src/views/underwaymix/UnderwayMixMode.vue
index 3d690d3..de55333 100644
--- a/src/views/underwaymix/UnderwayMixMode.vue
+++ b/src/views/underwaymix/UnderwayMixMode.vue
@@ -1,168 +1,400 @@
<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>
- <div class="m-t-8">鎿嶄綔</div>
- <el-row class="m-t-8">
- <CheckButton
- active-text="寮�鍚瀺鍚�"
- inactive-text="闅愯棌铻嶅悎"
- :default-value="false"
- @change="handleMixClick"
- >
- </CheckButton>
- </el-row>
- <div class="m-t-8">缃戞牸瑕佺礌</div>
- <el-row class="m-t-8">
- <CheckButton
- active-text="鏄剧ず缃戞牸"
- inactive-text="闅愯棌缃戞牸"
- :default-value="true"
- @change="handleGridClick"
- >
- </CheckButton>
- <el-button
- type="primary"
- class="el-button-custom"
+ </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"
- @click="handleRankClick"
+ style="width: 300px"
>
- {{ rankVisible ? '闅愯棌鎺掑悕' : '鏄剧ず鎺掑悕' }}
- </el-button>
- <el-button
- type="primary"
- class="el-button-custom"
+ <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"
- @click="handleDataClick"
+ style="width: 300px"
>
- {{ dataVisible ? '闅愯棌鏁版嵁' : '鏄剧ず鏁版嵁' }}
- </el-button>
- </el-row>
- <div class="m-t-8">缃戞牸鏍峰紡</div>
- <el-row class="m-t-8">
- <el-button
- type="primary"
- class="el-button-custom"
+ <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"
- @click="handleOpacityClick"
+ style="width: 300px"
>
- {{ !isOpacity ? '閫忔槑鍖�' : '鍙栨秷閫忔槑鍖�' }}
- </el-button>
- <el-button
- type="primary"
- class="el-button-custom"
- size="small"
- @click="handleColorClick"
- >
- {{ isStandardColor ? '缁樺埗瀵规瘮鑹�' : '缁樺埗鏍囧噯鑹�' }}
- </el-button>
- </el-row>
- <div class="m-t-8">璧拌埅瑕佺礌</div>
- <el-row class="m-t-8">
- <!-- <el-divider content-position="left"></el-divider> -->
+ <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"
+ >
+ <!-- <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="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>
- <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"
- :loading="missionLoading || loading"
- @click="handleUnderwayClick"
+ :disabled="!gridCellList || selectedfusionData.length == 0"
+ @click="handleFusionClick"
>
- {{ underwayVisible ? '闅愯棌璧拌埅璺嚎' : '鏄剧ず璧拌埅璺嚎' }}
- </el-button>
- </el-row>
- </template>
- <template #footer> </template>
- </BaseCard>
- </el-row>
+ {{ '鍙犲姞璧拌埅' }}
+ </el-button> -->
+ <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"></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 { 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();
const satelliteGrid = new SatelliteGrid('璧拌埅铻嶅悎');
-
const gridCtrls = ref([satelliteGrid]);
// 鍊熺敤鍗槦閬ユ祴妯″潡涓殑100绫崇綉鏍�
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 selectable = (row) => gridCellList.value;
const gridDataDetailMap = new Map();
+const selectedTimeSection = ref([]);
+const selectedZone = ref([]);
+const selectedPollutionDegree = ref([]);
+
+const timeSectionList = computed(() => {
+ let res = [];
+ fusionDataList.value.forEach((e) => {
+ 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.find((v) => v.label == option.label)) {
+ res.push(option);
+ }
+ });
+ res.sort((a, b) => {
+ return a.index - b.index;
+ });
+
+ const rMap = new Map();
+ showFusionDataList.value.forEach((d) => {
+ if (!rMap.has(d.dayTimePeriod)) {
+ rMap.set(d.dayTimePeriod, 0);
+ }
+ rMap.set(d.dayTimePeriod, rMap.get(d.dayTimePeriod) + 1);
+ });
+
+ res = res.map((v) => {
+ const count = rMap.get(v.value);
+ v.label = `${v.label} (${count ? count : 0})`;
+ return v;
+ });
+ return res;
+});
+
+const zoneList = computed(() => {
+ let res = [];
+ fusionDataList.value.forEach((e) => {
+ const t = e.zone;
+ const option = {
+ label: t,
+ value: t
+ };
+ if (!res.find((v) => v.label == option.label)) {
+ res.push(option);
+ }
+ });
+ const rMap = new Map();
+ showFusionDataList.value.forEach((d) => {
+ if (!rMap.has(d.zone)) {
+ rMap.set(d.zone, 0);
+ }
+ rMap.set(d.zone, rMap.get(d.zone) + 1);
+ });
+
+ res = res.map((v) => {
+ const count = rMap.get(v.value);
+ v.label = `${v.label} (${count ? count : 0})`;
+ return v;
+ });
+ return res;
+});
+
+const pollutionDegreeList = computed(() => {
+ let res = [];
+ fusionDataList.value.forEach((e) => {
+ const t = e.pollutionDegree;
+ const option = {
+ label: t,
+ value: t,
+ index: e.pollutionDegreeIndex
+ };
+ if (!res.find((v) => v.label == option.label)) {
+ res.push(option);
+ }
+ });
+ res.sort((a, b) => {
+ return a.index - b.index;
+ });
+ const rMap = new Map();
+ showFusionDataList.value.forEach((d) => {
+ if (!rMap.has(d.pollutionDegree)) {
+ rMap.set(d.pollutionDegree, 0);
+ }
+ rMap.set(d.pollutionDegree, rMap.get(d.pollutionDegree) + 1);
+ });
+
+ res = res.map((v) => {
+ const count = rMap.get(v.value);
+ v.label = `${v.label} (${count ? count : 0})`;
+ return v;
+ });
+ return res;
+});
+
+const showFusionDataList = computed(() => {
+ return fusionDataList.value.filter((v) => {
+ const b1 =
+ selectedTimeSection.value.length == 0 ||
+ selectedTimeSection.value.indexOf(v.dayTimePeriod) != -1;
+ const b2 =
+ selectedZone.value.length == 0 ||
+ selectedZone.value.indexOf(v.zone) != -1;
+ const b3 =
+ selectedPollutionDegree.value.length == 0 ||
+ selectedPollutionDegree.value.indexOf(v.pollutionDegree) != -1;
+
+ return b1 && b2 && b3;
+ });
+});
+// if (
+// selectedTimeSection.value.length == 0 &&
+// selectedZone.value.length == 0 &&
+// selectedPollutionDegree.value.length == 0
+// ) {
+// return true;
+// } else {
+// const b1 =
+// selectedTimeSection.value.indexOf(
+// moment(v.dataTime).format('YYYY-MM-DD')
+// ) != -1;
+// const b2 = selectedZone.value.indexOf(v.zone) != -1;
+// const b3 = selectedPollutionDegree.value.indexOf(v.pollutionDegree) != -1;
+
+// return b1 && b2 || b3;
+// }
+
const mixActive = ref(false);
+const heatActive = ref(false);
const gridVisible = ref(true);
const underwayVisible = ref(false);
const rankVisible = ref(false);
@@ -170,8 +402,8 @@
const isStandardColor = ref(true);
const isOpacity = ref(false);
-function timeFormatter(value) {
- return moment(value).format('YYYY-MM-DD');
+function timeFormatter(row, col, cellValue, index) {
+ return moment(cellValue).format('YYYY-MM-DD');
}
function fetchFusionData() {
@@ -184,42 +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 resetButton() {
- gridVisible.value = true;
- underwayVisible.value = false;
- rankVisible.value = false;
- dataVisible.value = false;
- isStandardColor.value = true;
- isOpacity.value = false;
-}
-
function prepareGrid(gridInfo) {
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);
@@ -236,7 +441,8 @@
// resetButton();
satelliteGrid.changeVisibility({ showGridViews: false });
selectedfusionData.value.forEach((i) => {
- const d = fusionDataList.value[i];
+ // const d = fusionDataList.value[i];
+ const d = i;
if (gridDataDetailMap.has(d.id)) {
satelliteGrid.changeVisibility({ tags: [d.id], showGridViews: true });
// gridCtrls.value = Array.from(satelliteGrid.mapViewsMap);
@@ -249,93 +455,169 @@
tag: d.id,
data: gdd,
extData: {
- name: `璧拌埅缃戞牸 - ${d.mixDataId}`
+ name: `璧拌埅缃戞牸 - ${d.missionCode}`,
+ type: 0
}
});
+ 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);
});
}
});
}
+let mixTag;
function handleMixClick() {
- mixActive.value = !mixActive.value;
- const tags = fusionDataList.value
- .filter((v, i) => selectedfusionData.value.indexOf(i) != -1)
- .map((v) => v.id);
+ const tags = selectedfusionData.value.map((v) => v.id);
satelliteGrid.changeVisibility({
showGridViews: false,
showDataTxt: false,
showRankTxt: false
});
- if (mixActive.value) {
- satelliteGrid.mixGrid(tags);
+ gridApi.mixUnderwayGridData(props.groupId, tags).then((res) => {
+ mixTag = satelliteGrid.mixGrid2({ tags, gridDataDetailList: res.data });
+ satelliteGrid.setDefaultGridClickEvent([mixTag]);
+ gridCtrls.value = [satelliteGrid];
+ });
+}
+
+function handleHeatMapSearchClick() {
+ const res = satelliteGrid.search(
+ {
+ groupId: 1,
+ cellId: 2893,
+ pm25: 50
+ },
+ 120,
+ 90,
+ 10,
+ 10,
+ 3
+ );
+
+ console.log(res);
+}
+
+function handleUnderwayClick({ isShow, dataId, done }) {
+ underwayVisible.value = !underwayVisible.value;
+
+ if (isShow) {
+ draw(dataId).finally(() => done());
} else {
- satelliteGrid.changeVisibility({
- tags,
- showGridViews: true
+ const d = fusionDataList.value.find((v) => v.id == dataId);
+ const mission = missionStore.missionList.find((v) => {
+ 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);
+ lastSelectedfusionData.value = useCloned(
+ selectedfusionData.value
+ ).cloned.value;
+ tableRef.value.toggleRowSelection(f, false);
}
}
-function handleGridClick() {
- gridVisible.value = !gridVisible.value;
- selectedfusionData.value.forEach((i) => {
- const d = fusionDataList.value[i];
- satelliteGrid.changeVisibility({
- tags: [d.id],
- showGridViews: gridVisible.value
- });
+function handleSelectionChange(val) {
+ // console.log(val);
+
+ const deleted = lastSelectedfusionData.value.filter((v) => {
+ return !val.find((t) => t.id == v.id);
});
-}
-
-function handleUnderwayClick() {
- underwayVisible.value = !underwayVisible.value;
- underwayVisible.value ? draw() : mapLine.hideLine();
-}
-
-function handleRankClick() {
- rankVisible.value = !rankVisible.value;
- selectedfusionData.value.forEach((i) => {
- const d = fusionDataList.value[i];
- satelliteGrid.changeVisibility({
- tags: [d.id],
- showRankTxt: rankVisible.value
- });
+ const deletedIdList = deleted.map((d) => d.id);
+ const added = val.filter((v) => {
+ return !lastSelectedfusionData.value.find((t) => t.id == v.id);
});
-}
-function handleDataClick() {
- dataVisible.value = !dataVisible.value;
- selectedfusionData.value.forEach((i) => {
- const d = fusionDataList.value[i];
- satelliteGrid.changeVisibility({
- tags: [d.id],
- showDataTxt: dataVisible.value
+ // 鍘婚櫎閫夋嫨涓婇檺璀﹀憡
+ 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)
-function handleColorClick() {
- isStandardColor.value = !isStandardColor.value;
- selectedfusionData.value.forEach((i) => {
- const d = fusionDataList.value[i];
+ if (deletedIdList.length > 0) {
+ satelliteGrid.deleteTagGrid(deletedIdList);
+ gridCtrls.value = [satelliteGrid];
+ // satelliteGrid.changeVisibility({ tags: deletedIdList, showGridViews: false });
+ }
+
+ added.forEach((i) => {
+ const d = i;
if (gridDataDetailMap.has(d.id)) {
- satelliteGrid.changeGridColor({
+ const gdd = gridDataDetailMap.get(d.id);
+ satelliteGrid.drawTagGrid({
tag: d.id,
- useCustomColor: !isStandardColor.value,
- opacity: 1,
- zIndex: 11
+ 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];
+ } 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];
});
}
});
-}
-function handleOpacityClick() {
- isOpacity.value = !isOpacity.value;
- satelliteGrid.changeGridOpacity({ opacityValue: isOpacity.value ? 0.1 : 1 });
+ lastSelectedfusionData.value = useCloned(val).cloned.value;
+ selectedfusionData.value = val;
}
/**璧拌埅杞ㄨ抗*******************************************************************/
@@ -365,8 +647,6 @@
const drawMode = ref(0);
// 鐩戞祴鏁版嵁
const factorDataMap = new Map();
-// pm2.5
-const factorType = 6;
function fetchMission() {
missionLoading.value = true;
@@ -389,38 +669,69 @@
});
}
-function draw() {
- 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);
- });
- });
- }
+function draw(dataId) {
+ 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.missionCode;
});
+
+ if (factorDataMap.has(mission.missionCode)) {
+ const fd = factorDataMap.get(mission.missionCode);
+ fd.refreshHeight(factorType.value.value);
+ return Promise.resolve(drawLine(mission.missionCode, fd));
+ } else {
+ return search(mission).then((res) => {
+ const fd = new FactorDatas();
+ fd.setData(res.data, drawMode.value, () => {
+ fd.refreshHeight(factorType.value.value);
+ factorDataMap.set(mission.missionCode, fd);
+ drawLine(mission.missionCode, fd);
+ });
+ });
+ }
}
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>
+<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);
+ --el-table-current-row-bg-color: var(--select_color);
+ /* --el-table-current-row-bg-color: #7dff5d96; */
+ --el-table-text-color: var(--font-color);
+}
+
+:deep(.t-row-normal) {
+ cursor: pointer;
+ background-color: transparent !important;
+}
+
+:deep(.t-cell) {
+ /* background: red !important; */
+ /* height: 40px;
+ border: 1px solid black; */
+}
+
+:deep(.t-header-row) {
+}
+
+:deep(.t-header-cell) {
+ background-color: var(--bg-color-2) !important;
+ /* text-align: center !important; */
+ color: white !important;
+}
+</style>
--
Gitblit v1.9.3