From ec90cbd7680a6f927cb1cea43f33ab7df6d0864c Mon Sep 17 00:00:00 2001
From: zhangwei <1504152376@qq.com>
Date: 星期二, 11 十一月 2025 09:23:22 +0800
Subject: [PATCH] -
---
src/pages/delivergoods/feedback.vue | 640 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 639 insertions(+), 1 deletions(-)
diff --git a/src/pages/delivergoods/feedback.vue b/src/pages/delivergoods/feedback.vue
index 02409e3..f597c84 100644
--- a/src/pages/delivergoods/feedback.vue
+++ b/src/pages/delivergoods/feedback.vue
@@ -1,8 +1,646 @@
<template>
+ <up-sticky bgColor="#fff">
+ <view class="coreshop-ff content c-p-10">
+ <view class="coreshop-ff content c-p-l-10 c-p-t-10 c-p-r-10">
+ <up-search placeholder="璇风偣鍑婚�夋嫨鏃ユ湡" @click='clickTime' @clear='init' disabled v-model="workTime"
+ search-icon="calendar" @search='init'></up-search>
+ </view>
+ </view>
+ </up-sticky>
+ <view class="c-p-b-100">
+ <view class="c-p-l-20 c-p-r-20" v-if="orderList&&orderList.length>0">
+ <view class="listrecord c-p-t-20" v-for="(item,index) in orderList" :key="item.keyid">
+ <view class="coreshop-ff chuany-bradius20">
+ <view class="chuany-font26">
+ <view class="chuany-flex chuany-justify-between">
+ <text class="chuany-width5">{{index+1}}</text>
+ <view class="chuany-width15">
+ {{$util.formatDate(item.deliverTime,'riqi')}}
+ </view>
+ <view class="chuany-width67" @click='goDetail(item)'>
+ <u-text size='14' :text="item.companyName" lines="1">
+ <!-- <u-text size='14' :text="item.remark||item.companyName" lines="1"> -->
+ </u-text>
+ </view>
+ <view class="chuany-width11 chuany-flex chuany-justify-between">
+ <up-icon v-if="item.deliveredstatus=='Undeliver'" name="play-right" size='18'
+ @tap.stop='startOrder(item)'></up-icon>
+ <up-icon v-else-if="item.deliveredstatus=='Deliver'" name="checkbox-mark" size='18'
+ @tap.stop="editOrder(item)"></up-icon>
+ </view>
+ </view>
+ </view>
+ </view>
+ </view>
+ <up-loadmore :status="loadStatus" />
+ </view>
+ <view v-else>
+ <up-empty text='鏆傛棤' icon="/static/order.png">
+ </up-empty>
+ </view>
+ <up-modal title="瀹屾垚閫佽揣" :show="show7" showCancelButton @confirm="confirmSave" @cancel='cancelModal'
+ :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>
+ </up-input>
+ </up-form-item>
+ <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="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>
+ </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>
+ <fui-date-picker :show="datePickerShow" :value="getFirstDayOfMonth()" type="3" zIndex="10000"
+ @change="changePicker" :minDate='minDate' :maxDate='maxDate' @cancel="clickTime"></fui-date-picker>
+ <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>
<script>
+ import {
+ mapActions,
+ mapGetters,
+ mapMutations
+ } from 'vuex'
+ export default {
+ data() {
+ return {
+ datePickerShow: false,
+ shougHuoshow: false,
+ workTime: this.$util.formatDate(new Date()),
+ orderList: [],
+ loadStatus: 'loadmore',
+ pageIndex: 1,
+ pageSize: 30,
+ contentVal: '',
+ customerList: [],
+ isEdit: false,
+ editItem: {},
+ isLoading: false,
+ show7: false,
+ showClockIn: false,
+ showActions: false,
+ driverName: '',
+ // actions: [{
+ // name: '鏈畬鎴�',
+ // id: 'Reject'
+ // }, {
+ // name: '宸插畬鎴�',
+ // id: 'Delivered'
+ // }],
+ actions: [{
+ name: '璐х墿涓嶉綈',
+ id: '璐х墿涓嶉綈'
+ }, {
+ name: '鏈畬宸�',
+ id: '鏈畬宸�'
+ }],
+ // 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: '',
+ wentifankui: '',
+ companyName: '',
+ attachments: [],
+ Deliveredstatus: 'Delivered'
+ },
+ rules: {
+ 'mileage': {
+ type: 'string',
+ required: true,
+ message: '璇疯緭鍏ラ噷绋�',
+ trigger: ['blur', 'change']
+ },
+ 'attachments': {
+ type: 'array',
+ required: true,
+ message: '璇蜂笂浼犺璐х収鐗�',
+ trigger: ['blur', 'change']
+ },
+ 'carConditionAttachments': {
+ type: 'array',
+ required: true,
+ message: '璇蜂笂浼犺溅杈嗘鏌ョ収鐗�',
+ trigger: ['blur', 'change']
+ },
+ 'mileageImg': {
+ type: 'string',
+ required: true,
+ message: '璇蜂笂浼犻噷绋嬬収鐗�',
+ trigger: ['blur', 'change']
+ },
+ },
+ rules1: {
+ 'attachments': {
+ type: 'array',
+ required: true,
+ message: '璇蜂笂浼犻�佽揣鍗曠収鐗�',
+ trigger: ['blur', 'change']
+ },
+ },
+ radio: '',
+ switchVal: false,
+ driverList: [],
+ buyerName: '',
+ timeStart: new Date(),
+ timeEnd: new Date(),
+ sevenDaysDriver: [],
+ deliverKeyID: '',
+ deliverKeyName: '',
+ companyName: '',
+ clockInfo: {
+ emptyCause: '',
+ carConditionAttachments: [],
+ attachments: [],
+ mileageImg: '',
+ clockType: '', //ClockIn ,Clockout
+ carCondition: ''
+ },
+ }
+ },
+ onShow() {
+ this.init()
+ },
+ onReady() {
+ this.$refs.formClockInRef.setRules(this.rules);
+ this.$refs.formFinishRef.setRules(this.rules1);
+ },
+ onLoad() {
+ this.Getdrivers()
+ this.getCustomer()
+ this.GetDriversOfWithin7days()
+ },
+ onReachBottom() {
+ if (this.loadStatus != 'nomore') {
+ this.getList()
+ }
+ },
+ onPullDownRefresh() {
+ this.timeStart = new Date()
+ this.timeEnd = new Date()
+ this.workTime = this.$util.formatDate(new Date())
+ this.deliverKeyName = ''
+ this.init()
+ uni.stopPullDownRefresh();
+ },
+ methods: {
+ clockIn(text) {
+ this.clockInfo.clockType = text
+ this.showClockIn = true
+ },
+ success(text, e) {
+ //e.res 涓烘湇鍔″櫒杩斿洖鏁版嵁
+ //涓婁紶鎴愬姛鍥炶皟锛屽鐞嗘湇鍔″櫒杩斿洖鏁版嵁銆愭澶勬牴鎹疄闄呰繑鍥炴暟鎹繘琛屽鐞嗐��
+ let obj = {}
+ 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()
+ }
+ 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 => {
+ if (res.code == 1) {
+ this.sevenDaysDriver = res.data
+ }
+ })
+ },
+ changePicker(val) {
+ console.log(val);
+ this.workTime = val.result
+ this.timeStart = new Date(val.result) //宸ヤ綔寮�濮嬫椂闂�
+ this.timeEnd = new Date(val.result)
+ this.datePickerShow = !this.datePickerShow
+ this.init()
+ },
+ confirmDate(val) {
+ console.log(val);
+ this.arrangeInfo.deliverTime = val
+ this.shougHuoshow = false
+ },
+ getCustomer() {
+ this.$api.GeCorporateClients().then(res => {
+ if (res.code == 1) {
+ this.customerList = res.data
+ this.customerList.forEach(item => {
+ item.name = item.companyName
+ })
+ }
+ })
+ },
+ selectItem(item) {
+ this.arrangeInfo.Deliveredstatus = item.id
+ // this.selectAc = item.name
+ },
+ getFirstDayOfMonth() {
+ var currentDate = new Date();
+ // currentDate.setDate(1); // 灏嗘棩鏈熻涓�1
+ return this.$util.formatDate(currentDate);
+ },
+ clickTime() {
+ this.datePickerShow = !this.datePickerShow
+ },
+ clickShouTime() {
+ this.shougHuoshow = !this.shougHuoshow
+ },
+ clickAction() {
+ this.showActions = true
+ uni.hideKeyboard()
+ },
+ editOrder(item) {
+ this.isEdit = true
+ this.$refs.uploadB.urls = []
+ this.$refs.uploadB.status = []
+ this.arrangeInfo.keyid = item.keyid
+ this.arrangeInfo.companyName = item.companyName
+ this.show7 = true
+ // let obj = this.customerList.find(ite => {
+ // return ite.keyid == item.buyerId
+ // })
+ // this.buyerName = obj.companyName
+ },
+ startOrder(item) {
+ let that = this
+ uni.showModal({
+ title: '鎻愮ず',
+ content: '纭寮�濮嬮�佽揣鍚楋紵',
+ success: function(res) {
+ if (res.confirm) {
+ // 鎵ц纭鍚庣殑鎿嶄綔
+ that.$api.StartDeliverPlan(item.keyid).then(req => {
+ if (req.code == 1) {
+ that.$util.showToast({
+ title: '寮�濮嬮�佽揣鎴愬姛锛�'
+ })
+ that.init()
+ } else {
+ that.$util.showToast({
+ title: req.error
+ })
+ }
+ })
+ } else {
+ // 鎵ц鍙栨秷鍚庣殑鎿嶄綔
+ }
+ }
+ })
+ },
+ init() {
+ this.pageIndex = 1
+ this.pageSize = 30
+ this.loadStatus = 'loadmore'
+ this.orderList = []
+ this.contentVal = ''
+ this.getList()
+ },
+ //閫夋嫨鍥剧墖鎴栦笂浼犲畬鎴愭椂瑙﹀彂
+ 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.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 => {
+ // idCardFaceBase64.value = res
+ // console.log(idCardFaceBase64, idCardFaceBase64.value);
+ // })
+ },
+ errorInvoice(e) {
+ console.log(e, '--------------');
+ },
+ confirmSave() {
+ 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
+ })
+ }
+ })
+ }).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: '',
+ buyerId: '',
+ dianhua: '',
+ wentifankui: '',
+ lianxiren: '',
+ dizhi: '',
+ }
+ this.clockInfo = {
+ emptyCause: '',
+ carConditionAttachments: [],
+ mileageImg: '',
+ attachments: [],
+ clockType: '', //ClockIn ,Clockout
+ carCondition: ''
+ }
+ this.driverName = ''
+ this.buyerName = ''
+ },
+ Getdrivers() {
+ this.$api.Getdrivers().then(res => {
+ if (res.code == 1) {
+ this.driverList = res.data
+ }
+ })
+ },
+ getList() {
+ this.deliverKeyName == '' ? this.deliverKeyID = '' : null
+ let data = {
+ page: {
+ pageIndex: this.pageIndex,
+ pageSize: this.pageSize,
+ }
+ }
+ if (this.timeStart) {
+ data.timeStart = this.timeStart
+ }
+ if (this.timeEnd) {
+ data.timeEnd = this.timeEnd
+ }
+ if (this.deliverKeyID) {
+ data.deliverKeyID = this.deliverKeyID
+ }
+ this.$api.driverGetDeliverPlans(data).then(res => {
+ if (res.code == 1) {
+ if (this.pageIndex == 1) {
+ this.orderList = res.data.data
+ } else {
+ this.orderList = this.orderList.concat(...res.data.data)
+ }
+ console.log(this.orderList, 'orderList鈥�');
+ // totalPages = res.data.totalCount
+ // 鏍规嵁count鏁伴噺鍒ゆ柇鏄惁杩樻湁鏁版嵁
+ if (res.data.page.totalCount > this.orderList.length) {
+ this.loadStatus = 'loadmore'
+ this.pageIndex++
+ } else {
+ // 鏁版嵁宸插姞杞藉畬姣�
+ this.loadStatus = 'nomore'
+ }
+ } else {
+ // _that.$refs.uToast.show({ message: res.msg, type: 'error' });
+ }
+ })
+ },
+ accept(item) {
+ let that = this
+ uni.showModal({
+ title: '鎻愮ず',
+ content: '纭鍙楃悊璇ラ�佽揣鍚楋紵',
+ success: function(res) {
+ if (res.confirm) {
+ // 鎵ц纭鍚庣殑鎿嶄綔
+ that.$api.AcceptAppointmentDeliver(item.keyid).then(req => {
+ if (req.code == 1) {
+ that.$util.showToast({
+ title: '鍙楃悊鎴愬姛锛�'
+ })
+ that.init()
+ } else {
+ that.$util.showToast({
+ title: req.error
+ })
+ }
+ })
+ } else {
+ // 鎵ц鍙栨秷鍚庣殑鎿嶄綔
+ }
+ }
+ })
+ },
+ actionClick(item, e) {
+ console.log(e);
+ if (e.index == 0) {
+ this.contentVal = item.wentifankui
+ }
+ },
+ goDetail(item) {
+ uni.navigateTo({
+ url: `/pages/delivergoods/feedbackdetail?KeyId=${item.keyid}`
+ });
+ }
+ }
+ }
</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>
\ No newline at end of file
--
Gitblit v1.9.1