From 7d02024c5351e620dcc2d49f36331e4a37228ea4 Mon Sep 17 00:00:00 2001
From: Riku <risaku@163.com>
Date: 星期四, 20 三月 2025 22:35:51 +0800
Subject: [PATCH] 走航融合(待完成)
---
src/model/SatelliteGrid.js | 30 +++++++++------
src/views/underwaymix/UnderwayMixMode.vue | 3 +
src/utils/map/grid.js | 22 +++++++----
src/views/underwaymix/component/GridStyleTool.vue | 17 ++++++++
4 files changed, 50 insertions(+), 22 deletions(-)
diff --git a/src/model/SatelliteGrid.js b/src/model/SatelliteGrid.js
index dad244c..0067b78 100644
--- a/src/model/SatelliteGrid.js
+++ b/src/model/SatelliteGrid.js
@@ -196,11 +196,7 @@
// 鏍规嵁缁樺埗棰滆壊鏂瑰紡缁樺埗缃戞牸
let resGridViews;
if (customColor) {
- resGridViews = gridMapUtil.drawGridColorCustom(
- res,
- gridDataDetail,
- style.opacity
- );
+ resGridViews = gridMapUtil.drawGridColorCustom(res, gridDataDetail);
} else {
resGridViews = gridMapUtil.drawGridColor(
res,
@@ -383,8 +379,7 @@
if (useCustomColor) {
gridMapUtil.drawGridColorCustom(
v.lastGridViews,
- lastGridDataDetail,
- { opacity, zIndex }
+ lastGridDataDetail
);
} else {
gridMapUtil.drawGridColor(
@@ -435,18 +430,19 @@
/**
* 灏嗗缁勭綉鏍艰繘琛岃瀺鍚�
* 閲嶅彔鐨勭綉鏍艰繘琛岀洃娴嬫暟鎹潎鍊艰绠楀苟閲嶆柊璁$畻瀵瑰簲棰滆壊锛屽舰鎴愭柊鐨勪竴缁勮瀺鍚堢綉鏍�
- * @param {...String} tags 闇�瑕佽瀺鍚堢殑缃戞牸鏍囩锛屽綋涓虹┖鏃讹紝榛樿铻嶅悎鎵�鏈夌綉鏍�
+ * @param {Array} tags 闇�瑕佽瀺鍚堢殑缃戞牸鏍囩锛屽綋涓虹┖鏃讹紝榛樿铻嶅悎鎵�鏈夌綉鏍�
*/
- mixGrid(tags) {
+ mixGrid(tags, isMixGridHighlight) {
tags.sort((a, b) => {
return a < b ? -1 : 1;
});
const mixTag = tags.join('-');
if (this.mapViewsMap.has(mixTag)) {
this.changeVisibility({
- tag: mixTag,
+ tags: [mixTag],
showGridViews: true
});
+ this.changeGridColor({ tag: mixTag, isMixGridHighlight });
} else {
// const mixMapViews = this._createNewMapViews();
// 鏍规嵁鏍囩tag锛岃幏鍙栧搴斿缁勭綉鏍兼暟鎹�
@@ -501,11 +497,13 @@
data: resGridDataDetail,
grid: {
style: {
- isMixGridHighlight: true
+ isMixGridHighlight:
+ isMixGridHighlight == undefined ? true : isMixGridHighlight
}
},
extData: {
- name: `璧拌埅铻嶅悎 - ${mixTag}`
+ name: `璧拌埅铻嶅悎 - ${mixTag}`,
+ type: 1
}
});
}
@@ -513,6 +511,14 @@
return mixTag;
}
+ /**
+ * 缁樺埗鐑姏鍥剧綉鏍�
+ * @param {string} tag
+ */
+ drawHeatGrid(tag) {
+
+ }
+
_getMapViews(...tags) {
let _mapViewsList = [],
_gridDataDetailList = [];
diff --git a/src/utils/map/grid.js b/src/utils/map/grid.js
index 18241d1..235b390 100644
--- a/src/utils/map/grid.js
+++ b/src/utils/map/grid.js
@@ -264,7 +264,8 @@
strokeWeight: 1, //绾挎潯瀹藉害锛岄粯璁や负 2
strokeColor: 'white', //绾挎潯棰滆壊
fillOpacity: 0,
- extData: p.extData
+ extData: p.extData,
+ zIndex: 11
});
if (typeof event === 'function') {
@@ -349,7 +350,12 @@
* @param {number} opacity 閫忔槑搴�
*/
drawGridColor(gridViews, gridDataDetail, factorName, style) {
- let { strokeWeight, strokeColor, opacity, zIndex } = style;
+ let {
+ strokeWeight = 1,
+ strokeColor = 'white',
+ opacity = 1,
+ zIndex = 11
+ } = style;
const res = [];
// 閬嶅巻鍗槦閬ユ祴鏁版嵁鏁扮粍
gridDataDetail.forEach((d, i) => {
@@ -369,9 +375,11 @@
const _extData = grid.getExtData();
grid.setOptions({
- ...style,
+ strokeWeight,
+ strokeColor,
+ zIndex,
fillColor: _color, //澶氳竟褰㈠~鍏呴鑹�
- fillOpacity: style.opacity ? style.opacity : color[3] == 0 ? 0 : 1,
+ fillOpacity: opacity,
extData: {
..._extData,
gridData: d
@@ -393,8 +401,7 @@
return res;
},
- drawGridColorCustom(gridViews, gridDataDetail, style) {
- const { strokeWeight, strokeColor, opacity, zIndex } = style;
+ drawGridColorCustom(gridViews, gridDataDetail) {
var max, min;
gridDataDetail.forEach((t) => {
@@ -424,9 +431,8 @@
ratio
);
grid.setOptions({
- ...style,
fillColor: _color, //澶氳竟褰㈠~鍏呴鑹�
- fillOpacity: style.opacity ? style.opacity : color[3] == 0 ? 0 : 1
+ // fillOpacity: style.opacity ? style.opacity : color[3] == 0 ? 0 : 1
});
res.push(grid);
diff --git a/src/views/underwaymix/UnderwayMixMode.vue b/src/views/underwaymix/UnderwayMixMode.vue
index 3d321e7..38a403a 100644
--- a/src/views/underwaymix/UnderwayMixMode.vue
+++ b/src/views/underwaymix/UnderwayMixMode.vue
@@ -259,7 +259,8 @@
tag: d.id,
data: gdd,
extData: {
- name: `璧拌埅缃戞牸 - ${d.mixDataId}`
+ name: `璧拌埅缃戞牸 - ${d.mixDataId}`,
+ type: 0
}
});
gridCtrls.value = [satelliteGrid];
diff --git a/src/views/underwaymix/component/GridStyleTool.vue b/src/views/underwaymix/component/GridStyleTool.vue
index 76d636a..e21302d 100644
--- a/src/views/underwaymix/component/GridStyleTool.vue
+++ b/src/views/underwaymix/component/GridStyleTool.vue
@@ -16,7 +16,7 @@
<div v-for="(g, i) in gridCtrlList" :key="i">
{{ g.name }}
<div v-for="(value, t) in g.views" :key="t">
- <!-- {{ value[0] }} -->
+ <span v-if="value.extData.type == 0">{{ value.tag + '.' }}</span>
{{ value.extData.name }}
<!-- {{ key }} -->
<!-- <el-text>{{ g.name }}</el-text> -->
@@ -53,10 +53,18 @@
>
</CheckButton>
<CheckButton
+ v-if="value.extData.type == 0"
active-text="鏄剧ず璧拌埅杞ㄨ抗"
inactive-text="闅愯棌璧拌埅杞ㄨ抗"
:default-value="false"
@change="(e) => handleUnderwayClick(e, i, value)"
+ >
+ </CheckButton>
+ <CheckButton
+ v-if="value.extData.type == 1"
+ active-text="楂樹寒铻嶅悎缃戞牸"
+ :default-value="true"
+ @change="(e) => handleHighlightGridClick(e, i, value)"
>
</CheckButton>
</el-row>
@@ -188,11 +196,18 @@
dataId: value.tag
});
}
+
+function handleHighlightGridClick(e, index, value) {
+ toRaw(props.gridCtrls[index]).mixGrid(value.tag.split('-'), e);
+}
</script>
<style scoped>
.content-wrap {
min-width: 300px;
min-height: 600px;
+ max-height: 80vh;
+ height: 80vh;
+ padding: 4px 16px;
}
:deep(.el-input-number) {
--
Gitblit v1.9.3