From 2a02d981f6d5ed2ef3b3a09d5a3b5bc0d07cf742 Mon Sep 17 00:00:00 2001 From: wangjuncheng <1> Date: 星期三, 09 七月 2025 17:07:01 +0800 Subject: [PATCH] 提交断面 --- src/components/menu/CrossSectionalAnalysis.vue | 41 +++++++++++++++++++++++++++++++++++++---- src/api/trApi.js | 14 ++++++++++++++ 2 files changed, 51 insertions(+), 4 deletions(-) diff --git a/src/api/trApi.js b/src/api/trApi.js index f826b82..836ec2b 100644 --- a/src/api/trApi.js +++ b/src/api/trApi.js @@ -191,4 +191,18 @@ throw error; // 鎶涘嚭閿欒锛岃璋冪敤鏂瑰彲浠ユ崟鑾� } } + +export async function getCrossSection(data) { + // console.log(data,'鍙戦�佺殑鏁版嵁锛�'); + + try { + const res = await instance.get("/simu/crossSection", { + params: data + }); + return res.data; // 杩斿洖瀹為檯鏁版嵁锛堥�氬父 res.data 鎵嶆槸鎺ュ彛杩斿洖鐨勫唴瀹癸級 + } catch (error) { + console.error("Error fetching data:", error); + throw error; // 鎶涘嚭閿欒锛岃璋冪敤鏂瑰彲浠ユ崟鑾� + } +} // ************************************************************************************************************** diff --git a/src/components/menu/CrossSectionalAnalysis.vue b/src/components/menu/CrossSectionalAnalysis.vue index 44bc677..83102b7 100644 --- a/src/components/menu/CrossSectionalAnalysis.vue +++ b/src/components/menu/CrossSectionalAnalysis.vue @@ -75,8 +75,13 @@ <script setup> import { ElMessage } from 'element-plus'; import { ref, onMounted, defineExpose } from "vue"; - +import { getCrossSection } from '@/api/trApi.js'; // 鍋囪浣犳湁鐪熷疄鎺ュ彛 +import { useSimStore } from '@/store/simulation'; +import { storeToRefs } from 'pinia'; +const simStore = useSimStore(); +const { selectedScheme } = storeToRefs(simStore); const viewer = window.viewer; +let selectedSchemeId = selectedScheme.value.id let pickedPointsCross = ref([]); let pickHandlerCross = null; @@ -229,6 +234,8 @@ pickHandlerCross = null; } isPicking.value = false; + console.log('杩欓噷鍙戦�佽姹傦紝娓呯┖閮鐨別charts2'); + } function initPickHandler() { if (isPicking.value) { @@ -260,7 +267,9 @@ pickHandlerCross.setInputAction(clickAction, Cesium.ScreenSpaceEventType.LEFT_CLICK); } -function confirmPoints() { +async function confirmPoints() { + console.log(selectedSchemeId,'杩欓噷鎷跨殑鏄柟妗堢殑鏁版嵁'); + if (pickedPointsCross.value.length < 2) { ElMessage.warning('璇峰厛閫夋嫨涓や釜鐐瑰悗鍐嶈繘琛岀‘璁わ紒'); return; @@ -268,6 +277,7 @@ const point1 = pickedPointsCross.value[0]; const point2 = pickedPointsCross.value[1]; +console.log(point1,point2); console.log('绗竴涓偣淇℃伅锛�', { longitude: point1.longitude, @@ -280,11 +290,34 @@ latitude: point2.latitude, cartesian: point2.cartesian }); - + const startPoint = `${point1.longitude},${point1.latitude}`; + const endPoint = `${point2.longitude},${point2.latitude}`; + const result = await getCrossSectionInfo(startPoint, endPoint); + console.log(result,'杩欓噷鏄儹妤犻渶瑕佺殑鏂潰鏁版嵁'); + isUploaded.value = true; ElMessage.success('姝e湪杩涜--鏂潰鎴潰--鏁版嵁鍒嗘瀽涓婁紶锛岃绋嶇瓑...'); + } - + // 鑾峰彇鐪熷疄鏁版嵁 +function getCrossSectionInfo(a, b) { + const params = { + startPoint: a, + endPoint: b, + id: selectedSchemeId + }; + return getCrossSection(params).then(data => { + if (data && data.code === 200) { + return data.data; // 杩斿洖鍘熷鏁版嵁鏁扮粍 + } else { + return []; + } + }).catch(error => { + console.error('鑾峰彇鏁版嵁鏃跺彂鐢熼敊璇�:', error); + ElMessage.warning('鏁版嵁鏈夎锛岃鑱旂郴绠$悊鍛樻垨閲嶆柊杩涜妯℃嫙锛�'); + return []; + }); +} defineExpose({ clearPoints }); -- Gitblit v1.9.3