From 9a37c5e1b2190c3f6ec71483923922189091dd52 Mon Sep 17 00:00:00 2001
From: shuishen <1109946754@qq.com>
Date: Wed, 18 Dec 2024 09:42:01 +0800
Subject: [PATCH] 事件模拟更新

---
 src/views/companyInfo/components/box/fireTrend.vue |  153 +++++++++++++++++++++++++++-----------------------
 1 files changed, 82 insertions(+), 71 deletions(-)

diff --git a/src/views/companyInfo/components/box/fireTrend.vue b/src/views/companyInfo/components/box/fireTrend.vue
index b9d68bc..8d44366 100644
--- a/src/views/companyInfo/components/box/fireTrend.vue
+++ b/src/views/companyInfo/components/box/fireTrend.vue
@@ -2,8 +2,8 @@
  * @Author: shuishen 1109946754@qq.com
  * @Date: 2023-03-13 14:54:26
  * @LastEditors: shuishen 1109946754@qq.com
- * @LastEditTime: 2023-03-13 15:00:55
- * @FilePath: \forest-fire\src\views\statistics\components\box\dataContent.vue
+ * @LastEditTime: 2024-12-03 00:22:00
+ * @FilePath: \bigScreen\src\views\companyInfo\components\box\fireTrend.vue
  * @Description:
  *
  * Copyright (c) 2023 by ${git_name_email}, All Rights Reserved.
@@ -17,7 +17,11 @@
 
 let image = ref(VITE_APP_BASE + 'img/mapicon/yjwz.png')
 
-
+const panoramaShow = ref(false)
+const panoramaTitle = ref('')
+const panoramaUrl = ref('')
+const TableContent = ref(null)
+const curTableHeight = ref(0)
 const loading = ref(false)
 
 const tableData = ref([])
@@ -32,20 +36,11 @@
 })
 
 onMounted(() => {
+  curTableHeight.value = TableContent.value.offsetHeight
   data.companyInfo = JSON.parse(localStorage.getItem('companyInfo'))
   getLists()
 })
