Newer
Older
gdtMimiProgram / pages / reportInfo / reportInfo.vue
dutingting on 7 Apr 2023 6 KB 需求更改、bug修复
<template>
	<view >
		<view class="check-message-detail">
			<view class="detail-content">
				<view class="detail-item" >
				<text class="title">设备编号</text>
				<text>{{info.devcode}}</text>
				</view>
				<view class="detail-item" >
				<text class="title">设备类型</text>
				<text>{{info.alarmContentName}}</text>
				</view>
				<view class="detail-item" >
						<text class="title">设备位置</text>
						<text>{{info.position}}</text>
				</view>
				<view class="detail-item" >
						<text class="title">井编号</text>
						<text>{{info.wellCode}}</text>
				</view>
				<view class="detail-item" >
						<text class="title">井类型</text>
						<text>其他</text>
				</view>
				<view class="detail-item" >
						<text class="title">井名称</text>
						<text>{{timeInfo.wellName}}</text>
				</view>
				<view class="detail-item" >
						<text class="title">告警原因</text>
						<text>{{info.alarmTypeName}}</text>
				</view>
				<view class="detail-item" >
						<text class="title">告警数值</text>
						<text>{{info.alarmValue}}</text>
				</view>
				<view class="detail-item" >
						<text class="title">告警等级</text>
						<text>{{info.alarmLevel}}</text>
				</view>
				<view class="detail-item" >
						<text class="title">告警时间</text>
						<text>{{info.alarmTime}}</text>
				</view>
				<view class="detail-item" >
						<text class="title">告警状态</text>
						<text>{{info.statusName}}</text>
				</view>
				<view class="detail-item" v-if="info.status !== '1'">
						<text class="title">告警取消原因</text>
						<text>{{info.jobStatusName}}</text>
				</view>
				<view class="detail-item" v-if="info.status !== '1'  && info.status !== '0'">
						<text class="title">备注</text>
						<text>{{timeInfo.handleMessage}}</text>
				</view>
				<view class="detail-item" v-if="info.status !== '1' && info.status !== '0'">
						<text class="title">处置人</text>
						<text>{{timeInfo.handleJobPerson}}</text>
				</view>
				<view class="detail-item" v-if="info.status !== '1' && info.status !== '0'">
						<text class="title">处置时间</text>
						<text>{{timeInfo.alarmTime}}</text>
				</view>
				<view class="detail-item" v-if="info.status === '0'">
						<text class="title">消警时间</text>
						<text>{{timeInfo.alarmTime}}</text>
				</view>
				<view class="button-bottom" v-if="messageId === '1'" @click="ispassShow = true">取消告警</view>
			</view>
		</view>
		<u-popup
		  :show="ispassShow"
		  mode="bottom"
		  :round="10"
		  :closeOnClickOverlay="false"
		  @close="close"
		>
		  <view class="popup">
			 <view class="title">取消告警</view>
		    <u-form
				labelPosition="left"
				labelWidth="200rpx"
				:model="userInfo"
				:rules="rules"
				ref="form1"
		    		>
				<u-form-item
				label="告警取消原因"
				prop="name"
				borderBottom
				@click="showSex = true;"
				ref="item1"
			  >
				<u-input
					v-model="userInfo.name"
					disabled
					placeholder="请选择告警取消原因"
					border="none"
					suffixIcon="arrow-right"
				></u-input>
			</u-form-item>
			<u-form-item
				label="备注"
				prop="handleMessage"
				borderBottom
				ref="item1"
		>
			<u-input
			v-model="userInfo.handleMessage"
			border="none"
			></u-input>
		</u-form-item>
		    </u-form>
		    <view class="footer">
			<button class="allow refuse" @click="ispassShow = false"> 取消</button>
			<button class="allow" @click="possQr"> 确认</button>
		    </view>
		  </view>
		</u-popup>
			<u-action-sheet
				:show="showSex"
				:actions="actions"
				title="请选择处理状态"
				@close="showSex = false"
				@select="sexSelect"
					/>
	</view>
</template>

<script>
	import {getJobInfo, getCancelAlarm} from '@/api/check.js'
	export default {
		data() {
			return {
				info: uni.getStorageSync('rowInfo') || {},
				messageId:'',
				ispassShow: false,
				showSex: false,
				timeInfo:{}, // 获取告警时间对象
				userInfo: {
					name: '',
					handleMessage: '',
					jobStatus:''
				},
				actions: [{
							name: '已处理',
							id: '3'
							},
							{
							name: '无需处理',
							id: '4'
							},
							],
			rules: {
				'handleMessage': {
					type: 'string',
					required: true,
					message: '请填写备注',
					trigger: ['blur', 'change']
				},
				'name': {
					type: 'string',
					required: true,
					message: '请选择如何处理',
					trigger: ['blur', 'change']
				},
			},
			}
		},
		 onLoad(option){
		   this.messageId = option.messageId
		   
		},
	   async onShow(){
			if(uni.getStorageSync('rowInfo').jobId !== '') {
			  const res = await getJobInfo({id:uni.getStorageSync('rowInfo').jobId})
				 this.timeInfo = res[0]
			}
		},
		methods: {
			// 点击确认
          // 点击取消告警弹窗中的确认按钮
          async possQr() {
            if(this.userInfo.jobStatus.trim() !== ''){
			  delete this.userInfo.name
          	  const res = await getCancelAlarm({...this.userInfo , id:this.info.id})
          	  this.ispassShow = false  
          	  this.getAlarmList()
            }else {
          	  uni.showToast({
          	  	title: `告警取消原因必选`,
          	  	icon: 'none',
          	  	duration: 2000,
          	  })
            }  
          },
		  
		  sexSelect(e) {
		  		this.userInfo.name = e.name
		  		this.userInfo.jobStatus = e.id
		  		this.$refs.form1.validateField('name')
		  },
		}
	}
</script>

<style lang="scss" scoped>
	.check-message-detail {
		padding: 18rpx;
		height: 100%;
		.title {
			font-weight: 600;
			white-space: nowrap;
			margin-right: 20rpx;
		}
		.detail-content {
			padding: 22rpx;
			background-color: #fff;
			border-radius: 10rpx;
		}

		.detail-item {
			display: flex;
			justify-content: space-between;
			margin-bottom: 44rpx;
		}
	}
	.button-bottom {
		margin-left: 50%;
		transform: translateX(-50%);
		width: 110rpx;
		height: 50rpx;
		color: #fff;
		line-height: 50rpx;
		text-align: center;
		border-radius: 20rpx;
		font-size: 22rpx;
		background-color: red;
	}
	.popup {
		.title {
			font-size: 36rpx;
			color: #000;
			font-weight: 600;
			margin-bottom: 32rpx;
			text-align: center;
		}
		.content {
			font-size: 32rpx;
			color: #000;
			margin-bottom: 42rpx;
			text-align: center;
		}
	.footer {
		display: flex;
		flex-direction: row;
		justify-content: space-between;
		align-items: flex-end;
		.allow {
			color: rgba(197, 0, 10, 1);
			height: 68rpx;
			padding: 16px 19px;
			line-height: 0;
			border: 1rpx solid rgba(197, 0, 10, 1);
			margin: 0 40rpx;
		}
		.refuse {
			color: rgba(142, 142, 142, 1.0);
			border: 1rpx solid rgba(142, 142, 142, 1.0);
			background-color: transparent;
		}
		}
	}
</style>
<style lang="scss">
	.u-popup__content {
	  padding: 30rpx 40rpx;
		// padding-bottom: 0;
	}
</style>