|
@@ -4,55 +4,62 @@
|
|
<div class="box">
|
|
<div class="box">
|
|
<div class="b_title">
|
|
<div class="b_title">
|
|
故障信息
|
|
故障信息
|
|
- <div class="b_status" :class="{'djj':dto.status===1,'yjj':dto.status===0}">{{dto.status===0?'已解决':'未解决'}}</div>
|
|
|
|
|
|
+ <div class="b_status" :class="{'djj':dto.status===0,'yjj':dto.status===1}">{{dto.status===1?'已解决':'未解决'}}</div>
|
|
</div>
|
|
</div>
|
|
<div class="bs_item">
|
|
<div class="bs_item">
|
|
<div class="left">项目订单号</div>
|
|
<div class="left">项目订单号</div>
|
|
- <div class="right">{{'PO0098877666'}}</div>
|
|
|
|
|
|
+ <div class="right">{{dto.orderNo2||''}}</div>
|
|
</div>
|
|
</div>
|
|
<div class="bs_item">
|
|
<div class="bs_item">
|
|
<div class="left">报修地点</div>
|
|
<div class="left">报修地点</div>
|
|
- <div class="right">{{'长鑫科技集团股份有限公司'}}</div>
|
|
|
|
|
|
+ <div class="right">{{dto.customer||''}}</div>
|
|
</div>
|
|
</div>
|
|
<div class="bs_item">
|
|
<div class="bs_item">
|
|
<div class="left">产品名称</div>
|
|
<div class="left">产品名称</div>
|
|
- <div class="right">{{'高温罩'}}</div>
|
|
|
|
|
|
+ <div class="right">{{dto.itemName||''}}</div>
|
|
</div>
|
|
</div>
|
|
<div class="bs_item">
|
|
<div class="bs_item">
|
|
<div class="left">产品编号</div>
|
|
<div class="left">产品编号</div>
|
|
- <div class="right">{{'GRT9988811'}}</div>
|
|
|
|
|
|
+ <div class="right">{{dto.serialnumber||''}}</div>
|
|
</div>
|
|
</div>
|
|
<div class="bs_item">
|
|
<div class="bs_item">
|
|
<div class="left">故障发生时间</div>
|
|
<div class="left">故障发生时间</div>
|
|
- <div class="right">{{'2025-03-11 13:00'}}</div>
|
|
|
|
|
|
+ <div class="right">{{dto.happenDate||''}}</div>
|
|
</div>
|
|
</div>
|
|
<div class="bs_item">
|
|
<div class="bs_item">
|
|
<div class="left">故障类型</div>
|
|
<div class="left">故障类型</div>
|
|
- <div class="right">{{'类型A'}}</div>
|
|
|
|
|
|
+ <div class="right">{{dto.typeName||''}}</div>
|
|
</div>
|
|
</div>
|
|
<div class="bs_item">
|
|
<div class="bs_item">
|
|
<div class="left">报修人员</div>
|
|
<div class="left">报修人员</div>
|
|
- <div class="right">{{'王安宇'}}</div>
|
|
|
|
|
|
+ <div class="right">{{dto.maintainer||''}}</div>
|
|
</div>
|
|
</div>
|
|
<div class="bs_item">
|
|
<div class="bs_item">
|
|
<div class="left">报修时间</div>
|
|
<div class="left">报修时间</div>
|
|
- <div class="right">{{'2025-03-12 13:00'}}</div>
|
|
|
|
|
|
+ <div class="right">{{dto.createDate||''}}</div>
|
|
</div>
|
|
</div>
|
|
<div class="bs_item">
|
|
<div class="bs_item">
|
|
<div class="left">故障描述</div>
|
|
<div class="left">故障描述</div>
|
|
- <div class="right">{{'故障描述故障描述'}}</div>
|
|
|
|
|
|
+ <div class="right">{{dto.description||''}}</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="box">
|
|
<div class="box">
|
|
<div class="b_title">故障照片</div>
|
|
<div class="b_title">故障照片</div>
|
|
<div style="padding-top: 24rpx;">
|
|
<div style="padding-top: 24rpx;">
|
|
- <u-upload width="180" height="180"
|
|
|
|
- :fileList="fileList"
|
|
|
|
- @afterRead="afterRead"
|
|
|
|
- @delete="deletePic"
|
|
|
|
- multiple
|
|
|
|
- :maxCount="5"
|
|
|
|
- ></u-upload>
|
|
|
|
|
|
+ <template v-if="yjj">
|
|
|
|
+ <div class="imgs">
|
|
|
|
+ <image :src="img" v-for="(img,idx) in imgList" :key="idx"></image>
|
|
|
|
+ </div>
|
|
|
|
+ </template>
|
|
|
|
+ <template v-else>
|
|
|
|
+ <u-upload width="180" height="180"
|
|
|
|
+ :fileList="fileList"
|
|
|
|
+ @afterRead="afterRead"
|
|
|
|
+ @delete="deletePic"
|
|
|
|
+ multiple
|
|
|
|
+ :maxCount="5"
|
|
|
|
+ ></u-upload>
|
|
|
|
+ </template>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="box">
|
|
<div class="box">
|
|
@@ -60,28 +67,44 @@
|
|
<div class="b_item">
|
|
<div class="b_item">
|
|
<div class="left">问题状态</div>
|
|
<div class="left">问题状态</div>
|
|
<div class="right">
|
|
<div class="right">
|
|
- <u-radio-group v-model="params.aaa" :size="30" :iconSize="30">
|
|
|
|
- <u-radio :labelSize="26" :label="0">已解决</u-radio>
|
|
|
|
- <u-radio :labelSize="26" :label="1">未解决</u-radio>
|
|
|
|
- </u-radio-group>
|
|
|
|
|
|
+ <template v-if="yjj">
|
|
|
|
+ 已解决
|
|
|
|
+ </template>
|
|
|
|
+ <template v-else>
|
|
|
|
+ <u-radio-group v-model="dto.status" :size="30" :iconSize="30">
|
|
|
|
+ <u-radio :labelSize="26" :label="1" :name="1">已解决</u-radio>
|
|
|
|
+ <u-radio :labelSize="26" :label="0" :name="0">未解决</u-radio>
|
|
|
|
+ </u-radio-group>
|
|
|
|
+ </template>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="b_item">
|
|
<div class="b_item">
|
|
<div class="left">故障原因</div>
|
|
<div class="left">故障原因</div>
|
|
<div class="right">
|
|
<div class="right">
|
|
- <input type="text" placeholder="请输入故障原因" placeholder-class="inp_ph" v-model="params.bbb">
|
|
|
|
|
|
+ <template v-if="yjj">
|
|
|
|
+ {{dto.faultCause||""}}
|
|
|
|
+ </template>
|
|
|
|
+ <template v-else>
|
|
|
|
+ <input type="text" placeholder="请输入故障原因" placeholder-class="inp_ph" v-model="dto.faultCause">
|
|
|
|
+ </template>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="b_item">
|
|
<div class="b_item">
|
|
<div class="left">维修开始时间</div>
|
|
<div class="left">维修开始时间</div>
|
|
- <div class="right select" @tap="handleSelect(1)">
|
|
|
|
|
|
+ <div class="right" v-if="yjj">
|
|
|
|
+ {{dto.repairStartTime||''}}
|
|
|
|
+ </div>
|
|
|
|
+ <div class="right select" @tap="handleSelect(1)" v-else>
|
|
<text>{{startDateText}}</text>
|
|
<text>{{startDateText}}</text>
|
|
<image :src="imgBase+'operation/arrow_right.png'" mode="widthFix"></image>
|
|
<image :src="imgBase+'operation/arrow_right.png'" mode="widthFix"></image>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="b_item">
|
|
<div class="b_item">
|
|
<div class="left">维修结束时间</div>
|
|
<div class="left">维修结束时间</div>
|
|
- <div class="right select" @tap="handleSelect(2)">
|
|
|
|
|
|
+ <div class="right" v-if="yjj">
|
|
|
|
+ {{dto.repairEndTime||''}}
|
|
|
|
+ </div>
|
|
|
|
+ <div class="right select" @tap="handleSelect(2)" v-else>
|
|
<text>{{endDateText}}</text>
|
|
<text>{{endDateText}}</text>
|
|
<image :src="imgBase+'operation/arrow_right.png'" mode="widthFix"></image>
|
|
<image :src="imgBase+'operation/arrow_right.png'" mode="widthFix"></image>
|
|
</div>
|
|
</div>
|
|
@@ -89,24 +112,34 @@
|
|
<div class="b_item">
|
|
<div class="b_item">
|
|
<div class="left">维修人员</div>
|
|
<div class="left">维修人员</div>
|
|
<div class="right">
|
|
<div class="right">
|
|
- <input type="text" placeholder="请输入维修人员" placeholder-class="inp_ph" v-model="params.eee">
|
|
|
|
|
|
+ <template v-if="yjj">
|
|
|
|
+ {{dto.optUser||""}}
|
|
|
|
+ </template>
|
|
|
|
+ <template v-else>
|
|
|
|
+ <input type="text" placeholder="请输入维修人员" placeholder-class="inp_ph" v-model="dto.optUser">
|
|
|
|
+ </template>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="b_item2">
|
|
<div class="b_item2">
|
|
<div class="top">维修描述</div>
|
|
<div class="top">维修描述</div>
|
|
<div class="bottom">
|
|
<div class="bottom">
|
|
- <u--textarea v-model="dto.fff" placeholder="请输入维修描述" placeholder-class="inp_ph2" border="none" height="110"></u--textarea>
|
|
|
|
|
|
+ <template v-if="yjj">
|
|
|
|
+ {{dto.remark||""}}
|
|
|
|
+ </template>
|
|
|
|
+ <template v-else>
|
|
|
|
+ <u--textarea v-model="dto.remark" placeholder="请输入维修描述" placeholder-class="inp_ph2" border="none" height="110"></u--textarea>
|
|
|
|
+ </template>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="bottom_btn">
|
|
<div class="bottom_btn">
|
|
- <div class="btn" @tap="submit">提交</div>
|
|
|
|
- <!-- <div class="btn" @tap="back">返回</div> -->
|
|
|
|
|
|
+ <div class="btn" @tap="submit" v-if="!yjj">提交</div>
|
|
|
|
+ <div class="btn" @tap="back" v-else>返回</div>
|
|
</div>
|
|
</div>
|
|
- <u-datetime-picker :itemHeight="88" :show="show1" v-model="dto.ccc" mode="date" title="维修开始时间"
|
|
|
|
- @cancel="show1=false" @confirm="e=>confirm(e,1,'ccc','startDateText')" :immediateChange="true" :minDate="minDate" :maxDate="maxDate"></u-datetime-picker>
|
|
|
|
- <u-datetime-picker :itemHeight="88" :show="show2" v-model="dto.ccc" mode="date" title="维修结束时间"
|
|
|
|
- @cancel="show2=false" @confirm="e=>confirm(e,2,'ddd','endDateText')" :immediateChange="true" :minDate="minDate" :maxDate="maxDate"></u-datetime-picker>
|
|
|
|
|
|
+ <u-datetime-picker :itemHeight="88" :show="show1" v-model="dto.repairStartTime" mode="datetime" title="维修开始时间"
|
|
|
|
+ @cancel="show1=false" @confirm="e=>confirm(e,1,'repairStartTime','startDateText')" :immediateChange="true" :minDate="minDate" :maxDate="maxDate"></u-datetime-picker>
|
|
|
|
+ <u-datetime-picker :itemHeight="88" :show="show2" v-model="dto.repairEndTime" mode="datetime" title="维修结束时间"
|
|
|
|
+ @cancel="show2=false" @confirm="e=>confirm(e,2,'repairEndTime','endDateText')" :immediateChange="true" :minDate="minDate" :maxDate="maxDate"></u-datetime-picker>
|
|
</view>
|
|
</view>
|
|
</template>
|
|
</template>
|
|
|
|
|
|
@@ -114,17 +147,8 @@
|
|
export default {
|
|
export default {
|
|
data(){
|
|
data(){
|
|
return {
|
|
return {
|
|
- dto:{
|
|
|
|
- status:1
|
|
|
|
- },
|
|
|
|
- params:{
|
|
|
|
- aaa:'',
|
|
|
|
- bbb:'',
|
|
|
|
- ccc:'',
|
|
|
|
- ddd:'',
|
|
|
|
- eee:'',
|
|
|
|
- fff:''
|
|
|
|
- },
|
|
|
|
|
|
+ id:'',
|
|
|
|
+ dto:{},
|
|
fileList:[],
|
|
fileList:[],
|
|
show1:false,
|
|
show1:false,
|
|
show2:false,
|
|
show2:false,
|
|
@@ -132,24 +156,84 @@
|
|
endDateText:'请输入维修结束时间',
|
|
endDateText:'请输入维修结束时间',
|
|
minDate:'',
|
|
minDate:'',
|
|
maxDate:'',
|
|
maxDate:'',
|
|
|
|
+ projectList:[],
|
|
|
|
+ typeList:[],
|
|
|
|
+ imgList:[],
|
|
|
|
+ yjj:false,
|
|
|
|
+ rules:[
|
|
|
|
+ {key:'status',tip:'请选择状态'},
|
|
|
|
+ {key:'faultCause',tip:'请输入故障原因'},
|
|
|
|
+ {key:'repairStartTime',tip:'请选择维修开始时间'},
|
|
|
|
+ {key:'repairEndTime',tip:'请选择维修结束时间'},
|
|
|
|
+ {key:'optUser',tip:'请输入维修人员'},
|
|
|
|
+ {key:'remark',tip:'请输入维修描述'}
|
|
|
|
+ ]
|
|
}
|
|
}
|
|
},
|
|
},
|
|
mounted() {
|
|
mounted() {
|
|
let d = new Date();
|
|
let d = new Date();
|
|
- this.minDate = new Date(d.getFullYear()-3,d.getMonth()+1,d.getDate()).getTime();
|
|
|
|
|
|
+ this.minDate = new Date(d.getFullYear()-1,d.getMonth()+1,d.getDate()).getTime();
|
|
this.maxDate = new Date().getTime();
|
|
this.maxDate = new Date().getTime();
|
|
},
|
|
},
|
|
|
|
+ async onLoad(option) {
|
|
|
|
+ this.id = option.id;
|
|
|
|
+ await this.getOrderList();
|
|
|
|
+ await this.getTypeList();
|
|
|
|
+ this.getDetail();
|
|
|
|
+ },
|
|
methods:{
|
|
methods:{
|
|
|
|
+ getOrderList(){
|
|
|
|
+ return new Promise((resolve,reject)=>{
|
|
|
|
+ this.$api.get('/wms/project/getOrderPage',{page:1,limit:-1}).then(res=>{
|
|
|
|
+ if(res.data.code===0){
|
|
|
|
+ this.projectList = res.data.data.list;
|
|
|
|
+ resolve();
|
|
|
|
+ }else this.$showToast(res.data.msg)
|
|
|
|
+ })
|
|
|
|
+ })
|
|
|
|
+ },
|
|
|
|
+ getTypeList(){
|
|
|
|
+ return new Promise((resolve,reject)=>{
|
|
|
|
+ this.$api.get('/sys/dict/data/getListByType/wms_operation_category').then(res=>{
|
|
|
|
+ if(res.data.code===0){
|
|
|
|
+ this.typeList = res.data.data;
|
|
|
|
+ resolve();
|
|
|
|
+ }else this.$showToast(res.data.msg)
|
|
|
|
+ })
|
|
|
|
+ })
|
|
|
|
+ },
|
|
|
|
+ getDetail(){
|
|
|
|
+ this.$api.get('/wms/order/operation/'+this.id).then(res=>{
|
|
|
|
+ if(res.data.code!==0) return this.$showToast(res.data.msg)
|
|
|
|
+ this.dto = res.data.data;
|
|
|
|
+ this.dto.orderNo2 = this.projectList.find(p=>p.id==this.dto.orderId)?.orderNo||'';
|
|
|
|
+ this.dto.typeName = this.typeList.find(t=>t.dictValue==this.dto.optCategory)?.dictLabel||'';
|
|
|
|
+ this.imgList = this.dto.faultFile.split(',');
|
|
|
|
+ this.yjj = this.dto.status==1?true:false;
|
|
|
|
+ })
|
|
|
|
+ },
|
|
handleSelect(type){
|
|
handleSelect(type){
|
|
this['show'+type] = true;
|
|
this['show'+type] = true;
|
|
},
|
|
},
|
|
confirm(e,type,key,param){
|
|
confirm(e,type,key,param){
|
|
- this[param] = new Date(e.value).Format('yyyy-MM-dd');
|
|
|
|
- this.params[key] = new Date(e.value).Format('yyyy-MM-dd');
|
|
|
|
|
|
+ this[param] = new Date(e.value).Format('yyyy-MM-dd hh:mm:ss');
|
|
|
|
+ this.dto[key] = new Date(e.value).Format('yyyy-MM-dd hh:mm:ss');
|
|
this['show'+type] = false;
|
|
this['show'+type] = false;
|
|
},
|
|
},
|
|
submit(){
|
|
submit(){
|
|
- uni.navigateBack()
|
|
|
|
|
|
+ let idx = this.rules.findIndex(r=>!this.dto[r.key]==true);
|
|
|
|
+ if(idx>-1) return this.$showToast(this.rules[idx].tip)
|
|
|
|
+
|
|
|
|
+ let dto = JSON.parse(JSON.stringify(this.dto))
|
|
|
|
+ this.dto.repairStartTime = new Date(dto.repairStartTime).Format('yyyy-MM-dd hh:mm:ss');
|
|
|
|
+ this.dto.repairEndTime = new Date(dto.repairEndTime).Format('yyyy-MM-dd hh:mm:ss');
|
|
|
|
+ this.$api.put('/wms/order/operation',this.dto).then(res=>{
|
|
|
|
+ if(res.data.code!==0) return this.$showToast(res.data.msg)
|
|
|
|
+ this.$showToast('处理成功')
|
|
|
|
+ setTimeout(()=>{
|
|
|
|
+ uni.navigateBack()
|
|
|
|
+ },1500)
|
|
|
|
+ })
|
|
},
|
|
},
|
|
back(){
|
|
back(){
|
|
uni.navigateBack()
|
|
uni.navigateBack()
|
|
@@ -282,6 +366,18 @@
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ .imgs{
|
|
|
|
+ display: flex;
|
|
|
|
+ justify-content: space-evenly;
|
|
|
|
+ flex-wrap: wrap;
|
|
|
|
+ margin-top: -20rpx;
|
|
|
|
+ image{
|
|
|
|
+ width: 180rpx;
|
|
|
|
+ height: 180rpx;
|
|
|
|
+ margin-top: 20rpx;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
|
|
.bs_item{
|
|
.bs_item{
|
|
display: flex;
|
|
display: flex;
|
|
@@ -304,6 +400,7 @@
|
|
color: #1D2129;
|
|
color: #1D2129;
|
|
line-height: 26rpx;
|
|
line-height: 26rpx;
|
|
text-align: right;
|
|
text-align: right;
|
|
|
|
+ word-wrap: break-word;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|