-// 表格样式
-const tableCellStyle = ({ row, column }) => {
-  return { background: "#152851", color: "#fff" }
-}
-// 表格表头样式
-const headerCellStyle = ({ }) => {
-  return {
-    background: "#152851",
-    color: "#fff",
-  }
-}
+
 // 搜索条件
 const formInline = reactive({
   name: "",
@@ -57,7 +52,6 @@
   pages.page = 1
   pages.pageSize = 1000
   pages.total = 0
-  console.log("submit!")
   getLists(formInline)
 }
 
@@ -84,7 +78,7 @@
 let picList = ref([])
 
 // 查询分页数据
-function getLists(param = {}) {
+function getLists (param = {}) {
   param.current = pages.page
   param.size = pages.pageSize
   param.firmId = data.companyInfo.id
@@ -96,6 +90,7 @@
       picList.value = data.picList
       pages.total = data.total
       loading.value = false
+      rowClick(tableData.value[0], '', '')
     })
     .catch((err) => {
       loading.value = false
@@ -106,54 +101,72 @@
 let addPupoLayers = {}
 
 // 行点击
-function rowClick(row, column, event) {
+function rowClick (row, column, event) {
   if (!row.lng || !row.lat) {
     return
   }
-  // console.log('点击了', row, column, event)
   // 销毁之前的
   destroy()
   if (!addTileLayers[row.name]) {
     addTileLayers[row.name] = new DC.HtmlLayer(row.name)
     window.$viewer.addLayer(addTileLayers[row.name])
     let iconEl = `
-                <div class="map-name">${row.name}</div>
+                <div class="map-name">${'应急物资'}</div>
                 <div class="map-icon">
                   <img src="${image.value}">
                 </div>
                 `
     let divIcon = new DC.DivIcon(
-      new DC.Position(row.lng, row.lat, 64),
-      `<div class="public-map-popup ${'qyfb-box'}">
+      new DC.Position(row.lng, row.lat, row.ele || 64),
+      `<div class="public-map-popup  qyfb-box yjwz-height-box ">
                     ${iconEl}
                   </div>`
     )
     divIcon.attrParams = row
     let incident = (e) => {
-      // const { attrParams } = e.overlay
-      // // 删除
-      // destroyPupoLayers()
-      // if (picList.value.length == 0) {
-      //   return
-      // }
-      // console.log('点击了', picList.value.length)
-      // addPupoLayers[attrParams.name] = new DC.HtmlLayer(attrParams.name)
-      // window.$viewer.addLayer(addPupoLayers[attrParams.name])
-      // let iconEl = `<div class="marsBlueGradientPnl">
-      //       <div>${attrParams.fullName}</div>
-      //       <img src="${picList.value[0].link}" />
-      //           </div>`
-      // let divIcon = new DC.DivIcon(
-      //   new DC.Position(attrParams.lng, attrParams.lat, 64),
-      //   `<div class="public-map-popup-two">
-      //               ${iconEl}
-      //             </div>`
-      // )
-      // let incident = () => {
-      //   destroyPupoLayers()
-      // }
-      // divIcon.on(DC.MouseEventType.CLICK, incident)
-      // addPupoLayers[attrParams.name].addOverlay(divIcon)
+      const { attrParams } = e.overlay
+
+      console.log(attrParams, 894654)
+
+
+      if (
+        attrParams.panoramicUrl && attrParams.panoramicUrl.length > 0 &&
+        attrParams.panoramicUrl.indexOf("http://vr.jxpskj.com:180") != -1
+      ) {
+        let panoramicUrl = attrParams.panoramicUrl.replace(
+          "http://vr.jxpskj.com:180",
+          "/panorama"
+        )
+
+        panoramaTitle.value = attrParams.name
+        panoramaUrl.value = panoramicUrl
+        panoramaShow.value = true
+
+        return
+      }
+
+
+      // 删除
+      destroyPupoLayers()
+      if (picList.value.length == 0) {
+        return
+      }
+      addPupoLayers['企业应急物资'] = new DC.HtmlLayer('企业应急物资')
+      window.$viewer.addLayer(addPupoLayers['企业应急物资'])
+      let iconEl = `<div class="marsBlueGradientPnl">
+            <img src="${picList.value[0].link}" />
+                </div>`
+      let divIcon = new DC.DivIcon(
+        new DC.Position(attrParams.lng, attrParams.lat, attrParams.ele || 64),
+        `<div class="public-map-popup-two">
+                    ${iconEl}
+                  </div>`
+      )
+      let incident = () => {
+        destroyPupoLayers()
+      }
+      divIcon.on(DC.MouseEventType.CLICK, incident)
+      addPupoLayers['企业应急物资'].addOverlay(divIcon)
     }
 
     divIcon.on(DC.MouseEventType.CLICK, incident)
@@ -165,30 +178,40 @@
 }
 
 // 销毁
-function destroy() {
+function destroy () {
   let arr = Object.keys(addTileLayers)
   arr.forEach(i => {
-    addTileLayers[i] && window.$viewer.removeLayer(addTileLayers[i])
+    addTileLayers[i] && window.$viewer && window.$viewer.removeLayer(addTileLayers[i])
+    addTileLayers[i] = null
+    delete addTileLayers[i]
   })
   addTileLayers = {}
 }
 // 销毁
-function destroyPupoLayers() {
+function destroyPupoLayers () {
   let arr = Object.keys(addPupoLayers)
   arr.filter(i => i != 'hgyq').forEach(i => {
-    addPupoLayers[i] && window.$viewer.removeLayer(addPupoLayers[i])
+    addPupoLayers[i] && window.$viewer && window.$viewer.removeLayer(addPupoLayers[i])
+    addPupoLayers[i] = null
+    delete addPupoLayers[i]
   })
   addPupoLayers = {}
 }
 onUnmounted(() => {
-  console.log('销毁***************************')
   destroy()
+  destroyPupoLayers()
+  addTileLayers = null
+  addPupoLayers = null
 })
 import { Search, Refresh } from '@element-plus/icons-vue'
+
+const closePanoramaPopup = () => {
+  panoramaShow.value = false
+}
 </script>
 
 <template>
-  <div class="search-box w100 h100">
+  <div class="search-box w100 h100 flex f-d-c">
     <el-form :inline="true" :model="formInline" class="demo-form-inline">
       <el-form-item label="" class="form-item-input">
         <el-input v-model="formInline.name" placeholder="请输入名称" clearable style="width: 120px" />
@@ -198,11 +221,11 @@
         <el-button class="reset-btn" :icon="Refresh" @click="clearBtn">重 置</el-button>
       </el-form-item>
     </el-form>
+
     <!-- <global-search :options="options" @searchBtn="searchBtn" @resetBtn="resetBtn" ref="SeachBarCondition"></global-search> -->
-    <div class="table-box">
-      <el-table :data="tableData" @row-click="rowClick" empty-text="" style="width: 100%"
-        :header-cell-style="headerCellStyle" :cell-style="tableCellStyle"
-        element-loading-background="rgba(122, 122, 122, 0.1)">
+    <div class="table-box h0 flex-1" ref="TableContent">
+      <el-table empty-text="暂无数据" border :data="tableData" @row-click="rowClick" style="width: 100%"
+        element-loading-background="rgba(122, 122, 122, 0.1)" :height="curTableHeight">
         <el-table-column prop="name" label="名称" width="240" />
         <el-table-column prop="numUnit" label="数量" />
         <el-table-column prop="personInCha" label="负责人" />
@@ -211,9 +234,12 @@
             <el-button link type="primary" size="small" :disabled="scope.row.lng == ''"
               @click="rowClick(scope.row)">定位</el-button>
           </template>
-        </el-table-column> -->
+</el-table-column> -->
       </el-table>
     </div>
+
+    <panorama v-show="panoramaShow" :title="panoramaTitle" :url="panoramaUrl" @closePanoramaPopup="closePanoramaPopup">
+    </panorama>
   </div>
 </template>
 
@@ -222,25 +248,10 @@
   color: #fff !important;
 }
 
-.search-box {
-  padding: 10px;
-
-  ::v-deep .el-table__body-wrapper {
-    background-color: #152851;
-  }
-}
-
 .reset-btn {
   color: #D4E8F8;
   background: #43779B;
   border-color: #43779B;
-}
-
-.search-box .table-box {
-  height: 700px;
-  overflow: scroll;
-  // 隐藏滚动条
-  scrollbar-width: none;
 }
 
 /* 当表格没有数据时,修改表格的背景颜色 */

--
Gitblit v1.9.3