星油车管小程序
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

161 lines
4.4 KiB

9 months ago
<template>
<view class="send-body flex column">
<order-item v-if="orderData" :order-data='orderData' type="card"></order-item>
<view class="oneflex">
<view class="send-form">
<view class="send-form-title">信息录入</view>
<view class="send-form-item flex ac">
<view class="send-form-item-label"><text style="color: red;">*</text>发货日期</view>
<view class="send-form-item-value oneflex">
<uni-datetime-picker v-model="submitData.departureDate">
{{submitData.departureDate||'选择发货日期'}}
</uni-datetime-picker>
</view>
</view>
<view class="send-form-item flex ac">
<view class="send-form-item-label"><text style="color: red;">*</text>货物重量()</view>
<view class="send-form-item-value oneflex">
<input v-model="submitData.weight" placeholder="请输入货物重量" />
</view>
</view>
<view class="send-form-item flex ac">
<view class="send-form-item-label"> <text style="color: red;">*</text> 发货单</view>
<view class="send-form-item-value oneflex">
<view class="upload-container flex warp ">
<view class="upload-item" :key='index' v-for="(item,index) in submitData.proofsList">
<view @click="imageRemove(submitData.proofsList,index)" class="colse">
<uni-icons type="closeempty" size="15" color="#686868"></uni-icons>
</view>
<image style="width: 100%; height: 100%;" @click="previewImage(submitData.proofsList,index)"
:src="item.imageUrl"> </image>
</view>
<view v-if="submitData.proofsList.length<3" @click="uploadImagesFn"
class="upload-tip flex ac jc column">
<uni-icons type="camera" size="20" color=""></uni-icons>
<text> 最多三张</text>
</view>
</view>
</view>
</view>
</view>
</view>
<view class="send-footer flex around">
<view @click="cancel" class="cancel flex jc ac">撤单</view>
<view @click="submit" class="submit flex jc ac">提交</view>
</view>
<u-toast ref="uToast"></u-toast>
</view>
</template>
<script>
import orderApi from '@/api/order.js'
import orderItem from "@/components/orderItem/orderItem.vue";
export default {
components: {
orderItem
},
data() {
return {
checkPage: {
departureDate: {
tacitly: '',
WrongText: '发货时间不能为空'
},
weight:{
tacitly: '',
custom:/^\d+(?=\.{0,1}\d+$|$)/,
WrongText: '重量不能为空且必须为数字'
},
proofsList:{
minLength:1,
WrongText: '图片不能为空'
}
},
submitData: {
"id": "",
"motion":'1',
"departureDate": "",
"unloadingDate": "",
"weight":"",
"proofsList": []
},
orderData: null,
}
},
onLoad(e) {
if (e.orderData){
this.orderData = JSON.parse(decodeURIComponent(e.orderData));
({id:this.submitData.id=""}=this.orderData);
}
},
methods: {
cancel(){
orderApi.cancelOrder({
"id": this.submitData.id
}).then(res=>{
if(res.code==20000){
uni.showToast({
title:'操作成功',
icon:"success"
});
setTimeout(()=>{
uni.navigateBack()
},1000)
}
})
},
submit() {
let chenkResult = this.tool.checkFn(this.submitData,[],this.checkPage);
if(chenkResult.result){
orderApi.cargoMotion(this.submitData).then(res=>{
if(res.code==20000){
uni.showToast({
icon:"success",
title:"操作成功"
})
setTimeout(()=>{
uni.navigateBack()
},1000)
}
})
}else{
this.$refs.uToast.show({
type: 'error',
icon: false,
title: 'error',
message: chenkResult.WrongText,
})
}
},
imageRemove(uploadImages = this.submitData.proofsList, index) {
this.submitData.proofsList.splice(index, 1);
},
previewImage(uploadImages = this.submitData.proofsList, index = undefined) {
if (index !== undefined && uploadImages[index] !== undefined) {
uni.previewImage({
current: index,
urls:uploadImages.map(item=>item.imageUrl),
longPressActions: {
success: function(data) { },
fail: function(err) { }
}
});
} else {
console.log('数据错误=>', ...arguments)
}
},
uploadImagesFn() {
this.tool.chooseImage((imageUrl) => {
this.submitData.proofsList.push({
imageUrl
});
})
},
}
}
</script>
<style scoped lang="scss">
@import 'index.scss';
</style>