From ddb76492b96539151ab1947660b3bcbd9e20e302 Mon Sep 17 00:00:00 2001
From: linwe <872216996@qq.com>
Date: Fri, 22 Nov 2024 15:38:03 +0800
Subject: [PATCH] 代码优化
---
src/views/space/components/box/dataContent.vue | 82 ++++++++++++++++++++++------------------
1 files changed, 45 insertions(+), 37 deletions(-)
diff --git a/src/views/space/components/box/dataContent.vue b/src/views/space/components/box/dataContent.vue
index 41e53d7..f0070ea 100644
--- a/src/views/space/components/box/dataContent.vue
+++ b/src/views/space/components/box/dataContent.vue
@@ -44,7 +44,7 @@
total: 0,
}
-function positionColor () {
+function positionColor() {
return (row) => {
if (
(row.X && row.X != 0) ||
@@ -59,7 +59,7 @@
}
}
-function positionDisabled () {
+function positionDisabled() {
return (row) => {
if (
(row.X && row.X != 0) ||
@@ -109,36 +109,39 @@
layer: {}
})
-
+let addPupoLayers = {}
// 行点击
-function rowClick (row) {
-
- // if (state.layer) {
- // window.$viewer.removeLayer(state.layer)
- // }
- // let layer = new DC.HtmlLayer(`${row.id}`)
- // state.layer = layer
- // window.$viewer.addLayer(layer)
- // let iconEl = `<div class="marsBlueGradientPnl">
- // <div>${row.name}</div>
- // </div>`
- // let divIcon = new DC.DivIcon(
- // new DC.Position(row.lng, row.lat, 0),
- // `<div class="public-map-popup">
- // ${iconEl}
- // </div>`
- // )
- // let incident = () => { }
- // divIcon.on(DC.MouseEventType.CLICK, incident)
- // layer.addOverlay(divIcon)
-
- window.$viewer.flyToPosition(new DC.Position(row.lng, row.lat, 600, 0, -90, 0))
-
+function rowClick(row, column, event) {
+ if (row.lng && row.lat) {
+ window.$viewer.flyToPosition(new DC.Position(row.lng, row.lat, 600, 0, -90, 0))
+ if (!row.imageUrl) {
+ return
+ }
+ // 删除
+ destroyPupoLayers()
+ addPupoLayers[row.name] = new DC.HtmlLayer(row.name)
+ window.$viewer.addLayer(addPupoLayers[row.name])
+ let iconEl = `<div class="marsBlueGradientPnl">
+ <div>${row.fullName}</div>
+ <img src="${row.imageUrl}" />
+ </div>`
+ let divIcon = new DC.DivIcon(
+ new DC.Position(row.lng, row.lat, 64),
+ `<div class="public-map-popup-two">
+ ${iconEl}
+ </div>`
+ )
+ let incident = () => {
+ destroyPupoLayers()
+ }
+ divIcon.on(DC.MouseEventType.CLICK, incident)
+ addPupoLayers[row.name].addOverlay(divIcon)
+ }
}
// 查看详情
-function goDetail (row) { }
+function goDetail(row) { }
const searchBtn = (params) => {
resetPage()
@@ -165,7 +168,6 @@
const spaceTabChange = (type) => {
curSelectTabType.value = type
-
nextTick(() => {
searchBtn(SeachBarCondition.value.getSeachCondition())
})
@@ -175,18 +177,27 @@
onUnmounted(() => {
EventBus.off('spaceTabChange', spaceTabChange)
+ destroyPupoLayers()
})
+
+// 销毁
+function destroyPupoLayers() {
+ let arr = Object.keys(addPupoLayers)
+ arr.forEach(i => {
+ addPupoLayers[i] && window.$viewer.removeLayer(addPupoLayers[i])
+ })
+ addPupoLayers = {}
+}
</script>
<template>
<div class="w100 h0 flex-1 flex f-d-c">
- <global-search :options="options" @searchBtn="searchBtn" @resetBtn="resetBtn"
- ref="SeachBarCondition"></global-search>
+ <global-search :options="options" @searchBtn="searchBtn" @resetBtn="resetBtn" ref="SeachBarCondition"></global-search>
<div class="h0 flex-1 table-content" ref="TableContent" v-loading="loading"
element-loading-background="rgba(46, 81, 136, 0.9)">
- <el-table border :data="tableData" :height="curTableHeight" style="width: 100%">
- <el-table-column align="center" label="序号" width="62" prop="rank">
+ <el-table @row-click="rowClick" border :data="tableData" :height="curTableHeight" style="width: 100%">
+ <el-table-column align="center" label="ID" width="42" prop="rank">
<template #default="{ $index, row }">
{{ (pages.page - 1) * pages.pageSize + $index + 1 }}
</template>
@@ -194,16 +205,13 @@
<el-table-column align="center" show-overflow-tooltip prop="firmName" label="企业名称" />
<el-table-column align="center" show-overflow-tooltip prop="name" label="名称" />
<el-table-column align="center" prop="mainFuncName" label="作用" width="62" />
- <el-table-column align="center" width="62" label="操作">
+ <!-- <el-table-column align="center" width="62" label="操作">
<template #default="scope">
<el-button link type="primary" size="small" :disabled="scope.row.lng == ''" @click="rowClick(scope.row)">
定位
</el-button>
- <!-- <el-button link type="primary" size="small" @click="goDetail">
- <i class="el-icon-document" style="color: #66b1ff"></i>详情
- </el-button> -->
</template>
- </el-table-column>
+ </el-table-column> -->
</el-table>
</div>
--
Gitblit v1.9.3