From 309cc3fe6303d8464951063e89fc9d623915501e Mon Sep 17 00:00:00 2001 From: zhangwei <1504152376@qq.com> Date: 星期一, 10 三月 2025 16:23:35 +0800 Subject: [PATCH] - --- src/pages/delivergoods/feedback.vue | 384 ++++++++++++++++++++++++++++++++++++++---------------- 1 files changed, 266 insertions(+), 118 deletions(-) diff --git a/src/pages/delivergoods/feedback.vue b/src/pages/delivergoods/feedback.vue index a255b3b..7018acb 100644 --- a/src/pages/delivergoods/feedback.vue +++ b/src/pages/delivergoods/feedback.vue @@ -5,14 +5,6 @@ <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"> @@ -22,7 +14,7 @@ <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> @@ -47,47 +39,64 @@ </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> @@ -96,6 +105,14 @@ <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> @@ -121,64 +138,65 @@ 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'] }, }, @@ -191,14 +209,23 @@ 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() @@ -219,6 +246,10 @@ uni.stopPullDownRefresh(); }, methods: { + clockIn(text) { + this.clockInfo.clockType = text + this.showClockIn = true + }, success(text, e) { //e.res 涓烘湇鍔″櫒杩斿洖鏁版嵁 //涓婁紶鎴愬姛鍥炶皟锛屽鐞嗘湇鍔″櫒杩斿洖鏁版嵁銆愭澶勬牴鎹疄闄呰繑鍥炴暟鎹繘琛屽鐞嗐�� @@ -226,11 +257,64 @@ 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 => { @@ -264,7 +348,7 @@ }, selectItem(item) { this.arrangeInfo.Deliveredstatus = item.id - this.selectAc = item.name + // this.selectAc = item.name }, getFirstDayOfMonth() { var currentDate = new Date(); @@ -285,19 +369,8 @@ 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 @@ -341,17 +414,40 @@ //閫夋嫨鍥剧墖鎴栦笂浼犲畬鎴愭椂瑙﹀彂 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 => { @@ -363,30 +459,69 @@ 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: '', @@ -396,7 +531,14 @@ lianxiren: '', dizhi: '', } - this.show7 = false + this.clockInfo = { + emptyCause: '', + carConditionAttachments: [], + mileageImg: '', + attachments: [], + clockType: '', //ClockIn ,Clockout + carCondition: '' + } this.driverName = '' this.buyerName = '' }, @@ -487,7 +629,7 @@ } </script> -<style> +<style lang="scss"> .u-textarea { padding: 0 !important; } @@ -495,4 +637,10 @@ .u-form-item__body { padding: 5px 0 !important; } + + .labelSty { + .u-form-item__body__left.data-v-98223e3d { + display: block; + } + } </style> \ No newline at end of file -- Gitblit v1.9.1