|
@@ -12,21 +12,21 @@
|
|
|
<view class="order-detail-info">
|
|
|
<view class="order-detail-title">
|
|
|
<view class="order-detail-level">
|
|
|
- {{level == 1 ? '一级故障' : (level == 2 ? '二级故障' : '三级故障')}}
|
|
|
+ {{detailInfo.level == 1 ? '一级故障' : (detailInfo.level == 2 ? '二级故障' : '三级故障')}}
|
|
|
</view>
|
|
|
<view class="order-detail-name">
|
|
|
- 故障名称故障名称故障名称故障名称故障名称故障名称故障名称故障名称故障名称故障名称故障名称故障名称故障名称故障名称故障名称故障名称故障名称故障名称
|
|
|
+ {{detailInfo.problemTitle || '-'}}
|
|
|
</view>
|
|
|
</view>
|
|
|
<view class="order-detail-time">
|
|
|
- {{'发生时间: ' + '2023-10-22 12:21:21'}}
|
|
|
+ {{'发生时间: ' + detailInfo.occurrenceTime || '-'}}
|
|
|
</view>
|
|
|
<view class="order-detail-site">
|
|
|
<view class="order-detail-status">
|
|
|
- 分析中...
|
|
|
+ {{detailInfo.status == 0 ? '待处理...' : (detailInfo.status == 1 ? '分析中...' : '已完结')}}
|
|
|
</view>
|
|
|
<view class="order-detail-site-text">
|
|
|
- 三江换电站
|
|
|
+ {{detailInfo.stationName || '-'}}
|
|
|
</view>
|
|
|
</view>
|
|
|
</view>
|
|
@@ -35,12 +35,15 @@
|
|
|
<view class="fault-describe-title">
|
|
|
问题记录
|
|
|
</view>
|
|
|
- <view class="fault-describe-remark">
|
|
|
+ <view class="fault-describe-remark" v-if="detailInfo.attachment">
|
|
|
点击图片可查看保存大图
|
|
|
</view>
|
|
|
</view>
|
|
|
- <view class="order-detail-swiper">
|
|
|
- <u-swiper :list="imgList" @click="imageHandle"></u-swiper>
|
|
|
+ <view class="order-detail-swiper" v-if="detailInfo.attachment">
|
|
|
+ <u-swiper :list="detailInfo.imgList" @click="imageHandle"></u-swiper>
|
|
|
+ </view>
|
|
|
+ <view class="order-detail-swiper" v-if="detailInfo.video">
|
|
|
+ <video :src='detailInfo.video'></video>
|
|
|
</view>
|
|
|
<view class="order-problem-container">
|
|
|
<view class="problem-title">
|
|
@@ -50,7 +53,7 @@
|
|
|
</view>
|
|
|
</view>
|
|
|
<view class="problem-text">
|
|
|
- 充电机无法充电,由于温度过高当前已断电请及时处理情况很严重,目前无法自自行解决。
|
|
|
+ {{detailInfo.deviceProblem || '-'}}
|
|
|
</view>
|
|
|
</view>
|
|
|
</view>
|
|
@@ -74,7 +77,7 @@
|
|
|
设备名称
|
|
|
</view>
|
|
|
<view class="basic-item-text">
|
|
|
- PLC
|
|
|
+ {{detailInfo.deviceName || '-'}}
|
|
|
</view>
|
|
|
</view>
|
|
|
<view class="basic-item">
|
|
@@ -82,7 +85,7 @@
|
|
|
设备编号
|
|
|
</view>
|
|
|
<view class="basic-item-text">
|
|
|
- PLC
|
|
|
+ {{detailInfo.sn || '-'}}
|
|
|
</view>
|
|
|
</view>
|
|
|
<view class="basic-item">
|
|
@@ -90,7 +93,7 @@
|
|
|
上报人
|
|
|
</view>
|
|
|
<view class="basic-item-text">
|
|
|
- PLC
|
|
|
+ {{detailInfo.createBy || '-'}}
|
|
|
</view>
|
|
|
</view>
|
|
|
<view class="basic-item">
|
|
@@ -98,13 +101,32 @@
|
|
|
联系方式
|
|
|
</view>
|
|
|
<view class="basic-item-text">
|
|
|
- PLCPLCPLCPLCPLCPLCPLCPLCPLCPLCPLCPLCPLCPLCPLCPLCPLCPLCPLCPLCPLCPLCPLCPLCPLCPLCPLCPLCPLCPLCPLC
|
|
|
+ {{detailInfo.contactPhone || '-'}}
|
|
|
</view>
|
|
|
</view>
|
|
|
</view>
|
|
|
</view>
|
|
|
- <view class="">
|
|
|
-
|
|
|
+ <view class="order-detail-deal" v-if="detailInfo.status == 0 || (detailInfo.status == 1 && detailInfo.currentPerson == userinfo.userId)">
|
|
|
+ <view class="order-detail-deal-title">
|
|
|
+ 处理信息
|
|
|
+ </view>
|
|
|
+ <u-form :model="form" ref="uform" :rules="rules" label-align='left' label-width="150">
|
|
|
+ <u-form-item label="处理方式" prop="statusText">
|
|
|
+ <u-input type="select" :select-open="dealSelectShow" placeholder="请选择换电站" v-model="form.statusText" @click="dealSelectShow = true"/>
|
|
|
+ </u-form-item>
|
|
|
+ <u-form-item label="处理人员" prop="nextPerson">
|
|
|
+ <u-input type="select" :select-open="showPerson" placeholder="请选择处理人员" v-model="form.nextPerson" @click="showPerson = true"/>
|
|
|
+ </u-form-item>
|
|
|
+ <u-form-item label="处理记录" prop="info" :label-position="'top'">
|
|
|
+ <u-input type="textarea" placeholder="请输入问题记录 不超过200个字" :maxlength="200" v-model="form.info" />
|
|
|
+ </u-form-item>
|
|
|
+ <u-form-item label="问题图片(不超过5张,5M以内)" prop="intro" :label-position="'top'">
|
|
|
+ <u-upload action="http://localhost:8087/zl/business/file/upload" multiple :fileList="fileList" @afterRead="afterRead" @delete="deletePic" name="1" :maxCount="5"></u-upload>
|
|
|
+ </u-form-item>
|
|
|
+ </u-form>
|
|
|
+ <view class="">
|
|
|
+ 处理
|
|
|
+ </view>
|
|
|
</view>
|
|
|
</view>
|
|
|
<view class="order-detail-timeLine" v-if="currIndex == 2">
|
|
@@ -112,28 +134,35 @@
|
|
|
<u-time-line-item nodeTop="2" v-for="(item, index) in timeDatas" :key="index">
|
|
|
<template v-slot:node>
|
|
|
<view class="time-line-node">
|
|
|
- 流转
|
|
|
+ {{item.status == 1 ? '处理' : (item.status == 2 ? '完结' : '流转')}}
|
|
|
</view>
|
|
|
</template>
|
|
|
<template v-slot:content>
|
|
|
<view>
|
|
|
<view class="u-order-title">
|
|
|
- <span class="u-order-time">2023-09-23 23:22</span>
|
|
|
- <span class="u-order-name">艾强>蒋科</span>
|
|
|
+ <span class="u-order-time">{{item.handleTime || '-'}}</span>
|
|
|
+ <span class="u-order-name" v-if="item.previousName && item.nextPerson">{{item.previousName + '>' + item.nextPerson}}</span>
|
|
|
+ <span class="u-order-name" v-else-if="!item.previousName && item.nextPerson">{{item.nextPerson}}</span>
|
|
|
+ <span class="u-order-name" v-else>{{item.processorName}}</span>
|
|
|
</view>
|
|
|
- <view class="u-order-desc">分析处理中</view>
|
|
|
- <view class="u-order-images">
|
|
|
- <image :src="img.image" v-for="(img, i) in imgList" :key="i" class="u-order-img"></image>
|
|
|
+ <view class="u-order-desc">{{item.status == 2 ? '处理完成' : '分析处理中'}}</view>
|
|
|
+ <view class="u-order-images" v-if="item.attachment">
|
|
|
+ <image :src="img" v-for="(img, i) in item.imgList" :key="i" class="u-order-img"></image>
|
|
|
</view>
|
|
|
- <view class="u-order-images">
|
|
|
- <video :src="video" v-for="(video, i) in videos" :key="i" class="u-order-img"></video>
|
|
|
+ <view class="u-order-images" v-if="item.video">
|
|
|
+ <video :src="item.video" class="u-order-img"></video>
|
|
|
</view>
|
|
|
|
|
|
</view>
|
|
|
</template>
|
|
|
</u-time-line-item>
|
|
|
</u-time-line>
|
|
|
+ <view class="no-data" v-if="timeDatas.length == 0">
|
|
|
+ 该工单暂无处理记录
|
|
|
+ </view>
|
|
|
</view>
|
|
|
+ <u-select :list="dealSelectList" v-model="dealSelectShow" @confirm="dealSelectCallback"> </u-select>
|
|
|
+ <u-select :list="personSelectList" v-model="showPerson" value-name="userId" label-name="nickName" @confirm="personSelectCallback"> </u-select>
|
|
|
</view>
|
|
|
</template>
|
|
|
|
|
@@ -146,64 +175,157 @@
|
|
|
level: 1,
|
|
|
//是否收起详细信息
|
|
|
isShowMore: true,
|
|
|
- imgList: [
|
|
|
- {
|
|
|
- image: 'https://cdn.uviewui.com/uview/swiper/1.jpg',
|
|
|
- title: '昨夜星辰昨夜风,画楼西畔桂堂东'
|
|
|
- },
|
|
|
- {
|
|
|
- image: 'https://cdn.uviewui.com/uview/swiper/2.jpg',
|
|
|
- title: '身无彩凤双飞翼,心有灵犀一点通'
|
|
|
- },
|
|
|
- {
|
|
|
- image: 'https://cdn.uviewui.com/uview/swiper/3.jpg',
|
|
|
- title: '谁念西风独自凉,萧萧黄叶闭疏窗,沉思往事立残阳'
|
|
|
- },
|
|
|
- {
|
|
|
- image: 'https://cdn.uviewui.com/uview/swiper/1.jpg',
|
|
|
- title: '昨夜星辰昨夜风,画楼西畔桂堂东'
|
|
|
- },
|
|
|
- {
|
|
|
- image: 'https://cdn.uviewui.com/uview/swiper/1.jpg',
|
|
|
- title: '昨夜星辰昨夜风,画楼西畔桂堂东'
|
|
|
- },
|
|
|
- {
|
|
|
- image: 'https://cdn.uviewui.com/uview/swiper/2.jpg',
|
|
|
- title: '身无彩凤双飞翼,心有灵犀一点通'
|
|
|
- },
|
|
|
- {
|
|
|
- image: 'https://cdn.uviewui.com/uview/swiper/3.jpg',
|
|
|
- title: '谁念西风独自凉,萧萧黄叶闭疏窗,沉思往事立残阳'
|
|
|
- },
|
|
|
- {
|
|
|
- image: 'https://cdn.uviewui.com/uview/swiper/1.jpg',
|
|
|
- title: '昨夜星辰昨夜风,画楼西畔桂堂东'
|
|
|
- }
|
|
|
- ],
|
|
|
- timeDatas: [[],[],[],[],[],[],[],[],[],[],[],[],[]],
|
|
|
- videos: ['https://media.w3.org/2010/05/sintel/trailer.mp4']
|
|
|
+ //详情数据
|
|
|
+ detailInfo: {},
|
|
|
+ //用户信息
|
|
|
+ userinfo: {},
|
|
|
+ //提交表单
|
|
|
+ form: {
|
|
|
+ status: null,
|
|
|
+ statusText: null,
|
|
|
+ info: null,
|
|
|
+ nextPerson: null,
|
|
|
+ nextId: null,
|
|
|
+ },
|
|
|
+ //是否显示处理方式
|
|
|
+ dealSelectShow: false,
|
|
|
+ //是否显示人员
|
|
|
+ showPerson: false,
|
|
|
+ //人员列表
|
|
|
+ personSelectList: [],
|
|
|
+ //处理列表
|
|
|
+ dealSelectList: [{label: '处理中', value: 1}, {label: '转发', value: 3}, {label: '已处理', value: 2}],
|
|
|
+ //验证规则对象
|
|
|
+ rules: {
|
|
|
+ statusText: [
|
|
|
+ {
|
|
|
+ required: true,
|
|
|
+ message: '请选择处理',
|
|
|
+ // 可以单个或者同时写两个触发验证方式
|
|
|
+ trigger: ['change','blur'],
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ info: [
|
|
|
+ {
|
|
|
+ max: 200,
|
|
|
+ message: '记录不能大于200个字',
|
|
|
+ trigger: ['change','blur'],
|
|
|
+ message: '请输入问题记录',
|
|
|
+ required: true,
|
|
|
+ }
|
|
|
+ ],
|
|
|
+
|
|
|
+ },
|
|
|
+ timeDatas: [],
|
|
|
}
|
|
|
},
|
|
|
+ //第一次加载
|
|
|
+ onLoad(e) {
|
|
|
+ this.id = e.id;
|
|
|
+ let userinfo = uni.getStorageSync('user')
|
|
|
+ this.userinfo = JSON.parse(userinfo)
|
|
|
+ },
|
|
|
+ onReady() {
|
|
|
+ // this.$refs.uform.setRules(this.rules);
|
|
|
+ },
|
|
|
+ mounted() {
|
|
|
+ this.getDetailData();
|
|
|
+ },
|
|
|
methods: {
|
|
|
//tab选择
|
|
|
tabHandle(type) {
|
|
|
this.currIndex = type;
|
|
|
+ if(type == 2) {
|
|
|
+ this.getDealList();
|
|
|
+ } else {
|
|
|
+ this.getDetailData();
|
|
|
+ }
|
|
|
+ },
|
|
|
+ //处理返回
|
|
|
+ dealSelectCallback(e) {
|
|
|
+ uni.hideKeyboard();
|
|
|
+ this.form.statusText = e[0].label;
|
|
|
+ this.form.status = e[0].value;
|
|
|
+ },
|
|
|
+ //人员选择
|
|
|
+ personSelectCallback(e) {
|
|
|
+ uni.hideKeyboard();
|
|
|
+ this.form.nextId = e[0].value;
|
|
|
+ this.form.nextPerson = e[0].label;
|
|
|
},
|
|
|
//点击图片
|
|
|
imageHandle(data) {
|
|
|
let list = [];
|
|
|
- this.imgList.forEach(item => {
|
|
|
- list.push(item.image)
|
|
|
+ this.detailInfo.imgList.forEach(item => {
|
|
|
+ list.push(item)
|
|
|
})
|
|
|
uni.previewImage({
|
|
|
urls: list,
|
|
|
- current: this.imgList[data].image
|
|
|
+ current: this.detailInfo.imgList[data]
|
|
|
})
|
|
|
},
|
|
|
//是否收起/展开详细信息
|
|
|
showHandle() {
|
|
|
this.isShowMore = !this.isShowMore
|
|
|
},
|
|
|
+ //获取详情数据
|
|
|
+ getDetailData() {
|
|
|
+ let _that = this
|
|
|
+ uni.showLoading({
|
|
|
+ title: '搜索中...',
|
|
|
+ })
|
|
|
+ _that.detailInfo = {};
|
|
|
+ _that.$http.getOrderDetail(_that.id).then(res => {
|
|
|
+ if(res.code == 200) {
|
|
|
+ let detailInfo = {...res.data};
|
|
|
+ if(detailInfo.attachment) {
|
|
|
+ detailInfo.imgList = detailInfo.attachment.split(',')
|
|
|
+ }
|
|
|
+ _that.detailInfo = detailInfo;
|
|
|
+ this.getPersons(detailInfo.stationCode);
|
|
|
+ } else {
|
|
|
+ _that.$utils.msg(res.msg);
|
|
|
+ }
|
|
|
+ uni.hideLoading();
|
|
|
+ })
|
|
|
+ },
|
|
|
+ //获取处理列表
|
|
|
+ getDealList() {
|
|
|
+ let _that = this
|
|
|
+ uni.showLoading({
|
|
|
+ title: '搜索中...',
|
|
|
+ })
|
|
|
+ _that.timeDatas = [];
|
|
|
+ _that.$http.getOrderDealList({parentId: _that.id}).then(res => {
|
|
|
+ if(res.code == 200) {
|
|
|
+ let timeDatas = res.data || [];
|
|
|
+ if(timeDatas.length > 0) {
|
|
|
+ timeDatas.forEach(item => {
|
|
|
+ if(item.attachment) {
|
|
|
+ item.imgList = item.attachment.split(',')
|
|
|
+ }
|
|
|
+ _that.timeDatas.push(item);
|
|
|
+ })
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ _that.$utils.msg(res.msg);
|
|
|
+ }
|
|
|
+ uni.hideLoading();
|
|
|
+ })
|
|
|
+ },
|
|
|
+ //获取站点下的人员列表
|
|
|
+ getPersons(code) {
|
|
|
+ let _that = this;
|
|
|
+ _that.personSelectList = [];
|
|
|
+ _that.$http.getUserListByStationCode(code).then(res => {
|
|
|
+ uni.hideLoading();
|
|
|
+ if(res.code == 200) {
|
|
|
+ _that.personSelectList = res.data || [];
|
|
|
+ } else {
|
|
|
+ _that.$utils.msg(res.msg);
|
|
|
+ }
|
|
|
+ })
|
|
|
+ },
|
|
|
}
|
|
|
}
|
|
|
</script>
|
|
@@ -427,6 +549,19 @@
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+ .order-detail-deal {
|
|
|
+ background: #FFFFFF;
|
|
|
+ border-radius: 16rpx;
|
|
|
+ padding: 30rpx;
|
|
|
+ margin: 0rpx 30rpx 30rpx;
|
|
|
+ .order-detail-deal-title {
|
|
|
+ font-size: 30rpx;
|
|
|
+ font-family: PingFang SC-Medium, PingFang SC;
|
|
|
+ font-weight: 500;
|
|
|
+ color: #1E2128;
|
|
|
+ line-height: 36rpx;
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
.order-detail-timeLine {
|
|
|
background: #FFFFFF;
|
|
@@ -465,6 +600,18 @@
|
|
|
line-height: 32rpx;
|
|
|
}
|
|
|
}
|
|
|
+ .no-data {
|
|
|
+ text-align: center;
|
|
|
+ font-size: 22rpx;
|
|
|
+ font-family: PingFang SC-Regular, PingFang SC;
|
|
|
+ font-weight: 400;
|
|
|
+ color: #1D2129;
|
|
|
+ line-height: 32rpx;
|
|
|
+ position: fixed;
|
|
|
+ top: 200rpx;
|
|
|
+ left: 50%;
|
|
|
+ transform: translate(-50%);
|
|
|
+ }
|
|
|
}
|
|
|
.u-order-desc {
|
|
|
font-size: 24rpx;
|