|
@@ -6,7 +6,7 @@
|
|
|
<div class="box_item">
|
|
|
<div class="left">项目订单号</div>
|
|
|
<div class="right select" @tap="handleSelect(1)">
|
|
|
- <text>{{orderNo}}</text>
|
|
|
+ <text>{{orderNoText}}</text>
|
|
|
<image :src="imgBase+'operation/arrow_right.png'" mode="widthFix"></image>
|
|
|
</div>
|
|
|
</div>
|
|
@@ -27,7 +27,7 @@
|
|
|
<div class="box_item">
|
|
|
<div class="left">产品编号</div>
|
|
|
<div class="right select" @tap="handleSelect(4)">
|
|
|
- <text>{{productNo}}</text>
|
|
|
+ <text>{{productNoText}}</text>
|
|
|
<image :src="imgBase+'operation/arrow_right.png'" mode="widthFix"></image>
|
|
|
</div>
|
|
|
</div>
|
|
@@ -50,13 +50,13 @@
|
|
|
<div class="box_item">
|
|
|
<div class="left">报修人员</div>
|
|
|
<div class="right">
|
|
|
- <input type="text" placeholder="请输入报修人员" placeholder-class="inp_ph" v-model="dto.ggg">
|
|
|
+ <input type="text" placeholder="请输入报修人员" placeholder-class="inp_ph" v-model="dto.maintainer">
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="box_item2">
|
|
|
<div class="top">故障描述</div>
|
|
|
<div class="bottom">
|
|
|
- <u--textarea v-model="dto.hhh" placeholder="故障描述" placeholder-class="inp_ph2" border="none" height="110"></u--textarea>
|
|
|
+ <u--textarea v-model="dto.description" placeholder="故障描述" placeholder-class="inp_ph2" border="none" height="110"></u--textarea>
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
@@ -78,40 +78,43 @@
|
|
|
<div class="bottom_btn">
|
|
|
<div class="btn" @tap="submit">提交</div>
|
|
|
</div>
|
|
|
- <u-picker :itemHeight="88" :show="show1" :columns="columns1" keyName="label" title="项目订单号"
|
|
|
- @cancel="show1=false" @confirm="e=>confirm(e,1,'orderNo','aaa')" :immediateChange="true"></u-picker>
|
|
|
- <u-picker :itemHeight="88" :show="show2" :columns="columns2" keyName="label" title="报修地点"
|
|
|
- @cancel="show2=false" @confirm="e=>confirm(e,2,'placeText','bbb')" :immediateChange="true"></u-picker>
|
|
|
- <u-picker :itemHeight="88" :show="show3" :columns="columns3" keyName="label" title="产品名称"
|
|
|
- @cancel="show3=false" @confirm="e=>confirm(e,3,'productText','ccc')" :immediateChange="true"></u-picker>
|
|
|
- <u-picker :itemHeight="88" :show="show4" :columns="columns4" keyName="label" title="产品编号"
|
|
|
- @cancel="show4=false" @confirm="e=>confirm(e,4,'productNo','ddd')" :immediateChange="true"></u-picker>
|
|
|
- <u-datetime-picker :itemHeight="88" :show="show5" v-model="dto.eee" mode="date" title="故障发生时间"
|
|
|
+ <u-picker :itemHeight="88" :show="show1" :columns="columns1" keyName="orderNo" title="项目订单号"
|
|
|
+ @cancel="show1=false" @confirm="e=>confirm(e,1,'orderNoText','orderId','orderNo')" :immediateChange="true"></u-picker>
|
|
|
+ <u-picker :itemHeight="88" :show="show2" :columns="columns2" keyName="customerName" title="报修地点"
|
|
|
+ @cancel="show2=false" @confirm="e=>confirm(e,2,'placeText','customer','customerName')" :immediateChange="true"></u-picker>
|
|
|
+ <u-picker :itemHeight="88" :show="show3" :columns="columns3" keyName="itemName" title="产品名称"
|
|
|
+ @cancel="show3=false" @confirm="e=>confirm(e,3,'productText','skuId','itemName')" :immediateChange="true"></u-picker>
|
|
|
+ <u-picker :itemHeight="88" :show="show4" :columns="columns4" keyName="productNo" title="产品编号"
|
|
|
+ @cancel="show4=false" @confirm="e=>confirm(e,4,'productNoText','serialnumber','productNo')" :immediateChange="true"></u-picker>
|
|
|
+ <u-datetime-picker :itemHeight="88" :show="show5" v-model="dto.happenDate" mode="date" title="故障发生时间"
|
|
|
@cancel="show5=false" @confirm="e=>confirm(e,5)" :immediateChange="true" :minDate="minDate" :maxDate="maxDate"></u-datetime-picker>
|
|
|
- <u-picker :itemHeight="88" :show="show6" :columns="columns6" keyName="label" title="故障类型"
|
|
|
- @cancel="show6=false" @confirm="e=>confirm(e,6,'typeText','fff')" :immediateChange="true"></u-picker>
|
|
|
+ <u-picker :itemHeight="88" :show="show6" :columns="columns6" keyName="typeName" title="故障类型"
|
|
|
+ @cancel="show6=false" @confirm="e=>confirm(e,6,'typeText','optCategory','typeName')" :immediateChange="true"></u-picker>
|
|
|
</view>
|
|
|
</template>
|
|
|
|
|
|
<script>
|
|
|
+ const baseApi = require('@/http/baseApi.js')
|
|
|
export default {
|
|
|
data(){
|
|
|
return {
|
|
|
dto:{
|
|
|
- aaa:'',
|
|
|
- bbb:'',
|
|
|
- ccc:'',
|
|
|
- ddd:'',
|
|
|
- eee:'',
|
|
|
- fff:'',
|
|
|
- ggg:'',
|
|
|
- hhh:''
|
|
|
+ orderId:'',
|
|
|
+ customer:'',
|
|
|
+ skuId:'',
|
|
|
+ itemName:'',
|
|
|
+ serialnumber:'',
|
|
|
+ happenDate:'',
|
|
|
+ optCategory:'',
|
|
|
+ maintainer:'',
|
|
|
+ description:'',
|
|
|
+ faultFile:''
|
|
|
},
|
|
|
fileList:[],
|
|
|
- orderNo:'请选择项目订单号',
|
|
|
+ orderNoText:'请选择项目订单号',
|
|
|
placeText:'请选择报修地点',
|
|
|
productText:'请选择产品名称',
|
|
|
- productNo:'请选择产品编号',
|
|
|
+ productNoText:'请选择产品编号',
|
|
|
dateText:'请选择故障发生时间',
|
|
|
typeText:'请选择故障类型',
|
|
|
show1:false,
|
|
@@ -120,46 +123,84 @@
|
|
|
show4:false,
|
|
|
show5:false,
|
|
|
show6:false,
|
|
|
- columns1:[[
|
|
|
- {value:1,label:'PO20250408001'},
|
|
|
- {value:2,label:'PO20250408002'}
|
|
|
- ]],
|
|
|
- columns2:[[
|
|
|
- {value:1,label:'长鑫科技集团股份有限公司'},
|
|
|
- {value:2,label:'峻凌电子(合肥)有限公司'}
|
|
|
- ]],
|
|
|
- columns3:[[
|
|
|
- {value:1,label:'产品名称A'},
|
|
|
- {value:2,label:'产品名称B'},
|
|
|
- ]],
|
|
|
- columns4:[[
|
|
|
- {value:1,label:'P20250408001'},
|
|
|
- {value:2,label:'P20250408002'},
|
|
|
- ]],
|
|
|
- columns6:[[
|
|
|
- {value:1,label:'类型A'},
|
|
|
- {value:2,label:'类型B'},
|
|
|
- ]],
|
|
|
+ columns1:[],
|
|
|
+ columns2:[],
|
|
|
+ columns3:[],
|
|
|
+ columns4:[],
|
|
|
+ columns6:[],
|
|
|
minDate:'',
|
|
|
maxDate:'',
|
|
|
+ productList:[],
|
|
|
+ productNoList:[],
|
|
|
+ rules:[
|
|
|
+ {key:'orderId',tip:'请选择项目订单号'},
|
|
|
+ {key:'customer',tip:'请选择报修地点'},
|
|
|
+ {key:'skuId',tip:'请选择产品名称'},
|
|
|
+ {key:'serialnumber',tip:'请选择产品编号'},
|
|
|
+ {key:'happenDate',tip:'请选择故障发生时间'},
|
|
|
+ {key:'optCategory',tip:'请选择故障类型'},
|
|
|
+ {key:'maintainer',tip:'请输入报修人员'},
|
|
|
+ {key:'description',tip:'请输入故障描述'}
|
|
|
+ ]
|
|
|
}
|
|
|
},
|
|
|
onLoad() {
|
|
|
let d = new Date();
|
|
|
this.minDate = new Date(d.getFullYear()-3,d.getMonth()+1,d.getDate()).getTime();
|
|
|
this.maxDate = new Date().getTime();
|
|
|
+ this.getOrderList();
|
|
|
+ this.getCustomerList();
|
|
|
+ this.getTypeList();
|
|
|
},
|
|
|
methods:{
|
|
|
+ getOrderList(){
|
|
|
+ this.$api.get('/wms/project/getOrderPage',{page:1,limit:-1}).then(res=>{
|
|
|
+ if(res.data.code===0){
|
|
|
+ this.columns1 = [res.data.data.list];
|
|
|
+ }else this.$showToast(res.data.msg)
|
|
|
+ })
|
|
|
+ },
|
|
|
+ getCustomerList(){
|
|
|
+ this.$api.get('/wms/project/getCustomerList',{page:1,limit:-1}).then(res=>{
|
|
|
+ if(res.data.code!==0) return this.$showToast(res.data.msg)
|
|
|
+ let list = res.data.data.map(d=>{return {id:d,customerName:d}})
|
|
|
+ this.columns2 = [list]
|
|
|
+ })
|
|
|
+ },
|
|
|
+ getTypeList(){
|
|
|
+ this.$api.get('/sys/dict/data/getListByType/wms_operation_category').then(res=>{
|
|
|
+ if(res.data.code===0){
|
|
|
+ let list = res.data.data.map(d=>{return {id:d.dictValue,typeName:d.dictLabel}})
|
|
|
+ this.columns6 = [list];
|
|
|
+ }else this.$showToast(res.data.msg)
|
|
|
+ })
|
|
|
+ },
|
|
|
handleSelect(type){
|
|
|
+ if(type==3&&!this.dto.orderId) return this.$showToast('请先选择项目订单号')
|
|
|
+ if(type==4&&!this.dto.itemName) return this.$showToast('请先选择产品名称')
|
|
|
this['show'+type] = true;
|
|
|
},
|
|
|
- confirm(e,type,param,key){
|
|
|
+ confirm(e,type,param,key,key2){
|
|
|
if(type!=5){
|
|
|
- this[param] = e.value[0].label;
|
|
|
- this.dto[key] = e.value[0].value;
|
|
|
+ this[param] = e.value[0][key2];
|
|
|
+ this.dto[key] = e.value[0].id;
|
|
|
+ if(type==3) this.dto.itemName = e.value[0][key2]
|
|
|
}else{
|
|
|
this.dateText = new Date(e.value).Format('yyyy-MM-dd');
|
|
|
- this.dto.eee = JSON.parse(JSON.stringify(this.dateText));
|
|
|
+ this.dto.happenDate = JSON.parse(JSON.stringify(this.dateText));
|
|
|
+ }
|
|
|
+ if(type==1){
|
|
|
+ this.$api.get('/wms/shipmentOrder/getShipmentByProjectId/'+this.dto.orderId).then(res=>{
|
|
|
+ if(res.data.code!==0) return this.$showToast(res.data.msg)
|
|
|
+ this.productList = res.data.data;
|
|
|
+ let list = res.data.data.map(d=>{return {id:d.skuId,itemName:d.itemName}})
|
|
|
+ this.columns3 = [list]
|
|
|
+ })
|
|
|
+ }
|
|
|
+ if(type==3){
|
|
|
+ this.productNoList = this.productList.find(p => p.skuId === this.dto.skuId)?.serialnumbers||[];
|
|
|
+ let list = this.productNoList.map(d=>{return {id:d,productNo:d}});
|
|
|
+ this.columns4 = [list];
|
|
|
}
|
|
|
this['show'+type] = false;
|
|
|
},
|
|
@@ -197,7 +238,7 @@
|
|
|
uploadFilePromise(url) {
|
|
|
return new Promise((resolve, reject) => {
|
|
|
let a = uni.uploadFile({
|
|
|
- url: "http://192.168.2.21:7001/upload", // 仅为示例,非真实的接口地址
|
|
|
+ url: baseApi.BaseApi + '/uploadFile',
|
|
|
filePath: url,
|
|
|
name: "file",
|
|
|
formData: {
|
|
@@ -212,7 +253,18 @@
|
|
|
});
|
|
|
},
|
|
|
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.happenDate = new Date(dto.happenDate).Format('yyyy-MM-dd');
|
|
|
+ this.$api.post('/wms/order/operation',this.dto).then(res=>{
|
|
|
+ if(res.data.code!==0) return this.$showToast(res.data.msg)
|
|
|
+ this.$showToast('报修成功')
|
|
|
+ setTimeout(()=>{
|
|
|
+ uni.navigateBack()
|
|
|
+ },1500)
|
|
|
+ })
|
|
|
}
|
|
|
}
|
|
|
}
|