xhj пре 2 година
родитељ
комит
5b868fa8c1

+ 197 - 3
warning/machineAlarm/machineAlarm.vue

@@ -9,11 +9,11 @@
 					<view class="order-item-content-data fflex tover">{{item.devId}}</view>
 				</view>
 				<block>
-					<view v-if="item.type==1" class="order-state">待消除</view>
+					<view v-if="item.alarmFlag==1" class="order-state">待消除</view>
 					<view v-else class="order-state" style="color: #0FCB27;border: 2rpx solid #0FCB27;">已消除</view>
 				</block>
 			</view>
-			<view class="order-item-body">
+			<view class="order-item-body" v-if="item.batteryId">
 				<!-- <view class="order-item-content ddflex">
 					<view class="order-item-content-label">机柜编号:</view>
 					<view class="order-item-content-data fflex tover">{{item.devId}}</view>
@@ -24,7 +24,7 @@
 				</view>
 				<view class="order-item-content ddflex">
 					<view class="order-item-content-label">描述:</view>
-					<view class="order-item-content-data fflex tover">{{item.alarmDesc}}</view>
+					<view class="order-item-content-data fflex tover">{{getAlarmDesc(item)}}</view>
 				</view>
 				<view class="order-item-content ddflex">
 					<view class="order-item-content-label">告警时间:</view>
@@ -149,6 +149,200 @@
 					}
 				)
 			},
+			
+			getAlarmDesc(item){
+				let desc = ''
+				switch (item.alarmId){
+					case 'bmsFault':{
+						switch (item.alarmDesc){
+							case '00':{
+								return '短路保护'
+							} break;
+							case '01':{
+								return '单芯欠压保护'
+							} break;
+							case '02':{
+								return '单芯过压保护'
+							} break;
+							case '03':{
+								return '放电过流保护'
+							} break;
+							case '04':{
+								return '充电过流保护'
+							} break;
+							case '05':{
+								return '低温保护'
+							} break;
+							case '06':{
+								return '过温保护'
+							} break;
+							case '07':{
+								return '状态异常保护'
+							} break;
+							case '08':{
+								return 'MOS异常'
+							} break;
+							case '09':{
+								return '总电压过压保护'
+							} break;
+							case '10':{
+								return '总电压欠压保护'
+							} break;
+							case '11':{
+								return '单芯间压差过大'
+							} break;
+							default: return ''
+								break;
+						}
+					}
+						break;
+					case 'bmsAlarm':{
+						switch (item.alarmDesc){
+							case '00':{
+								return '单芯电压低告警'
+							} break;
+							case '01':{
+								return '单芯电压高告警'
+							} break;
+							case '02':{
+								return '电芯低温告警'
+							} break;
+							case '03':{
+								return '电芯高温告警'
+							} break;
+							case '04':{
+								return '总电压高告警'
+							} break;
+							case '05':{
+								return '总电压低告警'
+							} break;
+							case '06':{
+								return '单芯压差过大告警'
+							} break;
+							case '07':{
+								return 'MOS高温告警'
+							} break;
+							case '08':{
+								return '环境低温告警'
+							} break;
+							case '09':{
+								return '环境高温告警'
+							} break;
+							default: return ''
+								break;
+						}
+					}
+						break;
+					case 'cabAlarm':{
+						switch (item.alarmDesc){
+							case '01':{
+								return '过温告警'
+							} break;
+							case '02':{
+								return '功率告警'
+							} break;
+							case '03':{
+								return '水浸告警'
+							} break;
+							case '04':{
+								return '烟雾告警'
+							} break;
+							case '05':{
+								return '市电低压告警'
+							} break;
+							case '06':{
+								return '市电高压告警'
+							} break;
+							default: return ''
+								break;
+						}
+					}
+						break;
+					case 'cabFault':{
+						switch (item.alarmDesc){
+							case '01':{
+								return '水浸故障'
+							} break;
+							case '02':{
+								return '消防故障'
+							} break;
+							case '03':{
+								return '过温故障'
+							} break;
+							case '04':{
+								return '市电故障'
+							} break;
+							case '05':{
+								return '整柜散热风扇故障'
+							} break;
+							case '06':{
+								return '12V开关电源故障'
+							} break;
+							case '07':{
+								return '控制板通讯故障'
+							} break;
+							case '08':{
+								return '机柜空开故障'
+							} break;
+							default: return ''
+								break;
+						}
+					}
+						break;
+					case 'boxAlarm':{
+						switch (item.alarmDesc){
+							case '1':{
+								return '充电异常'
+							} break;
+							default: return ''
+								break;
+						}
+					}
+						break;
+					case 'boxFault':{
+						switch (item.alarmDesc){
+							case '01':{
+								return '消防故障'
+							} break;
+							case '02':{
+								return '过温故障'
+							} break;
+							case '03':{
+								return '充电器故障'
+							} break;
+							case '04':{
+								return '仓锁故障'
+							} break;
+							case '05':{
+								return '电池通信故障'
+							} break;
+							case '06':{
+								return '充电器短路保护'
+							} break;
+							case '07':{
+								return '充电过流'
+							} break;
+							case '08':{
+								return '充电过压'
+							} break;
+							case '09':{
+								return '指示灯故障'
+							} break;
+							case '10':{
+								return '电池异常'
+							} break;
+							case '11':{
+								return '仓内照明灯故障'
+							} break;
+							default: return ''
+								break;
+						}
+					}
+						break;
+					default: return ''
+						break;
+				}
+			}
 		},
 		mounted() {
 		},

