From 02ad32582e3a3b0e6f4b2d1b50593eff1d0558e3 Mon Sep 17 00:00:00 2001
From: zhangwei <1504152376@qq.com>
Date: 星期四, 06 三月 2025 13:53:25 +0800
Subject: [PATCH] -

---
 src/pages/delivergoods/query.vue |  514 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 514 insertions(+), 0 deletions(-)

diff --git a/src/pages/delivergoods/query.vue b/src/pages/delivergoods/query.vue
index 02409e3..10cc789 100644
--- a/src/pages/delivergoods/query.vue
+++ b/src/pages/delivergoods/query.vue
@@ -1,8 +1,522 @@
 <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' :show-action="false" @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-subsection :list="list" current='1' activeColor="#f9ae3d" @change="sectionChange"></up-subsection>
+	</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"
+				@click='goDetail(item)'>
+				<view class="coreshop-ff chuany-bradius20">
+					<view class="chuany-font26">
+						<view class="chuany-flex chuany-justify-between">
+							<text class="chuany-width7">{{index+1}}</text>
+							<view class="chuany-width15">
+								{{$util.formatDate(item.createTime,'riqi')}}
+							</view>
+							<view class="chuany-width73">
+								<u-text size='14' :text="item.remark" lines="1">
+								</u-text>
+							</view>
+							<!-- <view class="chuany-width5" @tap.stop='editOrder(item)'>
+								<up-icon name="edit-pen"></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">
+			<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="driverId" required :borderBottom='false' @click="clickAction('driver')"
+					ref="item1">
+					<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="arrangeInfo.companyName" 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" zIndex="10000"
+			@change="changePicker" :minDate='minDate' :maxDate='maxDate' @cancel="clickTime"></fui-date-picker>
+		<up-action-sheet :show="showActions" :actions="actions" title="璇烽�夋嫨" @close="showActions = false"
+			wrapMaxHeight='500px' @select="selectItem">
+		</up-action-sheet>
+	</view>
 </template>
 
 <script>
+	import {
+		mapGetters
+	} from 'vuex'
+	export default {
+		data() {
+			return {
+				list: ['鍏ㄩ儴', '鏈��', '宸查��'],
+				datePickerShow: false,
+				shougHuoshow: false,
+				workTime: '',
+				orderList: [],
+				loadStatus: 'loadmore',
+				pageIndex: 1,
+				pageSize: 20,
+				contentVal: '',
+				customerList: [],
+				isEdit: false,
+				editItem: {},
+				isLoading: false,
+				show7: false,
+				showActions: false,
+				driverName: '',
+				actions: [],
+				selectAc: '',
+				deliveredState:'Undeliver',
+				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: '',
+					companyName: ''
+				},
+				rules: {
+					'deliverTime': {
+						type: 'string',
+						required: true,
+						message: '璇烽�夋嫨鏃ユ湡',
+						trigger: ['blur', 'change']
+					},
+					'arrangeInfo.driverId': {
+						type: 'string',
+						max: 1,
+						required: true,
+						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,
+				driverList: [],
+				buyerName: '',
+				timeStart: '',
+				timeEnd: '',
+				sevenDaysDriver: [],
+				deliverKeyID: '',
+				deliverKeyName: ''
+			}
+		},
+		onShow() {
+			this.init()
+		},
+		computed: {
+			...mapGetters(['userInfo']),
+			isAdmin() {
+				return this.userInfo.userCompany ? this.userInfo.userCompany.isAdmin : false
+			},
+		},
+		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: {
+			sectionChange(val) {
+				switch (val) {
+					case 0:
+						this.deliveredState = null
+						break;
+					case 1:
+						this.deliveredState = 'Undeliver'
+						break;
+					case 2:
+						this.deliveredState = 'Delivered'
+						break;
+				}
+				this.init()
+			},
+			goDetail(item) {
+				uni.navigateTo({
+					url: `/pages/delivergoods/querydetail?KeyId=${item.keyid}&isAdmin=${this.isAdmin}`
+				});
+			},
+			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.arrangeInfo.companyName = item.companyName
+				}
+				this.selectAc = ''
+			},
+			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(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.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,
+					companyName: item.companyName
+				}
+				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
+				uni.showModal({
+					title: '鎻愮ず',
+					content: '纭鍒犻櫎璇ラ�佽揣鍚楋紵',
+					success: function(res) {
+						if (res.confirm) {
+							// 鎵ц纭鍚庣殑鎿嶄綔
+							that.$api.DelAppointmentDeliver({
+								keyid: 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 = 20
+				this.loadStatus = 'loadmore'
+				this.orderList = []
+				this.contentVal = ''
+				this.getList()
+			},
+			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.CreatDeliverPlan(this.arrangeInfo).then(res => {
+						if (res.code == 1) {
+							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
+					})
+				})
+
+			},
+			cancelModal() {
+				this.arrangeInfo = {
+					deliverTime: this.$util.formatDate(new Date(), null, 1),
+					driverId: '',
+					buyerId: '',
+					dianhua: '',
+					remark: '',
+					lianxiren: '',
+					dizhi: '',
+				}
+				this.show7 = false
+				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 = {
+					deliveredState:this.deliveredState,
+					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
+				}
+				let getListApi = null
+				if (this.isAdmmin) {
+					getListApi = this.$api.GetDeliverPlans
+				} else {
+					getListApi = this.$api.workerGetDeliverPlans
+				}
+				getListApi(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.remark
+				}
+			}
+		}
+	}
 </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