From 36fbd1e5a40e319e6ac5f43d11c99ba4b66e93a3 Mon Sep 17 00:00:00 2001 From: surprise <15810472099@163.com> Date: 星期三, 29 十一月 2023 16:50:16 +0800 Subject: [PATCH] 坡度分析下载修改 --- src/views/plotting/plottingInquire.vue | 330 +++++++++++++++++++++++++++++++------------------------ 1 files changed, 186 insertions(+), 144 deletions(-) diff --git a/src/views/plotting/plottingInquire.vue b/src/views/plotting/plottingInquire.vue index bb13cdf..c34f64f 100644 --- a/src/views/plotting/plottingInquire.vue +++ b/src/views/plotting/plottingInquire.vue @@ -44,36 +44,14 @@ </div>--> <div class="inquireContent_input_right" v-show="!chartIsshow"> <div class="label">鑼冨洿妗嗗唴鏈�澶у儚绱犲��</div> - <el-select - v-model="ScopeBox.pixel" - class="m-2" - placeholder="鍍忕礌鍊�" - size="small" - @change="pixelChange" - > - <el-option - v-for="item in pixeloptions" - :key="item.value" - :label="item.label" - :value="item.value" - /> + <el-select v-model="ScopeBox.pixel" class="m-2" placeholder="鍍忕礌鍊�" size="small" @change="pixelChange"> + <el-option v-for="item in pixeloptions" :key="item.value" :label="item.label" :value="item.value" /> </el-select> </div> <div class="inquireContent_input_right" v-show="chartIsshow"> <div class="label">鑺傜偣鏁�</div> - <el-select - v-model="ScopeBox.nodes" - class="m-2" - placeholder="鍍忕礌鍊�" - size="small" - @change="nodesChange" - > - <el-option - v-for="item in nodesoptions" - :key="item.value" - :label="item.label" - :value="item.value" - /> + <el-select v-model="ScopeBox.nodes" class="m-2" placeholder="鍍忕礌鍊�" size="small" @change="nodesChange"> + <el-option v-for="item in nodesoptions" :key="item.value" :label="item.label" :value="item.value" /> </el-select> </div> </div> @@ -82,12 +60,7 @@ <div class="chart_btn"> <el-button :icon="Search" link class="linkBtn" @click="openDialog(e)"></el-button> - <el-button - :icon="Download" - link - class="linkBtn" - @click="downloadChart(layerData)" - ></el-button> + <el-button :icon="Download" link class="linkBtn" @click="downloadChart(layerData)"></el-button> <!-- 鏆傛椂涓嶇敤鍒犻櫎 --> <!-- <el-button :icon="Delete" @@ -98,19 +71,9 @@ </div> <Bar-graph :width="'100%'" :height="'260px'" :layerData="layerData"></Bar-graph> <div class="select"> - <el-select - v-model="layerValue" - class="m-2" - placeholder="閫夋嫨鍥惧眰" - size="small" - @change="layerChange" - > - <el-option - v-for="(item, i) in layeroptions" - :key="i" - :label="item.layerName" - :value="item.layerName" - /> + <el-select v-model="layerValue" class="m-2" placeholder="閫夋嫨鍥惧眰" size="small" @change="layerChange"> + <el-option v-for="(item, i) in layeroptions" :key="i" :label="item.layerName" + :value="item.layerName" /> </el-select> </div> </div> @@ -147,6 +110,8 @@ <div class="table_head_td">搴忓彿</div> <div class="table_head_td"> <span>鍥惧眰鍚�</span> + <span>鏈�澶у��</span> + <span>鏈�灏忓��</span> <span>鍒嗘瀽缁撴灉</span> </div> </div> @@ -154,7 +119,10 @@ <div class="table_tr" v-for="(e, i) in resultList" :key="i"> <div class="table_td">{{ i + 1 }}</div> <div class="table_td"> - <span>{{ e.layerName }}</span> + + <span>{{ e.layerName }} <label v-show="e.unit"> [{{ e.unit }}]</label></span> + <span>{{ e.max }}</span> + <span>{{ e.min }}</span> <span>{{ e.avg }}</span> </div> </div> @@ -318,7 +286,7 @@ let layerNameNum = 0; let geoWkt = ref(null); let geoWktFlag = ref(false); -let ws = ref(null); +let wktType = ref(null); //鏂板鍥捐〃 const addCharts = () => { layerArr.value.push({ layerName: `null${layerNameNum}`, points: [] }); @@ -347,17 +315,25 @@ // if (store.state.plottingInquireData.entitiesData.icon == "d.png") { // } - selectPoint({ - pixel: val, - wkt: store.state.plottingInquireData.entitiesData.wkt, - }); + // selectPoint({ + // pixel: val, + // wkt: store.state.plottingInquireData.entitiesData.wkt, + // }); + setOptionStart(); + setWebScoKet("Point", store.state.plottingInquireData.entitiesData.wkt, val); }; //鑺傜偣閫夋嫨 const nodesChange = (val) => { - selectPolyline({ - nodes: val, - wkt: store.state.plottingInquireData.entitiesData.wkt, - }); + setOptionStart(); + setWebScoKet( + "PolyLine", + store.state.plottingInquireData.entitiesData.wkt, + val + ); + // selectPolyline({ + // nodes: val, + // wkt: store.state.plottingInquireData.entitiesData.wkt, + // }); }; //鍥惧眰閫夋嫨 @@ -414,8 +390,11 @@ e.min = e.minList.toString(); e.lng = store.state.plottingInquireData.entitiesData.lng; e.lat = store.state.plottingInquireData.entitiesData.lat; + resultList.value.push(e); }); + + console.log(resultList.value); }; //闈㈡煡璇㈡帴鍙� const selectPolygon = async (res) => { @@ -463,12 +442,12 @@ }); }); }); - + console.log(dt.result); layeroptions.value = dt.result; layerValue.value = layeroptions.value[0].layerName; layerArr.value.push(dt.result[0]); - chartIsshow.value = true; + layerData.value = dt.result[0]; // dt.result.forEach((e) => { @@ -505,111 +484,170 @@ }; // store.commit("SET_plotting", obj); store.state.plottingInquireData = obj; + + setCloseWebSocket(); + inquireData.value = { + name: "path #9", + icon: "q.png", + }; isShow.value = false; break; } } }; -const handleClick = (tab: TabsPaneContext, event: Event) => {}; +const handleClick = (tab: TabsPaneContext, event: Event) => { }; // const setCloseplotting = () => { // emits("setCloseplotting", false); // }; let chartIsshow = ref(false); -const setMenuClose = ()=>{ +const setMenuClose = () => { + isShow.value = false; setCloseWebSocket(); - isShow.value=false; -} -const setCloseWebSocket = () => { - if( Window.ws){ - Window.ws.close(); - Window.ws.onclose = () => { - console.log("鏈嶅姟鍣ㄥ叧闂�"); + store.state.plottingInquireData = null; + inquireData.value = { + name: "path #9", + icon: "q.png", }; - Window.ws = null; +}; +const setCloseWebSocket = () => { + if (Window.ws) { + Window.ws.close(); + Window.ws.onclose = () => { + console.log("鏈嶅姟鍣ㄥ叧闂�"); + }; + Window.ws = null; } - }; const setWebScoKet = async (type, wkt, node) => { const data = await rasterAnalysis_selectByWktForPost({ wkt: wkt, size: node, }); - console.log(data) + if (data) { return; - } else { - - Window.ws.option = () => {}; - Window.ws.onmessage = (msg) => { - // console.log('鏉ヨ嚜鏈嶅姟鍣ㄧ鐨勬暟鎹細' + msg.data); //鐩戝惉鎺ュ彈鏉ヨ嚜鏈嶅姟绔殑淇℃伅 - if (msg.data != "杩炴帴鎴愬姛") { - var val = JSON.parse(msg.data); - console.log(val); - - if (val.analysisForPost) { - console.log(val); - } - } else { - console.log(msg.data); - } - }; } +}; +const setOptionStart = () => { + + resultList.value = []; + layerArr.value = []; + layeroptions.value = []; + layerValue.value = ''; +}; +const setWebSocketStart = () => { + // if (Window.ws) { + // setCloseWebSocket(); + // } + setOptionStart(); + var token = getToken(); + var url = socketUrl + "?token=" + token; + Window.ws = new WebSocket(url); + Window.ws.option = () => { }; + Window.ws.onmessage = (msg) => { + // console.log('鏉ヨ嚜鏈嶅姟鍣ㄧ鐨勬暟鎹細' + msg.data); //鐩戝惉鎺ュ彈鏉ヨ嚜鏈嶅姟绔殑淇℃伅 + if (msg.data != "杩炴帴鎴愬姛") { + var val = JSON.parse(msg.data); + + if (val.analysisForPost && val.analysisForPost.token == token) { + var data = val.analysisForPost; + console.log(data) + switch (wktType.value) { + case "Point": + setWebSocketPoint(data); + break; + case "Polygon": + setWebSocketPoint(data); + break; + case "LineString": + setWebSocketPLine(data); + break; + } + } + } + }; +}; +const setWebSocketPoint = (res) => { + var obj = { + avg: res.avgList.length <= 0 ? "--" : res.avgList.toString(), + layerName: res.layerName, + max: res.maxList.length <= 0 ? "--" : res.maxList.toString(), + min: res.minList.length <= 0 ? "--" : res.minList.toString(), + lng: store.state.plottingInquireData.entitiesData.lng, + lat: store.state.plottingInquireData.entitiesData.lat, + unit: res.unit + }; + resultList.value.push(obj); +}; +const setWebSocketPLine = (res) => { + res.points.forEach((element) => { + element.vals.forEach((v) => { + v = keepThreeNum(v); + }); + }); + layeroptions.value.push(res); + var data = layeroptions.value[0]; + layerValue.value = data.layerName; + layerArr.value.push(data); + layerData.value = data; }; watch( () => store.state.plottingInquireData, (nVal, oVal) => { - if (Window.ws) { - setCloseWebSocket(); - } - var url = socketUrl+"?token=" + getToken(); - Window.ws = new WebSocket(url); - isShow.value = nVal.isshow; - inquireData.value = nVal.entitiesData; - geoWktFlag.value = false; - if (inquireData.value.wkt) { - var wkt = WKT.parse(inquireData.value.wkt); + setOptionStart(); + setCloseWebSocket(); + if (!nVal) return; + if (nVal.entitiesData.name != inquireData.value.name) { + isShow.value = nVal.isshow; + inquireData.value = nVal.entitiesData; + geoWktFlag.value = false; + if (inquireData.value.wkt) { + var wkt = WKT.parse(inquireData.value.wkt); + wktType.value = wkt.type; + if (wkt.type == "Point") { + geoWkt.value = + wkt.coordinates[0].toFixed(6) + " " + wkt.coordinates[1].toFixed(6); + geoWktFlag.value = true; + } + if (wkt.type == "Polygon") { + var Polygon = turf.multiPolygon([wkt.coordinates]); + var center = turf.center(Polygon); + geoWkt.value = + center.geometry.coordinates[0].toFixed(6) + + " " + + center.geometry.coordinates[1].toFixed(6); + geoWktFlag.value = true; + } + } + setWebSocketStart(); - if (wkt.type == "Point") { - geoWkt.value = - wkt.coordinates[0].toFixed(6) + " " + wkt.coordinates[1].toFixed(6); - geoWktFlag.value = true; + if (nVal.entitiesData.icon == "x.png") { + pixelIsShow.value = true; + chartIsshow.value = true; + setWebScoKet("pline", nVal.entitiesData.wkt, ScopeBox.value.nodes); + // selectPolyline({ + // nodes: ScopeBox.value.nodes, + // wkt: nVal.entitiesData.wkt, + // }); } - if (wkt.type == "Polygon") { - var Polygon = turf.multiPolygon([wkt.coordinates]); - var center = turf.center(Polygon); - geoWkt.value = - center.geometry.coordinates[0].toFixed(6) + - " " + - center.geometry.coordinates[1].toFixed(6); - geoWktFlag.value = true; + if (nVal.entitiesData.icon == "m.png") { + chartIsshow.value = false; + // if (nVal.entitiesData.name == oVal.entitiesData.name) { + // return; + // } + pixelIsShow.value = false; + // selectPolygon({ wkt: nVal.entitiesData.wkt }); + setWebScoKet("polygon", nVal.entitiesData.wkt, 0); } - } - - if (nVal.entitiesData.icon == "x.png") { - pixelIsShow.value = true; - setWebScoKet("pline", nVal.entitiesData.wkt, ScopeBox.value.nodes); - // selectPolyline({ - // nodes: ScopeBox.value.nodes, - // wkt: nVal.entitiesData.wkt, - // }); - } - if (nVal.entitiesData.icon == "m.png") { - chartIsshow.value = false; - if (nVal.entitiesData.name == oVal.entitiesData.name) { - return; + if (nVal && nVal.entitiesData.icon == "d.png") { + chartIsshow.value = false; + pixelIsShow.value = true; + // selectPoint({ + // pixel: ScopeBox.value.pixel, + // wkt: nVal.entitiesData.wkt, + // }); + setWebScoKet("polygon", nVal.entitiesData.wkt, ScopeBox.value.pixel); } - pixelIsShow.value = false; - // selectPolygon({ wkt: nVal.entitiesData.wkt }); - setWebScoKet("polygon", nVal.entitiesData.wkt, 0); - } - if (nVal && nVal.entitiesData.icon == "d.png") { - chartIsshow.value = false; - pixelIsShow.value = true; - // selectPoint({ - // pixel: ScopeBox.value.pixel, - // wkt: nVal.entitiesData.wkt, - // }); - setWebScoKet("polygon", nVal.entitiesData.wkt, ScopeBox.value.pixel); } }, { deep: true } @@ -621,7 +659,7 @@ position: absolute; right: 26px; top: 80px; - width: 320px; + width: 400px; background: rgba(7, 8, 14, 0.8); z-index: 100; @@ -789,7 +827,7 @@ } .table_head_td:nth-child(2) { - width: 237px; + width: 16.34375vw; display: flex; justify-content: space-between; align-items: center; @@ -820,11 +858,18 @@ border-right: 1px solid rgba(214, 228, 255, 0.4); box-sizing: border-box; + div { + width: 100%; + background: skyblue; + height: 100%; + } + // padding: 5px; // white-space: nowrap; span { + display: block; - width: 50%; + width: 17%; word-wrap: break-word; // white-space: pre; text-align: left; @@ -835,21 +880,18 @@ // justify-content: flex-end; // margin-left: 5%; // float: right; - width: 40%; - text-align: right; + // width:16.34375vw; + text-align: center; + // background: skyblue; } } .table_td:nth-child(2) { - width: 237px; + width: 16.34375vw; display: flex; justify-content: space-between; align-items: center; - // padding: 0 10px; - padding-left: 10px; - padding-right: 10px; - padding-top: 5px; - padding-bottom: 5px; + padding: 0 10px; border-right: 0; } } -- Gitblit v1.9.3