From ab8f3297f7c8243d486c9da0900e4f813b2ea2df Mon Sep 17 00:00:00 2001
From: suerprisePlus <15810472099@163.com>
Date: 星期三, 27 十一月 2024 17:16:46 +0800
Subject: [PATCH] 功能更新

---
 src/assets/logo/Login3.png                 |    0 
 src/views/visualization/bottomMenu.vue     |    2 
 vue.config.js                              |    2 
 public/imgs/向上.png                         |    0 
 .env.staging                               |    2 
 src/components/RuoYi/Msgger/index.vue      |    2 
 src/views/visualization/msgList.js         |  116 ++++++++
 src/layout/components/Sidebar/Logo.vue     |    4 
 public/config/config.js                    |    2 
 src/assets/logo/Login3_1.png               |    0 
 src/views/visualization/mapView.vue        |    9 
 src/store/modules/mapLayers.js             |   18 
 src/views/visualization/msgListInfo.vue    |  141 ++++++++++
 src/views/login copy.vue                   |    4 
 public/index.html                          |    2 
 src/assets/js/mapSdk/mapData.js            |    8 
 .vscode/settings.json                      |    3 
 public/imgs/向右.png                         |    0 
 src/views/visualization/msgList.vue        |   97 ++----
 public/imgs/thunder2.png                   |    0 
 src/views/visualization/list/chart1.vue    |   12 
 .env.development                           |    2 
 src/views/login.vue                        |    6 
 src/views/visualization/list/mapWeather.js |  236 ++++++++++++++--
 public/imgs/filre.png                      |    0 
 .env.production                            |    2 
 src/assets/js/mapSdk/menuManager.js        |    3 
 src/views/visualization/index.vue          |  113 +++++++
 src/views/visualization/list/chart.vue     |   10 
 src/views/visualization/list/chart2.vue    |   10 
 30 files changed, 657 insertions(+), 149 deletions(-)

diff --git a/.env.development b/.env.development
index ffb5e2a..c5dbfac 100644
--- a/.env.development
+++ b/.env.development
@@ -1,5 +1,5 @@
 # 椤甸潰鏍囬
-VUE_APP_TITLE = 灞辫タ閰嶇綉
+VUE_APP_TITLE = 涓�浣撳寲鎸囨尌鎸囨尌鑸�
 
 # 寮�鍙戠幆澧冮厤缃�
 ENV = 'development'
diff --git a/.env.production b/.env.production
index 2364eea..49e70cd 100644
--- a/.env.production
+++ b/.env.production
@@ -1,5 +1,5 @@
 # 椤甸潰鏍囬
-VUE_APP_TITLE = 灞辫タ閰嶇綉
+VUE_APP_TITLE = 涓�浣撳寲鎸囨尌鎸囨尌鑸�
 
 # 鐢熶骇鐜閰嶇疆
 ENV = 'production'
diff --git a/.env.staging b/.env.staging
index 0d879bb..2fbb449 100644
--- a/.env.staging
+++ b/.env.staging
@@ -1,5 +1,5 @@
 # 椤甸潰鏍囬
-VUE_APP_TITLE = 灞辫タ閰嶇綉
+VUE_APP_TITLE = 涓�浣撳寲鏅烘収鎸囨尌鑸�
 
 NODE_ENV = production
 
diff --git a/.vscode/settings.json b/.vscode/settings.json
new file mode 100644
index 0000000..28a51d5
--- /dev/null
+++ b/.vscode/settings.json
@@ -0,0 +1,3 @@
+{
+    "compile-hero.disable-compile-files-on-did-save-code": false
+}
\ No newline at end of file
diff --git a/public/config/config.js b/public/config/config.js
index 449c469..c076d31 100644
--- a/public/config/config.js
+++ b/public/config/config.js
@@ -20,6 +20,7 @@
 const pwythHost = "http://localhost/pwyth";
 //閰嶇疆
 const config = {
+
   images:  host + "/imgs/",
   // server鏈嶅姟
   apiServices: "http://" + apiHost + "/server/",
@@ -59,5 +60,6 @@
     url: pwythHost + "/modles/TY/tileset.json",
     cnName:"baseModel",
     id:"baseModel",
+    flag:false,
  },
 };
diff --git a/public/imgs/filre.png b/public/imgs/filre.png
new file mode 100644
index 0000000..c6da601
--- /dev/null
+++ b/public/imgs/filre.png
Binary files differ
diff --git a/public/imgs/thunder2.png b/public/imgs/thunder2.png
new file mode 100644
index 0000000..a1de6c9
--- /dev/null
+++ b/public/imgs/thunder2.png
Binary files differ
diff --git "a/public/imgs/\345\220\221\344\270\212.png" "b/public/imgs/\345\220\221\344\270\212.png"
new file mode 100644
index 0000000..660f7fc
--- /dev/null
+++ "b/public/imgs/\345\220\221\344\270\212.png"
Binary files differ
diff --git "a/public/imgs/\345\220\221\345\217\263.png" "b/public/imgs/\345\220\221\345\217\263.png"
new file mode 100644
index 0000000..f51c195
--- /dev/null
+++ "b/public/imgs/\345\220\221\345\217\263.png"
Binary files differ
diff --git a/public/index.html b/public/index.html
index 857561f..00892b6 100644
--- a/public/index.html
+++ b/public/index.html
@@ -13,7 +13,7 @@
   <script src="./CimSDK/CimSDK.min.js"></script>
   <link rel="stylesheet" href="./CimSDK/Workers/layui/css/layui.css">
   <link rel="stylesheet" href="./CimSDK/CimSDK.min.css">
-
+ 
   <title>
     <%= webpackConfig.name %>
   </title>
