From 16213c0f85aa3ac8317797bf4a05fd12940e16d3 Mon Sep 17 00:00:00 2001 From: zhangwei <1504152376@qq.com> Date: 星期三, 05 三月 2025 17:29:42 +0800 Subject: [PATCH] - --- src/pages/delivergoods/arrange.vue | 377 +++++++++++++++++++++++++++++++++++++++-------------- 1 files changed, 274 insertions(+), 103 deletions(-) diff --git a/src/pages/delivergoods/arrange.vue b/src/pages/delivergoods/arrange.vue index fb00cd3..a17a80e 100644 --- a/src/pages/delivergoods/arrange.vue +++ b/src/pages/delivergoods/arrange.vue @@ -7,11 +7,11 @@ </view> <view class="coreshop-ff content c-p-10 chuany-flex chuany-justify-between"> <view class="chuany-width82"> - <up-search placeholder="璇风偣鍑婚�夋嫨鍙告満" @click='clickIcon' @clear='PostMyDakaListPage' disabled - action-text="鏌ヨ" v-model="wordDate" search-icon="calendar" @search='PostMyDakaListPage' - @custom='PostMyDakaListPage'></up-search> + <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="arrange('Yes')"></up-text> + <up-text align="right" text='閫佽揣瀹夋帓' size='14' @click="() => show7 = true"></up-text> </view> </view> </up-sticky> @@ -21,21 +21,17 @@ <view class="coreshop-ff chuany-bradius20"> <view class="chuany-font26"> <view class="chuany-flex chuany-justify-between"> - <text class="chuany-width5">{{index+1}}</text> + <text class="chuany-width7">{{index+1}}</text> <view class="chuany-width15"> {{$util.formatDate(item.createTime,'riqi')}} </view> - <view class="chuany-width65"> + <view class="chuany-width73"> <u-text size='14' :text="item.remark" lines="1"> </u-text> </view> - <view class="chuany-width11 chuany-flex chuany-justify-between"> + <view class="chuany-width5"> <up-icon name="edit-pen" @click='editOrder(item)'></up-icon> - <up-icon name="trash" @click='delOrder(item)'></up-icon> </view> - </view> - <view class="c-p-t-8"> - <u--text :lines="1" :text="item.planContent"></u--text> </view> </view> </view> @@ -46,35 +42,48 @@ <up-empty text='鏆傛棤' icon="/static/order.png"> </up-empty> </view> - <up-modal title="閫佽揣瀹夋帓" :show="show7" showCancelButton @confirm="() => show7 = false"> - <up-form labelPosition="left" :model="model1" :rules="rules" ref="form1"> - <up-form-item label="濮撳悕" prop="userInfo.name" borderBottom ref="item1"> - <up-input v-model="model1.userInfo.name" border="none"></up-input> + <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-input v-model="arrangeInfo.deliverTime" readonly border="none" + placeholder="鐐瑰嚮閫夋嫨宸ヤ綔鏃ユ湡"></up-input> --> + <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> - <up-form-item label="濮撳悕" prop="userInfo.name" borderBottom ref="item1"> - <up-input v-model="model1.userInfo.name" border="none"></up-input> - </up-form-item> - <up-form-item label="濮撳悕" prop="userInfo.name" borderBottom ref="item1"> - <up-input v-model="model1.userInfo.name" border="none"></up-input> - </up-form-item> - <up-form-item label="濮撳悕" prop="userInfo.name" borderBottom ref="item1"> - <up-input v-model="model1.userInfo.name" border="none"></up-input> - </up-form-item> - <up-form-item label="濮撳悕" prop="userInfo.name" borderBottom ref="item1"> - <up-input v-model="model1.userInfo.name" border="none"></up-input> - </up-form-item> - <up-form-item label="鎬у埆" prop="userInfo.sex" borderBottom @click="showSex = true; hideKeyboard()" + <up-form-item label="鍙告満" prop="driverId" required :borderBottom='false' @click="clickAction('driver')" ref="item1"> - <up-input v-model="model1.userInfo.sex" disabled disabledColor="#ffffff" placeholder="璇烽�夋嫨鎬у埆" - border="none"></up-input> - <template #right> - <up-icon name="arrow-right"></up-icon> - </template> + <up-input v-model="driverName" disabled border="none" disabledColor="#ffffff" + placeholder="璇烽�夋嫨鍙告満"></up-input> + </up-form-item> + <up-form-item label="鏀惰揣鍗曚綅" prop="buyerId" required :borderBottom='false' ref="item1"> + <up-input v-model="buyerName" placeholder="璇烽�夋嫨鏀惰揣鍗曚綅" border="none"> + <template #suffix> + <up-button @tap="clickAction" text="鐐瑰嚮閫夋嫨" type="primary" size="mini"></up-button> + </template> + </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="remark" required :borderBottom='false' ref="item1"> + <up-textarea v-model="arrangeInfo.remark" border="none" placeholder="璇疯緭鍏ラ�佽揣浜嬬敱"></up-textarea> </up-form-item> </up-form> </up-modal> - <fui-date-picker range :show="datePickerShow" :value="getFirstDayOfMonth()" type="3" @change="changePicker" :minDate='minDate' :maxDate='maxDate' - @cancel="clickTime"></fui-date-picker> + <fui-date-picker range :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> </template> @@ -87,84 +96,199 @@ export default { data() { return { - datePickerShow:false, - workTime:'', + datePickerShow: false, + shougHuoshow: false, + workTime: '', orderList: [], loadStatus: 'loadmore', pageIndex: 1, pageSize: 20, contentVal: '', - options2: [{ - text: '缂栬緫', - style: { - backgroundColor: '#3c9cff' - } - }, { - text: '鍒犻櫎', - style: { - backgroundColor: '#f56c6c' - } - }], + customerList: [], isEdit: false, editItem: {}, isLoading: false, show7: false, - showSex: false, - model1: { - userInfo: { - name: 'uview-plus UI', - sex: '', - }, + showActions: false, + driverName: '', + actions: [], + 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: { + deliverTime: this.$util.formatDate(new Date(), null, 1), + driverId: '', + buyerId: '', + dianhua: '', + remark: '', + lianxiren: '', + dizhi: '', }, - actions: [{ - name: '鐢�', - }, - { - name: '濂�', - }, - { - name: '淇濆瘑', - }, - ], rules: { - 'userInfo.name': { + 'deliverTime': { type: 'string', required: true, - message: '璇峰~鍐欏鍚�', + message: '璇烽�夋嫨鏃ユ湡', trigger: ['blur', 'change'] }, - 'userInfo.sex': { + 'arrangeInfo.driverId': { type: 'string', max: 1, required: true, - message: '璇烽�夋嫨鐢锋垨濂�', + message: '璇烽�夋嫨鍙告満', + trigger: ['blur', 'change'] + }, + 'arrangeInfo.dianhua': { + type: 'string', + max: 1, + required: true, + message: '璇疯緭鍏ヨ仈绯荤數璇�', + trigger: ['blur', 'change'] + }, + 'arrangeInfo.dizhi': { + type: 'string', + max: 1, + required: true, + message: '璇疯緭鍏ラ�佽揣鍦板潃', + trigger: ['blur', 'change'] + }, + 'arrangeInfo.remark': { + type: 'string', + max: 1, + required: true, + message: '璇疯緭鍏ラ�佽揣浜嬬敱', trigger: ['blur', 'change'] }, }, radio: '', - switchVal: false + switchVal: false, + driverList: [], + buyerName: '', + timeStart: '', + timeEnd: '', + sevenDaysDriver: [], + deliverKeyID: '', + deliverKeyName: '' } }, onShow() { this.init() }, + onReady() { + this.$refs.formRef.setRules(this.rules); + }, + onLoad() { + this.Getdrivers() + this.getCustomer() + this.GetDriversOfWithin7days() + }, + onReachBottom() { + if (this.loadStatus != 'nomore') { + this.getList() + } + }, onPullDownRefresh() { + this.startDate = '' + this.endDate = '' + this.workTime = '' + this.deliverKeyName = '' this.init() uni.stopPullDownRefresh(); }, methods: { - getFirstDayOfMonth () { + GetDriversOfWithin7days() { + this.$api.GetDriversOfWithin7days().then(res => { + if (res.code == 1) { + this.sevenDaysDriver = res.data + } + }) + }, + changePicker(val) { + console.log(val); + this.workTime = val.startDate.result + '鑷�' + val.endDate.result + this.timeStart = new Date(val.startDate.result) //宸ヤ綔寮�濮嬫椂闂� + this.timeEnd = new Date(val.endDate.result) + this.datePickerShow = !this.datePickerShow + this.getList() + }, + 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) { + if (this.selectAc == 'driver') { + this.driverName = item.name + this.arrangeInfo.driverId = item.keyid + } else if (this.selectAc == 'driver7') { + this.deliverKeyID = item.keyid + this.deliverKeyName = item.name + this.init() + } else { + this.buyerName = item.name + this.arrangeInfo.buyerId = item.keyid + this.arrangeInfo.dizhi = item.adder + this.arrangeInfo.dianhua = item.companyPhone + this.arrangeInfo.lianxiren = item.businessManagers + } + this.selectAc = '' + }, + getFirstDayOfMonth() { var currentDate = new Date(); // currentDate.setDate(1); // 灏嗘棩鏈熻涓�1 return this.$util.formatDate(currentDate); }, - clickTime () { + clickTime() { this.datePickerShow = !this.datePickerShow + }, + clickShouTime() { + this.shougHuoshow = !this.shougHuoshow + }, + clickAction(val) { + switch (val) { + case 'driver': + this.actions = this.driverList + break + case 'driver7': + this.actions = this.sevenDaysDriver + break + default: + this.actions = this.customerList + break + } + this.selectAc = val + this.showActions = true + uni.hideKeyboard() }, editOrder(item) { this.isEdit = true - this.contentVal = item.remark - this.editItem = item + this.arrangeInfo = { + deliverTime: this.$util.formatDate(new Date(), null, 1), + driverId: item.driverId, + buyerId: item.buyerId, + dianhua: item.dianhua, + remark: item.remark, + lianxiren: item.lianxiren, + dizhi: item.dizhi, + keyid: item.keyid + } + this.show7 = true + this.driverName = item.driver.name + let obj = this.customerList.find(ite => { + return ite.keyid == item.buyerId + }) + this.buyerName = obj.companyName }, delOrder(item) { let that = this @@ -202,24 +326,48 @@ this.contentVal = '' this.getList() }, - reservation() { - this.show7 = true - if (!this.contentVal) { - return this.$util.showToast({ - title: '璇峰厛杈撳叆鍐呭锛�' - }) - } - this.isLoading = true - if (this.isEdit) { - let obj = { - keyid: this.editItem.keyid, - remark: this.contentVal + confirmSave() { + this.$refs.formRef.validate().then(res => { + if (this.isEdit) { + this.$api.UpDataDeliverPlans(this.arrangeInfo).then(res => { + if (res.code == 1) { + this.isEdit = false + this.arrangeInfo = { + deliverTime: this.$util.formatDate(new Date(), null, 1), + driverId: '', + buyerId: '', + dianhua: '', + remark: '', + lianxiren: '', + dizhi: '', + } + this.show7 = false + this.driverName = '' + this.buyerName = '' + this.init() + } else { + this.$util.showToast({ + title: res.error + }) + } + this.isLoading = false + }) + return } - this.$api.UpDataAppointmentDeliver(obj).then(res => { + this.$api.CreatDeliverPlan(this.arrangeInfo).then(res => { if (res.code == 1) { - this.isEdit = false - this.editItem = {} - this.contentVal = '' + this.arrangeInfo = { + deliverTime: this.$util.formatDate(new Date(), null, 1), + driverId: '', + buyerId: '', + dianhua: '', + remark: '', + lianxiren: '', + dizhi: '', + } + this.show7 = false + this.driverName = '' + this.buyerName = '' this.init() } else { this.$util.showToast({ @@ -228,32 +376,48 @@ } this.isLoading = false }) - return + }) + + }, + cancelModal() { + this.arrangeInfo = { + deliverTime: this.$util.formatDate(new Date(), null, 1), + driverId: '', + buyerId: '', + dianhua: '', + remark: '', + lianxiren: '', + dizhi: '', } - this.$api.CreatAppointmentDeliver({ - remark: this.contentVal - }).then(res => { + this.show7 = false + this.driverName = '' + this.buyerName = '' + }, + Getdrivers() { + this.$api.Getdrivers().then(res => { if (res.code == 1) { - this.contentVal = '' - this.init() - } else { - this.$util.showToast({ - title: res.error - }) + this.driverList = res.data } - this.isLoading = false }) }, getList() { + this.deliverKeyName == '' ? this.deliverKeyID = '' : null let data = { - deliverState: 0, page: { pageIndex: this.pageIndex, pageSize: this.pageSize, } } - this.$api.GetListAppointmentDeliverList(data).then(res => { - console.log(res, res.code, '-----------123鈥�'); + if (this.timeStart) { + data.timeStart = this.timeStart + } + if (this.timeEnd) { + data.timeEnd = this.timeEnd + } + if (this.deliverKeyID) { + data.deliverKeyID = this.deliverKeyID + } + this.$api.GetDeliverPlans(data).then(res => { if (res.code == 1) { if (this.pageIndex == 1) { this.orderList = res.data.data @@ -312,4 +476,11 @@ </script> <style> + .u-textarea { + padding: 0 !important; + } + + .u-form-item__body { + padding: 5px 0 !important; + } </style> \ No newline at end of file -- Gitblit v1.9.1