提交应急
This commit is contained in:
parent
fa31c452ba
commit
36db958732
@ -30,7 +30,7 @@
|
||||
var that = this
|
||||
uni.getSystemInfo({
|
||||
success(res) {
|
||||
that.mobileTopHeight = res.statusBarHeight
|
||||
that.mobileTopHeight = res.statusBarHeight ? res.statusBarHeight : 0;
|
||||
uni.setStorageSync('systemInfo',res)
|
||||
console.log(res)
|
||||
}
|
||||
|
||||
@ -189,7 +189,13 @@
|
||||
}
|
||||
},
|
||||
"sdkConfigs" : {
|
||||
"maps" : {}
|
||||
"maps" : {
|
||||
"amap" : {
|
||||
"key" : "3b060f3a0ce4bafebeba1621dcd99c31",
|
||||
"securityJsCode" : "",
|
||||
"serviceHost" : ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"router" : {
|
||||
"mode" : "hash",
|
||||
|
||||
14
pages.json
14
pages.json
@ -2623,6 +2623,20 @@
|
||||
{
|
||||
"navigationBarTitleText" : ""
|
||||
}
|
||||
},
|
||||
{
|
||||
"path" : "pages/projectEnd/emergencyDisposal/mymaps",
|
||||
"style" :
|
||||
{
|
||||
"navigationBarTitleText" : ""
|
||||
}
|
||||
},
|
||||
{
|
||||
"path" : "pages/projectEnd/emergencyDisposal/reliefApprove",
|
||||
"style" :
|
||||
{
|
||||
"navigationBarTitleText" : ""
|
||||
}
|
||||
}
|
||||
],
|
||||
// "subPackages":[{
|
||||
|
||||
@ -46,14 +46,14 @@
|
||||
</view>
|
||||
<view class="uploadImg">
|
||||
<text>视频(mp4)附件:</text>
|
||||
<view v-if="videoFileList.length>0" class="imgBox flex2" style="height:28px;"
|
||||
<view v-if="videoFileList.length>0" class="imgBox flex2"
|
||||
v-for="(item,index) in videoFileList" :key="index">
|
||||
<view
|
||||
style="color: #4181FE;width: 28%;white-space: nowrap; overflow: hidden;text-overflow: ellipsis;"
|
||||
style="color: #4181FE;width: 100%;white-space: nowrap; overflow: hidden;text-overflow: ellipsis;"
|
||||
@click="playVideo(url_config+'image/'+item.url,'video')">
|
||||
{{item.name}}
|
||||
</view>
|
||||
<view @click="deleteImg(item,2)" style="margin: 5px;color: gray;left: 50%;"
|
||||
<view @click="deleteImg(item,2)" style="margin: 5px;color: gray;right: 0%;"
|
||||
class="deleteImg">×
|
||||
</view>
|
||||
</view>
|
||||
@ -248,27 +248,12 @@
|
||||
filePath: tempFilePaths[0],
|
||||
name: 'files',
|
||||
success: (uploadFileRes) => {
|
||||
console.log(uploadFileRes);
|
||||
let data = {
|
||||
name: JSON.parse(uploadFileRes.data).data[0].filename,
|
||||
url: JSON.parse(uploadFileRes.data).data[0].imageUrl
|
||||
};
|
||||
that.imgFileList.push(data)
|
||||
uni.getImageInfo({
|
||||
src: tempFilePaths[0],
|
||||
success: (resInfo) => {
|
||||
console.log('传过去啦 resInfo', resInfo)
|
||||
that.imgList = {
|
||||
imgUrl: tempFilePaths[0],
|
||||
imgWidth: resInfo.width,
|
||||
imgHeight: resInfo.height,
|
||||
// team:'班组人员',
|
||||
// name: '张三'
|
||||
}
|
||||
that.openImg = true
|
||||
}
|
||||
})
|
||||
that.openImg = false
|
||||
|
||||
}
|
||||
});
|
||||
}
|
||||
@ -359,40 +344,52 @@
|
||||
getAddress() {
|
||||
const that = this;
|
||||
console.log("获取地址")
|
||||
uni.getLocation({
|
||||
type: 'gcj02',
|
||||
// type: 'wgs84',
|
||||
geocode: true, //设置该参数为true可直接获取经纬度及城市信息
|
||||
isHighAccuracy: "true",
|
||||
accuracy: "best", // 精度值为20m
|
||||
success: function(res) {
|
||||
console.log(res)
|
||||
// const latitude = parseFloat(res.latitude);
|
||||
// const longitude = parseFloat(res.longitude);
|
||||
uni.chooseLocation({
|
||||
success: function (res) {
|
||||
// console.log('位置名称:' + res.name);
|
||||
// console.log('详细地址:' + res.address);
|
||||
// console.log('纬度:' + res.latitude);
|
||||
// console.log('经度:' + res.longitude);
|
||||
that.emergencyInfo.incidentSite = res.address;
|
||||
that.emergencyInfo.longitude = parseFloat(res.longitude);
|
||||
that.emergencyInfo.latitude = parseFloat(res.latitude);
|
||||
that.addressList = [
|
||||
res.latitude.address.province,
|
||||
res.latitude.address.city,
|
||||
res.latitude.address.district,
|
||||
res.latitude.address.street,
|
||||
res.latitude.address.streetNum,
|
||||
res.latitude.address.city,
|
||||
res.latitude.address.poiName,
|
||||
res.latitude.address.cityCode,
|
||||
]
|
||||
that.emergencyInfo.incidentSite = that.addressList.map(item => item).join('、')
|
||||
console.log(that.emergencyInfo.incidentSite)
|
||||
|
||||
// that.addrDel = res;
|
||||
},
|
||||
fail: function() {
|
||||
uni.showToast({
|
||||
title: '获取地址失败,将导致部分功能不可用',
|
||||
icon: 'none'
|
||||
});
|
||||
}
|
||||
});
|
||||
// uni.getLocation({
|
||||
// type: 'gcj02',
|
||||
// // type: 'wgs84',
|
||||
// geocode: true, //设置该参数为true可直接获取经纬度及城市信息
|
||||
// isHighAccuracy: "true",
|
||||
// accuracy: "best", // 精度值为20m
|
||||
// success: function(res) {
|
||||
// console.log(res)
|
||||
// // const latitude = parseFloat(res.latitude);
|
||||
// // const longitude = parseFloat(res.longitude);
|
||||
// that.emergencyInfo.longitude =
|
||||
// that.emergencyInfo.latitude = parseFloat(res.latitude);
|
||||
// that.addressList = [
|
||||
// res.address.province,
|
||||
// res.address.city,
|
||||
// res.address.district,
|
||||
// res.address.street,
|
||||
// res.address.streetNum,
|
||||
// res.address.city,
|
||||
// res.address.poiName,
|
||||
// res.address.cityCode,
|
||||
// ]
|
||||
// that.emergencyInfo.incidentSite = that.addressList.map(item => item).join('、')
|
||||
// console.log(that.emergencyInfo.incidentSite)
|
||||
// console.log(66666666);
|
||||
|
||||
// // that.addrDel = res;
|
||||
// },
|
||||
// fail: function() {
|
||||
// uni.showToast({
|
||||
// title: '获取地址失败,将导致部分功能不可用',
|
||||
// icon: 'none'
|
||||
// });
|
||||
// }
|
||||
// });
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -421,7 +418,7 @@
|
||||
}
|
||||
|
||||
.emergencyalarm {
|
||||
padding: 64rpx 24rpx 120rpx 24rpx;
|
||||
padding: 88rpx 24rpx 120rpx 24rpx;
|
||||
|
||||
.item-boxs {
|
||||
.item-box {
|
||||
@ -594,6 +591,8 @@
|
||||
position: relative;
|
||||
margin-right: 30rpx;
|
||||
margin-bottom: 16rpx;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
|
||||
.img {
|
||||
width: 100%;
|
||||
|
||||
@ -57,9 +57,9 @@
|
||||
.image-error {
|
||||
width: 145.52rpx;
|
||||
height: 145.52rpx;
|
||||
background-image: url(/static/signin-error.png);
|
||||
/* background-image: url(/static/signin-error.png);
|
||||
background-repeat: no-repeat;
|
||||
background-size: 100% 100%;
|
||||
background-size: 100% 100%; */
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
|
||||
@ -58,7 +58,7 @@
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="addImgBox" @click="uploadImg(1,eIndex)" v-if="item.imgFileList.length<5">
|
||||
<view class="addImgBox" @click="uploadImg(1,eIndex)" v-if="item.imgFileList.length<1">
|
||||
<image src="/static/icon-add.png" class="icon-add"></image>
|
||||
</view>
|
||||
</view>
|
||||
@ -93,7 +93,7 @@
|
||||
</view>
|
||||
</view>
|
||||
<view class="rescue-item_add" @click="addRescue()">
|
||||
<image src="/static/icon-add.png" class="icon-add"></image> 新增处置记录
|
||||
<image src="/static/icon-add.png" class="icon-add"></image> 新增救援记录
|
||||
</view>
|
||||
<view class="addSaveBtn" @click="addSaveBtn">提交保存</view>
|
||||
</view>
|
||||
|
||||
@ -29,24 +29,29 @@
|
||||
</view>
|
||||
<view class="detail">
|
||||
<text>应急详情:</text>
|
||||
<text>{{emergencyDetail.incidentSite}}</text>
|
||||
<text
|
||||
style="word-wrap:break-word; word-break:break-all;">{{emergencyDetail.emergencyDetail}}</text>
|
||||
</view>
|
||||
<view>
|
||||
<text>处置状态:</text>
|
||||
<text class="color-ea3">
|
||||
<text>救援状态:</text>
|
||||
<text v-if="emergencyDetail.dispositionStatus === 1"
|
||||
style="color:#f56c6c;font-weight:bold;">待救援</text>
|
||||
<text v-if="emergencyDetail.dispositionStatus === 2"
|
||||
style="color:#5181f6;font-weight:bold;">救援中</text>
|
||||
<text v-if="emergencyDetail.dispositionStatus === 3"
|
||||
style="color:#008000;font-weight:bold;">已救援</text>
|
||||
<!-- <text class="color-ea3">
|
||||
{{emergencyDetail.dispositionStatus == 1 ? '待救援' : emergencyDetail.dispositionStatus == 2 ? '救援中' :'已救援' }}
|
||||
</text>
|
||||
</text> -->
|
||||
</view>
|
||||
<view>
|
||||
<text>现场情况视频:</text>
|
||||
<view class="imgBox flex2"
|
||||
v-for="(item,index) in emergencyDetail.liveVideoSituation && JSON.parse(emergencyDetail.livePicture).length>0 && JSON.parse(emergencyDetail.liveVideoSituation)"
|
||||
:key="index">
|
||||
<view
|
||||
style="color: #4181FE;width: 50%;white-space: nowrap; overflow: hidden;text-overflow: ellipsis;"
|
||||
@click="playVideo(item.url,'video')">
|
||||
<view style="color: #4181FE;white-space: nowrap; overflow: hidden;text-overflow: ellipsis;"
|
||||
@click="playVideo(url_config+'image/'+item.url,'video')">
|
||||
{{item.name}}
|
||||
|
||||
</view>
|
||||
</view>
|
||||
<!-- url_config+'image/'+ -->
|
||||
@ -60,7 +65,8 @@
|
||||
</view>
|
||||
<view>
|
||||
<text>经纬度:</text>
|
||||
<text>{{emergencyDetail.longitude}},{{emergencyDetail.latitude}}</text>
|
||||
<text>{{emergencyDetail.longitude}}<text
|
||||
v-if="emergencyDetail.longitude && emergencyDetail.latitude">,</text>{{emergencyDetail.latitude}}</text>
|
||||
</view>
|
||||
<view>
|
||||
<text>现场情况图片:</text>
|
||||
@ -68,7 +74,8 @@
|
||||
<view class="imgBox"
|
||||
v-for="(item,index) in emergencyDetail.livePicture && JSON.parse(emergencyDetail.livePicture).length>0 && JSON.parse(emergencyDetail.livePicture)"
|
||||
:key="index">
|
||||
<image :src="item.url" class="img" @click="previewImage(item.url)">
|
||||
<image :src="url_config+'image/'+item.url" style="width: 75px;height: 50px;" class="img"
|
||||
@click="previewImage(item.url)">
|
||||
</image>
|
||||
</view>
|
||||
</view>
|
||||
@ -86,11 +93,17 @@
|
||||
<view class="rescue-detail data">
|
||||
<view>
|
||||
<text>处置资料:</text>
|
||||
<text class="color-518">4654.mp4</text>
|
||||
<text v-if="emergencyInfo.disposalInformation" style="cursor: pointer;" class="color-518"
|
||||
@click="downloadReport(emergencyInfo.disposalInformation)">
|
||||
{{ JSON.parse(emergencyInfo.disposalInformation).map(item => item.name).join("、") }}
|
||||
</text>
|
||||
</view>
|
||||
<view>
|
||||
<text>指导文件:</text>
|
||||
<text class="color-518">4654.mp4</text>
|
||||
<text v-if="emergencyInfo.guidanceDocument" style="cursor: pointer;" class="color-518"
|
||||
@click="downloadReport(emergencyInfo.guidanceDocument)">
|
||||
{{ JSON.parse(emergencyInfo.guidanceDocument).map(item => item.name).join("、") }}
|
||||
</text>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
@ -172,11 +185,11 @@
|
||||
</view>
|
||||
<view v-if="emergencyDetail.dispositionStatus == 3"
|
||||
style="color: #5181f6; cursor: pointer; height: 88rpx; justify-content: center; align-items: center;display: flex;"
|
||||
@click="downloadReport()">
|
||||
@click="downloadReport(this.imgList)">
|
||||
下载处置报告
|
||||
</view>
|
||||
</view>
|
||||
<view class="lable-absolute">
|
||||
<view class="lable-absolute" @click="goMaps()">
|
||||
<image src="/static/emergencywz.png"></image>
|
||||
<text>应急物资</text>
|
||||
</view>
|
||||
@ -196,6 +209,8 @@
|
||||
emergencyDetail: {},
|
||||
imageValue: [],
|
||||
imgList: [],
|
||||
emergencyTypeList: [],
|
||||
emergencyInfo: {},
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
@ -208,12 +223,13 @@
|
||||
|
||||
},
|
||||
onShow() {
|
||||
this.getEmergencyTypeList();
|
||||
this.getEmergencyRecordQueryById();
|
||||
},
|
||||
methods: {
|
||||
downloadReport() {
|
||||
const url = this.imgList[0].url;
|
||||
const fileName = this.imgList[0].name;
|
||||
downloadReport(row) {
|
||||
const url = row[0].url;
|
||||
const fileName = row[0].name;
|
||||
|
||||
fetch(url)
|
||||
.then(response => response.blob())
|
||||
@ -276,6 +292,21 @@
|
||||
// }
|
||||
|
||||
},
|
||||
getEmergencyTypeList() {
|
||||
let that = this;
|
||||
//获取我整改的巡查记录数量
|
||||
this.sendRequest({
|
||||
url: 'xmgl/xzEmergencyType/list',
|
||||
method: 'get',
|
||||
data: {
|
||||
projectSn: this.projectSn,
|
||||
},
|
||||
success: res => {
|
||||
console.log(res);
|
||||
that.emergencyTypeList = res.result;
|
||||
}
|
||||
})
|
||||
},
|
||||
//获取记录
|
||||
getEmergencyRecordQueryById() {
|
||||
let that = this;
|
||||
@ -290,16 +321,23 @@
|
||||
success: res => {
|
||||
console.log(res);
|
||||
that.emergencyDetail = res.result;
|
||||
const find = that.emergencyTypeList.find(item => item.id == res.result
|
||||
.emergencyTypeId);
|
||||
that.emergencyInfo = find ? find : {};
|
||||
this.imgList = res.result.disposalReport && JSON.parse(res.result.disposalReport);
|
||||
}
|
||||
})
|
||||
|
||||
},
|
||||
getnavigateTo(url) {
|
||||
uni.navigateTo({
|
||||
url,
|
||||
})
|
||||
},
|
||||
goMaps() {
|
||||
uni.navigateTo({
|
||||
url: `./mymaps?latitude=${this.emergencyDetail.latitude}&longitude=${this.emergencyDetail.longitude}`
|
||||
})
|
||||
},
|
||||
//查看视频
|
||||
playVideo(url, type) {
|
||||
uni.navigateTo({
|
||||
@ -404,7 +442,7 @@
|
||||
}
|
||||
|
||||
.disposal-detail {
|
||||
margin: 12% 0;
|
||||
margin: 88rpx 0;
|
||||
padding: 0 30rpx;
|
||||
position: relative;
|
||||
|
||||
@ -442,7 +480,7 @@
|
||||
// margin-top: 15%;
|
||||
font-size: 14px;
|
||||
color: #000000;
|
||||
padding: 0 8rpx;
|
||||
padding: 0 8rpx 30rpx;
|
||||
|
||||
view {
|
||||
display: flex;
|
||||
|
||||
@ -59,7 +59,7 @@
|
||||
<view class="overEmergency">处置台账</view>
|
||||
<scroll-view style="height: 100%;" scroll-y @scrolltoupper="upper" @scrolltolower="lower" @scroll="scroll">
|
||||
<view class="modulesList">
|
||||
<view class="menu" v-for="item in dataList" :key="item.id" @click="getnavigateTo(`./detail?id=${item.id}`)">
|
||||
<view class="menu" v-for="item in dataList" :key="item.id" @click="getnavigateTo(item.id)">
|
||||
<view>
|
||||
<text>报警人员姓名:</text>
|
||||
<text>{{item.alarmPersonName}}</text>
|
||||
@ -168,8 +168,13 @@
|
||||
dataList: [],
|
||||
total: 0,
|
||||
page:1,
|
||||
|
||||
getGoId:-1,
|
||||
}
|
||||
},
|
||||
onLoad(option) {
|
||||
this.getGoId = option.id;
|
||||
},
|
||||
mounted() {
|
||||
this.getTime()
|
||||
// this.getListData();
|
||||
@ -242,6 +247,7 @@
|
||||
projectSn: this.projectSn,
|
||||
pageNo: this.page,
|
||||
pageSize: 10,
|
||||
inDispositionStatus:this.getGoId == 2 ? "2,3" : "1,2,3",
|
||||
},
|
||||
success: res => {
|
||||
console.log(res)
|
||||
@ -287,9 +293,16 @@
|
||||
url: "./analysisAlarm"
|
||||
})
|
||||
},
|
||||
getnavigateTo(url) {
|
||||
getnavigateTo(id) {
|
||||
if(this.getGoId == 2){
|
||||
uni.navigateTo({
|
||||
url:`./reliefApprove?id=${id}`,
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
uni.navigateTo({
|
||||
url,
|
||||
url:`./detail?id=${id}`,
|
||||
})
|
||||
},
|
||||
}
|
||||
@ -299,6 +312,7 @@
|
||||
<style lang="scss" scoped>
|
||||
.emergencyDisposal {
|
||||
height: 100%;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.fixedheader {
|
||||
@ -321,7 +335,7 @@
|
||||
// box-sizing: border-box;
|
||||
border-radius: 10px;
|
||||
// border: 3px solid #fafbfc;
|
||||
margin: 17% 2% 11% 2%;
|
||||
margin: 88rpx 2% 11% 2%;
|
||||
padding: 3% 3%;
|
||||
|
||||
|
||||
@ -341,7 +355,7 @@
|
||||
|
||||
|
||||
.problemData {
|
||||
margin-top: 13%;
|
||||
margin-top: 4%;
|
||||
display: flex;
|
||||
background: linear-gradient(180deg, #FCF2D6 0%, #FFFFFF 50%);
|
||||
box-shadow: 0 8rpx 16rpx 0 rgba(219, 229, 255, 0.6);
|
||||
|
||||
61
pages/projectEnd/emergencyDisposal/mymaps.vue
Normal file
61
pages/projectEnd/emergencyDisposal/mymaps.vue
Normal file
@ -0,0 +1,61 @@
|
||||
<template>
|
||||
<view>
|
||||
<view class="page-body">
|
||||
<view class="page-section page-section-gap">
|
||||
<map style="width: 100%; height: 100%;" :markers="markersArr" :latitude="latitude"
|
||||
:longitude="longitude">
|
||||
</map>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
id: 0, // 使用 marker点击事件 需要填写id
|
||||
title: 'map',
|
||||
latitude: 39.909,
|
||||
longitude: 116.39742,
|
||||
projectSn: "",
|
||||
markersArr: [],
|
||||
}
|
||||
},
|
||||
onLoad(option) {
|
||||
this.latitude = option.latitude ? option.latitude : '39.909';
|
||||
this.longitude = option.longitude ? option.longitude : '116.39742';
|
||||
this.projectSn = JSON.parse(uni.getStorageSync('projectDetail')).projectSn;
|
||||
},
|
||||
methods: {
|
||||
//获取记录
|
||||
getListData() {
|
||||
let that = this;
|
||||
//获取我整改的巡查记录数量
|
||||
this.sendRequest({
|
||||
url: 'xmgl/xzEmergencyRecord/page',
|
||||
method: 'get',
|
||||
data: {
|
||||
projectSn: this.projectSn,
|
||||
},
|
||||
success: res => {
|
||||
console.log(res)
|
||||
that.markersArr = res.result.filter(item => item.longitude || item.latitude).map(
|
||||
(item, index) => {
|
||||
return {
|
||||
id: index + 1,
|
||||
latitude: item.latitude ? item.latitude : 0,
|
||||
longitude: item.longitude ? item.longitude : 0,
|
||||
title: item.goodsName
|
||||
}
|
||||
});
|
||||
}
|
||||
})
|
||||
},
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style>
|
||||
|
||||
</style>
|
||||
570
pages/projectEnd/emergencyDisposal/reliefApprove.vue
Normal file
570
pages/projectEnd/emergencyDisposal/reliefApprove.vue
Normal file
@ -0,0 +1,570 @@
|
||||
<template>
|
||||
<view class="emergencyDisposal">
|
||||
<headers class="fixedheader" :showBack="true">
|
||||
<view class="headerName">
|
||||
处置详情
|
||||
</view>
|
||||
</headers>
|
||||
<view class="disposal-detail">
|
||||
<view class="rescue">
|
||||
<view class="title">
|
||||
基本信息
|
||||
</view>
|
||||
<view class="rescue-detail">
|
||||
<view>
|
||||
<text>报警人员姓名:</text>
|
||||
<text>{{emergencyDetail.alarmPersonName}}</text>
|
||||
</view>
|
||||
<view>
|
||||
<text>所属企业:</text>
|
||||
<text>{{emergencyDetail.enterpriseName}}</text>
|
||||
</view>
|
||||
<view>
|
||||
<text>应急类型:</text>
|
||||
<text>{{emergencyDetail.emergencyTypeName}}</text>
|
||||
</view>
|
||||
<view>
|
||||
<text>所属班组/部门:</text>
|
||||
<text>{{emergencyDetail.teamName}}</text>
|
||||
</view>
|
||||
<view class="detail">
|
||||
<text>应急详情:</text>
|
||||
<text
|
||||
style="word-wrap:break-word; word-break:break-all;">{{emergencyDetail.emergencyDetail}}</text>
|
||||
</view>
|
||||
<view>
|
||||
<text>救援状态:</text>
|
||||
<text v-if="emergencyDetail.dispositionStatus === 1"
|
||||
style="color:#f56c6c;font-weight:bold;">待救援</text>
|
||||
<text v-if="emergencyDetail.dispositionStatus === 2"
|
||||
style="color:#5181f6;font-weight:bold;">救援中</text>
|
||||
<text v-if="emergencyDetail.dispositionStatus === 3"
|
||||
style="color:#008000;font-weight:bold;">已救援</text>
|
||||
<!-- <text class="color-ea3">
|
||||
{{emergencyDetail.dispositionStatus == 1 ? '待救援' : emergencyDetail.dispositionStatus == 2 ? '救援中' :'已救援' }}
|
||||
</text> -->
|
||||
</view>
|
||||
<view>
|
||||
<text>现场情况视频:</text>
|
||||
<view class="imgBox flex2"
|
||||
v-for="(item,index) in emergencyDetail.liveVideoSituation && JSON.parse(emergencyDetail.livePicture).length>0 && JSON.parse(emergencyDetail.liveVideoSituation)"
|
||||
:key="index">
|
||||
<view style="color: #4181FE;white-space: nowrap; overflow: hidden;text-overflow: ellipsis;"
|
||||
@click="playVideo(url_config+'image/'+item.url,'video')">
|
||||
{{item.name}}
|
||||
</view>
|
||||
</view>
|
||||
<!-- url_config+'image/'+ -->
|
||||
<!-- <text class="color-518">
|
||||
{{emergencyDetail.liveVideoSituation}}
|
||||
</text> -->
|
||||
</view>
|
||||
<view>
|
||||
<text>报警时间:</text>
|
||||
<text>{{emergencyDetail.alarmTime}}</text>
|
||||
</view>
|
||||
<view>
|
||||
<text>经纬度:</text>
|
||||
<text>{{emergencyDetail.longitude}}<text
|
||||
v-if="emergencyDetail.longitude && emergencyDetail.latitude">,</text>{{emergencyDetail.latitude}}</text>
|
||||
</view>
|
||||
<view>
|
||||
<text>现场情况图片:</text>
|
||||
<view class="uni-form-input imgBox_wrap">
|
||||
<view class="imgBox"
|
||||
v-for="(item,index) in emergencyDetail.livePicture && JSON.parse(emergencyDetail.livePicture).length>0 && JSON.parse(emergencyDetail.livePicture)"
|
||||
:key="index">
|
||||
<image :src="url_config+'image/'+item.url" style="width: 75px;height: 50px;" class="img"
|
||||
@click="previewImage(item.url)">
|
||||
</image>
|
||||
</view>
|
||||
</view>
|
||||
<!-- <text>
|
||||
<image class="image" :src="emergencyDetail.livePicture"></image>
|
||||
</text> -->
|
||||
</view>
|
||||
</div>
|
||||
</view>
|
||||
</view>
|
||||
<view class="rescue">
|
||||
<view class="title">
|
||||
救援资料
|
||||
</view>
|
||||
<view class="rescue-detail data">
|
||||
<view>
|
||||
<text>处置资料:</text>
|
||||
<text v-if="emergencyInfo.disposalInformation" style="cursor: pointer;" class="color-518"
|
||||
@click="downloadReport(emergencyInfo.disposalInformation)">
|
||||
{{ JSON.parse(emergencyInfo.disposalInformation).map(item => item.name).join("、") }}
|
||||
</text>
|
||||
</view>
|
||||
<view>
|
||||
<text>指导文件:</text>
|
||||
<text v-if="emergencyInfo.guidanceDocument" style="cursor: pointer;" class="color-518"
|
||||
@click="downloadReport(emergencyInfo.guidanceDocument)">
|
||||
{{ JSON.parse(emergencyInfo.guidanceDocument).map(item => item.name).join("、") }}
|
||||
</text>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="rescue">
|
||||
<view class="title">
|
||||
救援情况
|
||||
<text class="color-518" v-if="emergencyDetail.incidentClosedStatus == 2">事故已关闭</text>
|
||||
</view>
|
||||
<view class="rescue-detail">
|
||||
<view class="rescue-item" v-for="item in emergencyDetail.situations" :key="item.id">
|
||||
<!-- <view class="rescue-detail data condition">
|
||||
</view> -->
|
||||
<view>
|
||||
<text>处置人:</text>
|
||||
<text>{{item.disposalPersonName}}</text>
|
||||
</view>
|
||||
<view style="flex-direction: column;">
|
||||
<text>现场情况视频:</text>
|
||||
<view v-if="item.liveVideoSituation && JSON.parse(item.liveVideoSituation).length>0"
|
||||
class="imgBox flex2" v-for="(ele,index) in JSON.parse(item.liveVideoSituation)"
|
||||
:key="index">
|
||||
<view
|
||||
style="color: #4181FE;width: 50%;white-space: nowrap; overflow: hidden;text-overflow: ellipsis;"
|
||||
@click="playVideo(ele.url,'video')">
|
||||
{{ele.name}}
|
||||
</view>
|
||||
</view>
|
||||
<!-- <text class="color-518">4654.mp4</text> -->
|
||||
</view>
|
||||
<view>
|
||||
<text>处置说明:</text>
|
||||
<text>{{item.disposalSpecification}}</text>
|
||||
</view>
|
||||
<view>
|
||||
<text>现场图片:</text>
|
||||
<view class="uni-form-input imgBox_wrap" v-show="item.livePicture.length>0">
|
||||
<view class="imgBox" v-for="(item,index) in JSON.parse(item.livePicture)" :key="index">
|
||||
<!-- url_config+'image/'+ -->
|
||||
<image :src="item.url" class="image" @click="previewImage(item.url)">
|
||||
</image>
|
||||
</view>
|
||||
</view>
|
||||
<!-- <text>
|
||||
<image class="image" src="/static/aqjy.png"></image>
|
||||
</text> -->
|
||||
</view>
|
||||
<view>
|
||||
<text>处理完成时间:</text>
|
||||
<text>{{item.disposalCompletionTime}}</text>
|
||||
</view>
|
||||
</view>
|
||||
<!-- <view class="addSaveBtn" v-if="emergencyDetail.incidentClosedStatus == 1"
|
||||
@click="getnavigateTo(`./ImmediateRescue?id=${emergencyDetail.id}`)">
|
||||
立即救援
|
||||
</view> -->
|
||||
</view>
|
||||
</view>
|
||||
<view class="rescue" v-if="emergencyDetail.dispositionStatus == 3">
|
||||
<view class="title">
|
||||
处置报告
|
||||
</view>
|
||||
<view v-if="this.imgList && this.imgList.length > 0"
|
||||
style="color: #5181f6; cursor: pointer; height: 88rpx; justify-content: center; align-items: center;display: flex;"
|
||||
@click="downloadReport(this.imgList)">
|
||||
下载处置报告
|
||||
</view>
|
||||
</view>
|
||||
<view class="addSaveBtn" v-if="emergencyDetail.incidentClosedStatus == 1" @click="onSubmitAll()">
|
||||
关闭事故
|
||||
</view>
|
||||
<view class="lable-absolute" @click="goMaps()">
|
||||
<image src="/static/emergencywz.png"></image>
|
||||
<text>应急物资</text>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import headers from "../../../components/headers/headers.vue"
|
||||
var _self;
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
projectSn: "",
|
||||
id: "",
|
||||
emergencyDetail: {},
|
||||
imageValue: [],
|
||||
imgList: [],
|
||||
emergencyTypeList: [],
|
||||
emergencyInfo: {},
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
|
||||
},
|
||||
onLoad(options) {
|
||||
this.id = options.id;
|
||||
this.projectSn = JSON.parse(uni.getStorageSync('projectDetail')).projectSn;
|
||||
console.log(options);
|
||||
|
||||
},
|
||||
onShow() {
|
||||
this.getEmergencyTypeList();
|
||||
this.getEmergencyRecordQueryById();
|
||||
},
|
||||
methods: {
|
||||
downloadReport(row) {
|
||||
const url = row[0].url;
|
||||
const fileName = row[0].name;
|
||||
|
||||
fetch(url)
|
||||
.then(response => response.blob())
|
||||
.then(blob => {
|
||||
const link = document.createElement('a');
|
||||
link.href = URL.createObjectURL(blob);
|
||||
link.download = fileName;
|
||||
link.target = "_blank"; // 可选,如果希望在新窗口中下载文件,请取消注释此行
|
||||
link.click();
|
||||
});
|
||||
},
|
||||
onSubmitAll() {
|
||||
this.sendRequest({
|
||||
url: 'xmgl/xzEmergencyRecord/edit',
|
||||
method: 'post',
|
||||
data: {
|
||||
projectSn: this.projectSn,
|
||||
id: this.emergencyDetail.id,
|
||||
incidentClosedStatus: 2,
|
||||
situations: this.emergencyDetail.situations,
|
||||
disposalReport: JSON.stringify(this.imgList)
|
||||
},
|
||||
success: res => {
|
||||
console.log(res.result)
|
||||
if (res.code == 200) {
|
||||
uni.showToast({
|
||||
title: '提交成功',
|
||||
})
|
||||
uni.navigateBack()
|
||||
}
|
||||
}
|
||||
})
|
||||
},
|
||||
addSaveBtn() {
|
||||
this.sendRequest({
|
||||
url: 'xmgl/xzEmergencyRecord/edit',
|
||||
method: 'post',
|
||||
data: {
|
||||
projectSn: this.projectSn,
|
||||
id: this.emergencyDetail.id,
|
||||
dispositionStatus: 3,
|
||||
situations: this.emergencyDetail.situations,
|
||||
disposalReport: JSON.stringify(this.imgList)
|
||||
},
|
||||
success: res => {
|
||||
console.log(res.result)
|
||||
if (res.code == 200) {
|
||||
uni.showToast({
|
||||
title: '提交成功',
|
||||
})
|
||||
uni.navigateBack()
|
||||
}
|
||||
}
|
||||
})
|
||||
},
|
||||
deleteImgList(eIndex) {
|
||||
this.imgList.splice(eIndex, 1);
|
||||
},
|
||||
canversList(e) {
|
||||
const that = this;
|
||||
console.log(e);
|
||||
uni.uploadFile({
|
||||
url: that.url_config + 'upload/image', //仅为示例,非真实的接口地址
|
||||
filePath: e.tempFilePaths[0],
|
||||
name: 'files',
|
||||
success: (uploadFileRes) => {
|
||||
let data = {
|
||||
name: JSON.parse(uploadFileRes.data).data[0].filename,
|
||||
url: that.url_config + 'image/' + JSON.parse(uploadFileRes
|
||||
.data).data[0].imageUrl
|
||||
};
|
||||
that.imgList.push(data)
|
||||
console.log('传过去啦', this.imgList)
|
||||
}
|
||||
});
|
||||
// this.imgList = {
|
||||
// imgUrl: e.tempFiles[0].image.location,
|
||||
// imgWidth: e.tempFiles[0].image.width,
|
||||
// imgHeight: e.tempFiles[0].image.height,
|
||||
// team: this.teamList[this.teamindex].teamName,
|
||||
// name: this.teamList[this.teamindex].leaderName
|
||||
// }
|
||||
|
||||
},
|
||||
getEmergencyTypeList() {
|
||||
let that = this;
|
||||
//获取我整改的巡查记录数量
|
||||
this.sendRequest({
|
||||
url: 'xmgl/xzEmergencyType/list',
|
||||
method: 'get',
|
||||
data: {
|
||||
projectSn: this.projectSn,
|
||||
},
|
||||
success: res => {
|
||||
console.log(res);
|
||||
that.emergencyTypeList = res.result;
|
||||
}
|
||||
})
|
||||
},
|
||||
//获取记录
|
||||
getEmergencyRecordQueryById() {
|
||||
let that = this;
|
||||
//获取我整改的巡查记录数量
|
||||
this.sendRequest({
|
||||
url: 'xmgl/xzEmergencyRecord/queryById',
|
||||
method: 'get',
|
||||
data: {
|
||||
projectSn: this.projectSn,
|
||||
id: this.id,
|
||||
},
|
||||
success: res => {
|
||||
console.log(res);
|
||||
that.emergencyDetail = res.result;
|
||||
const find = that.emergencyTypeList.find(item => item.id == res.result
|
||||
.emergencyTypeId);
|
||||
that.emergencyInfo = find ? find : {};
|
||||
this.imgList = res.result.disposalReport && JSON.parse(res.result.disposalReport);
|
||||
}
|
||||
})
|
||||
},
|
||||
getnavigateTo(url) {
|
||||
uni.navigateTo({
|
||||
url,
|
||||
})
|
||||
},
|
||||
goMaps() {
|
||||
uni.navigateTo({
|
||||
url: `./mymaps?latitude=${this.emergencyDetail.latitude}&longitude=${this.emergencyDetail.longitude}`
|
||||
})
|
||||
},
|
||||
//查看视频
|
||||
playVideo(url, type) {
|
||||
uni.navigateTo({
|
||||
url: '../carWashManage/mediaPlay?url=' + url + '&type=' + type
|
||||
})
|
||||
},
|
||||
//预览图片
|
||||
previewImage(url) {
|
||||
uni.previewImage({
|
||||
urls: [url]
|
||||
})
|
||||
},
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
/deep/ .uni-file-picker__lists {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.emergencyDisposal {
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.addSaveBtn {
|
||||
width: 496rpx;
|
||||
height: 80rpx;
|
||||
background: #5181F6;
|
||||
box-shadow: 0 8rpx 18rpx 0 rgba(81, 129, 246, 0.37);
|
||||
border-radius: 148rpx;
|
||||
color: #fff;
|
||||
font-size: 36rpx;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
margin: 70rpx auto;
|
||||
}
|
||||
|
||||
.rescue-report {
|
||||
view:last-child {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
}
|
||||
}
|
||||
|
||||
/deep/ .uni-file-picker__files {
|
||||
width: 220rpx;
|
||||
height: 80rpx;
|
||||
background-color: #5181F6;
|
||||
color: #fff;
|
||||
border-radius: 20rpx;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
margin: 24rpx 0;
|
||||
|
||||
.files-button {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
.icon-add {
|
||||
width: 32rpx;
|
||||
height: 32rpx;
|
||||
margin-right: 8rpx;
|
||||
}
|
||||
|
||||
text {
|
||||
color: white !important;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
.color-ea3 {
|
||||
color: #EA3941;
|
||||
}
|
||||
|
||||
.color-518 {
|
||||
color: #5181F6;
|
||||
}
|
||||
|
||||
.fixedheader {
|
||||
position: fixed;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
z-index: 2;
|
||||
|
||||
/deep/.headerBox {
|
||||
background: #2b8df3;
|
||||
color: #fff;
|
||||
}
|
||||
}
|
||||
|
||||
.image {
|
||||
width: 148rpx;
|
||||
height: 90rpx;
|
||||
}
|
||||
|
||||
.disposal-detail {
|
||||
margin: 88rpx 0;
|
||||
padding: 0 30rpx;
|
||||
position: relative;
|
||||
|
||||
.rescue {
|
||||
.title {
|
||||
font-weight: bold;
|
||||
font-size: 32rpx;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
}
|
||||
|
||||
.rescue-item {
|
||||
flex-direction: column;
|
||||
background: linear-gradient(180deg, rgba(255, 255, 255, 0.1) 0%, rgba(198, 220, 255, 0.2) 100%);
|
||||
box-shadow: 0px 8rpx 32rpx -8rpx rgba(42, 60, 106, 0.24);
|
||||
border-radius: 34rpx;
|
||||
padding: 24rpx 24rpx;
|
||||
|
||||
view {
|
||||
margin: 6rpx 0 !important;
|
||||
}
|
||||
}
|
||||
|
||||
.rescue-item>view:last-child {
|
||||
font-size: 10px;
|
||||
color: rgba(0, 0, 0, 0.5);
|
||||
justify-content: flex-end;
|
||||
|
||||
text:last-child {
|
||||
flex: initial,
|
||||
}
|
||||
}
|
||||
|
||||
.rescue-detail {
|
||||
// margin-top: 15%;
|
||||
font-size: 14px;
|
||||
color: #000000;
|
||||
padding: 0 8rpx 30rpx;
|
||||
|
||||
view {
|
||||
display: flex;
|
||||
line-height: 50rpx;
|
||||
margin: 20rpx 0;
|
||||
|
||||
text:last-child {
|
||||
flex: 1,
|
||||
}
|
||||
}
|
||||
|
||||
.detail {
|
||||
flex-direction: column;
|
||||
|
||||
text:last-child {
|
||||
padding: 0 26rpx;
|
||||
}
|
||||
}
|
||||
|
||||
.rescue-data {
|
||||
border: 1px solid #BBBBBB;
|
||||
background-color: #F5F5F5;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
.addSaveBtn {
|
||||
margin: 60rpx auto;
|
||||
color: #fff;
|
||||
// width: 60%;
|
||||
// padding: 20rpx 0;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
// background-color: #4181FE;
|
||||
|
||||
// font-size: 34rpx;
|
||||
// border-radius: 30px;
|
||||
// letter-spacing: 2px;
|
||||
width: 252px;
|
||||
height: 40px;
|
||||
background: #5181F6;
|
||||
box-shadow: 0px 4px 9px 0px rgba(81, 129, 246, 0.37);
|
||||
border-radius: 74px 74px 74px 74px;
|
||||
}
|
||||
|
||||
.addSaveBtn:active {
|
||||
background-color: rgba(65, 129, 254, 0.8);
|
||||
}
|
||||
}
|
||||
|
||||
.data {
|
||||
margin-left: 46rpx;
|
||||
color: #272D45;
|
||||
}
|
||||
|
||||
.condition {
|
||||
flex-wrap: wrap;
|
||||
justify-content: space-between;
|
||||
}
|
||||
}
|
||||
|
||||
.lable-absolute {
|
||||
// background-color: #fcebec;
|
||||
// color: #ea3941;
|
||||
padding: 4rpx 24rpx;
|
||||
border-radius: 20rpx;
|
||||
position: absolute;
|
||||
top: 32rpx;
|
||||
right: 0;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
|
||||
image {
|
||||
width: 68rpx;
|
||||
height: 74rpx;
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
@ -86,6 +86,11 @@
|
||||
</image>
|
||||
<view>特种验收</view>
|
||||
</view>
|
||||
<view class="menu" @click="reliefApprove">
|
||||
<image class="icon" style="width: 30px; height: 30px;" src="@/static/safeMange/danger_check.png">
|
||||
</image>
|
||||
<view>新增隐患审批</view>
|
||||
</view>
|
||||
<!-- <view class="moudle-item flex" @click="jumpPage(7)" v-if="COMPANY != 'sanjiang'">
|
||||
<image class="moudle-icon" src="/static/safeMange/danger_check.png"></image>
|
||||
<text>危大验收</text>
|
||||
@ -204,6 +209,12 @@
|
||||
url: '../specialOperations/specialCheck'
|
||||
})
|
||||
},
|
||||
reliefApprove(){
|
||||
//隐患审批
|
||||
uni.navigateTo({
|
||||
url: `../emergencyDisposal/index?id=${2}`
|
||||
})
|
||||
},
|
||||
//实时时间
|
||||
getTime() {
|
||||
this.timer = setInterval(() => {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user