diff --git a/src/assets/js/mapSdk/mapData.js b/src/assets/js/mapSdk/mapData.js
index cc7c69d..6e935e3 100644
--- a/src/assets/js/mapSdk/mapData.js
+++ b/src/assets/js/mapSdk/mapData.js
@@ -4,7 +4,7 @@
     menuData: [
         {
             id: 's1',
-            name: '閰嶇綉宸℃',
+            name: '宸℃',
             children: [
                 {
                     id: 'a1',
@@ -15,7 +15,7 @@
         },
         {
             id: 's2',
-            name: '閰嶇綉杩愭',
+            name: '杩愭',
             children: [
                 {
                     id: 'a1',
@@ -252,8 +252,8 @@
         dataOption: [
             { value: '鏉嗗', label: '鏉嗗' },
             {
-                value: '閰嶇綉绠�',
-                label: '閰嶇綉绠�',
+                value: '绠�',
+                label: '绠�',
             },
             {
                 value: '鐜綉鏌�',
diff --git a/src/assets/js/mapSdk/menuManager.js b/src/assets/js/mapSdk/menuManager.js
index b22d7e6..aa66c21 100644
--- a/src/assets/js/mapSdk/menuManager.js
+++ b/src/assets/js/mapSdk/menuManager.js
@@ -298,6 +298,9 @@
         }
         return std;
     },
+    getCartesianCoord(longitude, latitude, height) {
+        return Cesium.Cartesian3.fromDegrees(longitude, latitude, height);
+    },
     // 娴嬮噺
     setMenuS8(res) {
         const colorAll = this.colorAll;
diff --git a/src/assets/logo/Login3.png b/src/assets/logo/Login3.png
index c61fb87..2356232 100644
--- a/src/assets/logo/Login3.png
+++ b/src/assets/logo/Login3.png
Binary files differ
diff --git a/src/assets/logo/Login3_1.png b/src/assets/logo/Login3_1.png
new file mode 100644
index 0000000..c61fb87
--- /dev/null
+++ b/src/assets/logo/Login3_1.png
Binary files differ
diff --git a/src/components/RuoYi/Msgger/index.vue b/src/components/RuoYi/Msgger/index.vue
index 49d8891..614994f 100644
--- a/src/components/RuoYi/Msgger/index.vue
+++ b/src/components/RuoYi/Msgger/index.vue
@@ -14,7 +14,7 @@
                 <el-table-column label="鎿嶄綔" width="100">
                     <template slot-scope="scope">
                         <el-button @click="handleClick(scope.row)" type="text" size="small">鏌ョ湅</el-button>
-                        <el-button @click="handleClick2(scope.row)" type="text" size="small">鍒嗗彂</el-button></el-button>
+                        <el-button @click="handleClick2(scope.row)" type="text" size="small">鍒嗗彂</el-button> 
                     </template>
                 </el-table-column>
             </el-table>
diff --git a/src/layout/components/Sidebar/Logo.vue b/src/layout/components/Sidebar/Logo.vue
index ff2c0a1..0a1ea3d 100644
--- a/src/layout/components/Sidebar/Logo.vue
+++ b/src/layout/components/Sidebar/Logo.vue
@@ -35,8 +35,8 @@
   },
   data() {
     return {
-      title: '灞辫タ閰嶇綉',
-      logo: logoImg
+      title: '涓�浣撳寲鎸囨尌鑸�',
+      logo:""
     }
   }
 }
diff --git a/src/store/modules/mapLayers.js b/src/store/modules/mapLayers.js
index 901332e..f161ca6 100644
--- a/src/store/modules/mapLayers.js
+++ b/src/store/modules/mapLayers.js
@@ -6,17 +6,23 @@
     mapInfo: [],
     msgList: [],
     disasterSnow: {
-        title:"闆�",
-        val:[]
+        title: '闆�',
+        val: [],
     },
     disasterRain: {
-        title:"闆�",
-        val:[]
+        title: '闆�',
+        val: [],
     },
     disasterFire: {
-        title:"鐏�",
-        val:[]
+        title: '鐏�',
+        val: [],
     },
+    weatherFlag: 2,
+    weatherMsg: {
+        name:'',
+        data:[]
+    },
+    msgInfoData:null,
 };
 
 const mutations = {
diff --git a/src/views/login copy.vue b/src/views/login copy.vue
index ae3ae09..a16bc06 100644
--- a/src/views/login copy.vue
+++ b/src/views/login copy.vue
@@ -7,8 +7,8 @@
                         <div class="logoImg"></div>
                         <!-- <img :src="logo" alt="logo" style="width: 100px; height: 100px; float: left" /> -->
                         <div style="float: left; margin-top: 13px; width: 300px; text-align: left">
-                            <div>灞辫タ閰嶇綉</div>
-                            <div style="letter-spacing: 1.5px; font-size: 20px; font-weight: 600; margin-top: -8px; margin-left: 3px">灞辫タ閰嶇綉</div>
+                            <div>涓�浣撳寲鏅烘収鎸囨尌鑸�</div>
+                            <div style="letter-spacing: 1.5px; font-size: 20px; font-weight: 600; margin-top: -8px; margin-left: 3px">涓�浣撳寲鏅烘収鎸囨尌鑸�</div>
                         </div>
                     </div>
                 </div>
diff --git a/src/views/login.vue b/src/views/login.vue
index c9067dd..13bad6b 100644
--- a/src/views/login.vue
+++ b/src/views/login.vue
@@ -4,10 +4,6 @@
             <div class="titleItem">
                 <div class="logImg"></div>
             </div>
-
-            <!-- <div class="titleItem">
-                <div class="logText">鏁板瓧瀛敓鏅鸿兘閰嶇綉宸℃绯荤粺</div>
-            </div> -->
         </div>
         <div class="logContent">
             <div class="contFrom">
@@ -361,7 +357,7 @@
         .titleItem {
             height: 100%;
             display: flex;
-            align-items: center;
+            align-items: end;
             height: 266px;
         }
 
diff --git a/src/views/visualization/bottomMenu.vue b/src/views/visualization/bottomMenu.vue
index e5909e8..9d71987 100644
--- a/src/views/visualization/bottomMenu.vue
+++ b/src/views/visualization/bottomMenu.vue
@@ -61,7 +61,7 @@
                 //     }]
                 // }, 
                 {
-                    name: '閰嶇綉杩愭',
+                    name: '杩愭',
 
                 }
             ],
diff --git a/src/views/visualization/index.vue b/src/views/visualization/index.vue
index d69f69d..1f82429 100644
--- a/src/views/visualization/index.vue
+++ b/src/views/visualization/index.vue
@@ -25,7 +25,7 @@
                     <atlas v-if="isShow == '鐭ヨ瘑鍥捐氨'"></atlas>
                     <analysis v-if="isShow == '鏁版嵁鍒嗘瀽'"></analysis>
                     <statistics v-if="isShow == '鏁版嵁缁熻'"></statistics>
-                    <line-loss v-if="isShow == '閰嶇綉杩愭'"></line-loss>
+                    <line-loss v-if="isShow == '杩愭'"></line-loss>
                     <semanticFunction v-if="isShow == '璇箟鍔熻兘'"></semanticFunction>
                 </div>
 
@@ -39,6 +39,21 @@
         </div>
         <div class="msgList" v-show="!showMsgFlag">
             <msg-list @childData="receiveDataFromChild"></msg-list>
+        </div>
+        <div class="msgListinfo" v-if="showMsgInfoFlag">
+            <msg-list-info @childData="receiveDataInfoChild"></msg-list-info >
+        </div>
+        <div class="wearthList" v-if="$store.state.mapLayers.weatherFlag == 1">
+            <div class="weatherHeader">
+                {{ $store.state.mapLayers.weatherMsg.name }}
+            </div>
+            <div class="weatherBox">
+                <ul>
+                    <li v-for="(item, key) in $store.state.mapLayers.weatherMsg.data" :key="key">
+                        {{ item.name }}:{{ item.val }}
+                    </li>
+                </ul>
+            </div>
         </div>
     </div>
 </template>
@@ -54,6 +69,7 @@
 import statistics from '@/views/visual/statistics/index.vue'
 import semanticFunction from '@/views/dataManager/semanticFunction/index.vue'
 import msgList from './msgList.vue';
+import msgListInfo from './msgListInfo.vue';
 import { point } from '@turf/turf';
 export default {
     components: {
@@ -65,7 +81,8 @@
         statistics,
         lineLoss,
         semanticFunction,
-        msgList
+        msgList,
+        msgListInfo
     },
     data() {
         return {
@@ -74,7 +91,8 @@
             wsSocket: null,
             rightChartData: {},
             leftChartData: {},
-            showMsgFlag: true
+            showMsgFlag: true,
+            showMsgInfoFlag: false,
         }
     },
     beforeDestroy() {
@@ -94,9 +112,16 @@
     },
     methods: {
         receiveDataFromChild(data) {
-            console.log(data);
-
-            this.showMsgFlag = true
+          if(data =="close"){
+            this.showMsgFlag = true;
+            this.showMsgInfoFlag = false
+            return
+          }
+          this.showMsgInfoFlag = true;
+            
+        },
+        receiveDataInfoChild() {
+            this.showMsgInfoFlag = false
         },
         ShowMenuList() {
             if (this.$store.state.mapLayers.msgList.length == 0) return;
@@ -114,13 +139,20 @@
                 if (event.data != "杩炴帴鎴愬姛") {
                     const obj = JSON.parse(event.data)
                     if (obj.type == "rain") {
-                        this.$store.state.mapLayers.disasterRain.val = [obj]
-                    } else if (obj.type == "snow") {
-                        this.$store.state.mapLayers.disasterSnow.val = [obj]
+                        if ([obj] != this.$store.state.mapLayers.disasterRain.val) {
+                            this.$store.state.mapLayers.disasterRain.val = [obj]
+                        }
+
+                    } else if (obj.type == "thunder") {
+                        if ([obj] != this.$store.state.mapLayers.disasterSnow.val) {
+                            this.$store.state.mapLayers.disasterSnow.val = [obj]
+                        }
                     } else if (obj.type == "fire") {
-                        this.$store.state.mapLayers.disasterFire.val = [obj]
+                        if ([obj] != this.$store.state.mapLayers.disasterFire.val) {
+                            this.$store.state.mapLayers.disasterFire.val = [obj]
+                        }
                     } else if (obj.type == "error") {
-                        this.$store.state.mapLayers.msgList
+
                         if (this.$store.state.mapLayers.msgList.length == 0) {
                             this.$store.state.mapLayers.msgList.push(obj)
                         } else {
@@ -173,7 +205,7 @@
     }
 
     .leftMenu {
-        width: 12%;
+        width: 14%;
         top: 90px;
         left: 10px;
         height: calc(100% - 180px);
@@ -182,7 +214,7 @@
     }
 
     .rightMenu {
-        width: 12%;
+        width: 14%;
         top: 90px;
         right: 10px;
         height: calc(100% - 180px);
@@ -215,13 +247,53 @@
         }
     }
 
+    .wearthList {
+        width: 15%;
+        top: 90px;
+        left: 15%;
+        z-index: 40;
+        position: absolute;
+        background: url(~@/assets/images/Screen/chartbg.png) no-repeat;
+        background-size: 100% 100%;
+        height: 20%;
+        padding: 10px;
+        color: white;
+        display: flex;
+        flex-direction: column;
+
+        .weatherHeader {
+            line-height: 10px;
+            font-size: 16px;
+            padding-left: 20px;
+        }
+
+        .weatherBox {
+            flex: 1;
+            padding: 10px;
+            overflow: auto;
+
+            li {
+                line-height: 30px;
+                font-size: 16px;
+            }
+        }
+    }
+
     .msgList {
         width: 15%;
         top: 90px;
         right: 16%;
         z-index: 40;
         position: absolute;
+        height: 30%;
+    }
 
+    .msgListinfo {
+        width: 15%;
+        top: calc(30% + 100px);
+        right: 16%;
+        z-index: 40;
+        position: absolute;
         height: 30%;
     }
 
@@ -268,6 +340,21 @@
         }
     }
 }
+
+/* 鑷畾涔夋粴鍔ㄦ潯杞ㄩ亾 */
+::-webkit-scrollbar-track {
+    background-color: rgba(0, 0, 0, 0);
+}
+
+/* 鑷畾涔夋粴鍔ㄦ潯鐨勬粦鍧� */
+::-webkit-scrollbar-thumb {
+    background-color: rgba(0, 0, 0, 0);
+}
+
+/* 璁剧疆婊氬姩鏉$殑瀹藉害 */
+::-webkit-scrollbar {
+    width: 1px;
+}
 </style>
 <style>
 ::v-deep.map-info-bar {
diff --git a/src/views/visualization/list/chart.vue b/src/views/visualization/list/chart.vue
index 73df6d7..94ec44c 100644
--- a/src/views/visualization/list/chart.vue
+++ b/src/views/visualization/list/chart.vue
@@ -27,9 +27,9 @@
                     <td>{{ roadItem.line }}</td>
                     <td style="color:#f56c6c">{{ roadItem.level }}</td>
                     <td style="color:#409eff">
-                        <el-button v-show="flagData != roadItem.address" class="elButton" type="primary" plain
+                        <el-button v-show="flagData != roadItem.type" class="elButton" type="primary" plain
                             size="mini" @click="setChangeItem()">璇︽儏</el-button>
-                        <el-button v-show="flagData == roadItem.address" class="elButton" type="danger" plain
+                        <el-button v-show="flagData == roadItem.type" class="elButton" type="danger" plain
                             size="mini" @click="setCannelItem()">閲嶇疆</el-button>
                     </td>
                 </tr>
@@ -82,6 +82,8 @@
     },
     methods: {
         setCannelItem() {
+            this.$store.state.mapLayers.weatherFlag = false;
+            this.$store.state.mapLayers.weatherFlag = 2
             this.flagData = null;
             mapWeather.closeRegionWeather()
         },
@@ -91,8 +93,10 @@
         },
         setChangeItem() {
             var res = this.roadItem;
-            window.regionWeather = res.address;
+            window.regionWeather = res.type;
             var event = new Event('POIDetailDataChange');
+            this.$store.state.mapLayers.weatherMsg = mapWeather.getWearData(res);
+            this.$store.state.mapLayers.weatherFlag = 1;
             window.dispatchEvent(event);
             mapWeather.setRegionWeatherType(res);
         },
diff --git a/src/views/visualization/list/chart1.vue b/src/views/visualization/list/chart1.vue
index 6ee422b..afa4e70 100644
--- a/src/views/visualization/list/chart1.vue
+++ b/src/views/visualization/list/chart1.vue
@@ -1,6 +1,6 @@
 <template>
     <div class="chartListBox" :childData="childData">
-        <div class="aside-title"> 闆�</div>
+        <div class="aside-title">闆风數</div>
         <div class="echartBox" v-show="roadItem.address">
             <table class="chartTable">
                 <tr>
@@ -27,9 +27,9 @@
                     <td>{{ roadItem.line }}</td>
                     <td style="color:#f56c6c">{{ roadItem.level }}</td>
                     <td style="color:#409eff">
-                        <el-button v-show="flagData != roadItem.address" class="elButton" type="primary" plain
+                        <el-button v-show="flagData != roadItem.type" class="elButton" type="primary" plain
                             size="mini" @click="setChangeItem()">璇︽儏</el-button>
-                        <el-button v-show="flagData == roadItem.address" class="elButton" type="danger" plain
+                        <el-button v-show="flagData == roadItem.type" class="elButton" type="danger" plain
                             size="mini" @click="setCannelItem()">閲嶇疆</el-button>
                     </td>
                 </tr>
@@ -84,6 +84,8 @@
     },
     methods: {
         setCannelItem() {
+            this.$store.state.mapLayers.weatherFlag = false;
+            this.$store.state.mapLayers.weatherFlag = 2
             this.flagData = null;
             mapWeather.closeRegionWeather()
         },
@@ -93,8 +95,10 @@
         },
         setChangeItem() {
             var res = this.roadItem;
-            window.regionWeather = res.address;
+            window.regionWeather = res.type;
             var event = new Event('POIDetailDataChange');
+            this.$store.state.mapLayers.weatherMsg = mapWeather.getWearData(res);
+            this.$store.state.mapLayers.weatherFlag = 1;
             window.dispatchEvent(event);
             mapWeather.setRegionWeatherType(res);
         },
diff --git a/src/views/visualization/list/chart2.vue b/src/views/visualization/list/chart2.vue
index 221ec60..378f832 100644
--- a/src/views/visualization/list/chart2.vue
+++ b/src/views/visualization/list/chart2.vue
@@ -27,9 +27,9 @@
                     <td>{{ roadItem.line }}</td>
                     <td style="color:#f56c6c">{{ roadItem.level }}</td>
                     <td style="color:#409eff">
-                        <el-button v-show="flagData != roadItem.address" class="elButton" type="primary" plain
+                        <el-button v-show="flagData != roadItem.type" class="elButton" type="primary" plain
                             size="mini" @click="setChangeItem()">璇︽儏</el-button>
-                        <el-button v-show="flagData == roadItem.address" class="elButton" type="danger" plain
+                        <el-button v-show="flagData == roadItem.type" class="elButton" type="danger" plain
                             size="mini" @click="setCannelItem()">閲嶇疆</el-button>
                     </td>
                 </tr>
@@ -84,6 +84,8 @@
     },
     methods: {
         setCannelItem() {
+            this.$store.state.mapLayers.weatherFlag = false;
+            this.$store.state.mapLayers.weatherFlag = 2
             this.flagData = null;
             mapWeather.closeRegionWeather()
         },
@@ -93,8 +95,10 @@
         },
         setChangeItem() {
             var res = this.roadItem;
-            window.regionWeather = res.address;
+            window.regionWeather = res.type;
             var event = new Event('POIDetailDataChange');
+            this.$store.state.mapLayers.weatherMsg = mapWeather.getWearData(res);
+            this.$store.state.mapLayers.weatherFlag = 1;
             window.dispatchEvent(event);
             mapWeather.setRegionWeatherType(res);
         },
diff --git a/src/views/visualization/list/mapWeather.js b/src/views/visualization/list/mapWeather.js
index 21f8beb..088eefa 100644
--- a/src/views/visualization/list/mapWeather.js
+++ b/src/views/visualization/list/mapWeather.js
@@ -1,9 +1,40 @@
-import mapServer from '../../../assets/js/mapSdk/mapServe';
+import mapServer from '@/assets/js/mapSdk/mapServe.js';
 import * as turf from '@turf/turf';
 const mapWeather = {
     regionWeather: null,
     particle: null,
     showRain: 'ShowRain',
+    wallLayer: null,
+    pathLayer: null,
+    listBiildBord: [],
+    listParticle: [],
+    getWearData(res) {
+        return {
+            name: res.address,
+            data: [
+                {
+                    name: '鍚嶇О',
+                    val: res.address,
+                },
+                {
+                    name: '姘旇薄绾у埆',
+                    val: res.level,
+                },
+                {
+                    name: '鎵�灞炵嚎璺�',
+                    val: res.line,
+                },
+                {
+                    name: '鏁版嵁鏉ユ簮',
+                    val: res.source,
+                },
+                {
+                    name: '鍙戝竷鏃堕棿',
+                    val: res.time,
+                },
+            ],
+        };
+    },
     closeRegionWeather() {
         if (this.regionWeather) {
             this.regionWeather.enableWeatherType = SmartEarth.Cesium.RegionWeather.TYPE_NONE;
@@ -19,6 +50,24 @@
                 Viewer.scene.primitives.remove(Viewer.scene.primitives._primitives[i]);
             }
         }
+        if (this.wallLayer) {
+            Viewer.entities.remove(this.wallLayer);
+            this.wallLayer = null;
+            // this.wallLayer.removeFromMap();
+            // this.wallLayer = null;
+        }
+        if (this.pathLayer) {
+            this.pathLayer.deleteObject();
+            this.pathLayer = null;
+        }
+        for (var i in this.listBiildBord) {
+            this.listBiildBord[i].removeFromMap();
+        }
+        this.listBiildBord = [];
+        for (var i in this.listParticle) {
+            this.listParticle[i].deleteObject();
+        }
+        this.listParticle = [];
     },
     setRegionWeatherType(response) {
         this.closeRegionWeather();
@@ -32,51 +81,166 @@
             case 'rain':
                 //  earthCtrl.camera.flyTo(coord[0], coord[1], 8000, 0, -90, 0, 0);
                 this.showRain(response);
-
                 break;
             case 'fire':
                 this.showFire(response);
-                earthCtrl.camera.flyTo(coord[0], coord[1], 1000, 0, -90, 0, 0);
+                // earthCtrl.camera.flyTo(coord[0], coord[1], 1000, 0, -90, 0, 0);
                 break;
             case 'snow':
                 this.showSnow();
-                earthCtrl.camera.flyTo(coord[0], coord[1], 1000, 0, -90, 0, 0);
+                break;
+            case 'thunder':
+                this.showThunder(response);
                 break;
         }
     },
-    showFire(res) {
-        const coord = this.getCoord(res);
+    showThunder(response) {
+        if (response.geom) {
+            this.addWatherGeom(response.geom, 'thunder2.png');
+        }
+        // const points = this.chunkArray(response.point.split(','), 2);
+
+        // for (var i in points) {
+        //     const billboardEntity = earthCtrl.factory.createBillboard({
+        //         name: '鏍囩鐐�',
+        //         id: earthCtrl.factory.createUUID(),
+        //         image: config.images + 'thunder.png', // 璐村浘,
+        //         width: 40,
+        //         height: 40,
+        //         lon: parseFloat(points[i][0]),
+        //         lat: parseFloat(points[i][1]),
+        //         alt: 1,
+        //         scale: 6,
+        //     });
+        //     this.listBiildBord.push(billboardEntity);
+        // }
+    },
+    addWatherGeom(response, image) {
+        if (response.ploygon) {
+            this.addWatherPloygon(this.chunkArray(response.ploygon, 2), image);
+        }
+        if (response.line) {
+            this.addWatherLine(this.chunkArray(response.line, 2));
+        }
+    },
+    addWatherLine(response) {
         const obj = {
-            x: coord[0],
-            y: coord[1],
-            z: 0,
+            type: 'FeatureCollection',
+            features: [
+                {
+                    type: 'Feature',
+                    geometry: {
+                        type: 'LineString',
+                        coordinates: response,
+                    },
+                },
+            ],
         };
-        this.particle = earthCtrl.factory.createParticleEffect(
-            'flame',
-            obj,
-            {
-                translation: SmartEarth.Cesium.Cartesian3.fromElements(0, 0, 0), //骞崇Щ
-                particleSize: 10,
+        this.pathLayer = earthCtrl.factory.createPathLayer({
+            url: obj,
+            color: '#ff0000', //绾跨殑棰滆壊
+            width: 5.0, //绾跨殑瀹藉害
+            pointColor: '#FFFFFF', //绉诲姩鐐圭殑棰滆壊
+            speed: 1,
+            far: 50000,
+        });
+    },
+    addWatherPloygon(response, image) {
+        response.push(response[0]);
+        const coord = this.getCentroid(response);
+        earthCtrl.camera.flyTo(coord[0], coord[1], 80000, 0, -90, 0, 0);
+        var geom = [];
+        for (var i = 0; i < response.length; i++) {
+            geom.push(response[i][0], response[i][1]);
+        }
+
+        this.wallLayer = Viewer.entities.add({
+            polygon: {
+                hierarchy: Cesium.Cartesian3.fromDegreesArray(geom),
+                material: new Cesium.ImageMaterialProperty({
+                    image: config.images + image,
+                    alpha: 0.2, // 璁剧疆閫忔槑搴︿负0.5
+                    repeat: Cesium.Cartesian2(1.0, 1.0), // 涓嶉噸澶�
+                    transparent: true, // 鍚敤png閫忔槑
+                    color: new Cesium.Color(1.0, 1.0, 1.0, 0.3), // 璁剧疆棰滆壊鍜岄�忔槑搴�
+                }),
+                stRotation: Cesium.Math.toRadians(0),
             },
-            function (data) {}
-        );
+        });
+        // this.wallLayer = earthCtrl.factory.createPolygon({
+        //     name: '闈�',
+        //     id: earthCtrl.factory.createUUID(),
+        //     material: Cesium.Color.fromCssColorString('rgba(128,128,128, .2)'),
+        //     outlineColor: Cesium.Color.fromCssColorString('rgba(128,128,128, .5)'),
+        //     lineWidth: 3,
+        //     height: 10,
+        //     outline: true,
+        //     outlineWidth: 2,
+        //     positions: SmartEarth.Cesium.Cartesian3.fromDegreesArrayHeights(geom),
+        // });
+
+        // const obj = { type: 'GeometryCollection', geometries: [{ type: 'LineString', coordinates: response }] };
+        // // 娴佸姩澧欏浘灞�
+        // this.wallLayer = earthCtrl.factory.createTrailWallLayer({
+        //     url: obj,
+        //     color: '#0000ff05', //棰滆壊
+        //     height: 20, //楂樺害
+        //     speed: 2,
+        // });
+    },
+    showFire(response) {
+        if (response.geom) {
+            this.addWatherGeom(response.geom, 'filre.png');
+        }
+        // const points = this.chunkArray(response.point.split(','), 2);
+        // for (var i in points) {
+        //     const particle = earthCtrl.factory.createParticleEffect(
+        //         'flame',
+        //         {
+        //             x: parseFloat(points[i][0]),
+        //             y: parseFloat(points[i][1]),
+        //             z: 0,
+        //         },
+        //         {
+        //             translation: SmartEarth.Cesium.Cartesian3.fromElements(0, 0, 0), //骞崇Щ
+        //             particleSize: 10,
+        //         },
+        //         function (data) {}
+        //     );
+
+        //     this.listParticle.push(particle);
+        // }
+        // const coord = this.getCoord(res);
+        // const obj = {
+        //     x: coord[0],
+        //     y: coord[1],
+        //     z: 0,
+        // };
+        // this.particle = earthCtrl.factory.createParticleEffect(
+        //     'flame',
+        //     obj,
+        //     {
+        //         translation: SmartEarth.Cesium.Cartesian3.fromElements(0, 0, 0), //骞崇Щ
+        //         particleSize: 10,
+        //     },
+        //     function (data) {}
+        // );
     },
 
     showRain(res) {
         var area = [];
-        var std =[];
-        for (var i = 0; i < res.area.length; i += 3) {
+        var std = [];
+        for (var i = 0; i < res.area.length; i += 2) {
             area.push(res.area[i]);
             area.push(res.area[i + 1]);
-            std.push([res.area[i],res.area[i + 1]])
+            std.push([res.area[i], res.area[i + 1]]);
         }
-        std.push(std[0])
- 
-        
+        std.push(std[0]);
+
         const polygon = turf.polygon([std]);
 
         const centerPoint = turf.center(polygon);
-        const coord= centerPoint.geometry.coordinates;
+        const coord = centerPoint.geometry.coordinates;
         earthCtrl.camera.flyTo(coord[0], coord[1], 8000, 0, -90, 0, 0);
 
         const geometry = new Cesium.PolygonGeometry({
@@ -115,13 +279,6 @@
         });
         primitive.name = this.showRain;
         Viewer.scene.primitives.add(primitive);
-
-        // Viewer.camera.lookAt(primitive.boundingSphere.center, new Cesium.HeadingPitchRange(0.0, Cesium.Math.toRadians(-90), 5000));
-        // if (this.regionWeather) {
-        //     this.regionWeather.enableWeatherType = SmartEarth.Cesium.RegionWeather.TYPE_RAIN;
-        //     this.regionWeather.regionAlpha = 0.6;
-        //     this.regionWeather.regionGradientDistance = 300;
-        // }
     },
 
     showSnow() {
@@ -135,6 +292,23 @@
         const coord = res.point.split(',');
         return coord;
     },
+    getCentroid(response) {
+        var centroid = turf.centroid(turf.polygon([response]));
+        return centroid.geometry.coordinates;
+    },
+    chunkArray(array, size) {
+        return array.reduce((chunks, current, index) => {
+            const chunkIndex = Math.floor(index / size);
+
+            if (!chunks[chunkIndex]) {
+                chunks[chunkIndex] = [];
+            }
+
+            chunks[chunkIndex].push(current);
+
+            return chunks;
+        }, []);
+    },
     getRegionWather(res) {
         if (res.type == 'fire') return;
         const coord = this.getCoord(res);
diff --git a/src/views/visualization/mapView.vue b/src/views/visualization/mapView.vue
index 270738d..9affe4e 100644
--- a/src/views/visualization/mapView.vue
+++ b/src/views/visualization/mapView.vue
@@ -52,6 +52,9 @@
             }
             // 榛樿璁剧疆搴曞浘
             this.addImageLayer();
+          
+             
+
         },
         addImageLayer() {
             const baseLayer = mapData.baseLayer;
@@ -70,7 +73,7 @@
         },
         setdefaultPerspective() {
             mapConfig.sertCameraTo(mapData.defaultPerspective);
-            if (config.baseModel.url) {
+            if (config.baseModel.flag) {
                 mapServer.addLayer(config.baseModel);
             }
             this.getSelectLayers();
@@ -84,7 +87,7 @@
                         if (item.cnName != "閰嶇綉绾�") {
                             mapServer.addLayer(item)
                         }
-                    } 
+                    }
 
                 })
                 this.$nextTick(() => {
@@ -97,7 +100,7 @@
             earthCtrl.factory.createPathLayer({
                 url: road,
                 // color: "#00FA9A", //绾跨殑棰滆壊
-                 color: "#ff0000", //绾跨殑棰滆壊
+                color: "#ff0000", //绾跨殑棰滆壊
                 width: 5.0, //绾跨殑瀹藉害
                 pointColor: "#FFFFFF", //绉诲姩鐐圭殑棰滆壊
                 speed: 1,
diff --git a/src/views/visualization/msgList.js b/src/views/visualization/msgList.js
new file mode 100644
index 0000000..d939684
--- /dev/null
+++ b/src/views/visualization/msgList.js
@@ -0,0 +1,116 @@
+
+import * as turf from "@turf/turf";
+const msgList = {
+    label: null,
+    circle: undefined,
+    line: [],
+    startLine: [],
+    backLine: [],
+    point: null,
+    removeLabel() {
+        if (this.label) {
+            this.label.removeFromMap();
+            this.label = null;
+        }
+        if (this.circle) {
+            this.circle.removeFromMap();
+            this.circle = undefined;
+        }
+        if (this.pathLine) {
+            Viewer.entities.remove(this.pathLine);
+            this.pathLine = null;
+        }
+        this.startLine = [];
+        this.line = [];
+        this.backLine = [];
+    },
+    setInit(item) {
+        const point = item.point.split(',');
+        this.point = point;
+        this.label = earthCtrl.factory.createLabel({
+            lon: point[0],
+            lat: point[1],
+            alt: 40,
+            text: item.msg,
+            image: config.sdkImg + 'Workers/image/mark.png',
+            // 鏂囨湰鍋忕Щ閲�
+            pixelOffset: new SmartEarth.Cesium.Cartesian2(0, -50),
+            // 鍥剧墖鍋忕Щ閲�
+            iPixelOffset: new SmartEarth.Cesium.Cartesian2(0, -20),
+        });
+        this.showCircle(point, '#ff0000');
+        if (!item.geom.line) return;
+        this.line = this.chunkArray(item.geom.line, 2);
+        var center_Coord = [];
+
+        for (var i = 0; i < this.line.length; i++) {
+            center_Coord.push(turf.point([this.line[i][0], this.line[i][1]]));
+            var coord_start =this.getCartesianCoord(this.line[i][0], this.line[i][1], 1);
+            this.startLine.push(coord_start);
+        }
+        var features = turf.featureCollection(center_Coord);
+
+        var center = turf.center(features).geometry.coordinates;
+
+        earthCtrl.camera.flyTo(center[0], center[1], 8000, 0, -90, 0, 0);
+        var backGeom = this.line.reverse();
+        for (var i = 0; i < backGeom.length; i++) {
+            var coord_back =this.getCartesianCoord(backGeom[i][0], backGeom[i][1], 1);
+            this.backLine.push(coord_back);
+        }
+        // this.$nextTick(() => {
+      
+            this.showPathLine(this.startLine, true);
+        // });
+    },
+    getCartesianCoord(longitude, latitude, height) {
+        return Cesium.Cartesian3.fromDegrees(longitude, latitude, height);
+    },
+    showCircle(res, color) {
+        if (this.circle) {
+            this.circle.removeFromMap();
+            this.circle = undefined;
+        }
+        this.circle = earthCtrl.factory.createCircleScan({
+            lon: res[0],
+            lat: res[1],
+            color: SmartEarth.Cesium.Color.fromCssColorString(color),
+            height: 1,
+            maxRadius: 100,
+            duration: 5000,
+        });
+    },
+    chunkArray(array, size) {
+        return array.reduce((chunks, current, index) => {
+          const chunkIndex = Math.floor(index / size);
+  
+          if (!chunks[chunkIndex]) {
+            chunks[chunkIndex] = [];
+          }
+  
+          chunks[chunkIndex].push(current);
+  
+          return chunks;
+        }, []);
+      },
+    showPathLine(degreesArr, boolen) {
+        this.pathLine = Viewer.entities.add({
+            polyline: {
+                clampToGround: true,
+                //杞ㄨ抗绾跨殑鍒嗗竷浣嶇疆
+                positions: degreesArr,
+                material: new Cesium.ImageMaterialProperty({
+                    //鍥剧墖鐨勯鑹�
+                    //杞ㄨ抗杩愯鐨勯�熺巼
+                    speed: 10,
+                    //闅忔剰涓�寮犲浘鐗�
+                    image: config.images + '鍚戝彸.png',
+                    //灏嗚建杩瑰垎鎴愪竴琛�50涓浘鐗�
+                    repeat: { x: 40, y: 1 },
+                }),
+                width: 20,
+            },
+        });
+    },
+};
+export default msgList;
diff --git a/src/views/visualization/msgList.vue b/src/views/visualization/msgList.vue
index 34b1cb0..348e901 100644
--- a/src/views/visualization/msgList.vue
+++ b/src/views/visualization/msgList.vue
@@ -1,18 +1,15 @@
 <template>
   <div class="msgBox">
-
     <div class="aside-title">
       <div>鏁呴殰淇℃伅</div>
-      <div @click="sendDataToParent()" class="closeMsg">
-        X
-      </div>
+      <div @click="sendDataToParent()" class="closeMsg">X</div>
     </div>
     <div class="menuTable">
       <table>
         <tr>
-          <th style="width: 100px;">璁惧鍚嶇О</th>
+          <th style="width: 80px">璁惧鍚嶇О</th>
           <th>璁惧浣嶇疆</th>
-          <th style="width: 100px;">鎿嶄綔</th>
+          <th style="width: 40px">鎿嶄綔</th>
         </tr>
         <tr v-for="(item, indx) in $store.state.mapLayers.msgList" :key="indx">
           <td>{{ item.msg }}</td>
@@ -24,72 +21,39 @@
         </tr>
       </table>
     </div>
-
   </div>
 </template>
 
 <script>
+
 import mapConfig from '../../assets/js/mapSdk/mapConfig';
+import menuManager from '../../assets/js/mapSdk/menuManager';
 
-
+import msgList from './msgList.js';
 export default {
-  components: {
-
-  },
-  props: {
-
-  },
+  components: {},
+  props: {},
   data() {
     return {
-      label: null,
-    }
+     
+    };
   },
-  watch: {
-
-  },
-  mounted() {
-
-  },
+  watch: {},
+  mounted() { },
   methods: {
     sendDataToParent() {
-      this.removeLabel();
-      console.log(23);
-
-      this.$emit('childData', '瀛愮粍浠舵暟鎹�');
-
+      msgList.removeLabel();
+      this.$emit('childData', 'close');
     },
-    removeLabel() {
-      if (this.label) {
-        this.label.removeFromMap()
-        this.label = null;
-      }
-    },
+    
     handleClick(item) {
-      this.removeLabel();
-      // const point = mapConfig.getWKTParse(item.point)
-      const point = item.point.split(",")
-      this.label = earthCtrl.factory.createLabel({
-        lon: point[0],
-        lat: point[1],
-        alt: 40,
-        text: item.msg,
-        image: config.sdkImg + 'Workers/image/mark.png',
-        // 鏂囨湰鍋忕Щ閲�
-        pixelOffset: new SmartEarth.Cesium.Cartesian2(0, -50),
-        // 鍥剧墖鍋忕Щ閲�
-        iPixelOffset: new SmartEarth.Cesium.Cartesian2(0, -20)
-      });
-      earthCtrl.userScene.flyTo(this.label)
+      this.$store.state.mapLayers.msgInfoData = {...item};
+      this.$emit('childData', 'showMsgInfoFlag');
+      msgList.removeLabel();
+      msgList.setInit(item)
     },
-    handleClick2(item) {
-
-    },
-    setMsgClose() {
-
-    }
-
-  }
-}
+  },
+};
 </script>
 
 <style lang="scss" scoped>
@@ -111,7 +75,7 @@
     color: #fff;
     width: 100%;
     height: 45px;
-    line-height: 45px;
+    line-height: 35px;
     background-size: 100% 100%;
     background-repeat: no-repeat;
     display: flex;
@@ -122,9 +86,8 @@
     }
 
     .closeMsg :hover {
-      color: #409EFF;
+      color: #409eff;
     }
-
   }
 
   .menuTable {
@@ -140,13 +103,15 @@
 
       th {
         text-align: center;
-
+        word-wrap: break-word;
+        word-break: break-all;
       }
 
       td {
+        word-wrap: break-word;
+        word-break: break-all;
         line-height: 30px;
-        border-bottom: 1px solid #409EFF;
-        ;
+        border-bottom: 1px solid #409eff;
       }
     }
   }
