From ec763e1cb7dca873caf4afbc0dfde047b51753d3 Mon Sep 17 00:00:00 2001
From: riku <risaku@163.com>
Date: 星期五, 17 十月 2025 17:26:54 +0800
Subject: [PATCH] 2025.10.17
---
src/utils/map/dialog.js | 126 +++++++++++++++++++++++++-----------------
1 files changed, 75 insertions(+), 51 deletions(-)
diff --git a/src/utils/map/dialog.js b/src/utils/map/dialog.js
index e041443..c7403eb 100644
--- a/src/utils/map/dialog.js
+++ b/src/utils/map/dialog.js
@@ -3,17 +3,15 @@
import { factorUnit } from '@/constant/factor-unit';
import { windDir } from '@/constant/wind-dir';
import { map } from './index_old';
+import { checkboxOptions } from '@/constant/checkbox-options';
+import { useToolboxStore } from '@/stores/toolbox';
+
+const toolboxStore = useToolboxStore();
export const DialogUtil = {
- show: true,
- toggleDataDialog() {
- this.show = !this.show;
- if (this.show) {
- return '鏁版嵁寮规锛氬紑';
- } else {
- return '鏁版嵁寮规锛氬叧';
- }
- },
+ // 褰撳墠鎵撳紑鐨勫脊妗嗗強浣嶇疆鍧愭爣
+ marker: undefined,
+ lnglat: undefined,
/**
* 鍒涘缓寮瑰嚭妗�
* @param {*} factorDatas 鐩戞祴鏁版嵁
@@ -21,8 +19,10 @@
* @param {*} onClose 鍏抽棴寮瑰嚭妗嗗洖璋�
* @returns
*/
- createInfoWindow(factorDatas, i, onClose) {
+ createInfoWindow(deviceType, deviceCode, factorDatas, i, onClose) {
let m = {
+ deviceType: deviceType,
+ deviceCode: deviceCode,
data: factorDatas,
index: i,
window: '',
@@ -33,27 +33,12 @@
isCustom: true, //浣跨敤鑷畾涔夌獥浣�
content: this.createWindowContent(m),
// eslint-disable-next-line no-undef
- offset: new AMap.Pixel(16, -45)
+ offset: new AMap.Pixel(16, -45),
+ autoMove: false
});
- return m.window;
+ return m;
},
- createInfoWindow2(factorData, onClose) {
- let m = {
- time: factorData.time,
- factorList: factorData.values,
- window: '',
- close: onClose
- };
- // eslint-disable-next-line no-undef
- m.window = new AMap.InfoWindow({
- isCustom: true, //浣跨敤鑷畾涔夌獥浣�
- content: this.createWindowContent2(m),
- // eslint-disable-next-line no-undef
- offset: new AMap.Pixel(16, -45)
- });
- return m.window;
- },
/**
* 绔欑偣鏍囪淇℃伅绐椾綋
*/
@@ -72,12 +57,13 @@
},
createWindowContent2(marker) {
+ const factorTypes = checkboxOptions(marker.deviceType);
const time = marker.time;
const factorList = marker.factorList;
//瀹炰緥鍖栦俊鎭獥浣�
- // var title = '<div>' + site.name + '</div>' + '<div class="sub-title">缂栧彿:' + site.code + '</div>',
- var title = '',
- content = '',
+ // var title = '<div class="time">缂栧彿:' + marker.deviceCode + '</div>';
+ var title = '缂栧彿:' + marker.deviceCode;
+ var content = '',
tag = '';
tag += "<div class='time'>" + '鏃堕棿: ' + time;
@@ -87,14 +73,17 @@
var _contents = new Map();
factorList.forEach((f) => {
// 鍒犻�変笉鏄剧ず鐨勫洜瀛�
- if (
- f.factorName == 'NOI' ||
- f.factorName == 'LNG' ||
- f.factorName == 'LAT' ||
- f.factorName == 'VELOCITY' ||
- f.factorName == 'TIME' ||
- f.factorName == 'HEIGHT'
- ) {
+ // if (
+ // f.factorName == 'NOI' ||
+ // f.factorName == 'LNG' ||
+ // f.factorName == 'LAT' ||
+ // f.factorName == 'VELOCITY' ||
+ // f.factorName == 'TIME' ||
+ // f.factorName == 'HEIGHT'
+ // ) {
+ // return;
+ // }
+ if (!factorTypes.find((v) => v.name == f.factorName)) {
return;
}
@@ -126,6 +115,7 @@
var orderList = [
'VOC',
'H2S',
+ 'NO',
'NO2',
'CO',
'SO2',
@@ -138,7 +128,10 @@
'WIND_DIRECTION'
];
orderList.forEach((e) => {
- content += _contents.get(e);
+ const c = _contents.get(e);
+ if (c != undefined) {
+ content += c;
+ }
});
// content +=
@@ -161,11 +154,12 @@
var top_t = document.createElement('div');
top_t.className = 'ff-border-top';
var top_c = document.createElement('div');
- top_c.className = 'ff-border-content flexbox flex-space-between';
+ top_c.className = 'text-clz ff-border-content flexbox flex-space-between';
var titleD = document.createElement('div');
- var closeX = document.createElement('i');
- titleD.innerHTML = title;
+ var closeX = document.createElement('div');
+ $(titleD).text(title);
+ // titleD.className = 'time';
closeX.className = 'text-close';
$(closeX).attr('aria-hidden', 'true');
$(closeX).text('X');
@@ -246,15 +240,45 @@
return info;
},
- openNewWindow(factorDatas, i, onClose) {
- if (!this.show) return;
- const window = this.createInfoWindow(factorDatas, i, onClose);
- window.open(map, factorDatas.lnglats_GD[i]);
+ /**
+ * 寮�鍚竴涓柊鐨勬暟鎹脊妗�
+ * @param {String} deviceType 璁惧绫诲瀷
+ * @param {String} deviceCode 璁惧缂栧彿
+ * @param {Array} factorDatas 鐩戞祴鏁版嵁
+ * @param {Number} i 鏁版嵁绱㈠紩
+ * @param {Function} onClose 寮规鍏抽棴鍥炶皟
+ * @returns
+ */
+ openNewWindow(deviceType, deviceCode, factorDatas, i, onClose) {
+ if (!toolboxStore.dataDialogStatus) return;
+ this.marker = this.createInfoWindow(
+ deviceType,
+ deviceCode,
+ factorDatas,
+ i,
+ onClose
+ );
+ this.marker.window.open(map, factorDatas.lnglats_GD[i]);
+ this.lnglat = factorDatas.lnglats_GD[i];
},
- openNewWindow2(factorData, position, onClose) {
- if (!this.show) return;
- const window = this.createInfoWindow2(factorData, onClose);
- window.open(map, position);
+ /**
+ * 鎵撳紑缂撳瓨涓殑寮规
+ */
+ openWindow() {
+ if (this.marker && this.lnglat) {
+ // this.marker.close();
+ this.marker.window.open(map, this.lnglat);
+ }
+ },
+
+ /**
+ * 鍏抽棴宸插脊鍑虹殑寮规
+ */
+ closeWindow() {
+ if (this.marker) {
+ // this.marker.close();
+ this.marker.window.close();
+ }
}
};
--
Gitblit v1.9.3