|
@@ -160,7 +160,7 @@
|
|
</el-button>
|
|
</el-button>
|
|
</div>
|
|
</div>
|
|
<div class="z-info-btm-grp-right">
|
|
<div class="z-info-btm-grp-right">
|
|
- <el-button size="small" icon="el-icon-mic" @click="joinMeeting()">会议
|
|
|
|
|
|
+ <el-button size="small" icon="el-icon-mic" @click="Meeting()">会议
|
|
</el-button>
|
|
</el-button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
@@ -239,10 +239,15 @@
|
|
<div class="z-info-btm-input-btn"
|
|
<div class="z-info-btm-input-btn"
|
|
v-else-if="eventStatusValue=='forest_event_status_5'&&statusFlag=='1'">
|
|
v-else-if="eventStatusValue=='forest_event_status_5'&&statusFlag=='1'">
|
|
<el-button size="small"
|
|
<el-button size="small"
|
|
- icon="el-icon-success" style="text-align:left"
|
|
|
|
|
|
+ icon="el-icon-success" style="text-align:left" v-if="eventType == 1"
|
|
@click="updateCentereventTEventcatalogueStatus('gd',false)">
|
|
@click="updateCentereventTEventcatalogueStatus('gd',false)">
|
|
填报
|
|
填报
|
|
</el-button>
|
|
</el-button>
|
|
|
|
+ <el-button size="small"
|
|
|
|
+ icon="el-icon-success" style="text-align:left" v-if="eventType != 1"
|
|
|
|
+ @click="updateCentereventTEventcatalogueStatus('gd',true)">
|
|
|
|
+ 归档
|
|
|
|
+ </el-button>
|
|
<el-button size="small" icon="el-icon-chat-dot-square" @click="sendEventLog()">发送
|
|
<el-button size="small" icon="el-icon-chat-dot-square" @click="sendEventLog()">发送
|
|
</el-button>
|
|
</el-button>
|
|
</div>
|
|
</div>
|
|
@@ -465,6 +470,84 @@
|
|
<div style="clear: both;"></div>
|
|
<div style="clear: both;"></div>
|
|
</el-form>
|
|
</el-form>
|
|
</el-dialog>
|
|
</el-dialog>
|
|
|
|
+ <!-- 会议弹窗 start -->
|
|
|
|
+ <el-dialog title="视频会议" :visible.sync="showMeetingMsgDialog" v-if="showMeetingMsgDialog" width="65%"
|
|
|
|
+ @close="closeMeetingMsgDialog()">
|
|
|
|
+ <el-form label-width="1500px">
|
|
|
|
+ <div class="bottom">
|
|
|
|
+ <!-- 左侧菜单栏 -->
|
|
|
|
+ <div class="bottomLeft">
|
|
|
|
+ <div class="leftItem d-l-con padding-box nowrap" v-for="(item,index) in depteventList">
|
|
|
|
+ <div class="bgt-info">
|
|
|
|
+ <div class="bgt-info-name" :class="{on:iconCurrentIndex==item.deptId}"
|
|
|
|
+ @click="dutysystemSelect(item.deptId,item.deptName,item.id)">{{ item.deptName }}
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ <!-- 左侧菜单栏对应的右侧的内容 -->
|
|
|
|
+ <div class="bottomRight" ref="wrapper">
|
|
|
|
+ <el-button
|
|
|
|
+ size="mini"
|
|
|
|
+ type="danger"
|
|
|
|
+ v-if="depteventId!=null&&depteventId!=''"
|
|
|
|
+ @click="addLine">添加
|
|
|
|
+ </el-button>
|
|
|
|
+ <el-button
|
|
|
|
+ size="mini"
|
|
|
|
+ type="danger"
|
|
|
|
+ v-if="depteventId!=null&&depteventId!=''"
|
|
|
|
+ @click="finUserByDept">选择
|
|
|
|
+ </el-button>
|
|
|
|
+ <el-table
|
|
|
|
+ :data="dutysystemTableData"
|
|
|
|
+ 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>
|
|
|
|
+ </template>
|
|
|
|
+ </el-table-column>
|
|
|
|
+ <el-table-column prop="name" label="姓名">
|
|
|
|
+ <template slot-scope="scope">
|
|
|
|
+ <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="岗位">
|
|
|
|
+ <template slot-scope="scope">
|
|
|
|
+ <el-input v-model="scope.row.post" placeholder="岗位"></el-input>
|
|
|
|
+ </template>
|
|
|
|
+ </el-table-column>
|
|
|
|
+ <el-table-column prop="telphone" label="手机号码">
|
|
|
|
+ <template slot-scope="scope">
|
|
|
|
+ <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="操作">
|
|
|
|
+ <template slot-scope="scope">
|
|
|
|
+ <el-button
|
|
|
|
+ size="mini"
|
|
|
|
+ type="danger"
|
|
|
|
+ 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>-->
|
|
|
|
+ </template>
|
|
|
|
+ </el-table-column>
|
|
|
|
+ </el-table>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ <el-button size="mini" type="primary" class="fr_button" @click="sendMsg">发送短信
|
|
|
|
+ </el-button>
|
|
|
|
+ <div style="clear: both;"></div>
|
|
|
|
+ </el-form>
|
|
|
|
+ </el-dialog>
|
|
|
|
+ <!-- 会议弹窗 end -->
|
|
<el-dialog title="火险报告" :visible.sync="showEventConfirm_gd" v-if="showEventConfirm_gd" width="100%"
|
|
<el-dialog title="火险报告" :visible.sync="showEventConfirm_gd" v-if="showEventConfirm_gd" width="100%"
|
|
class="top-dialog"
|
|
class="top-dialog"
|
|
@close="cancelEventConfirm_gd()">
|
|
@close="cancelEventConfirm_gd()">
|
|
@@ -1008,6 +1091,7 @@ import {
|
|
dutysystemList,
|
|
dutysystemList,
|
|
dutysystemAdd,
|
|
dutysystemAdd,
|
|
dutysystemRemove,
|
|
dutysystemRemove,
|
|
|
|
+ sendMessage,
|
|
userFeginlist,
|
|
userFeginlist,
|
|
eventHandling,
|
|
eventHandling,
|
|
initByCameras
|
|
initByCameras
|
|
@@ -1196,6 +1280,7 @@ export default {
|
|
visuForestCloudYuAnBo: null,
|
|
visuForestCloudYuAnBo: null,
|
|
eventDialog: false,
|
|
eventDialog: false,
|
|
showResponsibilityDialog: false,//责任制弹窗
|
|
showResponsibilityDialog: false,//责任制弹窗
|
|
|
|
+ showMeetingMsgDialog: false,//发送会议短信弹窗
|
|
depteventList: [],//责任制部门列表
|
|
depteventList: [],//责任制部门列表
|
|
iconCurrentIndex: '',
|
|
iconCurrentIndex: '',
|
|
dutysystemDeptName: '',
|
|
dutysystemDeptName: '',
|
|
@@ -1350,6 +1435,13 @@ export default {
|
|
this.iconCurrentIndex = ''
|
|
this.iconCurrentIndex = ''
|
|
this.showResponsibilityDialog = false
|
|
this.showResponsibilityDialog = false
|
|
},
|
|
},
|
|
|
|
+ closeMeetingMsgDialog() {//会议弹窗关闭
|
|
|
|
+ this.dutysystemTableData = []
|
|
|
|
+ this.dutysystemDeptName = ''
|
|
|
|
+ this.depteventId = ''
|
|
|
|
+ this.iconCurrentIndex = ''
|
|
|
|
+ this.showMeetingMsgDialog = false
|
|
|
|
+ },
|
|
addResponsibilityDialog() {//责任制保存
|
|
addResponsibilityDialog() {//责任制保存
|
|
let reg_user = /^[\u4e00-\u9fa5]{2,4}$/; //2-4个中文字符正则
|
|
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位手机号码正则
|
|
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位手机号码正则
|
|
@@ -1456,7 +1548,7 @@ export default {
|
|
click: '',
|
|
click: '',
|
|
parameter: '',
|
|
parameter: '',
|
|
keepBindPopup: false,
|
|
keepBindPopup: false,
|
|
- isAggregation: false
|
|
|
|
|
|
+ isAggregation: true
|
|
}
|
|
}
|
|
if (res.data.length > 50) {
|
|
if (res.data.length > 50) {
|
|
markersMap.isAggregation = true
|
|
markersMap.isAggregation = true
|
|
@@ -1543,7 +1635,7 @@ export default {
|
|
this.sendDeptName = null
|
|
this.sendDeptName = null
|
|
this.sendUserFegin = []
|
|
this.sendUserFegin = []
|
|
this.sendEventType = null
|
|
this.sendEventType = null
|
|
- this.sendHuoZaiBanJing = null
|
|
|
|
|
|
+ this.sendHuoZaiBanJing = 0
|
|
this.sendGuanLianYuAn = null
|
|
this.sendGuanLianYuAn = null
|
|
this.longitude = null
|
|
this.longitude = null
|
|
this.latitude = null
|
|
this.latitude = null
|
|
@@ -1566,7 +1658,7 @@ export default {
|
|
this.sendDeptName = null
|
|
this.sendDeptName = null
|
|
this.sendUserFegin = []
|
|
this.sendUserFegin = []
|
|
this.sendEventType = null
|
|
this.sendEventType = null
|
|
- this.sendHuoZaiBanJing = null
|
|
|
|
|
|
+ this.sendHuoZaiBanJing = 0
|
|
this.sendGuanLianYuAn = null
|
|
this.sendGuanLianYuAn = null
|
|
this.sendTaskTitle = null
|
|
this.sendTaskTitle = null
|
|
this.sendTaskSource = null
|
|
this.sendTaskSource = null
|
|
@@ -1804,28 +1896,30 @@ export default {
|
|
})
|
|
})
|
|
|
|
|
|
} else if (eventStatus == 'gd') {
|
|
} 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(that.eventType == 1){
|
|
|
|
+ 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(!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){
|
|
if(that.table2.porosities == '' || that.table2.porosities==null){
|
|
- that.$message.error(`疏密度不能为空!`)
|
|
|
|
- return
|
|
|
|
|
|
+ that.$message.error(`疏密度不能为空!`)
|
|
|
|
+ return
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
//事件处理流程--归档
|
|
//事件处理流程--归档
|
|
@@ -1865,10 +1959,6 @@ export default {
|
|
return
|
|
return
|
|
}
|
|
}
|
|
if (eventStatus == 'qs') {
|
|
if (eventStatus == 'qs') {
|
|
- if (that.sendHuoZaiBanJing == '' || that.sendHuoZaiBanJing == null) {
|
|
|
|
- that.$message.error(`请输入火灾半径!`)
|
|
|
|
- return
|
|
|
|
- }
|
|
|
|
if (that.sendEventType == '' || that.sendEventType == null) {
|
|
if (that.sendEventType == '' || that.sendEventType == null) {
|
|
that.$message.error(`请选择事件类型!`)
|
|
that.$message.error(`请选择事件类型!`)
|
|
return
|
|
return
|
|
@@ -1956,7 +2046,7 @@ export default {
|
|
click: '',
|
|
click: '',
|
|
parameter: '',
|
|
parameter: '',
|
|
keepBindPopup: false,
|
|
keepBindPopup: false,
|
|
- isAggregation: false,
|
|
|
|
|
|
+ isAggregation: true,
|
|
radius: 0
|
|
radius: 0
|
|
}
|
|
}
|
|
if (res.data.catalogue.eventStatusValue == 'forest_event_status_1' && res.data.catalogue.urgeCount == 0) {
|
|
if (res.data.catalogue.eventStatusValue == 'forest_event_status_1' && res.data.catalogue.urgeCount == 0) {
|
|
@@ -1994,7 +2084,7 @@ export default {
|
|
click: 'preview',
|
|
click: 'preview',
|
|
parameter: {code:res.data.centermonitorTCamera.cameraCode,type:res.data.centermonitorTCamera.cameraFactory},
|
|
parameter: {code:res.data.centermonitorTCamera.cameraCode,type:res.data.centermonitorTCamera.cameraFactory},
|
|
keepBindPopup: false,
|
|
keepBindPopup: false,
|
|
- isAggregation: false,
|
|
|
|
|
|
+ isAggregation: true,
|
|
radius: 0
|
|
radius: 0
|
|
}
|
|
}
|
|
markersMap.bindPopupHtml = '<div class="map-tip">' +
|
|
markersMap.bindPopupHtml = '<div class="map-tip">' +
|
|
@@ -2042,7 +2132,7 @@ export default {
|
|
click: '',
|
|
click: '',
|
|
parameter: '',
|
|
parameter: '',
|
|
keepBindPopup: false,
|
|
keepBindPopup: false,
|
|
- isAggregation: false,
|
|
|
|
|
|
+ isAggregation: true,
|
|
radius: 0
|
|
radius: 0
|
|
}
|
|
}
|
|
if (res.data.catalogue.eventStatusValue == 'forest_event_status_1' && res.data.catalogue.urgeCount == 0) {
|
|
if (res.data.catalogue.eventStatusValue == 'forest_event_status_1' && res.data.catalogue.urgeCount == 0) {
|
|
@@ -2082,7 +2172,7 @@ export default {
|
|
click: 'preview',
|
|
click: 'preview',
|
|
parameter: {code:res.data.centermonitorTCamera.cameraCode,type:res.data.centermonitorTCamera.cameraFactory},
|
|
parameter: {code:res.data.centermonitorTCamera.cameraCode,type:res.data.centermonitorTCamera.cameraFactory},
|
|
keepBindPopup: false,
|
|
keepBindPopup: false,
|
|
- isAggregation: false,
|
|
|
|
|
|
+ isAggregation: true,
|
|
radius: 0
|
|
radius: 0
|
|
}
|
|
}
|
|
markersMap.bindPopupHtml = '<div class="map-tip">' +
|
|
markersMap.bindPopupHtml = '<div class="map-tip">' +
|
|
@@ -2197,7 +2287,7 @@ export default {
|
|
userName: newResponse.userName,
|
|
userName: newResponse.userName,
|
|
userPwd: newResponse.userPwd,
|
|
userPwd: newResponse.userPwd,
|
|
token: '',
|
|
token: '',
|
|
- https: 0
|
|
|
|
|
|
+ https: 1
|
|
})
|
|
})
|
|
this.ws.on('loginState', (res) => {
|
|
this.ws.on('loginState', (res) => {
|
|
this.isLogin = res
|
|
this.isLogin = res
|
|
@@ -2233,7 +2323,8 @@ export default {
|
|
this.$Message.info('正在登陆客户端,请稍等......')
|
|
this.$Message.info('正在登陆客户端,请稍等......')
|
|
return false
|
|
return false
|
|
}
|
|
}
|
|
- this.ws.openVideo(cameraParams)
|
|
|
|
|
|
+ const param = [cameraParams]
|
|
|
|
+ this.ws.openVideo(param)
|
|
},
|
|
},
|
|
/** ----------------------------------摄像头预览结束------------------------------------- */
|
|
/** ----------------------------------摄像头预览结束------------------------------------- */
|
|
|
|
|
|
@@ -2369,13 +2460,47 @@ export default {
|
|
},
|
|
},
|
|
/** ----------------------------------海康摄像头预览结束------------------------------------- */
|
|
/** ----------------------------------海康摄像头预览结束------------------------------------- */
|
|
/** ----------------------------------视频会议开始------------------------------------- */
|
|
/** ----------------------------------视频会议开始------------------------------------- */
|
|
|
|
+ sendMsg() {// 视频会议发送短信
|
|
|
|
+ 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,eventId:this.eventId}
|
|
|
|
+ sendMessage(param).then(res => {
|
|
|
|
+ this.$message.success(res.msg);
|
|
|
|
+ this.dutysystemSelect(this.iconCurrentIndex, this.dutysystemDeptName, this.depteventId);
|
|
|
|
+ this.showMeetingMsgDialog = false;
|
|
|
|
+ this.joinMeeting();
|
|
|
|
+ })
|
|
|
|
+ },
|
|
joinMeeting(){
|
|
joinMeeting(){
|
|
let hwMeetingUrl;
|
|
let hwMeetingUrl;
|
|
selectConfigKey('hwMeetingUrl').then(res => {
|
|
selectConfigKey('hwMeetingUrl').then(res => {
|
|
hwMeetingUrl = res.data
|
|
hwMeetingUrl = res.data
|
|
- window.open(hwMeetingUrl+"/"+this.eventId+"/"+this.eventName+"的会议"+"/"+Cookies.get("nickName"));
|
|
|
|
|
|
+ window.open(hwMeetingUrl+"/joinConferences/"+this.eventId+"/"+this.eventName+"的会议"+"/"+Cookies.get("nickName"));
|
|
})
|
|
})
|
|
- }
|
|
|
|
|
|
+ },
|
|
|
|
+ Meeting() {//弹出发送会议短信弹窗
|
|
|
|
+ let param = { eventCode: this.eventCode }
|
|
|
|
+ centereventtdepteventList(param).then(res => {
|
|
|
|
+ this.depteventList = res.data
|
|
|
|
+ this.showMeetingMsgDialog = true
|
|
|
|
+ this.initDutysystemTableData();
|
|
|
|
+ })
|
|
|
|
+ },
|
|
/** ----------------------------------视频会议结束------------------------------------- */
|
|
/** ----------------------------------视频会议结束------------------------------------- */
|
|
}
|
|
}
|
|
}
|
|
}
|