From 513e1bdf4b2703409d9e4dbb776e67ffa0c134a6 Mon Sep 17 00:00:00 2001 From: WX <1377869194@qq.com> Date: 星期三, 13 九月 2023 09:52:15 +0800 Subject: [PATCH] Merge branch 'master' of http://192.168.20.92:8888/r/PM20230220027_Web --- src/views/query/SpatialQuery.vue | 56 ++++++++ src/views/layer/attributeList.vue | 58 ++++++++- src/views/search/search.vue | 10 + src/assets/js/Map/rightServer.js | 7 + src/views/query/detailsQuery.vue | 20 ++ src/assets/js/Map/server.js | 6 + src/views/layer/layerDetail.vue | 46 ++++--- src/assets/js/Map/menuTool.js | 51 +++++-- src/views/plotting/plotting.vue | 35 ++++- src/views/layer/layerManage.vue | 37 +++++ src/views/query/CoordLocation.vue | 5 public/CIMSDK/Workers/image/location.png | 0 src/assets/img/location.png | 0 13 files changed, 258 insertions(+), 73 deletions(-) diff --git a/public/CIMSDK/Workers/image/location.png b/public/CIMSDK/Workers/image/location.png index f0f0f7d..ad1941b 100644 --- a/public/CIMSDK/Workers/image/location.png +++ b/public/CIMSDK/Workers/image/location.png Binary files differ diff --git a/src/assets/img/location.png b/src/assets/img/location.png new file mode 100644 index 0000000..ad1941b --- /dev/null +++ b/src/assets/img/location.png Binary files differ diff --git a/src/assets/js/Map/menuTool.js b/src/assets/js/Map/menuTool.js index 6bd167c..fa94d83 100644 --- a/src/assets/js/Map/menuTool.js +++ b/src/assets/js/Map/menuTool.js @@ -104,24 +104,40 @@ if (this.localPoint) { this.setLocalPositionClose(); } - var position = { - X: parseFloat(res.lon), - Y: parseFloat(res.lat), - Altitude: parseFloat(res.alt), - }; - this.localPoint = window.sgworld.Creator.CreateImageLabel( - position, - config.StaticFileBaseUrl + "/Workers/image/mark.png", - {}, - 0, - "鏍囩鐐�" - ); - var id = this.localPoint.item.id; - window.sgworld.Navigate.flyToObj(this.localPoint.item); + // var position = { + // X: parseFloat(res.lon), + // Y: parseFloat(res.lat), + // Altitude: parseFloat(res.alt), + // }; + // this.localPoint = window.sgworld.Creator.CreateImageLabel( + // position, + // config.StaticFileBaseUrl + "/Workers/image/mark.png", + // {}, + // 0, + // "鏍囩鐐�" + // ); + // var id = this.localPoint.item.id; + // window.sgworld.Navigate.flyToObj(this.localPoint.item); + this.localPoint = window.Viewer.entities.add({ + name: '鍧愭爣瀹氫綅', + position: Cesium.Cartesian3.fromDegrees(parseFloat(res.lon), parseFloat(res.lat), res.alt == null ? parseFloat(res.alt) : 0), + billboard: { + image: config.StaticFileBaseUrl + '/Workers/image/location.png', + // 璁剧疆璐村湴 + heightReference: Cesium.Color.CORNFLOWERBLUE.withAlpha(0.4), + verticalOrigin: Cesium.VerticalOrigin.BOTTOM, + scale: 1.0, + }, + }); + this.setViewerFlyTo(this.localPoint) }, setLocalPositionClose() { - this.localPoint.deleteObject(); - this.localPoint = null; + if (this.localPoint) { + // this.localPoint.deleteObject(); + window.Viewer.entities.remove(this.localPoint) + this.localPoint = null; + } + }, //鍧″害鍒嗘瀽 setSlopeMap() { @@ -615,13 +631,14 @@ // 璁剧疆璐村湴 heightReference: Cesium.Color.CORNFLOWERBLUE.withAlpha(0.4), verticalOrigin: Cesium.VerticalOrigin.BOTTOM, - scale: 5.0, + scale: 1.0, }, }); this.setViewerFlyTo(position) }, setViewerFlyTo(entity) { + window.Viewer.flyTo(entity, { offset: { heading: Cesium.Math.toRadians(0.0), diff --git a/src/assets/js/Map/rightServer.js b/src/assets/js/Map/rightServer.js index 134c302..475706f 100644 --- a/src/assets/js/Map/rightServer.js +++ b/src/assets/js/Map/rightServer.js @@ -235,8 +235,13 @@ var url = this.getLayrUrl(res); window.terrainLayer = new Cesium.CesiumTerrainProvider({ url: url, + tilingScheme: new Cesium.GeographicTilingScheme({ + ellipsoid: Cesium.Ellipsoid.MOON, + }), + }); - window.rightViewer.terrainProvider = window.terrainLayer; + Viewer.terrainProvider = window.terrainLayer; + Viewer.scene.globe.terrainExaggeration = 1.0000001; this.layerList.push({ id: res.id, type: "dem" }); }, //鍔犺浇WMS鏈嶅姟 diff --git a/src/assets/js/Map/server.js b/src/assets/js/Map/server.js index e3ceb5a..a140f51 100644 --- a/src/assets/js/Map/server.js +++ b/src/assets/js/Map/server.js @@ -240,8 +240,13 @@ var url = this.getLayrUrl(res); window.terrainLayer = new Cesium.CesiumTerrainProvider({ url: url, + tilingScheme: new Cesium.GeographicTilingScheme({ + ellipsoid: Cesium.Ellipsoid.MOON, + }), + }); Viewer.terrainProvider = window.terrainLayer; + Viewer.scene.globe.terrainExaggeration = 1.0000001; this.layerList.push({ id: res.id, type: "dem" }); }, //鍔犺浇WMS鏈嶅姟 @@ -426,6 +431,7 @@ break; } } + if (!gindex) return var str = html.substr(html.indexOf('<td>'), html.lastIndexOf('</td>') - html.indexOf('<td>') + 5).replaceAll(' ', '').replaceAll('\n', '').split('</td>') var gid = parseInt(str[gindex].replaceAll( diff --git a/src/views/layer/attributeList.vue b/src/views/layer/attributeList.vue index dacc7f0..4ec72af 100644 --- a/src/views/layer/attributeList.vue +++ b/src/views/layer/attributeList.vue @@ -57,7 +57,7 @@ > <template #default="scope"> <el-button - :icon="Location" + class="el-icon-map" size="small" @click.prevent="spaceLocation(scope.$index, scope.row)" > @@ -230,9 +230,37 @@ return ElMessage.error("绌洪棿鏌ヨ澶辫触"); } listData.value.count = data.count; - tableData.value = data.result; -}; + var val = data.result.filter((res) => { + if (res.apprTime) { + res.apprTime = format(res.apprTime); + } + if (res.createtime) { + res.apprTime = format(res.createtime); + } + if (res.updatetime) { + res.apprTime = format(res.updatetime); + } + return res; + }); + tableData.value = val; +}; +//鏍煎紡鍖栨椂闂� +const format = (shijianchuo) => { + //shijianchuo鏄暣鏁帮紝鍚﹀垯瑕乸arseInt杞崲 + var time = new Date(shijianchuo); + var y = time.getFullYear(); + var m = time.getMonth() + 1; + var d = time.getDate(); + var h = time.getHours(); + var mm = time.getMinutes(); + var s = time.getSeconds(); + return y + "-" + add0(m) + "-" + add0(d) + " " + h + ":" + mm + ":" + s; +}; +//鏍煎紡鍖栨椂闂� +const add0 = (m) => { + return m < 10 ? "0" + m : m; +}; const setQueySpatialFields = async () => { const data = await dataQuery_selectFields({ ns: "mn", @@ -246,8 +274,17 @@ return res; } }); - attributeData.value = std; - fieldOption.value = std; + var val = std.filter((res) => { + if (res.field.indexOf("_") > -1) { + var str = res.field.split("_"); + res.field = str[0] + str[1][0].toUpperCase() + str[1].slice(1); + return res; + } else { + return res; + } + }); + attributeData.value = val; + fieldOption.value = val; conditionChange(data.result[0]); setQueySpatialData(); }; @@ -418,7 +455,16 @@ padding: 10px; height: 40px; } - + .el-icon-map { + background: url("../../assets/img/location.png") center no-repeat; + background-size: 100% 100%; + border: transparent; + } + .el-icon-map:before { + content: "瀹氫綅"; + font-size: 0; + visibility: hidden; + } /deep/.el-pagination button { background: transparent; color: #d6e4ff; diff --git a/src/views/layer/layerDetail.vue b/src/views/layer/layerDetail.vue index 755880b..304821e 100644 --- a/src/views/layer/layerDetail.vue +++ b/src/views/layer/layerDetail.vue @@ -1,7 +1,7 @@ <template> <div class="content"> <div class="title"> - <label>璇︾粏缂栬緫</label> + <label> {{ layerData.cnName }}</label> <el-icon @click="setSpatialClose" :size="20" @@ -11,16 +11,14 @@ </el-icon> </div> <div class="layer_box"> - <div class="check_box"> - <!-- <el-checkbox @change="handlCheckAllChange" v-model="layerState">{{ - layerName - }}</el-checkbox> --> - {{ layerData.cnName }} - <img - src="../../assets/img/layer.png" - alt="" - /> - </div> + <!-- <div class="check_box"> + + {{ layerData.cnName }} + <img + src="../../assets/img/layer.png" + alt="" + /> + </div> --> <div class="slider-demo-block" v-show="diaphaneityShow" @@ -443,12 +441,15 @@ geom: geom, pubid: releaseLayer.value.pubid, }; - const data = publish_updateSjService(obj); - if (data.count != 200) { - return ElMessage(data.msg); - } - store.state.restLayer = true; - setSpatialClose(); + publish_updateSjService(obj).then((res) => { + if (res.code != 200) { + return ElMessage(data.msg); + } + store.state.restLayer = true; + setSpatialClose(); + }); + // const data = ; + // console.log("1122223" + data.code); }; onMounted(() => { typeDisplay(props.layerData); @@ -469,16 +470,19 @@ <style lang="less" scoped> .content { - background: #1e2a3d; padding: 20px; // height: 400px; - margin-left: 20px; + min-width: 300px; + margin-left: 385px; margin-top: 40px; - min-width: 200px; + z-index: 40; position: absolute; + background: rgba(7, 8, 14, 0.8); + border: 1px solid #d6e4ff; + box-shadow: inset 0px 10px 40px 10px rgba(38, 47, 71, 1); .title { - font-size: 18px; + font-size: 16px; font-family: Source Han Sans CN; font-weight: 400; color: #ffffff; diff --git a/src/views/layer/layerManage.vue b/src/views/layer/layerManage.vue index 647fa23..798f6c8 100644 --- a/src/views/layer/layerManage.vue +++ b/src/views/layer/layerManage.vue @@ -269,7 +269,29 @@ // }); // treeData = handleTree(menuOption, "id", "pid", "children"); }; +const setRestLayerData = () => { + let son = estreeRef.value.getCheckedNodes().reverse(); + server.delLayerAll(); + var setGeoWms = []; + var url = null; + for (var i in son) { + var layerArr = son[i]; + layerArr.checked = true; + if (layerArr.category == 2 && layerArr.type == 3) { + if (layerArr.tab != "moon:geo_mappable_unit") { + setGeoWms.push(layerArr.tab); + url = layerArr.url; + } + } else { + server.addTreeData(layerArr); + } + } + if (setGeoWms.length > 0) { + server.addGeoServerMmsLayers(setGeoWms, url); + } + store.commit("SET_CHECKLAYER", son); +}; const getLayer = async () => { store.state.restLayer = false; server.delLayerAll(); @@ -280,15 +302,18 @@ }); var std = []; var terrainId = null; + var adLayer = []; dt.result.filter((res) => { if (res.isLayer == 1 && res.isShow == 1) { if (res.type == 1 && res.data == 2) { if (!terrainId) { terrainId = res.id; std.push(res.id); + adLayer.push(res); } } else { std.push(res.id); + adLayer.push(res); } } }); @@ -299,19 +324,20 @@ defaultLayer(dt.result); var setGeoWms = []; var url = null; - for (var i in dt.result) { - var layer = dt.result[i]; + + for (var i in adLayer) { + var layer = adLayer[i]; if (layer.category == 2 && layer.type == 3) { if (layer.tab != "moon:geo_mappable_unit") { setGeoWms.push(layer.tab); url = layer.url; } } else { - server.addTreeData(layer); + server.addTreeData(layer); } } if (setGeoWms.length > 0) { - server.addGeoServerMmsLayers(setGeoWms.reverse(), url); + server.addGeoServerMmsLayers(setGeoWms, url); } //; nextTick(() => { @@ -340,11 +366,12 @@ return father.pid == 0; // 杩斿洖涓�绾ц彍鍗� }); } + watch( () => store.state.restLayer, (nVal, oVal) => { if (nVal) { - getLayer(); + setRestLayerData(); } }, { deep: true } diff --git a/src/views/plotting/plotting.vue b/src/views/plotting/plotting.vue index cc61f47..a794809 100644 --- a/src/views/plotting/plotting.vue +++ b/src/views/plotting/plotting.vue @@ -1,8 +1,14 @@ <template> - <div v-drag class="plottingBox"> + <div + v-drag + class="plottingBox" + > <div class="plottingTitle"> <div class="tileLeft"> - <div class="titleImg" @click="setCloseplotting"> + <div + class="titleImg" + @click="setCloseplotting" + > <ArrowLeft /> </div> <div class="titleLable">鏍囩粯鏌ヨ</div> @@ -12,9 +18,18 @@ <div class="plotting_content_btn"> <span class="plotting_content_title">鏍囩粯宸ュ叿</span> <div class="plotting_btn"> - <div class="btn_box_d btn_box" @click="setMenuDraw('point')"></div> - <div class="btn_box_x btn_box" @click="setMenuDraw('polyline')"></div> - <div class="btn_box_m btn_box" @click="setMenuDraw('polygon')"></div> + <div + class="btn_box_d btn_box" + @click="setMenuDraw('point')" + ></div> + <div + class="btn_box_x btn_box" + @click="setMenuDraw('polyline')" + ></div> + <div + class="btn_box_m btn_box" + @click="setMenuDraw('polygon')" + ></div> </div> </div> <div class="plotting_list"> @@ -32,8 +47,14 @@ /><span>{{ item.name }}</span> </div> <div class="plotting_list_tr_btn"> - <div class="tr_btn dw" @click.stop="setLayerLocation(item)"></div> - <div class="tr_btn sc" @click.stop="setLayerRemove(item)"></div> + <div + class="tr_btn dw" + @click.stop="setLayerLocation(item)" + ></div> + <div + class="tr_btn sc" + @click.stop="setLayerRemove(item)" + ></div> </div> </div> </div> diff --git a/src/views/query/CoordLocation.vue b/src/views/query/CoordLocation.vue index 185c856..744aac2 100644 --- a/src/views/query/CoordLocation.vue +++ b/src/views/query/CoordLocation.vue @@ -37,10 +37,7 @@ placeholder="璇疯緭鍏ョ含搴�..." /> </el-form-item> - <el-form-item - label="楂樺害锛�" - prop="alt" - > + <el-form-item label="楂樺害锛�"> <el-input v-model="ruleForm.alt" placeholder="璇疯緭鍏ラ珮搴�..." diff --git a/src/views/query/SpatialQuery.vue b/src/views/query/SpatialQuery.vue index e8f81bb..1668d16 100644 --- a/src/views/query/SpatialQuery.vue +++ b/src/views/query/SpatialQuery.vue @@ -77,7 +77,7 @@ > <template #default="scope"> <el-button - :icon="Location" + class="el-icon-map" size="small" @click.prevent="spaceLocation(scope.$index, scope.row)" > @@ -513,9 +513,36 @@ return ElMessage.error("绌洪棿鏌ヨ澶辫触"); } listData.value.count = data.count; - tableData.value = data.result; + var val = data.result.filter((res) => { + if (res.apprTime) { + res.apprTime = format(res.apprTime); + } + if (res.createtime) { + res.apprTime = format(res.createtime); + } + if (res.updatetime) { + res.apprTime = format(res.updatetime); + } + return res; + }); + tableData.value = val; }; - +//鏍煎紡鍖栨椂闂� +const format = (shijianchuo) => { + //shijianchuo鏄暣鏁帮紝鍚﹀垯瑕乸arseInt杞崲 + var time = new Date(shijianchuo); + var y = time.getFullYear(); + var m = time.getMonth() + 1; + var d = time.getDate(); + var h = time.getHours(); + var mm = time.getMinutes(); + var s = time.getSeconds(); + return y + "-" + add01(m) + "-" + add01(d) + " " + h + ":" + mm + ":" + s; +}; +//鏍煎紡鍖栨椂闂� +const add01 = (m) => { + return m < 10 ? "0" + m : m; +}; const setQueySpatialFields = async () => { const data = await dataQuery_selectFields({ ns: "mn", @@ -531,8 +558,17 @@ } }); - attributeData.value = std; - fieldOption.value = std; + var val = std.filter((res) => { + if (res.field.indexOf("_") > -1) { + var str = res.field.split("_"); + res.field = str[0] + str[1][0].toUpperCase() + str[1].slice(1); + return res; + } else { + return res; + } + }); + attributeData.value = val; + fieldOption.value = val; conditionChange(data.result[0]); setQueySpatialData(); }; @@ -786,6 +822,16 @@ color: #d6e4ff !important; } } + .el-icon-map { + background: url("../../assets/img/location.png") center no-repeat; + background-size: 100% 100%; + border: transparent; + } + .el-icon-map:before { + content: "瀹氫綅"; + font-size: 0; + visibility: hidden; + } } </style> <style lang="less" > diff --git a/src/views/query/detailsQuery.vue b/src/views/query/detailsQuery.vue index 413c334..b418d09 100644 --- a/src/views/query/detailsQuery.vue +++ b/src/views/query/detailsQuery.vue @@ -82,7 +82,17 @@ ElMessage.error("鏈煡璇㈠埌瀛楁淇℃伅"); return; } - fieldData.value = data.result; + var val = data.result; + val.filter((res) => { + if (res.field.indexOf("_") > -1) { + var str = res.field.split("_"); + res.field = str[0] + str[1][0].toUpperCase() + str[1].slice(1); + return res; + } else { + return res; + } + }); + fieldData.value = val; getLayerDomains(); }; const getLayerDomains = async () => { @@ -149,7 +159,6 @@ arr[vla.alias] = valste[vla.field]; } } - tableData.value = sortObj(arr); }; const sortObj = (obj) => { @@ -160,8 +169,13 @@ arr.reverse(); var len = arr.length; var obj = {}; + for (var i = 0; i < len; i++) { - obj[arr[i][1]] = arr[i][0]; + if (arr[i][1].indexOf("鏃堕棿") > -1) { + obj[arr[i][1]] = format(arr[i][0]); + } else { + obj[arr[i][1]] = arr[i][0]; + } } return obj; }; diff --git a/src/views/search/search.vue b/src/views/search/search.vue index f3b59ae..546e6f9 100644 --- a/src/views/search/search.vue +++ b/src/views/search/search.vue @@ -87,7 +87,7 @@ @click="setPointLocal(item)" > <div class="table_th_x">{{ flag + 1 }}</div> - <div class="table_th">{{ item.enName }}</div> + <div class="table_th">{{ item.name }}</div> </div> </div> </div> @@ -129,8 +129,10 @@ const NumhandleChange = (value: number) => {}; const handleChange = (val: string[]) => {}; const setPoitCannel = () => { - imageLabel.deleteObject(); - imageLabel = null; + if (imageLabel) { + imageLabel.deleteObject(); + imageLabel = null; + } }; const setPointLocal = (res) => { if (imageLabel) { @@ -139,7 +141,7 @@ var position = { X: res.lon, Y: res.lat, Altitude: 10 }; imageLabel = window.sgworld.Creator.CreateImageLabel( position, - config.StaticFileBaseUrl + "/Workers/image/mark.png", + config.StaticFileBaseUrl + "/Workers/image/location.png", {}, 0, "鏍囩鐐�" -- Gitblit v1.9.3