| | |
| | | <up-search placeholder="请点击选择日期" @click='clickTime' @clear='init' disabled v-model="workTime" |
| | | search-icon="calendar" @search='init'></up-search> |
| | | </view> |
| | | <!-- <view class="coreshop-ff content c-p-10 chuany-flex chuany-justify-between"> |
| | | <view class="chuany-width82"> |
| | | <up-search placeholder="请点击选择司机" @click="clickAction('driver7')" @clear='init' disabled |
| | | @change='init' action-text="查询" v-model="deliverKeyName" @search='init' |
| | | @custom='init'></up-search> |
| | | </view> |
| | | <up-text align="right" text='送货安排' size='14' @click="() => show7 = true"></up-text> |
| | | </view> --> |
| | | </view> |
| | | </up-sticky> |
| | | <view class="c-p-b-100"> |
| | |
| | | <view class="coreshop-ff chuany-bradius20"> |
| | | <view class="chuany-font26"> |
| | | <view class="chuany-flex chuany-justify-between"> |
| | | <text class="chuany-width7">{{index+1}}</text> |
| | | <text class="chuany-width5">{{index+1}}</text> |
| | | <view class="chuany-width15"> |
| | | {{$util.formatDate(item.deliverTime,'riqi')}} |
| | | </view> |
| | |
| | | </up-empty> |
| | | </view> |
| | | <up-modal title="完成送货" :show="show7" showCancelButton @confirm="confirmSave" @cancel='cancelModal' |
| | | :asyncClose="true"> |
| | | <up-form labelPosition="left" :model="arrangeInfo" ref="formRef" labelWidth='140rpx'> |
| | | <!-- <up-form-item label="送货日期" prop="deliverTime" required :borderBottom='false' ref="item1" |
| | | @click="clickShouTime"> |
| | | <up-datetime-picker hasInput @confirm='confirmDate' :show="shougHuoshow" v-model="deliverTime" |
| | | mode="date" placeholder="点击选择工作日期" :minDate='Number(new Date(minDate))' |
| | | @cancel='() => shougHuoshow = false'></up-datetime-picker> |
| | | </up-form-item> --> |
| | | |
| | | :asyncClose="true" ref='modalFinish'> |
| | | <up-form labelPosition="left" :model="arrangeInfo" ref="formFinishRef" labelWidth='140rpx'> |
| | | <up-form-item label="收货单位" prop="buyerId" :borderBottom='false' ref="item1"> |
| | | <up-input v-model="arrangeInfo.companyName" placeholder="请选择收货单位" border="none" readonly> |
| | | <!-- <template #suffix> |
| | | <up-button @tap="clickAction" text="点击选择" type="primary" size="mini"></up-button> |
| | | </template> --> |
| | | </up-input> |
| | | </up-form-item> |
| | | <up-form-item label="送货情况" prop="driverId" :borderBottom='false' @click="clickAction" ref="item1"> |
| | | <up-input v-model="selectAc" disabled border="none" disabledColor="#ffffff" |
| | | placeholder="请选择送货情况"></up-input> |
| | | </up-form-item> |
| | | <!-- <up-form-item label="联系人" prop="lianxiren" :borderBottom='false' ref="item1"> |
| | | <up-input v-model="arrangeInfo.lianxiren" border="none" placeholder="请输入联系人"></up-input> |
| | | </up-form-item> |
| | | <up-form-item label="联系电话" prop="dianhua" required :borderBottom='false' ref="item1"> |
| | | <up-input v-model="arrangeInfo.dianhua" border="none" placeholder="请输入联系电话"></up-input> |
| | | </up-form-item> |
| | | <up-form-item label="送货地址" prop="dizhi" required :borderBottom='false' ref="item1"> |
| | | <up-input v-model="arrangeInfo.dizhi" border="none" placeholder="请输入送货地址"></up-input> |
| | | </up-form-item> --> |
| | | <up-form-item label="意见反馈" prop="wentifankui" :borderBottom='false' ref="item1"> |
| | | <up-textarea v-model="arrangeInfo.wentifankui" border="none" placeholder="请输入意见反馈"></up-textarea> |
| | | <up-form-item label="意见反馈" prop="wentifankui" labelPosition='top' :borderBottom='false' ref="item1"> |
| | | <up-input v-model="arrangeInfo.wentifankui" border="none" placeholder="请输入意见反馈"></up-input> |
| | | </up-form-item> |
| | | |
| | | <up-form-item label="送货单" prop="idCardFace"> |
| | | <up-form-item label="送货单" prop="attachments" required> |
| | | <tem-upload-file immediate :url="`https://appimchat.oss-cn-chengdu.aliyuncs.com`" ref="uploadB" |
| | | :isSource='true' fileType="all" @success="success('File',$event)" @error="errorInvoice" |
| | | @complete="completeInvoice('',$event)"> |
| | | </tem-upload-file> |
| | | <!-- <template #right> |
| | | <up-icon name="arrow-right"></up-icon> |
| | | </template> --> |
| | | </up-form-item> |
| | | </up-form> |
| | | </up-modal> |
| | | <up-modal title="出车打卡" :show="showClockIn" showCancelButton @confirm="confirmClockSave" @cancel='cancelModal' |
| | | :asyncClose="true" ref='clockInModal'> |
| | | <up-form labelPosition="left" :model="clockInfo" ref="formClockInRef" labelWidth='140rpx'> |
| | | <up-form-item label="车辆检查" prop="carConditionAttachments" v-if="clockInfo.clockType=='ClockIn'" |
| | | required> |
| | | <tem-upload-file immediate btnText="上传照片" :url="`https://appimchat.oss-cn-chengdu.aliyuncs.com`" |
| | | ref="carCondition" :isSource='true' fileType="all" |
| | | @success="successClock('carCondition',$event)" @error="errorInvoice" |
| | | @complete="completeInvoice('carCondition',$event)"> |
| | | </tem-upload-file> |
| | | </up-form-item> |
| | | <template v-else> |
| | | <up-form-item label="装货照片" prop="attachments" required> |
| | | <tem-upload-file immediate btnText="上传照片" :url="`https://appimchat.oss-cn-chengdu.aliyuncs.com`" |
| | | ref="zhuanghuo" :isSource='true' fileType="all" @success="successClock('zhuanghuo',$event)" |
| | | @error="errorInvoice" @complete="completeInvoice('zhuanghuo',$event)"> |
| | | </tem-upload-file> |
| | | </up-form-item> |
| | | <up-form-item label="未装货原因" prop="emptyCause" :borderBottom='false' @click="clickAction" |
| | | labelWidth='160rpx' ref="item1"> |
| | | <up-input v-model="clockInfo.emptyCause" disabled border="none" disabledColor="#ffffff" |
| | | placeholder="请选择未装货原因"></up-input> |
| | | </up-form-item> |
| | | </template> |
| | | <up-form-item label="里程表" required prop="mileage" :borderBottom='false' ref="item1"> |
| | | <up-input v-model="clockInfo.mileage" placeholder="请输入里程" border="none" type="digit"> |
| | | <template #suffix> |
| | | <text>km</text> |
| | | </template> |
| | | </up-input> |
| | | </up-form-item> |
| | | <up-form-item label="里程照片" required prop="mileageImg" :borderBottom='false' ref="item1"> |
| | | <tem-upload-file immediate max="1" btnText="上传照片" |
| | | :url="`https://appimchat.oss-cn-chengdu.aliyuncs.com`" ref="licheng" :isSource='true' |
| | | fileType="all" @success="successClock('licheng',$event)" @error="errorInvoice" |
| | | @complete="completeInvoice('licheng',$event)"> |
| | | </tem-upload-file> |
| | | </up-form-item> |
| | | <up-form-item label="车况备注" prop="carCondition" labelPosition='top' :borderBottom='false' ref="item1"> |
| | | <up-input v-model="clockInfo.carCondition" border="none" placeholder="请输入车况备注"></up-input> |
| | | </up-form-item> |
| | | </up-form> |
| | | </up-modal> |
| | |
| | | <up-action-sheet :show="showActions" :actions="actions" title="请选择" @close="showActions = false" |
| | | @select="selectItem"> |
| | | </up-action-sheet> |
| | | <view class="tabbtns chuany-flex chuany-justify-between"> |
| | | <view class="chuany-width45"> |
| | | <up-button type="primary" text="出车打卡" @click="clockIn('ClockIn')"></up-button> |
| | | </view> |
| | | <view class="chuany-width45"> |
| | | <up-button type="success" text="下班打卡" @click="clockIn('Clockout')"></up-button> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | </template> |
| | | |
| | |
| | | editItem: {}, |
| | | isLoading: false, |
| | | show7: false, |
| | | showClockIn: false, |
| | | showActions: false, |
| | | driverName: '', |
| | | // actions: [{ |
| | | // name: '未完成', |
| | | // id: 'Reject' |
| | | // }, { |
| | | // name: '已完成', |
| | | // id: 'Delivered' |
| | | // }], |
| | | actions: [{ |
| | | name: '未完成', |
| | | id: 'Reject' |
| | | name: '货物不齐', |
| | | id: '货物不齐' |
| | | }, { |
| | | name: '已完成', |
| | | id: 'Delivered' |
| | | name: '未完工', |
| | | id: '未完工' |
| | | }], |
| | | selectAc: '已完成', |
| | | // selectAc: '已完成', |
| | | minDate: this.$util.formatDate(new Date(), null, -7), |
| | | maxDate: this.$util.formatDate(new Date(), null, 7), |
| | | deliverTime: Number(new Date(this.$util.formatDate(new Date(), null, 1))), |
| | | arrangeInfo: { |
| | | keyid: '', |
| | | // deliverTime: this.$util.formatDate(new Date(), null, 1), |
| | | // driverId: '', |
| | | // buyerId: '', |
| | | // dianhua: '', |
| | | wentifankui: '', |
| | | // lianxiren: '', |
| | | Deliveredstatus: 'Delivered ', |
| | | companyName: '', |
| | | attachments: [], |
| | | companyName:'' |
| | | Deliveredstatus:'Delivered' |
| | | }, |
| | | rules: { |
| | | 'deliverTime': { |
| | | 'mileage': { |
| | | type: 'string', |
| | | required: true, |
| | | message: '请选择日期', |
| | | message: '请输入里程', |
| | | trigger: ['blur', 'change'] |
| | | }, |
| | | 'arrangeInfo.driverId': { |
| | | type: 'string', |
| | | max: 1, |
| | | 'attachments': { |
| | | type: 'array', |
| | | required: true, |
| | | message: '请选择司机', |
| | | message: '请上传装货照片', |
| | | trigger: ['blur', 'change'] |
| | | }, |
| | | 'arrangeInfo.dianhua': { |
| | | type: 'string', |
| | | max: 1, |
| | | 'carConditionAttachments': { |
| | | type: 'array', |
| | | required: true, |
| | | message: '请输入联系电话', |
| | | message: '请上传车辆检查照片', |
| | | trigger: ['blur', 'change'] |
| | | }, |
| | | 'arrangeInfo.dizhi': { |
| | | 'mileageImg': { |
| | | type: 'string', |
| | | max: 1, |
| | | required: true, |
| | | message: '请输入送货地址', |
| | | message: '请上传里程照片', |
| | | trigger: ['blur', 'change'] |
| | | }, |
| | | 'arrangeInfo.wentifankui': { |
| | | type: 'string', |
| | | max: 1, |
| | | }, |
| | | rules1: { |
| | | 'attachments': { |
| | | type: 'array', |
| | | required: true, |
| | | message: '请输入送货事由', |
| | | message: '请上传送货单照片', |
| | | trigger: ['blur', 'change'] |
| | | }, |
| | | }, |
| | |
| | | sevenDaysDriver: [], |
| | | deliverKeyID: '', |
| | | deliverKeyName: '', |
| | | companyName:'' |
| | | companyName: '', |
| | | clockInfo: { |
| | | emptyCause: '', |
| | | carConditionAttachments: [], |
| | | attachments: [], |
| | | mileageImg: '', |
| | | clockType: '', //ClockIn ,Clockout |
| | | carCondition: '' |
| | | }, |
| | | } |
| | | }, |
| | | onShow() { |
| | | this.init() |
| | | }, |
| | | onReady() { |
| | | this.$refs.formRef.setRules(this.rules); |
| | | this.$refs.formClockInRef.setRules(this.rules); |
| | | this.$refs.formFinishRef.setRules(this.rules1); |
| | | }, |
| | | onLoad() { |
| | | this.Getdrivers() |
| | |
| | | uni.stopPullDownRefresh(); |
| | | }, |
| | | methods: { |
| | | clockIn(text) { |
| | | this.clockInfo.clockType = text |
| | | this.showClockIn = true |
| | | }, |
| | | success(text, e) { |
| | | //e.res 为服务器返回数据 |
| | | //上传成功回调,处理服务器返回数据【此处根据实际返回数据进行处理】 |
| | |
| | | let res = e.res |
| | | if (res.statusCode == 200) { |
| | | obj.PlanAttachment = res.data |
| | | this.arrangeInfo.attachments.push(obj) |
| | | this.$refs.uploadB.urls.push(res.data) |
| | | this.$refs.uploadB.urls = this.$refs.uploadB.urls.filter(item => { |
| | | return item.indexOf('https') !== -1 |
| | | }) |
| | | this.$refs.uploadB.status.push('success') |
| | | this.$refs.uploadB.status.length = this.$refs.uploadB.urls.length |
| | | } else { |
| | | uni.$u.toast(res.error) |
| | | this.$refs.uploadB.deleteImage() |
| | | } |
| | | this.arrangeInfo.attachments.push(obj) |
| | | console.log(this.arrangeInfo.attachments); |
| | | }, |
| | | successClock(text, e) { |
| | | let obj = {} |
| | | //e.res 为服务器返回数据 |
| | | //上传成功回调,处理服务器返回数据【此处根据实际返回数据进行处理】 |
| | | let res = e.res |
| | | // let res = JSON.parse(e.res.data.replace(/\ufeff/g, "") || "{}") |
| | | if (res.statusCode == 200) { |
| | | if (res.data && text == 'carCondition') { |
| | | obj.planAttachment = res.data //车辆检查照片 |
| | | this.$refs.carCondition.urls.push(res.data) |
| | | this.$refs.carCondition.urls = this.$refs.carCondition.urls.filter(item => { |
| | | return item.indexOf('https') !== -1 |
| | | }) |
| | | this.$refs.carCondition.status.push('success') |
| | | this.$refs.carCondition.status.length = this.$refs.carCondition.urls.length |
| | | console.log(this.$refs.carCondition.status); |
| | | this.clockInfo.carConditionAttachments.push(obj) |
| | | } else if (res.data && text == 'licheng') { |
| | | this.clockInfo.mileageImg = res.data //里程照片 |
| | | this.$refs.licheng.urls.push(res.data) |
| | | this.$refs.licheng.urls = this.$refs.licheng.urls.filter(item => { |
| | | return item.indexOf('https') !== -1 |
| | | }) |
| | | this.$refs.licheng.status.push('success') |
| | | this.$refs.licheng.status.length = this.$refs.licheng.urls.length |
| | | } else { |
| | | obj.planAttachment = res.data //装货照片 |
| | | this.$refs.zhuanghuo.urls.push(res.data) |
| | | this.$refs.zhuanghuo.urls = this.$refs.zhuanghuo.urls.filter(item => { |
| | | return item.indexOf('https') !== -1 |
| | | }) |
| | | this.$refs.zhuanghuo.status.push('success') |
| | | this.$refs.zhuanghuo.status.length = this.$refs.zhuanghuo.urls.length |
| | | this.clockInfo.attachments.push(obj) |
| | | } |
| | | } else { |
| | | uni.$u.toast(res.error) |
| | | if (text == 'carCondition') { |
| | | this.$refs.carCondition.deleteImage() |
| | | } else if (text == 'licheng') { |
| | | this.$refs.licheng.deleteImage() |
| | | } else { |
| | | this.$refs.zhuanghuo.deleteImage() |
| | | } |
| | | } |
| | | }, |
| | | GetDriversOfWithin7days() { |
| | | this.$api.GetDriversOfWithin7days().then(res => { |
| | |
| | | }, |
| | | selectItem(item) { |
| | | this.arrangeInfo.Deliveredstatus = item.id |
| | | this.selectAc = item.name |
| | | // this.selectAc = item.name |
| | | }, |
| | | getFirstDayOfMonth() { |
| | | var currentDate = new Date(); |
| | |
| | | this.isEdit = true |
| | | this.$refs.uploadB.urls = [] |
| | | this.$refs.uploadB.status = [] |
| | | this.arrangeInfo = { |
| | | // deliverTime: this.$util.formatDate(new Date(), null, 1), |
| | | // driverId: item.driverId, |
| | | // buyerId: item.buyerId, |
| | | // dianhua: item.dianhua, |
| | | // wentifankui: item.wentifankui, |
| | | // lianxiren: item.lianxiren, |
| | | // dizhi: item.dizhi, |
| | | Deliveredstatus: 'Delivered', |
| | | attachments: item.attachments || [], |
| | | keyid: item.keyid, |
| | | companyName: item.companyName |
| | | } |
| | | this.arrangeInfo.keyid = item.keyid |
| | | this.arrangeInfo.companyName = item.companyName |
| | | this.show7 = true |
| | | // let obj = this.customerList.find(ite => { |
| | | // return ite.keyid == item.buyerId |
| | |
| | | //选择图片或上传完成时触发 |
| | | completeInvoice(val, e) { |
| | | if (e.action == 'delete') { |
| | | if (val == 'licheng') { |
| | | this.clockInfo.mileageImg = '' |
| | | return |
| | | } |
| | | switch (val) { |
| | | case 'carCondition': |
| | | this.clockInfo.carConditionAttachments = [] |
| | | break; |
| | | case 'zhuanghuo': |
| | | this.clockInfo.attachments = [] |
| | | break; |
| | | default: |
| | | this.arrangeInfo.attachments = [] |
| | | break; |
| | | } |
| | | // 删除处理 |
| | | console.log(e, '0-0-0-'); |
| | | // state.publicJob.workPlanAttachments = state.publicJob.workPlanAttachments.filter(item => { |
| | | // return item.attachmentType == (val == "Invoice" ? 2 : 1) |
| | | // }) |
| | | // e.urls.forEach(item => { |
| | | // let obj = {} |
| | | // obj.attachmentType = val == "Invoice" ? 1 : 2 |
| | | // obj.planAttachment = item //发票 |
| | | // state.publicJob.workPlanAttachments.push(obj) |
| | | // }) |
| | | console.log(e.urls, 'e.urls', this.arrangeInfo.attachments); |
| | | e.urls.forEach(item => { |
| | | let obj = {} |
| | | obj.planAttachment = item //发票 |
| | | console.log(item); |
| | | switch (val) { |
| | | case 'carCondition': |
| | | this.clockInfo.carConditionAttachments.push(obj) |
| | | break; |
| | | case 'zhuanghuo': |
| | | this.clockInfo.attachments.push(obj) |
| | | break; |
| | | default: |
| | | this.arrangeInfo.attachments.push(obj) |
| | | break; |
| | | } |
| | | }) |
| | | console.log(e, this.arrangeInfo, this.clockInfo, '0-0-0-'); |
| | | return |
| | | } |
| | | // $util.pathToBase64(e.urls[0]).then(res => { |
| | |
| | | console.log(e, '--------------'); |
| | | }, |
| | | confirmSave() { |
| | | console.log(this.arrangeInfo); |
| | | this.$api.FinishDeliverPlan(this.arrangeInfo).then(res => { |
| | | if (res.code == 1) { |
| | | this.arrangeInfo = { |
| | | deliverTime: this.$util.formatDate(new Date(), null, 1), |
| | | driverId: '', |
| | | buyerId: '', |
| | | dianhua: '', |
| | | wentifankui: '', |
| | | lianxiren: '', |
| | | dizhi: '', |
| | | this.$refs.formFinishRef.validate().then(res => { |
| | | this.$api.FinishDeliverPlan(this.arrangeInfo).then(res => { |
| | | if (res.code == 1) { |
| | | this.arrangeInfo = { |
| | | keyid: '', |
| | | wentifankui: '', |
| | | companyName: '', |
| | | attachments: [], |
| | | Deliveredstatus:'Delivered' |
| | | } |
| | | this.show7 = false |
| | | this.driverName = '' |
| | | this.buyerName = '' |
| | | this.init() |
| | | } else { |
| | | this.$refs.modalFinish.loading = false |
| | | this.$util.showToast({ |
| | | title: res.error |
| | | }) |
| | | } |
| | | this.show7 = false |
| | | this.driverName = '' |
| | | this.buyerName = '' |
| | | this.init() |
| | | } else { |
| | | this.$util.showToast({ |
| | | title: res.error |
| | | }) |
| | | } |
| | | }) |
| | | }).catch(errors => { |
| | | this.$refs.modalFinish.loading = false |
| | | }) |
| | | }, |
| | | confirmClockSave() { |
| | | console.log(this.clockInfo); |
| | | // if (!this.clockInfo.mileageImg) { |
| | | // this.$refs.clockInModal.loading = false |
| | | // return this.$util.showToast({ |
| | | // title: '请上传里程照片!' |
| | | // }) |
| | | // } |
| | | this.clockInfo = this.$util.removeEmptyValuesRecursive(this.clockInfo) |
| | | this.$refs.formClockInRef.validate().then(res => { |
| | | this.$api.Clock(this.clockInfo).then(res => { |
| | | if (res.code == 1) { |
| | | this.clockInfo = { |
| | | emptyCause: '', |
| | | carConditionAttachments: [], |
| | | mileageImg: '', |
| | | attachments: [], |
| | | clockType: '', //ClockIn ,Clockout |
| | | carCondition: '' |
| | | } |
| | | this.showClockIn = false |
| | | // this.init() |
| | | } else { |
| | | this.$util.showToast({ |
| | | title: res.error |
| | | }) |
| | | this.$refs.clockInModal.loading = false |
| | | } |
| | | }) |
| | | }).catch(errors => { |
| | | this.$refs.clockInModal.loading = false |
| | | }) |
| | | |
| | | |
| | | }, |
| | | cancelModal() { |
| | | this.showClockIn = false |
| | | this.show7 = false |
| | | this.arrangeInfo = { |
| | | deliverTime: this.$util.formatDate(new Date(), null, 1), |
| | | driverId: '', |
| | |
| | | lianxiren: '', |
| | | dizhi: '', |
| | | } |
| | | this.show7 = false |
| | | this.clockInfo = { |
| | | emptyCause: '', |
| | | carConditionAttachments: [], |
| | | mileageImg: '', |
| | | attachments: [], |
| | | clockType: '', //ClockIn ,Clockout |
| | | carCondition: '' |
| | | } |
| | | this.driverName = '' |
| | | this.buyerName = '' |
| | | }, |
| | |
| | | } |
| | | </script> |
| | | |
| | | <style> |
| | | <style lang="scss"> |
| | | .u-textarea { |
| | | padding: 0 !important; |
| | | } |
| | |
| | | .u-form-item__body { |
| | | padding: 5px 0 !important; |
| | | } |
| | | |
| | | .labelSty { |
| | | .u-form-item__body__left.data-v-98223e3d { |
| | | display: block; |
| | | } |
| | | } |
| | | </style> |