@@ -163,13 +128,13 @@
 ::-webkit-scrollbar-thumb {
   border-radius: 5px;
   -webkit-box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.2);
-  background: #409EFF;
+  background: #409eff;
 }
 
 /*婊氬姩鏉¢噷闈㈣建閬�*/
 ::-webkit-scrollbar-track {
   -webkit-box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.2);
   border-radius: 10px;
-  background: rgba(237, 237, 237, .1);
+  background: rgba(237, 237, 237, 0.1);
 }
-</style>
\ No newline at end of file
+</style>
diff --git a/src/views/visualization/msgListInfo.vue b/src/views/visualization/msgListInfo.vue
new file mode 100644
index 0000000..62f951a
--- /dev/null
+++ b/src/views/visualization/msgListInfo.vue
@@ -0,0 +1,141 @@
+<template>
+  <div class="msgBox">
+    <div class="aside-title">
+      <div>{{ this.$store.state.mapLayers.msgInfoData.line }}</div>
+      <div @click="sendDataToParent()" class="closeMsg">X</div>
+    </div>
+    <div class="menuTable">
+      <table>
+        <tr>
+          <td>寮傚父淇℃伅锛�</td>
+          <td>{{ this.$store.state.mapLayers.msgInfoData.msg }}</td>
+        </tr>
+        <tr>
+          <td>寮傚父鍦扮偣锛�</td>
+          <td>{{ this.$store.state.mapLayers.msgInfoData.point }}</td>
+        </tr>
+        <tr>
+          <td>寮傚父鏃堕棿锛�</td>
+          <td>{{ this.$store.state.mapLayers.msgInfoData.time }}</td>
+        </tr>
+        <tr>
+          <td>鏁版嵁鏉ユ簮锛�</td>
+          <td>{{ this.$store.state.mapLayers.msgInfoData.source }}</td>
+        </tr>
+
+
+      </table>
+
+    </div>
+  </div>
+</template>
+
+<script>
+import msgList from './msgList.js';
+
+
+
+export default {
+  components: {},
+  props: {},
+  data() {
+    return {
+
+    };
+  },
+  watch: {},
+  mounted() {
+  
+  },
+  methods: {
+    sendDataToParent() {
+      msgList.removeLabel();
+      this.$emit('childData', '瀛愮粍浠舵暟鎹�');
+    },
+
+  },
+};
+</script>
+
+<style lang="scss" scoped>
+.msgBox {
+  width: 100%;
+  height: 100%;
+  background: url(~@/assets/images/Screen/chartbg.png) no-repeat;
+  background-size: 100% 100%;
+  position: relative;
+  border-radius: 5px;
+  display: flex;
+  flex-direction: column;
+
+  .aside-title {
+    box-sizing: border-box;
+    padding-left: 30px;
+    font-size: 15px;
+    font-family: YouSheBiaoTiHei, YouSheBiaoTiHei-Regular;
+    color: #fff;
+    width: 100%;
+    height: 45px;
+    line-height: 35px;
+    background-size: 100% 100%;
+    background-repeat: no-repeat;
+    display: flex;
+
+    .closeMsg {
+      margin-left: 64%;
+      cursor: pointer;
+    }
+
+    .closeMsg :hover {
+      color: #409eff;
+    }
+  }
+
+  .menuTable {
+    margin: 5px;
+    margin-top: 10px;
+    text-align: center;
+    flex: 1;
+    overflow: auto;
+
+    table {
+      width: 100%;
+      color: white;
+
+      th {
+        text-align: center;
+        word-wrap: break-word;
+        word-break: break-all;
+      }
+
+      td {
+        word-wrap: break-word;
+        word-break: break-all;
+        line-height: 30px;
+        border-bottom: 1px solid #409eff;
+      }
+    }
+  }
+}
+
+/*婊氬姩鏉℃暣浣撴牱寮�*/
+::-webkit-scrollbar {
+  /*楂樺鍒嗗埆瀵瑰簲妯珫婊氬姩鏉$殑灏哄*/
+  width: 5px;
+  height: 1px;
+}
+
+/*婊氬姩鏉¢噷闈㈠皬鏂瑰潡*/
+::-webkit-scrollbar-thumb {
+  border-radius: 5px;
+  -webkit-box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.2);
+  background: #409eff;
+}
+
+/*婊氬姩鏉¢噷闈㈣建閬�*/
+::-webkit-scrollbar-track {
+  -webkit-box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.2);
+  border-radius: 10px;
+  background: rgba(237, 237, 237, 0.1);
+}
+</style>
diff --git a/vue.config.js b/vue.config.js
index 8f7f3ee..5349cba 100644
--- a/vue.config.js
+++ b/vue.config.js
@@ -8,7 +8,7 @@
 const CompressionPlugin = require('compression-webpack-plugin');
 const { log } = require('console');
 
-const name = process.env.VUE_APP_TITLE || '灞辫タ閰嶇綉'; // 缃戦〉鏍囬
+const name = process.env.VUE_APP_TITLE || '涓�浣撳寲鏅烘収鎸囨尌鑸�'; // 缃戦〉鏍囬
 
 const port = process.env.port || process.env.npm_config_port || 80; // 绔彛
 console.log( "123",process.env.VUE_APP_SERVER_API_URL);

--
Gitblit v1.9.3