<template>
|
<div class="menuPop">
|
<div class="leftBox">
|
<!-- v-if="$store.state.download" -->
|
<div class="leftDown">
|
<div @click="getDownloadDep">
|
<el-link icon="el-icon-download"> </el-link>
|
</div>
|
</div>
|
<ul>
|
<li
|
v-for="(item, index) in option"
|
@click="setTableChange(item)"
|
class="leftBoxLi"
|
>
|
{{ item.label }}
|
</li>
|
</ul>
|
</div>
|
<div class="rightBox">
|
<div class="tableBox">
|
<el-table
|
:data="tableData"
|
ref="dialogPayChannel"
|
height="100%"
|
style="width: 100%"
|
border
|
>
|
<el-table-column
|
align="center"
|
type="index"
|
label="序号"
|
width="50"
|
/>
|
<el-table-column
|
label="定位"
|
width="100"
|
align="center"
|
>
|
<template slot-scope="scope">
|
<el-button
|
icon="el-icon-map-location"
|
size="small"
|
@click="spaceLocation(scope.$index, scope.row)"
|
></el-button>
|
</template>
|
</el-table-column>
|
<el-table-column
|
v-for="(item, index) in attributeData"
|
:key="index"
|
:label="item.alias"
|
:prop="item.field"
|
show-overflow-tooltip
|
align="center"
|
></el-table-column>
|
</el-table>
|
</div>
|
<div
|
class="pagination_box"
|
style="margin-top: 10px"
|
>
|
<el-pagination
|
@size-change="handleSizeChange"
|
@current-change="handleCurrentChange"
|
:current-page="listdata.pageIndex"
|
:page-sizes="[10, 20, 50, 100]"
|
:page-size="listdata.pageSize"
|
layout="total, sizes, prev, pager, next, jumper"
|
:total="pageCount"
|
>
|
</el-pagination>
|
</div>
|
</div>
|
<el-dialog
|
:title="$t('common.passworld')"
|
:visible.sync="dialogVisible"
|
width="30%"
|
top="35vh"
|
:modal="false"
|
:before-close="handleCloseDown"
|
>
|
<el-form
|
:model="codeForm"
|
:rules="rules"
|
ref="codeForm"
|
label-width="100px"
|
class="codeForm"
|
>
|
<el-form-item
|
:label="$t('common.passworld')"
|
prop="password"
|
>
|
<el-input
|
type="password"
|
v-model="codeForm.password"
|
show-password
|
></el-input>
|
</el-form-item>
|
<el-form-item
|
:label="$t('common.SPassword')"
|
prop="repassword"
|
>
|
<el-input
|
type="password"
|
v-model="codeForm.repassword"
|
show-password
|
></el-input>
|
</el-form-item>
|
<el-form-item>
|
<el-button
|
class="primary"
|
size="small"
|
@click="download('codeForm')"
|
>{{ $t("common.confirm") }}</el-button>
|
<el-button
|
type="info"
|
size="small"
|
@click="closeDown('codeForm')"
|
>{{
|
$t("common.cancel")
|
}}</el-button>
|
</el-form-item>
|
</el-form>
|
</el-dialog>
|
|
<iframe
|
id="Iframe1"
|
src=""
|
style="display: none; border: 0; padding: 0; height: 0; width: 0"
|
></iframe>
|
</div>
|
</template>
|
|
<script>
|
import {
|
dataQuery_selectByPage,
|
inquiry_selectDomains,
|
inquiry_selectFields,
|
dataQuerySelectWktById,
|
sign_getPublicKey,
|
dataLib_selectDownloadFile,
|
dataQuery_selectDbOverflowDep,
|
apply_insertApply,
|
decr,
|
encr,
|
dataLib_selectDepsByIds,
|
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("请再次输入密码"))
|
} else if (value !== this.codeForm.password) {
|
callback(new Error("两次输入密码不一致!"))
|
} else {
|
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}$/
|
if (!passwordreg.test(value)) {
|
callback(new Error("密码必须由数字、字母、特殊字符组合,请输入13-20位"))
|
} else {
|
callback()
|
}
|
}
|
return {
|
ruleForm: {
|
depname: [],
|
tabs: [],
|
pwd: null,
|
repwd: null,
|
wkt: null,
|
descr: null,
|
},
|
dialogVisible: false,
|
dialogInsertVisible: false,
|
insertFlag: null,
|
codeForm: {
|
password: "",
|
repassword: "",
|
},
|
rules: {
|
password: [
|
{ required: true, message: "请输入密码", trigger: "blur" },
|
{ validator: passwordValidator, trigger: "blur" },
|
],
|
repassword: [
|
{ required: true, message: "请输入确认密码", trigger: "blur" },
|
{ validator: repasswordValidator, trigger: "blur" },
|
],
|
},
|
insertOption: {
|
ids: [],
|
pwd: null,
|
tabs: [],
|
entity: [],
|
wkt: null,
|
descr: null,
|
},
|
listPage: {
|
pageSize: 10,
|
pageIndex: 1,
|
pageCount: 0,
|
},
|
attributeData: [],
|
option: [],
|
tableData: [],
|
listdata: {
|
pageIndex: 1,
|
pageSize: 10,
|
name: null,
|
srid: 4326,
|
wkt: null,
|
filter: null,
|
},
|
pageCount: 0,
|
querylayer: null,
|
queryTable: [],
|
domainsLayer: [],
|
optionx: [],
|
imagePoint: null,
|
Layerprimit: null,
|
insertOption: null,
|
isflag: true,
|
}
|
},
|
methods: {
|
getInsertDown(res) {
|
|
// this.dialogInsertVisible = false
|
// this.dialogVisible = true
|
if (this.isflag) {
|
this.codeForm = res;
|
this.download1();
|
this.isflag = false
|
}
|
|
},
|
handleInsertClose() {
|
this.$confirm("确认关闭?")
|
.then(_ => {
|
this.closeInsertDown()
|
})
|
.catch(_ => { })
|
},
|
closeInsertDown() {
|
this.ruleForm = {
|
depname: [],
|
tabs: [],
|
pwd: null,
|
repwd: null,
|
wkt: null,
|
descr: null,
|
}
|
this.dialogInsertVisible = false
|
},
|
async getDownloadDep() {
|
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) {
|
entities.push(this.option[i].entity)
|
}
|
var obj = {
|
pwd: encrypt.encrypt(this.codeForm.password),
|
entities: entities,
|
wkt: this.listdata.wkt,
|
filter: null,
|
ids: null,
|
depcode: null,
|
dirs: null
|
}
|
const data = await dataLib_selectDbOverflowDep(obj)
|
if (data.code != 200) {
|
return
|
}
|
|
if (data.result.length == 0) {
|
var that = this;
|
|
$.ajax({
|
url: BASE_URL + "/dataLib/downloadDbData?token=" + getToken(),
|
type: "POST",
|
data: JSON.stringify(obj),
|
dataType: 'json', // html、json、jsonp、script、text
|
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 {
|
|
var val = ""
|
var std = [];
|
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.$bus.$emit("setDialogInsertVisible", this.ruleForm)
|
}
|
|
// 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 = {
|
pwd: encr(this.codeForm.password),
|
entities: entities,
|
wkt: this.listdata.wkt,
|
filter: null,
|
ids: null,
|
depcode: null,
|
dirs: null,
|
depcodes: std,
|
descr: res.descr,
|
tabs: tabs
|
}
|
const data = await apply_insertApply(JSON.stringify(obj))
|
if (data.code != 200) {
|
this.$message.error("数据申请失败")
|
return
|
}
|
this.$message({
|
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()
|
var url =
|
BASE_URL +
|
"/dataLib/downloadFile?token=" +
|
token +
|
"&guid=" +
|
rsid +
|
"&pwd=" +
|
encodeURIComponent(rspwd)
|
$("#Iframe1").attr("src", url).click()
|
// this.isflag = true;
|
},
|
handleCloseDown() {
|
this.$confirm("确认关闭?")
|
.then(_ => {
|
this.closeDown()
|
})
|
.catch(_ => { })
|
},
|
closeDown() {
|
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 = []
|
},
|
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])
|
}
|
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
|
}
|
}
|
},
|
setTableAll() {
|
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 = {}
|
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
|
|
this.getTableDateHidder()
|
},
|
async getTableDateHidder() {
|
this.$store.state.loading = true;
|
const data = await inquiry_selectFields({ name: this.listdata.name })
|
if (data.code != 200) {
|
this.$message.error("列表调用失败")
|
}
|
if (data.result.length == 0) {
|
this.$message("列表字段查无数据")
|
}
|
const data1 = await inquiry_selectDomains({ name: this.listdata.name })
|
if (data1.code != 200) {
|
this.$message.error("列表调用失败")
|
}
|
// 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) {
|
if (
|
valadata[i].domainNa != null &&
|
valadata[i].domainNa != undefined
|
) {
|
for (var j in laydomain) {
|
if (laydomain[j].domName == valadata[i].domainNa) {
|
valadata[i].domainNa = laydomain[j].codeDesc
|
}
|
}
|
}
|
this.optionx.push(valadata[i])
|
this.attributeData.push(valadata[i])
|
}
|
}
|
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("列表调用失败")
|
}
|
// 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
|
}
|
var wkt = this.$wkt.parse(val1)
|
this.setMapLoaction(wkt, row)
|
}
|
},
|
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
|
}
|
var coord = res.coordinates
|
|
switch (res.type) {
|
case "Point":
|
var val = Cesium.Cartesian3.fromDegrees(
|
res.coordinates[0],
|
res.coordinates[1]
|
)
|
var point = Viewer.entities.add({
|
properties: properties,
|
tag: "properties_point",
|
position: val,
|
billboard: {
|
// 图像地址,URI或Canvas的属性
|
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)
|
sgworld.Navigate.flyToObj(point)
|
this.$store.state.primitLayer = point
|
|
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({
|
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)
|
sgworld.Navigate.flyToObj(polyline)
|
this.$store.state.primitLayer = 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)
|
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是整数,否则要parseInt转换
|
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: {
|
// 图像地址,URI或Canvas的属性
|
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.SimpleGraphic.clear()
|
this.$store.state.mapPopBoolean = false
|
this.$store.state.mapPopBoxFlag = null
|
},
|
},
|
created() {
|
|
this.setTableAll()
|
|
},
|
mounted() {
|
|
this.$bus.$on("changeMapMenuTop", res => {
|
if (res == "true") {
|
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%;
|
height: 100%;
|
margin: 0;
|
padding: 0;
|
overflow: hidden;
|
border: 1px solid gray;
|
float: left;
|
.leftBox {
|
width: 20%;
|
height: 100%;
|
overflow: auto;
|
float: left;
|
border-right: 1px solid gray;
|
li {
|
line-height: 20px;
|
border-bottom: 1px solid gray;
|
padding: 5px;
|
background: rgba(255, 255, 255, 0.2);
|
}
|
li:hover {
|
color: #409eff;
|
background: rgba(128, 128, 128, 0.2);
|
}
|
.leftDown {
|
width: 94%;
|
padding: 3%;
|
display: flex;
|
justify-content: flex-end;
|
}
|
}
|
|
.rightBox {
|
width: calc(80% - 1px);
|
height: 100%;
|
float: left;
|
.rightTitle {
|
padding: 5px;
|
|
width: 100%;
|
}
|
.tableBox {
|
position: relative;
|
height: 89%;
|
}
|
.rightPage {
|
margin-left: 50px;
|
/*不可点击的*/
|
}
|
|
.boxClose {
|
float: right;
|
margin-right: 20px;
|
}
|
}
|
}
|
|
li {
|
line-height: 20px;
|
border-bottom: 1px solid gray;
|
padding: 5px;
|
}
|
</style>
|