+ 23 - 10
warning/reconditionAlarm/reconditionAlarm.vue

@@ -1,9 +1,9 @@
 <template>
 	<view style="overflow: hidden;">
 		<!-- @click="openPop(item)" -->
-		<view class="order-item" v-for="item,index in groupList" >
+		<view class="order-item" v-for="item,index in groupList" @click="jumpUrl('warning/reconditionAlarmUpload/reconditionAlarmUpload?id='+item.id)">
 			<view class="ddflex order-item-header">
-				<view class="order-time">类型:{{item.type}}</view>
+				<view class="order-time">类型:整柜定期检修</view>
 				<block>
 					<view v-if="item.status!=1" class="order-state">待处理</view>
 					<view v-else class="order-state" style="color: #0FCB27;border: 2rpx solid #0FCB27;">已处理</view>
@@ -14,7 +14,7 @@
 					<view class="order-item-content-label">机柜编号:</view>
 					<view class="order-item-content-data fflex tover">{{item.devId}}</view>
 				</view>
-				<view class="order-item-content ddflex">
+				<view class="order-item-content ddflex" v-if="item.batteryId">
 					<view class="order-item-content-label">电池编号:</view>
 					<view class="order-item-content-data fflex tover">{{item.batteryId}}</view>
 				</view>
@@ -26,6 +26,12 @@
 					<view class="order-item-content-label">提醒时间:</view>
 					<view class="order-item-content-data fflex tover">{{item.createDate}}</view>
 				</view>
+				<view class="order-item-body2" v-if="item.url">
+					<!-- <view class="order-item-content-label">检修记录</view> -->
+					<view class="images-box ddflex">
+						<image class="images"  :src="item.url" mode="aspectFill" @click.stop="previewImg([item.url],idx)"></image>
+					</view>
+				</view>
 			</view>
 		</view>
 		
@@ -37,12 +43,12 @@
 		</view>
 		
 		
-		<view style="height: 185rpx;" class="savepadding"></view>
-		<view class="bottom-btns savepadding">
+		<!-- <view style="height: 185rpx;" class="savepadding" v-if="userInfos.storeId"></view>
+		<view class="bottom-btns savepadding" v-if="userInfos.storeId">
 			<view class="btn ddflex" @click="saomaFn" style="justify-content: center;">
 				<image src="../static/images/saoma.png" style="width: 50rpx;height: 50rpx;margin-right: 23rpx;"></image>
 				扫码处理</view>
-		</view>
+		</view> -->
 		
 		
 		<!-- <bottom-pop v-if="showPop" :showPop='showPop' :btnColor="'#11BB8B'" :showBtn='false' title="解除提醒"
@@ -76,7 +82,7 @@
 				picUrlss: req.public.picUrls,
 				showPop: false,
 				tempData: null,
-				
+				userInfos:{},
 				groupList: [],
 				page: 1,
 				limit: 10,
@@ -85,10 +91,10 @@
 			}
 		},
 		onLoad(options) {
-			this.getMachineList()
 		},
 		onShow() {
-			
+			this.userInfos = req.getStorage('userInfo');
+			this.getMachineList()
 		},
 		onReachBottom() {
 			this.getMachineList(true)
@@ -156,7 +162,14 @@
 						this.jumpUrl('warning/reconditionAlarmUpload/reconditionAlarmUpload?id='+res.result)
 					}
 				});
