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/components/map/MapScene.vue | 32 +++++++++++++++++++++++++++-----
1 files changed, 27 insertions(+), 5 deletions(-)
diff --git a/src/components/map/MapScene.vue b/src/components/map/MapScene.vue
index b230c8c..9e0fb06 100644
--- a/src/components/map/MapScene.vue
+++ b/src/components/map/MapScene.vue
@@ -7,6 +7,7 @@
class="el-button-custom p-events-auto"
>
鍦烘櫙鏍囨敞
+ <el-icon class="el-icon--right"><arrow-down /></el-icon>
</el-button>
</template>
<OptionLocation v-model="districtCode"></OptionLocation>
@@ -28,6 +29,7 @@
v-for="item in options"
:key="item.label"
:value="item.value"
+ :disabled="item.disabled"
>{{ item.label }}</el-checkbox
>
</div>
@@ -40,6 +42,8 @@
import sceneInfoApi from '@/api/sceneInfoApi';
import marks from '@/utils/map/marks';
import MapUtil from '@/utils/map/util';
+import { useToolboxStore } from '@/stores/toolbox';
+import { mapStores } from 'pinia';
const lableMarkMap = new Map();
@@ -53,6 +57,18 @@
options: sceneTypes(),
sceneMap: new Map()
};
+ },
+ computed: {
+ ...mapStores(useToolboxStore)
+ },
+ watch: {
+ // 褰撳垏鎹㈠尯鍘挎椂锛屾竻绌烘墍鏈夐�夐」
+ districtCode(nV, oV) {
+ if (nV != oV) {
+ this.toolboxStore.selectedDistrict = nV;
+ this.handelCheckAllChange(false);
+ }
+ }
},
methods: {
fetchScene(sceneType) {
@@ -82,13 +98,19 @@
// 鏍规嵁閫夐」锛屽皢鏈墦寮�鐨勫浘灞傚紑鍚�
types.forEach((t) => {
- if (!lableMarkMap.has(t)) {
+ const key = this.districtCode + t;
+ if (!lableMarkMap.has(key)) {
this.fetchScene(t).then((res) => {
- const layer = marks.createLabelMarks(sceneIcon(t), res);
- lableMarkMap.set(t, { show: true, layer });
+ const layer = marks.createLabelMarks(
+ sceneIcon(t),
+ res,
+ false,
+ true
+ );
+ lableMarkMap.set(key, { show: true, layer });
});
} else {
- const m = lableMarkMap.get(t);
+ const m = lableMarkMap.get(key);
if (!m.show) {
MapUtil.addViews(m.layer);
m.show = true;
@@ -98,7 +120,7 @@
// 鏍规嵁閫夐」锛屽皢寮�鍚腑鐨勬湭閫変腑鍥惧眰鍏抽棴
for (const [key, value] of lableMarkMap) {
- if (!types.includes(key)) {
+ if (!types.map((t) => this.districtCode + t).includes(key)) {
if (value.show) {
MapUtil.removeViews(value.layer);
value.show = false;
--
Gitblit v1.9.3