325 lines
6.5 KiB
Vue
325 lines
6.5 KiB
Vue
|
|
<template>
|
|||
|
|
<view>
|
|||
|
|
<view class="barBox">
|
|||
|
|
<headers :themeType="'white'" :showBack="true">
|
|||
|
|
<view class="title">
|
|||
|
|
<view class="backBtn">
|
|||
|
|
<view>
|
|||
|
|
<!-- <span class="back" @click="goBack()">返回</span> -->
|
|||
|
|
<span class="tip">告警提示</span>
|
|||
|
|
</view>
|
|||
|
|
</view>
|
|||
|
|
</view>
|
|||
|
|
</headers>
|
|||
|
|
</view>
|
|||
|
|
<view v-if="typeState.length>0" class="flex evenly typeState">
|
|||
|
|
<view :class="status==item.val?'this_class':''" v-for="(item,index) in typeState" :key="index"
|
|||
|
|
@click="typeStateEve(item.val)">
|
|||
|
|
{{item.txt}}
|
|||
|
|
</view>
|
|||
|
|
|
|||
|
|
</view>
|
|||
|
|
<view class="">
|
|||
|
|
<view class="alarm-item" v-for="(item,index) in listData" :key="item.id" @click="goHiidden(item)">
|
|||
|
|
<view>报警类型: {{alarmType[item.alarmType]}}报警</view>
|
|||
|
|
<view>报警设备: {{item.hardwareName}}</view>
|
|||
|
|
<view>报警时间: {{item.createTime}}</view>
|
|||
|
|
<view>报警地址: {{item.location}}</view>
|
|||
|
|
|
|||
|
|
<!-- <image @click="saveImage(url_config+'image/'+item.imageUrl,index)" class="accessoryImg"
|
|||
|
|
:src="url_config+'image/'+item.imageUrl"></image> -->
|
|||
|
|
<!-- <image class="accessoryImg"
|
|||
|
|
:src="url_config+'image/'+item.imageUrl"></image> -->
|
|||
|
|
</view>
|
|||
|
|
</view>
|
|||
|
|
<view class="noData" v-if="listData.length==0">
|
|||
|
|
暂无数据~
|
|||
|
|
</view>
|
|||
|
|
<!-- <Select/> -->
|
|||
|
|
</view>
|
|||
|
|
</template>
|
|||
|
|
|
|||
|
|
<script>
|
|||
|
|
import Select from "./components/Select.vue";
|
|||
|
|
export default {
|
|||
|
|
components: {
|
|||
|
|
Select
|
|||
|
|
},
|
|||
|
|
data() {
|
|||
|
|
return {
|
|||
|
|
listData: [],
|
|||
|
|
projectSn: '',
|
|||
|
|
pageNo: 1,
|
|||
|
|
pageSize: 7,
|
|||
|
|
systemInfo: {
|
|||
|
|
statusBarHeight: 0
|
|||
|
|
},
|
|||
|
|
alarmType: {
|
|||
|
|
1: "烟感",
|
|||
|
|
2: "明火",
|
|||
|
|
3: "人员倒地",
|
|||
|
|
4: "未戴安全帽",
|
|||
|
|
5: "区域入侵",
|
|||
|
|
6: "越界入侵",
|
|||
|
|
7: "人员聚集衣",
|
|||
|
|
8: "反光衣",
|
|||
|
|
9: "裸土覆盖",
|
|||
|
|
13: "口罩识别",
|
|||
|
|
14: "徘徊预警",
|
|||
|
|
15: "物体滞留监测",
|
|||
|
|
16: "绊线监测"
|
|||
|
|
},
|
|||
|
|
userInfo: {},
|
|||
|
|
typeState: [{
|
|||
|
|
txt: '待发起',
|
|||
|
|
val: 1
|
|||
|
|
}, {
|
|||
|
|
txt: '已整改',
|
|||
|
|
val: 3
|
|||
|
|
}], //status:整改状态 1:待发起 ,2:待整改 3:已整改
|
|||
|
|
status: 1
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
onLoad() {
|
|||
|
|
|
|||
|
|
|
|||
|
|
},
|
|||
|
|
onShow() {
|
|||
|
|
if (JSON.parse(uni.getStorageSync('projectDetail'))) {
|
|||
|
|
this.projectSn = JSON.parse(uni.getStorageSync('projectDetail')).projectSn;
|
|||
|
|
} else {
|
|||
|
|
this.projectSn = JSON.parse(uni.getStorageSync('userInfo')).projectSn;
|
|||
|
|
}
|
|||
|
|
this.userInfo = JSON.parse(uni.getStorageSync('userInfo'));
|
|||
|
|
if (this.userInfo.accountType == 6) { //整改人状态
|
|||
|
|
this.typeState = [];
|
|||
|
|
this.status = 2;
|
|||
|
|
|
|||
|
|
} else {
|
|||
|
|
|
|||
|
|
this.typeState = [{
|
|||
|
|
txt: '待发起',
|
|||
|
|
val: 1
|
|||
|
|
}, {
|
|||
|
|
txt: '已整改',
|
|||
|
|
val: 3
|
|||
|
|
}]
|
|||
|
|
}
|
|||
|
|
this.listData = [];
|
|||
|
|
this.pageNo = 1;
|
|||
|
|
this.getListData();
|
|||
|
|
|
|||
|
|
},
|
|||
|
|
mounted() {
|
|||
|
|
this.systemInfo = uni.getStorageSync('systemInfo')
|
|||
|
|
},
|
|||
|
|
onPullDownRefresh() {
|
|||
|
|
this.getListData()
|
|||
|
|
setTimeout(function() {
|
|||
|
|
uni.stopPullDownRefresh()
|
|||
|
|
}, 1000)
|
|||
|
|
},
|
|||
|
|
onReachBottom() {
|
|||
|
|
// console.log("============================")
|
|||
|
|
this.pageNo++;
|
|||
|
|
uni.showLoading({
|
|||
|
|
title: '加载中'
|
|||
|
|
})
|
|||
|
|
this.getListData()
|
|||
|
|
},
|
|||
|
|
methods: {
|
|||
|
|
typeStateEve(v) {
|
|||
|
|
this.status = v;
|
|||
|
|
this.pageNo = 1;
|
|||
|
|
this.listData = [];
|
|||
|
|
this.getListData();
|
|||
|
|
},
|
|||
|
|
//获取列表数据
|
|||
|
|
getListData() {
|
|||
|
|
console.log(this.userInfo, "=======================================================")
|
|||
|
|
let qData = {
|
|||
|
|
projectSn: this.projectSn,
|
|||
|
|
pageNo: this.pageNo,
|
|||
|
|
pageSize: this.pageSize,
|
|||
|
|
accountType: this.userInfo.accountType,
|
|||
|
|
status: this.status,
|
|||
|
|
isPushed: 1
|
|||
|
|
}
|
|||
|
|
if (this.userInfo.accountType == 6) {
|
|||
|
|
qData.pushPersonId=this.userInfo.userId
|
|||
|
|
}
|
|||
|
|
this.sendRequest({
|
|||
|
|
url: 'xmgl/aiAnalyseHardWareAlarmRecord/selectPageList',
|
|||
|
|
method: "post",
|
|||
|
|
data: qData,
|
|||
|
|
success: res => {
|
|||
|
|
if (res.code == 200) {
|
|||
|
|
console.log('res', res)
|
|||
|
|
|
|||
|
|
if (this.pageNo == 1) {
|
|||
|
|
this.listData = []
|
|||
|
|
}
|
|||
|
|
// console.log('--------')
|
|||
|
|
// this.listData = res.result.records
|
|||
|
|
this.listData = [...this.listData, ...res.result.records]
|
|||
|
|
uni.hideLoading() //关闭加载中
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
})
|
|||
|
|
},
|
|||
|
|
// goBack() {
|
|||
|
|
// uni.reLaunch({
|
|||
|
|
// url: "/pages/projectEnd/projectIndex/projectIndex"
|
|||
|
|
// });
|
|||
|
|
// },
|
|||
|
|
// 点击跳转
|
|||
|
|
goHiidden(item) {
|
|||
|
|
// uni.navigateTo({
|
|||
|
|
// url: "/pages/projectEnd/safeManage/addExamine"
|
|||
|
|
// });
|
|||
|
|
|
|||
|
|
// uni.navigateTo({
|
|||
|
|
// url: "/pages/potentialRisk/potentialRisk?dangerInfo="+ encodeURIComponent(JSON.stringify(item))
|
|||
|
|
// });
|
|||
|
|
uni.navigateTo({
|
|||
|
|
url: "/pages/potentialRisk/potentialRisk?id=" + item.id
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
},
|
|||
|
|
saveImage(url) {
|
|||
|
|
uni.showLoading({
|
|||
|
|
title: "保存中..."
|
|||
|
|
})
|
|||
|
|
uni.downloadFile({
|
|||
|
|
url: url, //网络路径,下载下来
|
|||
|
|
success: (res) => {
|
|||
|
|
if (res.statusCode === 200) {
|
|||
|
|
uni.saveImageToPhotosAlbum({
|
|||
|
|
filePath: res.tempFilePath, //下载后的临时路径
|
|||
|
|
success: res => { //下载完成后在相册里压根找不到
|
|||
|
|
uni.hideLoading()
|
|||
|
|
uni.showToast({
|
|||
|
|
title: "保存成功!"
|
|||
|
|
})
|
|||
|
|
uni.navigateTo({
|
|||
|
|
url: "/pages/projectEnd/safeManage/addExamine"
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
})
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
},
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
</script>
|
|||
|
|
|
|||
|
|
<style lang="scss" scoped>
|
|||
|
|
.noData {
|
|||
|
|
text-align: center;
|
|||
|
|
padding: 120rpx 0;
|
|||
|
|
color: #999;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.this_class {
|
|||
|
|
color: #007AFF;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.typeState {
|
|||
|
|
height: 80rpx;
|
|||
|
|
background-color: #fff;
|
|||
|
|
font-size: 28rpx;
|
|||
|
|
|
|||
|
|
width: 100%;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.barBox {
|
|||
|
|
background-color: #5181F6;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.title {
|
|||
|
|
height: 44px;
|
|||
|
|
line-height: 44px;
|
|||
|
|
font-size: 40rpx;
|
|||
|
|
width: 750rpx;
|
|||
|
|
background-color: #5181F6;
|
|||
|
|
color: #fff;
|
|||
|
|
text-align: center;
|
|||
|
|
position: relative;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.accessoryImg {
|
|||
|
|
margin-top: 10rpx;
|
|||
|
|
width: 100%;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.backBtn {
|
|||
|
|
font-size: 30rpx;
|
|||
|
|
position: absolute;
|
|||
|
|
left: 20%;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.back {
|
|||
|
|
font-size: 24rpx;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.tip{
|
|||
|
|
margin-left: 5rem;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.contain2 {
|
|||
|
|
width: 750rpx;
|
|||
|
|
content: " ";
|
|||
|
|
// background-color: #f8f8f8;
|
|||
|
|
// height: calc(100vh - 44px);
|
|||
|
|
// overflow: auto;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.alarm-item {
|
|||
|
|
width: 650rpx;
|
|||
|
|
margin: 20rpx auto;
|
|||
|
|
background-color: #fff;
|
|||
|
|
padding: 40rpx;
|
|||
|
|
box-sizing: border-box;
|
|||
|
|
border-radius: 10rpx;
|
|||
|
|
box-shadow: 0 0 10rpx #ccc;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.alarm-lable {
|
|||
|
|
display: flex;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.alarm-lable-1 {
|
|||
|
|
width: 200rpx;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.alarm-lable-2 {
|
|||
|
|
flex: 1;
|
|||
|
|
text-align: right;
|
|||
|
|
color: #888;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.flex {
|
|||
|
|
display: flex;
|
|||
|
|
align-items: center;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.center {
|
|||
|
|
justify-content: center;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.between {
|
|||
|
|
justify-content: space-between;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.warp {
|
|||
|
|
flex-wrap: wrap;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.evenly {
|
|||
|
|
justify-content: space-evenly;
|
|||
|
|
}
|
|||
|
|
</style>
|