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/scene/SceneTable.vue | 50 +++++++++++++++++++++++++++++++++++++++++---------
1 files changed, 41 insertions(+), 9 deletions(-)
diff --git a/src/components/scene/SceneTable.vue b/src/components/scene/SceneTable.vue
index 9aa89ac..f88bf65 100644
--- a/src/components/scene/SceneTable.vue
+++ b/src/components/scene/SceneTable.vue
@@ -3,7 +3,6 @@
:data="sceneList"
table-layout="fixed"
size="small"
- height="30vh"
:show-overflow-tooltip="true"
border
row-class-name="t-row"
@@ -13,7 +12,7 @@
@row-click="handleRowClick"
@filter-change="handleFilterChange"
>
- <el-table-column type="index" label="#" width="25" />
+ <!-- <el-table-column type="index" label="#" width="25" /> -->
<el-table-column
prop="type"
label="绫诲瀷"
@@ -23,13 +22,20 @@
:filter-method="filterHandler"
/>
<el-table-column prop="name" label="鍚嶇О" />
- <!-- <el-table-column prop="location" label="鍦板潃" /> -->
- <el-table-column
+ <el-table-column prop="location" label="鍦板潃" />
+ <el-table-column label="涓磋繎绔欑偣" width="65">
+ <template #default="{ row }">
+ <div>{{ row.closestStation.name }}</div>
+ <div>{{ parseInt(row.length) + '绫�' }}</div>
+ </template>
+ </el-table-column>
+ <slot></slot>
+ <!-- <el-table-column
prop="districtName"
label="鍖哄幙"
align="center"
width="54"
- />
+ /> -->
<!-- <el-table-column label="绠$悊" width="70" align="center">
<template #default="{ row }">
<el-button
@@ -44,13 +50,17 @@
</el-table>
</template>
<script setup>
-import { ref, computed, watch } from 'vue';
+import { ref, computed, watch, onUnmounted } from 'vue';
import { sceneTypes, sceneIcon } from '@/constant/scene-types';
import MapUtil from '@/utils/map/util';
import marks from '@/utils/map/marks';
const props = defineProps({
- sceneList: Array
+ sceneList: Array,
+ showMarks: {
+ type: Boolean,
+ default: true
+ }
});
let layer = undefined;
@@ -77,17 +87,39 @@
}
});
+onUnmounted(() => {
+ removeLayer();
+});
+
watch(showSceneList, (nV, oV) => {
- if (nV != oV) {
+ if (nV && props.showMarks) {
drawMarks(nV);
+ } else {
+ removeLayer();
}
});
-function drawMarks(sceneList) {
+watch(
+ () => props.showMarks,
+ (nV, oV) => {
+ if (showSceneList.value && nV) {
+ drawMarks(showSceneList.value);
+ } else {
+ removeLayer();
+ }
+ },
+ { immediate: true }
+);
+
+function removeLayer() {
if (layer != undefined) {
MapUtil.removeViews(layer);
layer = undefined;
}
+}
+
+function drawMarks(sceneList) {
+ removeLayer();
if (sceneList.length != 0) {
const icons = [];
sceneList.forEach((s) => {
--
Gitblit v1.9.3