From e2d1d78bc72459a0ac2e2e337bbca7c8a1e41e17 Mon Sep 17 00:00:00 2001
From: wangrong <wangrong@shsening.com>
Date: 星期二, 29 九月 2026 22:44:02 +0800
Subject: [PATCH] 修改首页加logo等
---
src/modules/report/components/screen-map-panel.vue | 45 ++++++++++++++++++++++++++++++++++++++-------
1 files changed, 38 insertions(+), 7 deletions(-)
diff --git a/src/modules/report/components/screen-map-panel.vue b/src/modules/report/components/screen-map-panel.vue
index b86dd28..4d72cd2 100755
--- a/src/modules/report/components/screen-map-panel.vue
+++ b/src/modules/report/components/screen-map-panel.vue
@@ -11,9 +11,16 @@
</div>
</div>
- <!-- 鍦板浘涓讳綋 -->
+ <!-- 鍦板浘涓讳綋锛氱瓑鍙傛暟灏辩华鍐嶅垱寤猴紝閬垮厤澶╁湴鍥惧彧鍦ㄥ垵濮嬪寲鏃跺悆 center/zoom -->
<div class="map-panel__map">
- <tdt-map :center="center" :zoom="zoom" :controls="controls" :loadConfig="MAP_LOAD">
+ <tdt-map
+ v-if="viewReady"
+ :center="center"
+ :zoom="zoom"
+ :controls="controls"
+ :loadConfig="MAP_LOAD"
+ @init="onMapInit"
+ >
<tdt-marker
v-for="item in list"
:key="keyOf(item)"
@@ -40,12 +47,15 @@
import { computed, onBeforeUnmount, onMounted, ref, watch } from 'vue';
import { TdtMap, TdtMarker, type LngLat } from 'vue-tianditu2';
+import { useCool } from '/@/cool';
import {
DEFAULT_CENTER,
+ DEFAULT_ZOOM,
MAP_LOAD,
SORTER_ICON,
VEHICLE_ICON,
formatTime,
+ loadMapView,
siteIcon,
useMapsApi
} from '../../maps/hooks/use-map';
@@ -97,12 +107,14 @@
}
};
+const { service } = useCool();
const api = useMapsApi();
const layer = ref<LayerKey>('site');
const list = ref<any[]>([]);
const center = ref<LngLat>(DEFAULT_CENTER);
-const zoom = ref(12);
+const zoom = ref(DEFAULT_ZOOM);
+const viewReady = ref(false);
const lastUpdate = ref('');
const controls = ['Zoom', 'Scale'];
@@ -131,14 +143,29 @@
return cfg.value.icon(item);
}
+function applyView(map: any) {
+ const [lon, lat] = center.value;
+ if (!map || !Number.isFinite(lon) || !Number.isFinite(lat)) return;
+ const TMap = (window as any).T;
+ const lnglat = TMap?.LngLat ? new TMap.LngLat(lon, lat) : [lon, lat];
+ if (typeof map.centerAndZoom === 'function') {
+ map.centerAndZoom(lnglat, zoom.value);
+ } else {
+ map.panTo?.(lnglat);
+ map.setZoom?.(zoom.value);
+ }
+ map.checkResize?.();
+}
+
+function onMapInit(map: any) {
+ applyView(map);
+ window.setTimeout(() => applyView(map), 200);
+}
+
async function load() {
const res = await cfg.value.load();
list.value = Array.isArray(res) ? res : [];
lastUpdate.value = formatTime(new Date());
- if (list.value[0]) {
- center.value = pos(list.value[0]);
- zoom.value = 13;
- }
}
// 杞﹁締 / 鍒嗘嫞鍛樹负瀹炴椂浣嶇疆锛�30s 杞锛涚珯鐐规槸闈欐�佸彴璐︼紝涓嶈疆璇�
@@ -162,6 +189,10 @@
});
onMounted(async () => {
+ const view = await loadMapView(service);
+ center.value = view.center;
+ zoom.value = view.zoom;
+ viewReady.value = true;
await load();
startPolling();
});
--
Gitblit v1.9.1