From c2a6c53657baaf0830cd881e1a23a15af23ac6fa Mon Sep 17 00:00:00 2001 From: Surpriseplus <845948745@qq.com> Date: 星期四, 21 九月 2023 18:35:14 +0800 Subject: [PATCH] 代码更新 --- src/components/MapView/mapMenuPop.vue | 992 +++++++++++++++++++++++++++++++++++---------------------- 1 files changed, 606 insertions(+), 386 deletions(-) diff --git a/src/components/MapView/mapMenuPop.vue b/src/components/MapView/mapMenuPop.vue index a862f2a..0afb133 100644 --- a/src/components/MapView/mapMenuPop.vue +++ b/src/components/MapView/mapMenuPop.vue @@ -1,15 +1,10 @@ <template> <div class="menuPop"> <div class="leftBox"> - <div - class="leftDown" - v-if="$store.state.download" - > + <!-- v-if="$store.state.download" --> + <div class="leftDown"> <div @click="getDownloadDep"> - <el-link - style="color:white" - icon="el-icon-download" - > </el-link> + <el-link icon="el-icon-download"> </el-link> </div> </div> <ul> @@ -27,8 +22,9 @@ <el-table :data="tableData" ref="dialogPayChannel" - height="300px" + height="100%" style="width: 100%" + border > <el-table-column align="center" @@ -59,7 +55,10 @@ ></el-table-column> </el-table> </div> - <div class="pagination_box"> + <div + class="pagination_box" + style="margin-top: 10px" + > <el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange" @@ -123,72 +122,7 @@ </el-form-item> </el-form> </el-dialog> - <el-dialog - title="鏁版嵁鐢宠" - :visible.sync="dialogInsertVisible" - width="30%" - top="35vh" - :modal="false" - :before-close="handleInsertClose" - > - <div style="width:100%; max-height:450px;overflow-y:auto"> - <el-form - ref="form" - :model="ruleForm" - label-width="100px" - > - <el-form-item label="瀹℃牳鍗曚綅"> - <div> - <ul> - <li v-for="item in ruleForm.depid"> - {{item.name}} - </li> - </ul> - </div> - </el-form-item> - <el-form-item label="琛ㄥ悕"> - <div> - <ul> - <li v-for="item in ruleForm.tabs"> - {{item.tabDesc}} - </li> - </ul> - </div> - </el-form-item> - <el-form-item label="鏉′欢"> - <el-input - :title="ruleForm.wkt" - v-model=" ruleForm.wkt" - disabled - ></el-input> - </el-form-item> - <el-form-item label="鎻忚堪"> - <el-input - type="textarea" - placeholder="璇疯緭鍏ュ唴瀹�" - v-model="ruleForm.descr" - maxlength="50" - show-word-limit - > - </el-input> - </el-form-item> - <el-form-item> - <el-button - class="primary" - size="small" - @click="getInsertDown" - >{{ $t("common.confirm") }}</el-button> - <el-button - type="info" - size="small" - @click="closeInsertDown" - >{{ - $t("common.cancel") - }}</el-button> - </el-form-item> - </el-form> - </div> - </el-dialog> + <iframe id="Iframe1" src="" @@ -196,7 +130,7 @@ ></iframe> </div> </template> - + <script> import { dataQuery_selectByPage, @@ -207,32 +141,34 @@ dataLib_selectDownloadFile, dataQuery_selectDbOverflowDep, apply_insertApply, - decr, encr, + decr, + encr, dataLib_selectDepsByIds, -} from "../../api/api.js"; -import { getToken } from "@/utils/auth"; -import $ from "jquery"; -import { View } from "ol"; + dataLib_selectDbOverflowDep +} from "../../api/api.js" +import { getToken } from "@/utils/auth" +import $ from "jquery" +import { View } from "ol" export default { data() { var repasswordValidator = (rule, value, callback) => { if (value === "") { - callback(new Error("璇峰啀娆¤緭鍏ュ瘑鐮�")); + callback(new Error("璇峰啀娆¤緭鍏ュ瘑鐮�")) } else if (value !== this.codeForm.password) { - callback(new Error("涓ゆ杈撳叆瀵嗙爜涓嶄竴鑷�!")); + callback(new Error("涓ゆ杈撳叆瀵嗙爜涓嶄竴鑷�!")) } else { - callback(); + callback() } - }; + } var passwordValidator = (rule, value, callback) => { var passwordreg = - /^(?![a-zA-Z]+$)(?![A-Z0-9]+$)(?![A-Z\W!@#$%^&*`~()\\-_+=,.?;<>]+$)(?![a-z0-9]+$)(?![a-z\W!@#$%^&*`~()\\-_+=,.?;<>]+$)(?![0-9\W!@#$%^&*`~()\\-_+=,.?;<>]+$)[a-zA-Z0-9\W!@#$%^&*`~()\\-_+=,.?;<>]{12,20}$/; + /^(?![a-zA-Z]+$)(?![A-Z0-9]+$)(?![A-Z\W!@#$%^&*`~()\\-_+=,.?;<>]+$)(?![a-z0-9]+$)(?![a-z\W!@#$%^&*`~()\\-_+=,.?;<>]+$)(?![0-9\W!@#$%^&*`~()\\-_+=,.?;<>]+$)[a-zA-Z0-9\W!@#$%^&*`~()\\-_+=,.?;<>]{12,20}$/ if (!passwordreg.test(value)) { - callback(new Error("瀵嗙爜蹇呴』鐢辨暟瀛椼�佸瓧姣嶃�佺壒娈婂瓧绗︾粍鍚�,璇疯緭鍏�13-20浣�")); + callback(new Error("瀵嗙爜蹇呴』鐢辨暟瀛椼�佸瓧姣嶃�佺壒娈婂瓧绗︾粍鍚�,璇疯緭鍏�13-20浣�")) } else { - callback(); + callback() } - }; + } return { ruleForm: { depname: [], @@ -266,7 +202,6 @@ entity: [], wkt: null, descr: null, - }, listPage: { pageSize: 10, @@ -291,19 +226,28 @@ optionx: [], imagePoint: null, Layerprimit: null, - }; + insertOption: null, + isflag: true, + } }, methods: { - getInsertDown() { - this.dialogInsertVisible = false; - this.dialogVisible = true; + getInsertDown(res) { + + // this.dialogInsertVisible = false + // this.dialogVisible = true + if (this.isflag) { + this.codeForm = res; + this.download1(); + this.isflag = false + } + }, handleInsertClose() { - this.$confirm('纭鍏抽棴锛�') + this.$confirm("纭鍏抽棴锛�") .then(_ => { - this.closeInsertDown(); + this.closeInsertDown() }) - .catch(_ => { }); + .catch(_ => { }) }, closeInsertDown() { this.ruleForm = { @@ -317,127 +261,225 @@ this.dialogInsertVisible = false }, async getDownloadDep() { - var std = []; + this.$bus.$emit("setDialogInsertVisible", true) + + // var std = [] + // for (var i in this.option) { + // std.push(this.option[i].entity) + // } + // var obj = { + // entities: std, + // wkt: this.listdata.wkt, + // } + // const data = await dataQuery_selectDbOverflowDep(JSON.stringify(obj)) + // if (data.code != 200) { + // this.$message.error("鏁版嵁璇锋眰澶辫触") + // return + // } + + // if (data.result.length == 0 || data.result == null) { + // this.insertFlag = 1 + // // this.dialogVisible = true + // + // } else { + // this.insertFlag = 2 + // var std = [] + // this.insertOption.ids = data.result + // var val = "" + // for (var i in data.result) { + // if (val == "") { + // val += "codes=" + data.result[i] + // } else { + // val += "&codes=" + data.result[i] + // } + + // std.push({ + // name: data.result[i], + // }) + // } + // const data1 = await dataLib_selectDepsByIds(val) + + // this.ruleForm.depid = data1.result + // this.ruleForm.depname = std + // this.ruleForm.wkt = decr(this.listdata.wkt) + // this.ruleForm.tabs = this.option + // // this.dialogInsertVisible = true + // this.$bus.$emit("setDialogInsertVisible", this.ruleForm) + // } + }, + async signGetPublicKey() { + const res = await sign_getPublicKey() + if (res && res.code == 200) { + window.encrypt = new JSEncrypt() + encrypt.setPublicKey(res.result) + } + }, + async download1() { + if (this.codeForm.password == "") return + + var entities = []; for (var i in this.option) { - std.push(this.option[i].entity - ) + entities.push(this.option[i].entity) } var obj = { - entities: std, - wkt: this.listdata.wkt + pwd: encrypt.encrypt(this.codeForm.password), + entities: entities, + wkt: this.listdata.wkt, + filter: null, + ids: null, + depcode: null, + dirs: null } - const data = await dataQuery_selectDbOverflowDep(JSON.stringify(obj)) + const data = await dataLib_selectDbOverflowDep(obj) if (data.code != 200) { - this.$message.error("鏁版嵁璇锋眰澶辫触"); - return; + return } - if (data.result.length == 0 || data.result == null) { + if (data.result.length == 0) { + var that = this; - this.insertFlag = 1; - this.dialogVisible = true; + $.ajax({ + url: BASE_URL + "/dataLib/downloadDbData?token=" + getToken(), + type: "POST", + data: JSON.stringify(obj), + dataType: 'json', // html銆乯son銆乯sonp銆乻cript銆乼ext + contentType: "application/json", // "application/x-www-form-urlencoded" + success: (data) => { + if (data.code == 200) { + + if (data.result) { + that.selectDownloadFile(data.result, obj.pwd) + } + + } + }, + error: function (e) { + } + }); } else { - this.insertFlag = 2; + + var val = "" var std = []; - this.insertOption.ids = data.result; - var val = ""; for (var i in data.result) { if (val == "") { - val += "ids=" + data.result[i] + val += "codes=" + data.result[i] } else { - val += "&ids=" + data.result[i] + val += "&codes=" + data.result[i] } std.push({ - name: data.result[i] + name: data.result[i], }) } - const data1 = await dataLib_selectDepsByIds(val); - - this.ruleForm.depid = data1.result; - this.ruleForm.depname = std; + const data1 = await dataLib_selectDepsByIds(val) + this.ruleForm.depid = data1.result + this.ruleForm.depname = std this.ruleForm.wkt = decr(this.listdata.wkt) - this.ruleForm.tabs = this.option; - this.dialogInsertVisible = true; - }download - - }, - async signGetPublicKey() { - const res = await sign_getPublicKey(); - if (res && res.code == 200) { - window.encrypt = new JSEncrypt(); - encrypt.setPublicKey(res.result); + this.ruleForm.tabs = this.option + this.$bus.$emit("setDialogInsertVisible", this.ruleForm) } - }, - async download() { - if (this.codeForm.password == "") return; - if (this.insertFlag == 1) { - var obj = { - pwd: encrypt.encrypt(this.codeForm.password), - entities: [], - wkt: this.listdata.wkt, - }; - for (var i in this.option) { - obj.entities.push(this.option[i].entity); - } - var token = getToken(); - var that = this; - $.ajax(BASE_URL + "/dataLib/downloadDbReq?token=" + token, { - type: "post", - data: JSON.stringify(obj), - async: true, - cache: false, - processData: false, - contentType: false, - success: (res) => { - if (res.code != 200) { - return; - } - this.selectDownloadFile(res.result, obj.pwd); - }, - }); - } else if (this.insertFlag == 2) { - var std = []; - var std1 = []; - for (var i in this.option) { - std.push(this.option[i].tabDesc) - std1.push(this.option[i].entity) + // if (this.insertFlag == 1) { + + // for (var i in this.option) { + // obj.entities.push(this.option[i].entity) + // } + // var token = getToken() + // var that = this + // $.ajax(BASE_URL + "/dataLib/downloadDbReq?token=" + token, { + // type: "post", + // data: JSON.stringify(obj), + // async: true, + // cache: false, + // processData: false, + // contentType: false, + // success: res => { + // if (res.code != 200) { + // return + // } + + // this.selectDownloadFile(res.result, obj.pwd) + // }, + // }) + // } else if (this.insertFlag == 2) { + // var std = [] + // var std1 = [] + // for (var i in this.option) { + // std.push(this.option[i].tabDesc) + // std1.push(this.option[i].entity) + // } + // var obj = { + // depcodes: this.insertOption.ids, + // pwd: encr(this.codeForm.password), + // tabs: std, + // entities: std1, + // wkt: this.listdata.wkt, + // descr: this.ruleForm.descr, + // } + // const data1 = await apply_insertApply(JSON.stringify(obj)) + + // this.closeDown() + // } + }, + async getInsertApply(res) { + + if (!this.isflag) { + var entities = []; + var tabs = []; + if (this.option.length != res.tabs.length) { + return + } + + for (var i in this.option) { + entities.push(this.option[i].entity) + tabs.push(this.option[i].tabDesc) + } + var std = []; + for (var i in this.ruleForm.depname) { + std.push(this.ruleForm.depname[i].name) } var obj = { - ids: this.insertOption.ids, pwd: encr(this.codeForm.password), - tabs: std, - entities: std1, + entities: entities, wkt: this.listdata.wkt, - descr: this.ruleForm.descr, + filter: null, + ids: null, + depcode: null, + dirs: null, + depcodes: std, + descr: res.descr, + tabs: tabs } - const data1 = await apply_insertApply(JSON.stringify(obj)) - if (data1.code != 200) { - this.$message.error("鏁版嵁鐢宠澶辫触"); + const data = await apply_insertApply(JSON.stringify(obj)) + if (data.code != 200) { + this.$message.error("鏁版嵁鐢宠澶辫触") return } this.$message({ - message: '鏁版嵁鐢宠鎴愬姛', - type: 'success' - }); - - this.closeDown(); + message: "鏁版嵁鐢宠鎴愬姛", + type: "success", + }) + this.isflag = true; } - }, + + + + async selectDownloadFile(rsid, rspwd) { var downObj = { guid: rsid, pwd: encodeURIComponent(rspwd), - }; - const data = await dataLib_selectDownloadFile(downObj); - if (data.code != 200) { - this.$message.error("涓嬭浇璇锋眰澶辫触"); - return; } - this.closeDown(); - var token = getToken(); + const data = await dataLib_selectDownloadFile(downObj) + + if (data.code != 200) { + this.$message.error("涓嬭浇璇锋眰澶辫触") + return + } + + this.closeDown() + var token = getToken() var url = BASE_URL + "/dataLib/downloadFile?token=" + @@ -445,72 +487,81 @@ "&guid=" + rsid + "&pwd=" + - encodeURIComponent(rspwd); - $("#Iframe1").attr("src", url).click(); + encodeURIComponent(rspwd) + $("#Iframe1").attr("src", url).click() + // this.isflag = true; }, handleCloseDown() { this.$confirm("纭鍏抽棴锛�") - .then((_) => { - this.closeDown(); + .then(_ => { + this.closeDown() }) - .catch((_) => { }); + .catch(_ => { }) }, closeDown() { - this.dialogVisible = false; - this.codeForm.password = ""; - this.codeForm.repassword = ""; - this.closeInsertDown(); + this.dialogVisible = false + this.codeForm.password = "" + this.codeForm.repassword = "" + // this.closeInsertDown() }, startTableMssage() { - this.listdata.pageIndex = 1; - this.listdata.pageSize = 10; - this.listdata.name = null; - this.option = []; + this.listdata.pageIndex = 1 + this.listdata.pageSize = 10 + this.listdata.name = null + this.option = [] }, clearQuerInfo() { if (this.$store.state.queryInfo.length != 0) { + sgworld.Creator.SimpleGraphic.clear() for (var i in this.$store.state.queryInfo) { - sgworld.Viewer.entities.remove(this.$store.state.queryInfo[i]); + sgworld.Viewer.entities.remove(this.$store.state.queryInfo[i]) } - this.$store.state.queryInfo = []; + this.$store.state.queryInfo = [] if (this.$store.state.primitLayer != null) { - sgworld.Viewer.entities.remove(this.$store.state.primitLayer); - sgworld.Creator.DeleteObject(this.$store.state.primitLayer); - this.$store.state.primitLayer = null; + sgworld.Viewer.entities.remove(this.$store.state.primitLayer) + sgworld.Creator.DeleteObject(this.$store.state.primitLayer) + this.$store.state.primitLayer = null } } }, setTableAll() { - this.clearQuerInfo(); - this.signGetPublicKey(); - this.startTableMssage(); - this.listdata.wkt = this.$store.state.mapMenuShpFile; - this.querylayer = this.$store.state.mapSpaceQueryLayer; + this.clearQuerInfo() + this.signGetPublicKey() + this.startTableMssage() + this.listdata.wkt = this.$store.state.mapMenuShpFile + this.querylayer = this.$store.state.mapSpaceQueryLayer // = this.$store.state.mapSpaceQueryLayer; - var arr = this.$store.state.mapSpaceQueryLayer; - var obj = {}; + var arr = this.$store.state.mapSpaceQueryLayer + var obj = {} arr = arr.reduce(function (item, next) { - obj[next.label] ? "" : (obj[next.label] = true && item.push(next)); - return item; - }, []); - this.option = arr; - this.listdata.name = this.option[0].entity; + obj[next.label] ? "" : (obj[next.label] = true && item.push(next)) + return item + }, []) + this.option = arr + this.listdata.name = this.option[0].entity - this.getTableDateHidder(); + this.getTableDateHidder() }, async getTableDateHidder() { - const data = await inquiry_selectFields({ name: this.listdata.name }); + this.$store.state.loading = true; + const data = await inquiry_selectFields({ name: this.listdata.name }) if (data.code != 200) { - this.$message.error("鍒楄〃璋冪敤澶辫触"); + this.$message.error("鍒楄〃璋冪敤澶辫触") } - const data1 = await inquiry_selectDomains({ name: this.listdata.name }); + if (data.result.length == 0) { + this.$message("鍒楄〃瀛楁鏌ユ棤鏁版嵁") + } + const data1 = await inquiry_selectDomains({ name: this.listdata.name }) if (data1.code != 200) { - this.$message.error("鍒楄〃璋冪敤澶辫触"); + this.$message.error("鍒楄〃璋冪敤澶辫触") } - this.optionx = []; - this.attributeData = []; - var valadata = data.result; - var laydomain = data1.result; + // if (data.result.length == 0) { + // this.$message("鍒楄〃闃堝�兼煡鏃犳暟鎹�") + // } + this.optionx = [] + this.attributeData = [] + var valadata = data.result + var laydomain = data1.result for (var i in valadata) { if (valadata[i].showtype == 1) { @@ -520,165 +571,56 @@ ) { for (var j in laydomain) { if (laydomain[j].domName == valadata[i].domainNa) { - valadata[i].domainNa = laydomain[j].codeDesc; + valadata[i].domainNa = laydomain[j].codeDesc } } } - this.optionx.push(valadata[i]); - this.attributeData.push(valadata[i]); + this.optionx.push(valadata[i]) + this.attributeData.push(valadata[i]) } } - this.getTableData(); + this.getTableData() }, async spaceLocation(index, row) { var param = { gid: row.gid, name: this.listdata.name, - }; - const data = await dataQuerySelectWktById(param); - if (data.code != 200) { - this.$message.error("鍒楄〃璋冪敤澶辫触"); } - - var val1 = decr(data.result); + const data = await dataQuerySelectWktById(param) + if (data.code != 200) { + this.$message.error("鍒楄〃璋冪敤澶辫触") + } + // if (data.result.length == 0) { + // return this.$message.error("鍒楄〃鏌ユ棤鏁版嵁") + // } + var val1 = decr(data.result) if (val1) { if (this.imagePoint != null) { - sgworld.Creator.DeleteObject(this.imagePoint); - this.imagePoint = null; + sgworld.Creator.DeleteObject(this.imagePoint) + this.imagePoint = null } - var wkt = this.$wkt.parse(val1); - this.setMapLoaction(wkt); + var wkt = this.$wkt.parse(val1) + this.setMapLoaction(wkt, row) } }, - setMapLoaction(res) { - var coord = res.coordinates; - if (this.Layerprimit != null) { - window.Viewer.scene.primitives.remove(this.Layerprimit); - this.Layerprimit = null; + setMapLoaction(res, properties) { + if (this.$store.state.primitLayer != null) { + sgworld.Creator.DeleteObject(this.$store.state.primitLayer) + // this.$store.state.primitLayer = null; + sgworld.Viewer.entities.remove(this.$store.state.primitLayer) + this.$store.state.primitLayer = null } - if (res.type == "Point") { - Viewer.camera.flyTo({ - destination: Cesium.Cartesian3.fromDegrees(coord[0], coord[1], 2000), - orientation: { - heading: Cesium.Math.toRadians(0), // 姘村钩鍋忚锛岄粯璁ゆ鍖� 0 - pitch: Cesium.Math.toRadians(-90), // 淇瑙掞紝榛樿-90锛屽瀭鐩村悜涓� - roll: 0, // 鏃嬭浆瑙� - }, - }); - } else if (res.type == "MultiPolygon") { - var val = res.coordinates[0][0]; - var std = []; - - for (var i in val) { - std.push({ x: val[i][0], y: val[i][1], z: 1000 }); - } - this.$store.state.primitLayer = sgworld.Creator.createPolygon( - std, - { - fillColor: "#ffff00", - outlineColor: "#fff", - outlineWidth: 2, - }, - 1, - 0, - "闈�" - ); - sgworld.Navigate.flyToObj(this.$store.state.primitLayer.item); - } else if (res.type == "MultiLineString") { - var line = res.coordinates[0]; - var std = []; - - for (var i in line) { - std.push({ x: line[i][0], y: line[i][1], z: 1000 }); - } - this.$store.state.primitLayer = sgworld.Creator.createPolyline( - std, - "#ffff00", - 1, - 0, - "绾�" - ); - sgworld.Navigate.flyToObj(this.$store.state.primitLayer.item); - } - }, - setTableChange(res) { - this.listdata.pageIndex = 1; - this.listdata.pageSize = 10; - this.listdata.name = res.entity; - this.getTableDateHidder(); - }, - handleSizeChange(val) { - this.listdata.pageIndex = 1; - this.listdata.pageSize = val; - this.getTableData(); - }, - handleCurrentChange(val) { - this.listdata.pageIndex = val; - this.getTableData(); - }, - async getTableData() { - this.tableData = []; - - const data = await dataQuery_selectByPage(this.listdata); - if (data.code != 200) { - this.$message.error("鍒楄〃璋冪敤澶辫触"); - } - - var val_Data = data.result; - for (var i in val_Data) { - var valste = val_Data[i]; - for (var j in this.optionx) { - if ( - this.optionx[j].domainNa != null && - this.optionx[j].domainNa != undefined - ) { - valste[this.optionx[j].field] = this.optionx[j].domainNa; - } - } - } - this.pageCount = data.count; - this.tableData = data.result; - this.$refs.dialogPayChannel.doLayout(); - this.showAllImage(data.result); - }, - async showAllImage(res) { - - for (var i in res) { - var param = { - gid: res[i].gid, - name: this.listdata.name, - }; - const data = await dataQuerySelectWktById(param); - if (data.code != 200) { - this.$message.error("鍒楄〃璋冪敤澶辫触"); - } - var val1 = decr(data.result); - if (val1) { - var wkt = this.$wkt.parse(val1); - // this.getprimitiLayer(wkt); - this.primitivesAddLayer(wkt); - } - } - }, - getprimitiLayer(res) { - switch (res.type) { - case "Point": - this.$store.state.primitLayer = window.Viewer.scene.primitives.add( - new Cesium.BillboardCollection() - ); - break; - } - }, - primitivesAddLayer(res) { + var coord = res.coordinates switch (res.type) { case "Point": var val = Cesium.Cartesian3.fromDegrees( res.coordinates[0], - res.coordinates[1], - - ); + res.coordinates[1] + ) var point = Viewer.entities.add({ + properties: properties, + tag: "properties_point", position: val, billboard: { // 鍥惧儚鍦板潃锛孶RI鎴朇anvas鐨勫睘鎬� @@ -693,72 +635,350 @@ // 搴旂敤浜庡浘鍍忕殑缁熶竴姣斾緥銆傛瘮渚嬪ぇ浜庝細1.0鏀惧ぇ鏍囩锛岃�屾瘮渚嬪皬浜庝細1.0缂╁皬鏍囩銆� scale: 1.0, // 鏄惁鏄剧ず - show: true - } - }); - point.billboard.disableDepthTestDistance = Number.POSITIVE_INFINITY; + show: true, + }, + }) + point.billboard.disableDepthTestDistance = Number.POSITIVE_INFINITY this.$store.state.queryInfo.push(point) - break; + sgworld.Navigate.flyToObj(point) + this.$store.state.primitLayer = point + + break case "LineString": case "MultiLineString": - var line = res.coordinates[0]; - var std = []; + var line = res.coordinates[0] + var std = [] for (var i in line) { - std.push(line[i][0], line[i][1]); + std.push(line[i][0], line[i][1]) } var polyline = Viewer.entities.add({ + properties: properties, + tag: "properties_line", polyline: { positions: Cesium.Cartesian3.fromDegreesArray(std), width: 5, material: new Cesium.Color(1.0, 0.0, 0.0, 0.3), clampToGround: true, - } + }, }) this.$store.state.queryInfo.push(polyline) - break; + sgworld.Navigate.flyToObj(polyline) + this.$store.state.primitLayer = polyline + break case "MultiPolygon": - var val = res.coordinates[0][0]; - var std = []; + var val = res.coordinates[0][0] + var std = [] for (var i in val) { - std.push(val[i][0], val[i][1]); + std.push(val[i][0], val[i][1]) } var entity = Viewer.entities.add({ + properties: properties, + tag: "properties_polygon", polygon: { hierarchy: Cesium.Cartesian3.fromDegreesArray(std), //height : 100000, material: new Cesium.Color(1.0, 0.0, 0.0, 0.3), outline: true, outlineColor: new Cesium.Color(1.0, 0.0, 0.0, 0.3), - } + }, }) this.$store.state.queryInfo.push(entity) - break; + sgworld.Navigate.flyToObj(entity) + this.$store.state.primitLayer = entity + break + } + this.setMapHandler() + }, + setMapHandler() { + window.propertieshandler = new Cesium.ScreenSpaceEventHandler( + sgworld.Viewer.scene.canvas + ) + window.propertieshandler.setInputAction(event => { + let pick = sgworld.Viewer.scene.pick(event.position) + if (pick && pick.id && pick.id.tag && pick.id.tag.includes('properties_')) { + this.$store.state.propertiesFlag = "1" + let properties = pick.id.properties + let propertyNames = pick.id.properties.propertyNames + + let obj = {} + obj["eventid"] = properties["_eventid"]._value + // + this.attributeData.forEach(item => { + propertyNames.forEach(itemElement => { + if (itemElement == item.field) { + obj[item.alias] = properties[itemElement]._value + } + }) + }) + + this.$store.state.propertiesInfo = obj + } + }, Cesium.ScreenSpaceEventType.LEFT_CLICK) + }, + setTableChange(res) { + this.listdata.pageIndex = 1 + this.listdata.pageSize = 10 + this.listdata.name = res.entity + + this.$store.state.propertiesName = res + this.getTableDateHidder() + }, + handleSizeChange(val) { + this.listdata.pageIndex = 1 + this.listdata.pageSize = val + this.getTableData() + }, + handleCurrentChange(val) { + this.listdata.pageIndex = val + this.getTableData() + }, + async getTableData() { + this.tableData = [] + + const data = await dataQuery_selectByPage(this.listdata) + this.$store.state.loading = false; + if (data.code != 200) { + return this.$message.error("鍒楄〃璋冪敤澶辫触") + } + if (data.result.length == 0) { + + return this.$message.error("鍒楄〃鏌ユ棤鏁版嵁") + } + + + var val_Data = data.result + for (var i in val_Data) { + var valste = val_Data[i] + for (var j in this.optionx) { + if ( + this.optionx[j].domainNa != null && + this.optionx[j].domainNa != undefined + ) { + valste[this.optionx[j].field] = this.optionx[j].domainNa + } + } + } + this.pageCount = data.count + + + var val = data.result; + val = val.filter((res) => { + + if (res.dirName) { + res.dirid = res.dirName + } + if (res.depName) { + res.depid = res.depName + } + if (res.verName) { + res.verid = res.verName + } + if (res.updateName) { + res.updateuser = res.updateName + } + if (res.createName) { + res.createuser = res.createName + } + + if (res.createtime) { + res.createtime = this.format(res.createtime) + } + if (res.updatetime) { + res.createtime = this.format(res.updatetime) + } + return res + }) + + + + this.tableData = val + this.$refs.dialogPayChannel.doLayout() + // this.showAllImage(data.result) + }, + //鏍煎紡鍖栨椂闂� + 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 + "-" + this.add0(m) + "-" + this.add0(d); + }, + //鏍煎紡鍖栨椂闂� + add0(m) { + return m < 10 ? "0" + m : m; + }, + async showAllImage(res) { + for (var i in res) { + let properties = res[i] + var param = { + gid: res[i].gid, + name: this.listdata.name, + } + const data = await dataQuerySelectWktById(param) + if (data.code != 200) { + this.$message.error("鍒楄〃璋冪敤澶辫触") + } + var val1 = decr(data.result) + if (val1) { + var wkt = this.$wkt.parse(val1) + // this.getprimitiLayer(wkt); + this.primitivesAddLayer(wkt, properties) + } + } + }, + getprimitiLayer(res) { + switch (res.type) { + case "Point": + this.$store.state.primitLayer = window.Viewer.scene.primitives.add( + new Cesium.BillboardCollection() + ) + break + } + }, + primitivesAddLayer(res, properties) { + switch (res.type) { + case "Point": + var val = Cesium.Cartesian3.fromDegrees( + res.coordinates[0], + res.coordinates[1] + ) + var point = Viewer.entities.add({ + position: val, + properties: properties, + tag: "properties_point", + billboard: { + // 鍥惧儚鍦板潃锛孶RI鎴朇anvas鐨勫睘鎬� + image: SmartEarthRootUrl + "Workers/image/mark.png", + heightReference: Cesium.HeightReference.CLAMP_TO_GROUND, + // 澶у皬鏄惁浠ョ背涓哄崟浣� + sizeInMeters: false, + // 鐩稿浜庡潗鏍囩殑鍨傜洿浣嶇疆 + verticalOrigin: Cesium.VerticalOrigin.CENTER, + // 鐩稿浜庡潗鏍囩殑姘村钩浣嶇疆 + horizontalOrigin: Cesium.HorizontalOrigin.LEFT, + // 搴旂敤浜庡浘鍍忕殑缁熶竴姣斾緥銆傛瘮渚嬪ぇ浜庝細1.0鏀惧ぇ鏍囩锛岃�屾瘮渚嬪皬浜庝細1.0缂╁皬鏍囩銆� + scale: 1.0, + // 鏄惁鏄剧ず + show: true, + }, + }) + point.billboard.disableDepthTestDistance = Number.POSITIVE_INFINITY + this.$store.state.queryInfo.push(point) + //鐐瑰嚮浜嬩欢 + window.propertieshandler = new Cesium.ScreenSpaceEventHandler( + sgworld.Viewer.scene.canvas + ) + window.propertieshandler.setInputAction(event => { + let pick = sgworld.Viewer.scene.pick(event.position) + // ; + if (pick && pick.id && pick.id.tag == "properties_point") { + this.$store.state.propertiesFlag = "1" + let properties = pick.id.properties + let propertyNames = pick.id.properties.propertyNames + let obj = {} + obj["eventid"] = properties["_eventid"]._value + this.attributeData.forEach(item => { + propertyNames.forEach(itemElement => { + if (itemElement == item.field) { + obj[item.alias] = properties[itemElement]._value + } + }) + }) + this.$store.state.propertiesInfo = obj + } + }, Cesium.ScreenSpaceEventType.LEFT_CLICK) + break + case "LineString": + case "MultiLineString": + var line = res.coordinates[0] + var std = [] + for (var i in line) { + std.push(line[i][0], line[i][1]) + } + var polyline = Viewer.entities.add({ + polyline: { + properties: properties, + tag: "properties_line", + positions: Cesium.Cartesian3.fromDegreesArray(std), + width: 5, + material: new Cesium.Color(1.0, 0.0, 0.0, 0.3), + clampToGround: true, + }, + }) + this.$store.state.queryInfo.push(polyline) + break + case "MultiPolygon": + var val = res.coordinates[0][0] + var std = [] + for (var i in val) { + std.push(val[i][0], val[i][1]) + } + var entity = Viewer.entities.add({ + properties: properties, + tag: "properties_polygon", + polygon: { + hierarchy: Cesium.Cartesian3.fromDegreesArray(std), + //height : 100000, + material: new Cesium.Color(1.0, 0.0, 0.0, 0.3), + outline: true, + outlineColor: new Cesium.Color(1.0, 0.0, 0.0, 0.3), + }, + }) + this.$store.state.queryInfo.push(entity) + break } }, closeMenuBox() { if (this.imagePoint != null) { - sgworld.Creator.DeleteObject(this.imagePoint); - this.imagePoint = null; + sgworld.Creator.DeleteObject(this.imagePoint) + this.imagePoint = null } - sgworld.Creator.SimpleGraphic.clear(); - this.$store.state.mapPopBoolean = false; - this.$store.state.mapPopBoxFlag = null; + sgworld.Creator.SimpleGraphic.clear() + this.$store.state.mapPopBoolean = false + this.$store.state.mapPopBoxFlag = null }, }, created() { - this.setTableAll(); + + this.setTableAll() + }, mounted() { - this.$bus.$on("changeMapMenuTop", (res) => { + + this.$bus.$on("changeMapMenuTop", res => { if (res == "true") { - this.setTableAll(); + this.setTableAll() } - }); + }) + this.$bus.$on("setInsertDown2", res => { + this.getInsertDown(res) + }) + this.$bus.$on("setInsertDown1", res => { + this.isflag = true; + this.getInsertDown(res) + }) + this.$bus.$on("setInsertApply1", res => { + + this.getInsertApply(res) + }) }, -}; + destroyed() { + this.$store.state.propertiesFlag = null + if (window.propertieshandler != null && Cesium.defined(window.propertieshandler)) { + window.propertieshandler.removeInputAction( + Cesium.ScreenSpaceEventType.LEFT_CLICK + ) + window.propertieshandler = null + } + }, +} </script> - + <style scoped lang="less"> .menuPop { width: 100%; @@ -802,7 +1022,8 @@ width: 100%; } .tableBox { - height: 327px; + position: relative; + height: 89%; } .rightPage { margin-left: 50px; @@ -822,4 +1043,3 @@ padding: 5px; } </style> - -- Gitblit v1.9.3