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