From 2eabb2e5cf290d6bb1f86d5e3b11cc796079cdcc Mon Sep 17 00:00:00 2001 From: wangjuncheng <1> Date: 星期五, 18 四月 2025 13:30:02 +0800 Subject: [PATCH] change --- src/components/tools/Tools.vue | 125 ++++++++++++++++++++++++++++++++--------- 1 files changed, 98 insertions(+), 27 deletions(-) diff --git a/src/components/tools/Tools.vue b/src/components/tools/Tools.vue index a1456f9..6a7a124 100644 --- a/src/components/tools/Tools.vue +++ b/src/components/tools/Tools.vue @@ -50,9 +50,21 @@ class="popup-menu-see" /> <SlopeAnalysis + @draw="SlopeAnalysiss" v-show="showSlope" class="popup-menu-see" @update-slope="onUpdateSlope" + /> + <!-- 闆� --> + <Rain + v-show="showRain" + class="popup-menu-see" + @update-rain="onUpdateRain" + /> + <Snow + v-show="showSnow" + class="popup-menu-see" + @update-snow="onUpdateSnow" /> </div> @@ -85,14 +97,15 @@ import Aspect from "@/components/tools/Aspect.vue"; import SlopeAnalysis from "@/components/tools/SlopeAnalysis.vue"; import mapUtils from "@/utils/tools.js"; +import Rain from "@/components/tools/Rain.vue"; +import Snow from "@/components/tools/Snow.vue"; // 鍒囨崲灞曞紑/鏀剁缉鐘舵�� function toggleCollapse() { // isCollapsed.value = !isCollapsed.value; } - -const showLayerTree = ref(true); +const showLayerTree = ref(false); const isPopupVisible = ref(false); // 鎺у埗寮圭獥鏄惁鍙 const currentToolOptions = ref([]); // 褰撳墠宸ュ叿鐨勫姛鑳介�夐」 @@ -101,8 +114,8 @@ const isflfx = ref(false); const isFlood = ref(false); const isContourLabel = ref(false); -const isRain = ref(false); -const isSnow = ref(false); +const showRain = ref(false); +const showSnow = ref(false); // 鍓栭潰鍒嗘瀽寮圭獥 const topographyShow = ref(false); @@ -181,6 +194,7 @@ options: [ { name: "闆ㄥぉ妯″紡", icon: "闆ㄥぉ妯″紡" }, { name: "闆ぉ妯″紡", icon: "闆ぉ妯″紡" }, + { name: "娓呴櫎澶╂皵", icon: "娓呴櫎鍒嗘瀽" }, ], }, ]); @@ -188,27 +202,50 @@ // 澶勭悊宸ュ叿鐐瑰嚮浜嬩欢 function handleClick(tool, event) { console.log(tool.options); + + // 鏇存柊鎵�鏈夊伐鍏风殑 active 鐘舵�� + toolList.value.forEach((item) => { + item.active = item.name === tool.name && currentToolOptions.value !== tool.options; + }); + + // 濡傛灉褰撳墠宸ュ叿宸茬粡鏄縺娲荤姸鎬侊紝鍒欏叧闂畠 + if (currentToolOptions.value === tool.options) { + currentToolOptions.value = null; // 娓呯┖褰撳墠宸ュ叿閫夐」 + isPopupVisible.value = false; // 闅愯棌寮圭獥 + seeAnalyzeShow.value = false; // 鍙鍩� + topographyShow.value = false; // 鍓栭潰 + echartsShow.value = false; // 鍓栭潰echarts + showAspect.value = false; // 鍧″悜绠ご + showSlope.value = false; // 鍧″害绠ご + showRain.value = false; // 闆ㄥぉ + showSnow.value = false; // 闆ぉ + return; + } + // 濡傛灉宸ュ叿鍚嶇О鏄� "鍥惧眰绠$悊" if (tool.name === "鍥惧眰绠$悊") { showLayerTree.value = !showLayerTree.value; // 鍒囨崲鍥惧眰鏍戠殑鏄剧ず鐘舵�� isPopupVisible.value = false; // 闅愯棌寮圭獥 - seeAnalyzeShow.value = false; //鍙鍩� - topographyShow.value = false; //鍓栭潰 - echartsShow.value = false; //鍓栭潰echarts - showAspect.value = false; //鍧″悜绠ご - showSlope.value = false; //鍧″悜绠ご + seeAnalyzeShow.value = false; // 鍙鍩� + topographyShow.value = false; // 鍓栭潰 + echartsShow.value = false; // 鍓栭潰echarts + showAspect.value = false; // 鍧″悜绠ご + showSlope.value = false; // 鍧″害绠ご + showRain.value = false; // 闆ㄥぉ + showSnow.value = false; // 闆ぉ return; } // 瀵逛簬鍏朵粬宸ュ叿 - showLayerTree.value = false; // 纭繚鍥惧眰鏍戦殣钘� isPopupVisible.value = true; // 鏄剧ず寮圭獥 currentToolOptions.value = tool.options; // 璁剧疆褰撳墠宸ュ叿鐨勫姛鑳介�夐」 - seeAnalyzeShow.value = false; //鍙鍩� - topographyShow.value = false; //鍓栭潰 - echartsShow.value = false; //鍓栭潰echarts - showAspect.value = false; //鍧″悜绠ご - showSlope.value = false; //鍧″悜绠ご + seeAnalyzeShow.value = false; // 鍙鍩� + topographyShow.value = false; // 鍓栭潰 + echartsShow.value = false; // 鍓栭潰echarts + showAspect.value = false; // 鍧″悜绠ご + showSlope.value = false; // 鍧″害绠ご + showRain.value = false; // 闆ㄥぉ + showSnow.value = false; // 闆ぉ } // 澶勭悊寮圭獥閫夐」鐐瑰嚮浜嬩欢 @@ -219,21 +256,25 @@ 鏄剧ず鍥惧眰: () => (showLayerTree.value = true), 闅愯棌鍥惧眰: () => (showLayerTree.value = false), 闆ㄥぉ妯″紡: () => { - isRain.value = !isRain.value; - if (isRain.value === false) { - mapUtils.toggleRain("rain", false); - } else { - mapUtils.toggleRain("rain", true); - } + showRain.value = true; + onUpdateRain(); }, 闆ぉ妯″紡: () => { - isSnow.value = !isSnow.value; - if (isSnow.value === false) { - mapUtils.toggleSnow("snow", false); + showSnow.value = true; + onUpdateSnow(); + }, + 娓呴櫎澶╂皵: () => { + if (1) { + showRain.value = false; + showSnow.value = false; + mapUtils.delRain(); // 鍏抽棴闆ㄦ晥鏋� + mapUtils.delSnow(); // 鍏抽棴闆晥鏋� + console.log("澶╂皵鏁堟灉宸叉竻闄�"); } else { - mapUtils.toggleSnow("snow", true); + console.log("娌℃湁鎵撳紑鐨勫ぉ姘旀晥鏋�"); } }, + 鏂囧瓧鏍囩粯: () => mapUtils.CreateLabel("label", true), 澶氭绾挎爣缁�: () => mapUtils.CreateLabel("polyline", true), 澶氳竟褰㈡爣缁�: () => mapUtils.CreateLabel("polygon", true), @@ -385,22 +426,51 @@ }; // 鍏抽棴鍧″悜绠ご const SlopeArrowClose = () => { - mapUtils.gbpxjt(); + mapUtils.cleanupAnalysisTools(); }; // 鍧″害鍒嗘瀽 const formData = reactive({ terrainRender: 0, contourLines: false, - color: "", + color: "red", spacing: 50, lineWidth: 5, }); + +const SlopeAnalysiss = () => { + mapUtils.pdfx(formData); +}; + // 鍧″害 const onUpdateSlope = (newOption) => { Object.assign(formData, newOption); mapUtils.pdfx(formData); +}; + +// 闆� +const rainForm = reactive({ + rainSize: 0.5, + rainSpeed: 50, + rainColor: "#99B3CC", +}); +const onUpdateRain = (newOption) => { + console.log(newOption, "new"); + Object.assign(rainForm, newOption); + mapUtils.toggleRain(rainForm, true); +}; +// 闆� +const snowForm = reactive({ + snowSize: 0.02, // 榛樿闆殑澶у皬 + snowSpeed: 100, // 榛樿闆殑閫熷害 + snowColor: "#FFFFFF", // 榛樿闆殑棰滆壊 +}); + +const onUpdateSnow = (newOption) => { + console.log(newOption, "new"); + Object.assign(snowForm, newOption); + mapUtils.toggleSnow(snowForm, true); }; </script> @@ -494,6 +564,7 @@ right: 60px; top: -20px; } + .sectionChars { position: absolute; top: auto; -- Gitblit v1.9.3