Przeglądaj źródła

事件办理流程增加确认流程、责任制和签收状态填写报文信息校验、地图增加图标

wang_xy 2 lat temu
rodzic
commit
fb68bcdaf6

+ 14 - 0
src/api/components/supermap.js

@@ -29,6 +29,7 @@ export const iconList = {
 
   //首页事件上报状态
   'sj-icon-map-xinshangbao': require('@/assets/icons/sj-icon-map/sj-icon-map-xinshangbao.png'),//新上报
+  'sj-icon-map-queren': require('@/assets/icons/sj-icon-map/sj-icon-map-queren.png'),//确认
   'sj-icon-map-cuiban': require('@/assets/icons/sj-icon-map/sj-icon-map-cuiban.png'),//催办
   'sj-icon-map-qianshou': require('@/assets/icons/sj-icon-map/sj-icon-map-qianshou.png'),//签收
   'sj-icon-map-guidang': require('@/assets/icons/sj-icon-map/sj-icon-map-guidang.png'),//归档
@@ -46,4 +47,17 @@ export const iconList = {
   'sj-icon-map-centerdata-t-forest-firehydrant': require('@/assets/icons/sj-icon-map/centerdata/sj-icon-map-centerdata-t-forest-firehydrant.png'),//消防栓
 
 
+  //动物保护图标
+  'forest_animal_hu': require('@/assets/images/dwbh/hu-1.png'),//虎,
+  'forest_animal_bao': require('@/assets/images/dwbh/bao-1.png'),//豹,
+  'forest_animal_she': require('@/assets/images/dwbh/she-1.png'),//蛇,
+  'forest_animal_ying': require('@/assets/images/dwbh/ying-1.png'),//鹰,
+  'forest_animal_tu': require('@/assets/images/dwbh/tuzi-1.png'),//兔子,
+  'forest_animal_huli': require('@/assets/images/dwbh/huli-1.png'),//狐狸,
+  'forest_animal_gouxiong': require('@/assets/images/dwbh/gouxiong-1.png'),//狗熊,
+  'forest_animal_yeji': require('@/assets/images/dwbh/yeji-1.png'),//野鸡,
+  'forest_animal_paozi': require('@/assets/images/dwbh/paozi-1.png'),//狍子,
+
+  //植树造林图标
+  'sj-icon-map-trees': require('@/assets/icons/sj-icon-map/trees/sj-icon-map-trees.png'),//狍子,
 }

BIN
src/assets/icons/sj-icon-map/sj-icon-map-queren.png


BIN
src/assets/icons/sj-icon-map/trees/sj-icon-map-trees.png


+ 1 - 1
src/components/TVWall.vue

@@ -333,7 +333,6 @@ export default {
     preview() {
       getTVWallList().then(newres => {
         getDahuaVideoServer().then(newResponse => {
-          debugger
           this.ws.detectConnectQt().then(res => {
             if (res) { // 连接客户端成功
               this.alertLogin()
@@ -369,6 +368,7 @@ export default {
     },
 
     create(tvListJson) { // 调用创建控件接口
+      debugger
       let _this = this
       const params = [
         {

+ 25 - 16
src/components/supermap.vue

@@ -98,6 +98,7 @@ import {
   getSuperMap,
   iconList
 } from '@/api/components/supermap.js'
+import { selectConfigKey } from "@/api/system/config";
 // import {setToken} from '../plugins/auth'
 import modal from '@/plugins/modal'
 
@@ -129,7 +130,8 @@ export default {
       heatMapLayer: [], //火灾蔓延图层Layer
       isheatPlotting: false,//火灾蔓延
       heat_lat: 0, //火灾蔓延经纬度
-      heat_lng: 0 //火灾蔓延经纬度
+      heat_lng: 0, //火灾蔓延经纬度
+      host:''
     }
   },
   watch: {
@@ -199,6 +201,7 @@ export default {
     }
   },
   mounted() {
+    this.getspuerMapHost()
     this.initMap()
     //添加画图的提示信息
     window.L.drawLocal.draw.toolbar = {
@@ -702,6 +705,7 @@ export default {
           return
         }
         getSuperMap(this.codes).then(resp => {
+
           let mapList = resp.data
           if (mapList != null && mapList.length > 0) {
             let url = mapList[0].url
@@ -1261,24 +1265,29 @@ export default {
     PlottingDrawCancel: function() {
       this.plottingdrawControl.handler.disable()
     },
+    getspuerMapHost(){
+      selectConfigKey('superMap.iserver.plot').then(res => {
+        this.host = res.data;
+      })
+    },
     dynamicPlotting: function() {
       setTimeout(() => {
-        var host = 'https://iserver.supermap.io'
-        var serverUrl = host + '/iserver/services/plot-jingyong/rest/plot/'
+          var host = this.host
+          var serverUrl = host + '/iserver/services/plot-jingyong/rest/plot/'
 
-        var me = this
-        this.plottingLayer = window.L.supermap.plotting.plottingLayer('plot',
-          serverUrl)
-        this.plottingLayer.spatialAnalystUrl =
-          host + '/iserver/services/spatialanalyst-sample/restjsr/spatialanalyst'
-        this.plottingLayer.addTo(this.map)
-        this.plottingdrawControl = window.L.supermap.plotting.drawControl(this
-          .plottingLayer)
-        this.plottingdrawControl.addTo(this.map)
-        var editControl = window.L.supermap.plotting.editControl()
-        editControl.addTo(this.map)
-        window.L.supermap.plotting.initPlotPanel('plotPanel', serverUrl, this
-          .plottingdrawControl)
+          var me = this
+          this.plottingLayer = window.L.supermap.plotting.plottingLayer('plot',
+            serverUrl)
+          this.plottingLayer.spatialAnalystUrl =
+            host + '/iserver/services/spatialanalyst-sample/restjsr/spatialanalyst'
+          this.plottingLayer.addTo(this.map)
+          this.plottingdrawControl = window.L.supermap.plotting.drawControl(this
+            .plottingLayer)
+          this.plottingdrawControl.addTo(this.map)
+          var editControl = window.L.supermap.plotting.editControl()
+          editControl.addTo(this.map)
+          window.L.supermap.plotting.initPlotPanel('plotPanel', serverUrl, this
+            .plottingdrawControl)
       }, 2000)
     }
     /** ----------------------------------动态绘制结束------------------------------------- */

+ 3 - 3
src/components/vBottomMenu.vue

@@ -197,9 +197,9 @@
 				<div class="pulse"></div>
 				<div class="pulse-big"></div>
 			</div>
-			<el-badge type="primary">
-				<el-button size="small" icon="el-icon-bell" @click="updateAlertFalse">警报</el-button>
-			</el-badge>
+			<!--<el-badge type="primary">-->
+				<!--<el-button size="small" icon="el-icon-bell" @click="updateAlertFalse">警报</el-button>-->
+			<!--</el-badge>-->
 			<el-badge type="warning">
 				<el-button size="small" icon="el-icon-refresh-right" @click="refresh">刷新</el-button>
 			</el-badge>

+ 4 - 3
src/views/animal.vue

@@ -280,8 +280,9 @@ export default {
             let src= "";
             for (let j = 0; j < that.animalDwfbType.length; j++) {
               if(res.data[i].type == that.animalDwfbType[j].name){
-                // markersMap.icon = that.animalDwfb[j].type;
-                src = that.animalDwfbType[j].src;
+                markersMap.icon = that.animalDwfbType[j].type;
+                // src = that.animalDwfbType[j].src;
+                // markersMap.icon = that.animalDwfbType[j].src;
                 break;
               }
             }
@@ -307,7 +308,7 @@ export default {
               '<span>' +
               '                  <div class="d-l-con">' +
               '                  <div class="d-l-l-text">' +
-              '<img src="' + src + '" style="width: 150px;height: 100px"/>' +
+              '<img src="' + res.data[i].attachId + '" style="width: 150px;height: 100px"/>' +
               '                </div>' +
               '                </div>' +
               '                </span>'

+ 1 - 0
src/views/bigdata/bigdata.vue

@@ -372,6 +372,7 @@ export default {
 
       getEventInfoList(){
         getEventInfoList().then(res => {
+          debugger
           for(let i in res.data){
             const data = [];
             data.push(res.data[i].areaTotal);

+ 162 - 69
src/views/eventdetailsdialog.vue

@@ -170,6 +170,27 @@
                                 <div style="text-align:left">
                                   <el-button size="small"
                                              icon="el-icon-s-flag"
+                                             @click="updateCentereventTEventcatalogueStatus('qr',true)">
+                                    确认
+                                  </el-button>
+                                  <el-button size="small"
+                                             icon="el-icon-question"
+                                             @click="updateCentereventTEventcatalogueStatus('wb',false)">
+                                    误报
+                                  </el-button>
+                                  <el-button size="small"
+                                             icon="el-icon-warning"
+                                             @click="updateCentereventTEventcatalogueStatus('cf',false)">
+                                    重复
+                                  </el-button>
+                                </div>
+                                <el-button size="small" icon="el-icon-chat-dot-square" @click="sendEventLog()">发送
+                                </el-button>
+                              </div>
+                              <div class="z-info-btm-input-btn" v-else-if="eventStatusValue=='forest_event_status_7'">
+                                <div style="text-align:left">
+                                  <el-button size="small"
+                                             icon="el-icon-s-flag"
                                              @click="updateCentereventTEventcatalogueStatus('qs',false)">
                                     签收
                                   </el-button>
@@ -322,15 +343,18 @@
             />
           </el-select>
         </el-form-item>
-        <el-form-item label="联系人" v-if="eventStatusButton=='qs'">
-          <el-select multiple collapse-tags v-model='sendUserFegin' placeholder='请选择联系人!' clearable>
-            <el-option
-              v-for="item in userFeginList"
-              :label="item.nickName"
-              :value="item.phonenumber"
-            />
-          </el-select>
-        </el-form-item>
+        <!--<el-form-item label="联系人" v-if="eventStatusButton=='qs'">-->
+          <!--<el-select multiple collapse-tags v-model='sendUserFegin' placeholder='请选择联系人!' clearable filterable>-->
+            <!--<el-option-->
+              <!--v-for="item in userFeginList"-->
+              <!--:label="item.nickName"-->
+              <!--:value="item.phonenumber"-->
+            <!--/>-->
+          <!--</el-select>-->
+        <!--</el-form-item>-->
+        <el-button size="mini" type="primary" v-if="eventStatusButton=='qr'"
+                   @click="updateCentereventTEventcatalogueStatus('qr',false)">确认
+        </el-button>
         <el-button size="mini" type="primary" v-if="eventStatusButton=='qs'"
                    @click="updateCentereventTEventcatalogueStatus('qs',true)">签收
         </el-button>
@@ -387,7 +411,8 @@
             </el-button>
             <el-table
               :data="dutysystemTableData"
-              style="width: 100%">
+              style="width: 100%"
+              :rules="rules">
               <el-table-column prop="id" label="主键" v-if="false">
                 <template slot-scope="scope" hidden>
                   <el-input v-model="scope.row.id" readonly placeholder="主键"></el-input>
@@ -395,7 +420,7 @@
               </el-table-column>
               <el-table-column prop="name" label="姓名">
                 <template slot-scope="scope">
-                  <el-input v-model="scope.row.name" placeholder="姓名"></el-input>
+                  <el-input v-model="scope.row.name" placeholder="姓名" οninput="value=value.replace(/^[\u4e00-\u9fa5]{2,4}$/,'')"></el-input>
                 </template>
               </el-table-column>
               <el-table-column prop="post" label="岗位">
@@ -405,7 +430,7 @@
               </el-table-column>
               <el-table-column prop="telphone" label="手机号码">
                 <template slot-scope="scope">
-                  <el-input v-model="scope.row.telphone" placeholder="手机号码"></el-input>
+                  <el-input v-model="scope.row.telphone" placeholder="手机号码" οninput="value=value.replace(/^((13[0-9])|(14[5-9])|(15([0-3]|[5-9]))|(16[6-7])|(17[1-8])|(18[0-9])|(19[1|3])|(19[5|6])|(19[8|9]))\d{8}$/,'')"></el-input>
                 </template>
               </el-table-column>
               <el-table-column prop="bookbuytime" label="操作">
@@ -416,18 +441,18 @@
                     icon="el-icon-delete"
                     @click="handleDelete(scope.$index, scope.row)">删除
                   </el-button>
-                  <el-button
-                    size="mini"
-                    type="danger"
-                    icon="el-icon-save"
-                    @click="handleSave(scope.$index, scope.row)">保存
-                  </el-button>
+                  <!--<el-button-->
+                    <!--size="mini"-->
+                    <!--type="danger"-->
+                    <!--icon="el-icon-save"-->
+                    <!--@click="handleSave(scope.$index, scope.row)">保存-->
+                  <!--</el-button>-->
                 </template>
               </el-table-column>
             </el-table>
           </div>
         </div>
-        <el-button size="mini" type="primary" class="fr_button" @click="closeResponsibilityDialog">确定
+        <el-button size="mini" type="primary" class="fr_button" @click="addResponsibilityDialog">确定
         </el-button>
         <div style="clear: both;"></div>
       </el-form>
@@ -981,6 +1006,10 @@ import {
   hasConferences,
   createConferences, getUserInfo
 } from "@/api/meeting"
+import {
+  getDahuaVideoServer
+} from '@/api/dahua/dahua'
+import DHWs from '@/dahua/lib/DHWs'
 export default {
   dicts: ['task_source'],
   watch: {
@@ -1000,6 +1029,7 @@ export default {
     return {
       //海康
       cameraTitle: '',
+      cameraCode:'',
       cameraVisible: false,
       initCount: 0,
       pubKey: '',
@@ -1135,6 +1165,7 @@ export default {
       dataStatus: null,//事件流程按钮
       deptId: null,//事件流程部门
       eventCode: null,
+      eventName: null,
       longitude: null,
       latitude: null,
       eventLog: null,
@@ -1199,13 +1230,19 @@ export default {
       ],
       resourcesListCheck: [],
       //文本域
-      feedback: ''
+      feedback: '',
 
     }
   },
   props: {
     calendarDay: null//首页日历选择
   },
+  created() {
+    /** ----------------------------------摄像头预览开始------------------------------------- */
+    const DHWsInstance = DHWs.getInstance()
+    this.ws = DHWsInstance
+    /** ----------------------------------摄像头预览结束------------------------------------- */
+  },
   methods: {
     /************************************责任制-开始****************************************/
     addLine: function() {//添加负责人行数
@@ -1258,8 +1295,8 @@ export default {
           }]
         }
       })
-
     },
+
     showResponsibility() {//弹出责任制弹窗
       let param = { eventCode: this.eventCode }
       centereventtdepteventList(param).then(res => {
@@ -1274,6 +1311,31 @@ export default {
       this.iconCurrentIndex = ''
       this.showResponsibilityDialog = false
     },
+    addResponsibilityDialog() {//责任制保存
+      let reg_user = /^[\u4e00-\u9fa5]{2,4}$/;    //2-4个中文字符正则
+      let reg_tel = /^(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\d{8}$/;    //11位手机号码正则
+      for(let i in this.dutysystemTableData){
+        if(!reg_user.test(this.dutysystemTableData[i].name)){
+          this.$message.error(`请输入正确姓名!`)
+          return;
+        }
+        if(!reg_tel.test(this.dutysystemTableData[i].telphone)){
+          this.$message.error(`请输入正确手机号码!`)
+          return;
+        }
+
+        if(this.dutysystemTableData[i].id==null || this.dutysystemTableData[i].id==''){
+          this.dutysystemTableData[i].dept = this.dutysystemDeptName;
+          this.dutysystemTableData[i].depteventId = this.depteventId;
+        }
+      }
+      const param = {centereventTDutySystemList:this.dutysystemTableData,eventCode:this.eventCode,eventName:this.eventName}
+      dutysystemAdd(param).then(res => {
+        this.$message.success(`保存成功!`)
+        this.dutysystemSelect(this.iconCurrentIndex, this.dutysystemDeptName, this.depteventId);
+        this.closeResponsibilityDialog();
+      })
+    },
     /************************************责任制-结束****************************************/
     showheatPlotting() {
       // if (!this.$refs.supermapDialog.isheatPlotting) {
@@ -1356,7 +1418,9 @@ export default {
                 markersMap.icon = 'camera'
                 if (res.data[i].cameraCode != null) {
                   markersMap.click = 'preview'
-                  markersMap.parameter = res.data[i].cameraCode
+                  // markersMap.parameter = res.data[i].cameraCode
+                  markersMap.parameter = {code:res.data.data[i].cameraCode,
+                    type:res.data.data[i].cameraFactory}
                 }
               }
               markersMap.lng = res.data[i].longitude
@@ -1578,12 +1642,6 @@ export default {
               that.guanLianYuAnList = res.data
             }
           })
-          await userFeginlist().then(res => {
-            //联系人列表
-            if (res.code == 200) {
-              that.userFeginList = res.data
-            }
-          })
           await selectByeventCode(that.eventCode).then(res => {
             //签收部门
             if (res.code == 200) {
@@ -1592,6 +1650,8 @@ export default {
             }
           })
           that.showEventConfirm = true
+        } else if (eventStatus == 'qr') {//确认
+          that.eventConfirmTitle = '事件确认'
         } else if (eventStatus == 'wb') {//误报
           that.eventConfirmTitle = '事件误报'
           await selectByeventCode(that.eventCode).then(res => {
@@ -1679,6 +1739,30 @@ export default {
           })
 
         } else if (eventStatus == 'gd') {
+          let double = /(^[1-9]([0-9]+)?(\.[0-9]{1,2})?$)|(^(0){1}$)|(^[0-9]\.[0-9]([0-9])?$)/;    //数字和两位小数
+          let number = /^[+]{0,1}(\d+)$/g;    //正整数
+
+          if(!double.test(that.table2.areaTotal)){
+            that.$message.error(`面积只能填写到小数后两位!`)
+            return
+          }
+          if(!number.test(that.table2.peopleTotal)){
+            that.$message.error(`人员请填写正整数!`)
+            return
+          }
+          if(that.table2.forestComposition == '' || that.table2.forestComposition==null){
+            that.$message.error(`林木组成不能为空!`)
+            return
+          }
+          if(that.table2.forestToken == '' || that.table2.forestToken==null){
+            that.$message.error(`林令不能为空!`)
+            return
+          }
+            if(that.table2.porosities == '' || that.table2.porosities==null){
+            that.$message.error(`疏密度不能为空!`)
+            return
+          }
+
           //事件处理流程--归档
           let param = {
             deptId: that.deptId,
@@ -1697,6 +1781,7 @@ export default {
               that.cancelEventConfirm_send()
               that.showEventConfirm_gd = false
               that.$emit('getEventList', that.calendarDay,10,1)
+              that.$emit('getSupermap', that.calendarDay)
             }
           })
         } else {
@@ -1728,6 +1813,7 @@ export default {
             eventType: that.sendEventType,
             id: that.eventId,
             czlx: '',
+            cameraCode: that.cameraCode,
             fireRadius: that.sendHuoZaiBanJing,
             reserve: that.sendGuanLianYuAn
           }
@@ -1738,6 +1824,7 @@ export default {
               that.cancelEventConfirm_send()
               that.showEventConfirm = false
               that.$emit('getEventList', that.calendarDay,10,1)
+              that.$emit('getSupermap', that.calendarDay)
             }
           })
         }
@@ -1784,6 +1871,7 @@ export default {
         that.eventId = res.data.catalogue.id
         that.longitude = res.data.catalogue.longitude
         that.latitude = res.data.catalogue.latitude
+        that.eventName = res.data.catalogue.eventName
         let markersMap = {
           lng: 124.59,
           lat: 43.02,
@@ -1806,6 +1894,8 @@ export default {
           markersMap.icon = 'sj-icon-map-banjie'
         } else if (res.data.catalogue.eventStatusValue == 'forest_event_status_6') {
           markersMap.icon = 'sj-icon-map-guidang'
+        } else if (res.data.catalogue.eventStatusValue == 'forest_event_status_7') {
+          markersMap.icon = 'sj-icon-map-queren'
         }
         markersMap.lng = res.data.catalogue.longitude
         markersMap.lat = res.data.catalogue.latitude
@@ -1819,13 +1909,14 @@ export default {
           that.$refs.supermapDialog.dropLocation10(res.data.catalogue.latitude, res.data.catalogue.longitude)
         }, 2000)
         if (res.data.centermonitorTCamera != null) {
+          that.cameraCode = res.data.centermonitorTCamera.cameraCode;
           let markersMap = {
             lng: 124.59,
             lat: 43.02,
             icon: 'camera',
             bindPopupHtml: '',
             click: 'preview',
-            parameter: res.data.centermonitorTCamera.cameraCode,
+            parameter: {code:res.data.centermonitorTCamera.cameraCode,type:res.data.centermonitorTCamera.cameraFactory},
             keepBindPopup: false,
             isAggregation: false,
             radius: 0
@@ -1864,6 +1955,7 @@ export default {
         that.eventId = res.data.catalogue.id
         that.latitude = res.data.catalogue.latitude
         that.longitude = res.data.catalogue.longitude
+        that.eventName = res.data.catalogue.eventName
         let markersMap = {
           lng: 124.59,
           lat: 43.02,
@@ -1886,6 +1978,8 @@ export default {
           markersMap.icon = 'sj-icon-map-banjie'
         } else if (res.data.catalogue.eventStatusValue == 'forest_event_status_6') {
           markersMap.icon = 'sj-icon-map-guidang'
+        } else if (res.data.catalogue.eventStatusValue == 'forest_event_status_7') {
+          markersMap.icon = 'sj-icon-map-queren'
         }
         markersMap.lng = res.data.catalogue.longitude
         markersMap.lat = res.data.catalogue.latitude
@@ -1908,7 +2002,7 @@ export default {
             icon: 'camera',
             bindPopupHtml: '',
             click: 'preview',
-            parameter: res.data.centermonitorTCamera.cameraCode,
+            parameter: {code:res.data.centermonitorTCamera.cameraCode,type:res.data.centermonitorTCamera.cameraFactory},
             keepBindPopup: false,
             isAggregation: false,
             radius: 0
@@ -2012,49 +2106,48 @@ export default {
       }
     },
     /** 预览按钮操作 */
-    preview(cameraCode) {
-      let that = this
-      // getDahuaVideoServer().then(newResponse => {
-      //   console.log(newResponse)
-      //   this.ws.detectConnectQt().then(res => {
-      //     if (res) { // 连接客户端成功
-      //       this.alertLogin()
-      //       this.ws.login({
-      //         loginIp: newResponse.loginIp,
-      //         loginPort: newResponse.loginPort,
-      //         userName: newResponse.userName,
-      //         userPwd: newResponse.userPwd,
-      //         token: '',
-      //         https: 1
-      //       })
-      //       this.ws.on('loginState', (res) => {
-      //         this.isLogin = res
-      //         console.log('---res-----', res)
-      //         if (res) {
-      //           this.alertLoginSuccess()
-      //           this.activePanel = 'key2'
-      //           this.realTimeVideoDialog(channelCode)
-      //         } else {
-      //           this.alertLoginFailed()
-      //         }
-      //       })
-      //     } else { // 连接客户端失败
-      //       this.alertReinstall()
-      //     }
-      //   })
-      // })
-      that.cameraVisible = true
-      getHaiKangVideoServer({ cameraCode: cameraCode }).then(newResponse => {
-        that.cameraTitle = '摄像头-' + newResponse.data.cameraName
-        that.initPlugin(newResponse.data.appkey, newResponse.data.loginIp, newResponse.data.secret, newResponse.data.loginPort)
-        that.$nextTick(()=>{
-          console.log(that.oWebControl)
+    preview(cameraParam) {
+      if(cameraParam.type=='大华'){
+        getDahuaVideoServer().then(newResponse => {
+          console.log(newResponse)
+          this.ws.detectConnectQt().then(res => {
+            if (res) { // 连接客户端成功
+              this.alertLogin()
+              this.ws.login({
+                loginIp: newResponse.loginIp,
+                loginPort: newResponse.loginPort,
+                userName: newResponse.userName,
+                userPwd: newResponse.userPwd,
+                token: '',
+                https: 0
+              })
+              this.ws.on('loginState', (res) => {
+                this.isLogin = res
+                console.log('---res-----', res)
+                if (res) {
+                  this.alertLoginSuccess()
+                  this.activePanel = 'key2'
+                  this.realTimeVideoDialog(cameraParam.code)
+                } else {
+                  this.alertLoginFailed()
+                }
+              })
+            } else { // 连接客户端失败
+              this.alertReinstall()
+            }
+          })
+        })
+      }else if(cameraParam.type=='海康'){
+        let that = this
+        that.cameraVisible = true
+        getHaiKangVideoServer({cameraCode:cameraParam.code}).then(newResponse => {
+          that.cameraTitle = '摄像头-'+newResponse.data.cameraName
+          that.initPlugin(newResponse.data.appkey,newResponse.data.loginIp,newResponse.data.secret,newResponse.data.loginPort)
           setTimeout(function() {
-            console.log(that.oWebControl)
             that.playhk(newResponse.data.channelCode)
           }, 5000)
         })
-      })
+      }
 
     },
     realTimeVideoDialog(cameraParams) { // 调用弹窗实时播放接口

Plik diff jest za duży
+ 1613 - 1492
src/views/firespread.vue


Plik diff jest za duży
+ 1309 - 1330
src/views/forest.vue


+ 53 - 47
src/views/monitor.vue

@@ -149,7 +149,7 @@ import {
 import {
   getHaiKangVideoServer
 } from '@/api/haikang/haikang'
-// import DHWs from '@/dahua/lib/DHWs'
+import DHWs from '@/dahua/lib/DHWs'
 
 /** ----------------------------------摄像头预览结束------------------------------------- */
   // import echarts from 'echarts'
@@ -165,8 +165,8 @@ export default {
   },
   created() {
     /** ----------------------------------摄像头预览开始------------------------------------- */
-    // const DHWsInstance = DHWs.getInstance()
-    // this.ws = DHWsInstance
+    const DHWsInstance = DHWs.getInstance()
+    this.ws = DHWsInstance
     /** ----------------------------------摄像头预览结束------------------------------------- */
 
     /** ----------------------------------底部按钮公用组件开始------------------------------------- */
@@ -215,7 +215,8 @@ export default {
       indentleft: '',
       indentright: '',
       indentText: '收起左右栏',
-      indentdisabled: false
+      indentdisabled: false,
+      domId: 'dom1',
     }
   },
   methods: {
@@ -455,7 +456,8 @@ export default {
               isAggregation: false
             }
             if (res.data.visuForestCloudCameraBOList[i].channelCode != null) {
-              markersMap.parameter = res.data.visuForestCloudCameraBOList[i].cameraCode
+              markersMap.parameter = {code:res.data.visuForestCloudCameraBOList[i].cameraCode,
+                type:res.data.visuForestCloudCameraBOList[i].cameraFactory}
             } else {
               markersMap.parameter = []
             }
@@ -535,7 +537,6 @@ export default {
       selectCameraByDeptId(depId).then(res => {
         //根据设备类型查看列表
         that.visuForestCloudCameraBOList = res.data
-
         if (res.data != null && res.data.length > 0) {
           for (let i = 0; i < res.data.length; i++) {
             let markersMap = {
@@ -549,7 +550,8 @@ export default {
               isAggregation: false
             }
             if (res.data[i].channelCode != null) {
-              markersMap.parameter = res.data[i].cameraCode
+              markersMap.parameter = {code:res.data.data[i].cameraCode,
+                type:res.data.data[i].cameraFactory}
             } else {
               markersMap.parameter = []
             }
@@ -655,45 +657,48 @@ export default {
       }
     },
     /** 预览按钮操作 */
-    preview(cameraCode) {
-      let that = this
-      // getDahuaVideoServer().then(newResponse => {
-      //   console.log(newResponse)
-      //   this.ws.detectConnectQt().then(res => {
-      //     if (res) { // 连接客户端成功
-      //       this.alertLogin()
-      //       this.ws.login({
-      //         loginIp: newResponse.loginIp,
-      //         loginPort: newResponse.loginPort,
-      //         userName: newResponse.userName,
-      //         userPwd: newResponse.userPwd,
-      //         token: '',
-      //         https: 1
-      //       })
-      //       this.ws.on('loginState', (res) => {
-      //         this.isLogin = res
-      //         console.log('---res-----', res)
-      //         if (res) {
-      //           this.alertLoginSuccess()
-      //           this.activePanel = 'key2'
-      //           this.realTimeVideoDialog(channelCode)
-      //         } else {
-      //           this.alertLoginFailed()
-      //         }
-      //       })
-      //     } else { // 连接客户端失败
-      //       this.alertReinstall()
-      //     }
-      //   })
-      // })
-      that.cameraVisible = true
-      getHaiKangVideoServer({cameraCode:cameraCode}).then(newResponse => {
-        that.cameraTitle = '摄像头-'+newResponse.data.cameraName
-        that.initPlugin(newResponse.data.appkey,newResponse.data.loginIp,newResponse.data.secret,newResponse.data.loginPort)
-        setTimeout(function() {
-          that.playhk(newResponse.data.channelCode)
-        }, 5000)
-      })
+    preview(cameraParam) {
+      if(cameraParam.type=='大华'){
+        getDahuaVideoServer().then(newResponse => {
+          console.log(newResponse)
+          this.ws.detectConnectQt().then(res => {
+            if (res) { // 连接客户端成功
+              this.alertLogin()
+              this.ws.login({
+                loginIp: newResponse.loginIp,
+                loginPort: newResponse.loginPort,
+                userName: newResponse.userName,
+                userPwd: newResponse.userPwd,
+                token: '',
+                https: 0
+              })
+              this.ws.on('loginState', (res) => {
+                this.isLogin = res
+                console.log('---res-----', res)
+                if (res) {
+                  this.alertLoginSuccess()
+                  this.activePanel = 'key2'
+                  this.realTimeVideoDialog(cameraParam.code)
+                } else {
+                  this.alertLoginFailed()
+                }
+              })
+            } else { // 连接客户端失败
+              this.alertReinstall()
+            }
+          })
+        })
+      }else if(cameraParam.type=='海康'){
+        let that = this
+        that.cameraVisible = true
+        getHaiKangVideoServer({cameraCode:cameraParam.code}).then(newResponse => {
+          that.cameraTitle = '摄像头-'+newResponse.data.cameraName
+          that.initPlugin(newResponse.data.appkey,newResponse.data.loginIp,newResponse.data.secret,newResponse.data.loginPort)
+          setTimeout(function() {
+            that.playhk(newResponse.data.channelCode)
+          }, 5000)
+        })
+      }
 
     },
     realTimeVideoDialog(cameraParams) { // 调用弹窗实时播放接口
@@ -701,7 +706,8 @@ export default {
         this.$Message.info('正在登陆客户端,请稍等......')
         return false
       }
-      this.ws.openVideo(cameraParams)
+      const params = [cameraParams];
+      this.ws.openVideo(params)
     },
     /** ----------------------------------摄像头预览结束------------------------------------- */
 

+ 1 - 1
src/views/trees.vue

@@ -168,7 +168,7 @@ export default {
             let markersMap = {
               lng: 124.59,
               lat: 43.02,
-              icon: 'marker',
+              icon: 'sj-icon-map-trees',
               bindPopupHtml: '',
               click: 'showTreesDetails',
               parameter: {id:res.data[i].id},