hbt-training-ui/src/components/home/right/confirm.component.vue

290 lines
7.2 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<template>
<div>
<div class="d-flex align-items-center margin-bottom-20">
<span class="cycle-icon blue"></span>
<span class="blue-text">确认警情</span>
<span class="link"></span>
<span class="line-gray"></span>
<span class="round-style"></span>
<span>事故研判</span>
</div>
<div class="info-content-text">
<span class="label">预警类型</span>
<span class="text">{{info.typeName}}</span>
</div>
<div class="info-content-text">
<span class="label">告警内容</span>
<span class="text">{{info.content}}</span>
</div>
<div class="info-content-text">
<span class="label">告警级别</span>
<span class="text" :class="info.levelClass">{{info.levelName}}</span>
<i class="cycle-icon" :class="info.levelClassIcon"></i>
</div>
<div class="info-content-text">
<span class="label">上报时间</span>
<span class="text">{{info.time}}</span>
</div>
<div class="info-content-text cursor-pointer">
<span class="label">上报位置</span>
<span class="text">{{info.address}}</span>
<i @click="changePoint(info)" class="position-icon"></i>
</div>
<div class="info-content-text cursor-pointer">
<span class="label">上报人</span>
<span class="text">{{info.reporter}}</span>
<span class="phone-btn d-flex align-items-center is-justify-space-center"><img src="~@/assets/img/phone-gray.png" alt="">一健联系</span>
</div>
<div class="info-content-text cursor-pointer">
<span class="label">附近摄像头</span>
</div>
<div class="plan-head">
<span class="span-item">摄像头名称</span>
<span class="span-item">类型</span>
<span class="span-item">距离 (m)</span>
</div>
<div class="plan-head-tbody">
<div class="tr" :key="i" v-for="(item,i) in info.tableData">
<span class="span-item">{{ item.name }}</span>
<span class="span-item">{{ item.type }}</span>
<span class="span-item">{{ item.distance }}</span>
</div>
</div>
<div class="d-flex margin-top-30 is-justify-space-center confirm-btn-group">
<div class="confirm-btn deal-btn" @click="showJudgmentFlag">事故研判</div>
<div class="confirm-btn" @click="hidePop">消警</div>
</div>
<!-- 报警记录弹窗 -->
<div class="pop-box right-position " v-if="showDealMsg">
<div class="close" @click="showDealMsg=false">×</div>
<div class="border l-t"></div>
<div class="border r-t"></div>
<div class="border r-b"></div>
<div class="border l-b"></div>
<div class="title">处理意见</div>
<el-form class="margin-top-23" label-width="100px">
<el-form-item label="处理建议:">
<el-input :rows="5" v-model="popObj.content" class="item-radius-style" type="textarea" placeholder="请输入事件描述"></el-input>
</el-form-item>
<el-form-item label="执行人:">
<el-select v-model="popObj.typeId" class="item-radius-style">
<el-option v-for="(item,i) in typeList" :key="i" :label="item.label" :value="item.id"></el-option>
</el-select>
</el-form-item>
</el-form>
<div class="d-flex btn-group align-items-center">
<div class="btn-style" @click="hideConfirm">确认</div>
</div>
</div>
</div>
</template>
<script lang="ts">
import {Component, Emit, Prop, Vue, Watch} from 'vue-property-decorator';
@Component
export default class ConfirmComponent extends Vue {
//
@Prop({default: function () {
return {
type:'',
content:'',
levelName:'',
levelClass:'level-2-text',
levelClassIcon:'level-2',
time:'2023312 13:56:00',
position:'',
reporter:'',
tableHeader:[
{
prop:'name',
label:''
},{
prop:'type',
label:''
},{
prop:'distance',
label:' (m)'
}
],
tableData : [
{
type:'',
distance:'10',
name:'1',
},{
type:'',
distance:'20',
name:'2',
},{
type:'',
distance:'22',
name:'3',
},{
type:'',
distance:'10',
name:'4',
},{
type:'',
distance:'20',
name:'5',
},{
type:'',
distance:'22',
name:'6',
},
]
}
} }) info!: any[];
showDealMsg = false
popObj:any = {
popTitle:'报警记录',
type:'',
title: '风险点异常',
info: '',
time: '',
address:'',
level: '',
typeName:"",
reporter:"",
tel:"",
position:[],
content:"",
typeId:"",
id:''
}
typeList = [
{
label:'',
value:'',
},{
label:'',
value:'',
},{
label:'',
value:'',
}
]
//
tableRowClassName({row, rowIndex}) {
if (rowIndex === 1) {
return 'blue-row';
}
if (rowIndex === 2) {
return 'yellow-row';
}
if (rowIndex === 3) {
return 'orange-row';
}
if (rowIndex === 4) {
return 'red-row';
}
return '';
}
//
@Emit('showJudgmentFlag')
showJudgmentFlag() {
//
}
//
@Emit('changePoint')
changePoint(item) {
console.log(item)
//
}
hidePop(){
this.showDealMsg = true
}
//
@Emit('hideConfirm')
hideConfirm(){
this.showDealMsg = false
//
}
}
</script>
<style lang="scss" scoped>
.font-size-12 {
font-size: 12px;
}
.tb-info-style {
margin-bottom: 20px;
}
.confirm-btn{
width: 140px;
height: 34px;
background: transparent;
border-radius: 17px;
border: 1px solid #FFFFFF;
text-align: center;
line-height: 32px;
cursor: pointer;
}
.deal-btn{
background: rgba(255,255,255,0.15);
margin-right: 20px;
}
.confirm-btn-group{
width: 100%;
text-align: center;
}
.blue{
background: #7DAEFF;
}
.blue-text{
color: #7DAEFF;
}
.overview-container .pop-box {
left: -170%;
::v-deep{
.el-form-item__label{
color: #FFFFFF;
}
.item-radius-style {
.el-input__inner {
background: rgba(0, 0, 0, 0.5);
border-radius: 20px;
border: 1px solid rgba(255, 255, 255, 0.6);
color: #d7d7d7;
}
.el-textarea__inner {
color: #d7d7d7;
background: rgba(0, 0, 0, 0.5);
border-radius: 5px;
border: 1px solid rgba(255, 255, 255, 0.6);
}
}
}
.btn-group {
justify-content: space-evenly;
.btn-style {
width: 96px;
height: 34px;
background: rgba(255, 255, 255, 0.15);
border-radius: 17px;
border: 1px solid #FFFFFF;
text-align: center;
line-height: 34px;
cursor: pointer;
}
.cancel {
background: rgba(255, 255, 255, 0);
}
}
}
</style>