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