-			}
+			},
+			previewImg(list,index) {
+				uni.previewImage({
+					current: index,
+					// 当前显示图片的http链接
+					urls: list
+				});
+			},
 		},
 		mounted() {
 			

+ 1 - 1
warning/reconditionAlarmUpload/reconditionAlarmUpload.css

@@ -109,7 +109,7 @@ page {
 	font-weight: 500;
 	color: #FFFFFF;
 	text-align: center;
-	margin:30rpx auto;
+	margin:30rpx 30rpx;
 }
 
 /*  */

+ 57 - 11
warning/reconditionAlarmUpload/reconditionAlarmUpload.vue

@@ -11,25 +11,31 @@
 			<view class="item ddflex">
 				<view class="label">类型</view>
 				<view class="item-input fflex">
-					整柜巡检
+					整柜定期检修
 				</view>
 			</view>
 			<view class="item ddflex">
 				<view class="label">机柜编号</view>
 				<view class="item-input fflex">
-					CHZD04TTCC200329109
+					{{detail.devId}}
 				</view>
 			</view>
 			<view class="item ddflex">
 				<view class="label">描述</view>
 				<view class="item-input fflex">
-					定期巡检提醒
+					{{detail.content}}
 				</view>
 			</view>
 			<view class="item ddflex">
 				<view class="label">提醒时间</view>
 				<view class="item-input fflex">
-					2022-12-31 17:16:37
+					{{detail.createDate}}
+				</view>
+			</view>
+			<view class="item ddflex">
+				<view class="label">检修状态</view>
+				<view class="item-input fflex">
+					{{detail.status==1?'已处理':'待处理'}}
 				</view>
 			</view>
 			<!-- <view class="item ddflex">
@@ -46,11 +52,13 @@
 				</view>
 			</view> -->
 			
-			<view class="img-box ddflex" @click="choiceImages" v-if="imageList.length==0">
+			<view class="img-box ddflex" @click="detail.status!=1?choiceImages():''" v-if="imageList.length==0">
 				<image style="width: 54rpx;height: 54rpx;margin-bottom: 12rpx;" src="../static/images/xj.png"></image>
 				<view>添加图片</view>
 			</view>
-			<image v-else style="width: 100%;margin: 30rpx;" :src="imageList[0]" mode="widthFix" @click="choiceImages"></image>
+			<view v-else style="padding: 30rpx;">
+				<image style="width: 100%;" :src="imageList[0]" mode="widthFix" @click="detail.status!=1?choiceImages():previewImg([detail.url],0)"></image>
+			</view>
 			
 			<!-- <view class="ddflex" style="margin-bottom: 40rpx;padding: 30rpx;">
 				<view class="product-image" v-for="item,index in imageList">
@@ -62,8 +70,9 @@
 		</view>
 		
 		<!-- 保存按钮 -->
-		<view class="savepadding submit-box">
-			<view class="submit-btn">
+		<view style="height: 120rpx;" v-if="detail.status!=1"></view>
+		<view class="savepadding submit-box" v-if="detail.status!=1">
+			<view class="submit-btn" @click="submit">
 				保存
 			</view>
 		</view>
@@ -86,6 +95,8 @@
 				systems: {},
 				isTop:0,
 				
+				id:'',
+				detail:{},
 				name:'白云科技门店',
 				time:'',
 				
@@ -95,7 +106,8 @@
 			}
 		},
 		onLoad(options) {
-
+			this.id = options.id
+			this.getInfo()
 		},
 		onShow() {
 			
@@ -104,6 +116,13 @@
 			changeEndDatetimePicker(val) {
 				this.time = val.f1 + " " + val.hh+":"+val.mm+":"+"00"
 			},
+			previewImg(list,index) {
+				uni.previewImage({
+					current: index,
+					// 当前显示图片的http链接
+					urls: list
+				});
+			},
 			// 图片移除
 			// 移除产品图片
 			removeProductImage(index){
@@ -113,7 +132,7 @@
 			choiceImages(event) {
 				let that = this;
 				uni.chooseImage({
-					count: 9,
+					count: 1,
 					sourceType: ['album', 'camera'],
 					sizeType: ['compressed'],
 					async success(res) {
@@ -210,7 +229,9 @@
 					return new Promise(function(resolve, reject) {
 						req.loadIng("上传中");
 						req.uploadFile('/api/nocheck/upload', tempFilePath.filePath, res => {
-							that.imageList = that.imageList.concat(res.src);
+							// that.imageList = that.imageList.concat(res.src);
+							that.imageList[0] = res.src;
+							that.imageList = JSON.parse(JSON.stringify(that.imageList))
 							resolve()
 						});
 					});
@@ -228,6 +249,31 @@
 				});
 			
 			},
+			getInfo(){
+				req.getRequest('/admin/v2/alarm/reconditionInfo',{id:this.id},res=>{
+					this.detail = res
+					if(res.url) this.imageList[0] = res.url
+				})
+			},
+			submit(){
+				if(this.imageList.length==0) return req.msg('请上传检修图片')
+				let dataP = JSON.parse(JSON.stringify(this.detail))
+				dataP.url = this.imageList[0]
+				uni.showModal({
+					title:'提示',
+					content:'确定提交检修记录?',
+					success: (res) => {
+						if(res.confirm){
+							req.postRequest('/admin/v2/alarm/reconditionManage',dataP,rres=>{
+								req.msg('已检修')
+								setTimeout(()=>{
+									uni.navigateBack()
+								},1000)
+							})
+						}
+					}
+				})
+			}
 		},
 		mounted() {
 			const systemInfo = uni.getSystemInfoSync();