From 9d901b4215323c97a00a068cd962f5c9c04dadfa Mon Sep 17 00:00:00 2001
From: doum <doum>
Date: 星期四, 04 九月 2025 10:15:09 +0800
Subject: [PATCH] 前端

---
 small-program/pages/packaging-worker/packaging-worker.vue |  315 ++++++++++++++++++++++++++++++++--------------------
 1 files changed, 193 insertions(+), 122 deletions(-)

diff --git a/small-program/pages/packaging-worker/packaging-worker.vue b/small-program/pages/packaging-worker/packaging-worker.vue
index f66dcfa..85f3044 100644
--- a/small-program/pages/packaging-worker/packaging-worker.vue
+++ b/small-program/pages/packaging-worker/packaging-worker.vue
@@ -9,109 +9,120 @@
 				<view class="list-item-row" @click="show = true">
 					<view class="list-item-row-label">鐢ㄥ伐鏃堕棿<b>*</b></view>
 					<view class="list-item-row-val">
-						<text>{{form.startDate ? form.startDate + ' 鑷� ' + form.endDate + ' (' + form.priceNum1 + '澶�) ' : '璇烽�夋嫨'}}</text>
+						<text>{{form.startDate ? form.startDate + ' 鑷� ' + form.endDate + ' (' + workDays + '澶�) ' : '璇烽�夋嫨'}}</text>
 						<u-icon name="arrow-right" color="#111111" size="16"></u-icon>
 					</view>
 				</view>
-				<view class="list-item-row" @click="selectAddress()">
-					<view class="list-item-row-label">鐢ㄥ伐鍦扮偣<b>*</b></view>
-					<view class="list-item-row-val">
-						<text>{{form.location ? form.location : '璇烽�夋嫨'}}</text>
-						<u-icon name="arrow-right" color="#111111" size="16"></u-icon>
-					</view>
-				</view>
-				<view class="list-item-row">
-					<view class="list-item-row-label">鍦扮偣鎻忚堪</view>
-					<view class="list-item-row-val">
-						<input type="text" v-model="form.locationRemark" placeholder="璇疯緭鍏�" />
-					</view>
-				</view>
-			</view>
-			<view class="list-item">
-				<view class="list-item-label">
-					<view class="list-item-label-x"></view>
-					<text>闇�姹�</text>
-				</view>
-				<view class="list-item-row" @click="show1 = true">
-					<view class="list-item-row-label">鍖呰鍝佺<b>*</b></view>
-					<view class="list-item-row-val">
-						<text>{{form.categoryName ? form.categoryName : '璇烽�夋嫨'}}</text>
-						<u-icon name="arrow-right" color="#111111" size="16"></u-icon>
-					</view>
-				</view>
-				<view class="list-item-row">
-					<view class="list-item-row-label">鐢ㄥ伐鏁伴噺<b>*</b></view>
-					<view class="list-item-row-val">
-						<input type="number" v-model="form.priceNum2" @blur="getPrice" placeholder="璇疯緭鍏�" />
-						<text>浜�</text>
-					</view>
-				</view>
-				<view class="list-item-row" v-if="viewStatus">
-					<view class="list-item-row-label">闇�姹傝ˉ鍏�</view>
-					<view class="list-item-row-val">
-						<textarea v-model="form.supplement" cols="30" rows="10" placeholder="濡傛灉鏈夌壒娈婅姹傦紝璇峰湪姝ゅ璇存槑" maxlength="200"></textarea>
-					</view>
-				</view>
-				<view class="list-item-row" v-if="viewStatus">
-					<view class="list-item-row-label">鍥剧墖</view>
-					<view class="list-item-row-upload">
-						<view class="upload-item" v-for="(item, index) in form.multifileList" :key="index">
-							<image :src="item.url" mode="widthFix"></image>
-							<image class="upload-item-dele" @click="form.multifileList.splice(index, 1)" src="/static/icon/ic_delete1@2x.png" mode="widthFix"></image>
+				
+				<template v-if="!(info.type !== 2 && info.status === 2)">
+					<view class="list-item-row" @click="selectAddress()">
+						<view class="list-item-row-label">鐢ㄥ伐鍦扮偣<b>*</b></view>
+						<view class="list-item-row-val">
+							<text style="width:80%;">{{form.location ? form.location : '璇烽�夋嫨'}}</text>
+							<u-icon name="arrow-right" color="#111111" size="16"></u-icon>
 						</view>
-						<view class="upload-item" @click="uploadImg">
-							<u-icon name="plus" color="#999999" size="24"></u-icon>
-							<text>鐐瑰嚮涓婁紶</text>
+					</view>
+					<view class="list-item-row">
+						<view class="list-item-row-label">鍦扮偣鎻忚堪</view>
+						<view class="list-item-row-val">
+							<input type="text" v-model="form.locationRemark" placeholder="璇疯緭鍏�" />
+						</view>
+					</view>
+				</template>
+				
+			</view>
+			<template v-if="!(info.type !== 2 && info.status === 2)">
+				<view class="list-item">
+					<view class="list-item-label">
+						<view class="list-item-label-x"></view>
+						<text>闇�姹�</text>
+					</view>
+					<view class="list-item-row" @click="show1 = true">
+						<view class="list-item-row-label">鍖呰鍝佺<b>*</b></view>
+						<view class="list-item-row-val">
+							<text>{{form.categoryName ? form.categoryName : '璇烽�夋嫨'}}</text>
+							<u-icon name="arrow-right" color="#111111" size="16"></u-icon>
+						</view>
+					</view>
+					<view class="list-item-row">
+						<view class="list-item-row-label">鐢ㄥ伐鏁伴噺<b>*</b></view>
+						<view class="list-item-row-val">
+							<input type="number" v-model="form.priceNum2" @blur="getPrice" placeholder="璇疯緭鍏�" />
+							<text>浜�</text>
+						</view>
+					</view>
+					<view class="list-item-row" v-if="viewStatus">
+						<view class="list-item-row-label">闇�姹傝ˉ鍏�</view>
+						<view class="list-item-row-val">
+							<textarea v-model="form.supplement" cols="30" rows="10" placeholder="濡傛灉鏈夌壒娈婅姹傦紝璇峰湪姝ゅ璇存槑" maxlength="200"></textarea>
+						</view>
+					</view>
+					<view class="list-item-row" v-if="viewStatus">
+						<view class="list-item-row-label">鍥剧墖</view>
+						<view class="list-item-row-upload">
+							<view class="upload-item" v-for="(item, index) in form.multifileList" :key="index">
+								<image :src="item.url || item.fileurlFull" mode="widthFix"></image>
+								<image class="upload-item-dele" @click="form.multifileList.splice(index, 1)" src="/static/icon/ic_delete1@2x.png" mode="widthFix"></image>
+							</view>
+							<view class="upload-item" @click="uploadImg">
+								<u-icon name="plus" color="#999999" size="24"></u-icon>
+								<text>鐐瑰嚮涓婁紶</text>
+							</view>
+						</view>
+					</view>
+					<view class="list-item-zk" @click="viewStatus = !viewStatus">
+						<text>{{viewStatus ? '鏀惰捣' : '琛ュ厖闇�姹�'}}</text>
+						<u-icon :name="viewStatus ? 'arrow-up' : 'arrow-down'" color="#00BC12" size="16"></u-icon>
+					</view>
+				</view>
+				<view class="list-item">
+					<view class="list-item-label">
+						<view class="list-item-label-x"></view>
+						<text>璐圭敤</text>
+					</view>
+					<view class="list-item-cate">
+						<view :class="form.carType === item.id ? 'list-item-cate-item active' : 'list-item-cate-item'" v-for="(item, index) in settlementType" :key="index" @click="clickType(item.id)">{{item.name}}</view>
+					</view>
+					<view class="list-item-row">
+						<view class="list-item-row-label" v-if="form.carType === 0">鐢ㄥ伐澶╂暟</view>
+						<view class="list-item-row-label" v-if="form.carType === 1">宸ヤ綔鏃堕暱<b>*</b></view>
+						<view class="list-item-row-label" v-if="form.carType === 2">鍖呰閲嶉噺<b>*</b></view>
+						<view class="list-item-row-val">
+							<input v-model="form.priceNum1" :disabled="form.carType === 0" @blur="getPrice" type="number" placeholder="璇疯緭鍏�" />
+							<text v-if="form.carType === 0">澶�</text>
+							<text v-if="form.carType === 1">灏忔椂</text>
+							<text v-if="form.carType === 2">鏂�</text>
+						</view>
+					</view>
+					<view class="list-item-row">
+						<view class="list-item-row-label">璐圭敤鏍囧噯<b>*</b></view>
+						<view class="list-item-row-val">
+							<input v-model="form.price" type="number" @blur="getPrice" placeholder="璇疯緭鍏�" />
+							<text>{{form.priceUnit}}</text>
 						</view>
 					</view>
 				</view>
-				<view class="list-item-zk" @click="viewStatus = !viewStatus">
-					<text>{{viewStatus ? '鏀惰捣' : '琛ュ厖闇�姹�'}}</text>
-					<u-icon :name="viewStatus ? 'arrow-up' : 'arrow-down'" color="#00BC12" size="16"></u-icon>
-				</view>
-			</view>
-			<view class="list-item">
-				<view class="list-item-label">
-					<view class="list-item-label-x"></view>
-					<text>璐圭敤</text>
-				</view>
-				<view class="list-item-cate">
-					<view :class="form.carType === item.id ? 'list-item-cate-item active' : 'list-item-cate-item'" v-for="(item, index) in settlementType" :key="index" @click="clickType(item.id)">{{item.name}}</view>
-				</view>
-				<view class="list-item-row">
-					<view class="list-item-row-label">澶╂暟</view>
-					<view class="list-item-row-val">
-						<input v-model="form.priceNum1" disabled @blur="getPrice" type="number" placeholder="璇疯緭鍏�" />
-						<text>澶�</text>
+				<view class="list-item">
+					<view class="list-item-label">
+						<view class="list-item-label-x"></view>
+						<text>鑱旂郴浜轰俊鎭�</text>
+						<text class="list-item-label-info">榛樿鍙戝崟鏂硅仈绯绘柟寮忥紝鍙慨鏀硅仈绯讳汉</text>
+					</view>
+					<view class="list-item-row">
+						<view class="list-item-row-label">鑱旂郴浜哄鍚�</view>
+						<view class="list-item-row-val">
+							<input type="text" v-model="form.linkName" placeholder="璇疯ˉ鍏�" />
+						</view>
+					</view>
+					<view class="list-item-row">
+						<view class="list-item-row-label">鑱旂郴鐢佃瘽<b>*</b></view>
+						<view class="list-item-row-val">
+							<input type="text" v-model="form.linkPhone" maxlength="11" placeholder="璇疯ˉ鍏�" />
+						</view>
 					</view>
 				</view>
-				<view class="list-item-row">
-					<view class="list-item-row-label">璐圭敤鏍囧噯<b>*</b></view>
-					<view class="list-item-row-val">
-						<input v-model="form.price" type="number" @blur="getPrice" placeholder="璇疯緭鍏�" />
-						<text>鍏�/浜�/澶�</text>
-					</view>
-				</view>
-			</view>
-			<view class="list-item">
-				<view class="list-item-label">
-					<view class="list-item-label-x"></view>
-					<text>鑱旂郴浜轰俊鎭�</text>
-					<text class="list-item-label-info">榛樿鍙戝崟鏂硅仈绯绘柟寮忥紝鍙慨鏀硅仈绯讳汉</text>
-				</view>
-				<view class="list-item-row">
-					<view class="list-item-row-label">鑱旂郴浜哄鍚�</view>
-					<view class="list-item-row-val">
-						<input type="text" v-model="form.linkName" placeholder="璇疯ˉ鍏�" />
-					</view>
-				</view>
-				<view class="list-item-row">
-					<view class="list-item-row-label">鑱旂郴鐢佃瘽<b>*</b></view>
-					<view class="list-item-row-val">
-						<input type="text" v-model="form.linkPhone" maxlength="11" placeholder="璇疯ˉ鍏�" />
-					</view>
-				</view>
-			</view>
+			</template>
+			
 		</view>
 		<view style="width: 100%; height: calc(214rpx + env(safe-area-inset-bottom));"></view>
 		<view class="footer">
@@ -123,9 +134,9 @@
 				</view>
 			</view>
 			<view class="footer-bottom">
-				<div class="footer-bottom-btn" @click="submit">
-					<text>绔嬪嵆涓嬪崟</text>
-					<text>锛堟湇鍔″畬鎴愬悗浠樻锛�</text>
+				<div class="footer-bottom-btn" @click="submit" >
+					<text>{{form.id?'纭淇敼':'绔嬪嵆涓嬪崟'}}</text>
+					<text v-if="!form.id">锛堟湇鍔″畬鎴愬悗浠樻锛�</text>
 				</div>
 			</view>
 			<view style="width: 100%; height: env(safe-area-inset-bottom);"></view>
@@ -136,6 +147,7 @@
 			:show="show"
 			color="#00BC12"
 			mode="range"
+			 :allowSameDay="true"
 			@close="show = false"
 			@confirm="confirmDate" />
 		
@@ -162,9 +174,11 @@
 		},
 		data() {
 			return {
+				info: {},
 				show: false,
 				show1: false,
 				form: {
+					id: null,
 					days: '',
 					startDate: '',
 					endDate: '',
@@ -189,22 +203,46 @@
 				},
 				settlementType: [
 					{ name: '鎸夊ぉ浠樿垂', id: 0 },
-					{ name: '鎸夋浠樿垂', id: 1 },
+					{ name: '鎸夊皬鏃朵粯璐�', id: 1 },
 					{ name: '鎸夐噸閲忎粯璐�', id: 2 }
 				],
 				cateList: [],
-				viewStatus: false
+				viewStatus: false,
+				workDays: 0
 			};
 		},
 		onLoad(option) {
-			this.form.linkPhone = this.userInfo.telephone
-			this.form.priceNum1 = option.days
-			this.form.startDate = option.startDate
-			this.form.endDate = option.endDate
-			this.form.lat = option.latitude
-			this.form.lgt = option.longitude
-			this.form.location = option.address
-			this.form.workType = option.workType
+			if (option.id) {
+				this.form.id = option.id
+				this.$u.api.getDetail({
+					orderId: option.id
+				}).then(res => {
+					if (res.code === 200) {
+						this.info = res.data
+						for (const key in this.form) {
+							this.form[key] = res.data[key]
+						}
+						this.form.days = res.data.totalDays
+						this.form.price = Number(this.form.price) / 100
+						if (!this.form.multifileList) {
+							this.form.multifileList = []
+						}
+						// this.clickType()
+					}
+					
+				})
+			} else {
+				this.form.linkPhone = this.userInfo.telephone
+				this.form.priceNum1 = option.days
+				this.form.startDate = option.startDate
+				this.form.endDate = option.endDate
+				this.form.lat = option.latitude
+				this.form.lgt = option.longitude
+				this.form.location = option.address
+				this.form.workType = option.workType
+				this.form.days = option.days
+				this.workDays = option.days
+			}
 			this.getCateList()
 		},
 		methods: {
@@ -213,51 +251,77 @@
 				if (!this.form.categoryId) {
 					return uni.showToast({ title: '璇烽�夋嫨鍒嗘嫞鍝佺', icon: 'none' })
 				}
+				if (this.form.carType !=0 && !this.form.priceNum1) {
+					var t = this.form.carType ==1?"宸ヤ綔鏃堕暱":"鍖呰閲嶉噺"
+					return uni.showToast({ title: '璇疯緭鍏�'+t, icon: 'none' })
+				}
 				if (!this.form.priceNum2) {
 					return uni.showToast({ title: '璇疯緭鍏ョ敤宸ユ暟閲�', icon: 'none' })
 				}
 				if (!this.form.price) {
 					return uni.showToast({ title: '璇疯緭鍏ヨ垂鐢ㄦ爣鍑�', icon: 'none' })
-				}
+				} 
 				if (!this.form.linkPhone) {
 					return uni.showToast({ title: '璇疯緭鍏ヨ仈绯荤數璇�', icon: 'none' })
 				}
-				this.$u.api.release({ ...this.form, price: Number(this.form.price) * 100 })
-					.then(res => {
-						if (res.code == 200) {
-							uni.navigateTo({
-								url: `/pages/success/success?orderId=${res.data}`
-							})
-						}
-					})
+				if (!this.form.id) {
+					this.$u.api.release({ ...this.form, price: Number(this.form.price) * 100 })
+						.then(res => {
+							if (res.code == 200) {
+								uni.navigateTo({
+									url: `/pages/success/success?orderId=${res.data.id}`
+								})
+							}
+						})
+				} else {
+					this.$u.api.updateOrder({ ...this.form, price: Number(this.form.price) * 100 })
+						.then(res => {
+							if (res.code == 200) {
+								if (res.code == 200) {
+									uni.showToast({ title: '缂栬緫鎴愬姛', icon: 'success', mask: true, duration: 2000 })
+									setTimeout(() => {
+										uni.navigateBack({ delta: 1 });
+										// uni.$emit('refresh')
+									}, 1500)
+								}
+							}
+						})
+				}
 			},
 			// 璁$畻閲戦
 			getPrice() {
 				if (this.form.price && this.form.priceNum1 && this.form.priceNum2) {
 					this.$u.api.getTotal({
 						price: Number(this.form.price) * 100,
-						priceUnit: this.form.priceUnit,
 						priceNum1: this.form.priceNum1,
 						priceNum2: this.form.priceNum2,
 						type: this.form.type,
 						workType: this.form.workType
 					}).then(res => {
-						this.form.estimatedAccount = res.data
+						if (res.code === 200) {
+							this.form.estimatedAccount = res.data
+						}
+						
 					})
 				}
 			},
 			confirmDate(e) {
 				this.form.startDate = e[0]
 				this.form.endDate = e[e.length - 1]
-				this.form.days = e.length;
+				let time = this.form.startDate == this.form.endDate ? 1 : 0
+				this.workDays = e.length - time;
+				if (this.form.carType === 0) {
+					this.form.priceNum1 = e.length - time;
+				}
 				this.show = false
+				this.getPrice()
 			},
 			selectAddress() {
 				uni.chooseLocation({
 					success: (res) => {
 						this.form.lat = res.latitude
 						this.form.lgt = res.longitude
-						this.form.address = res.address
+						this.form.address =res.name ||  res.address
 					}
 				});
 			},
@@ -265,8 +329,13 @@
 				this.form.carType = id
 				if (id === 0) {
 					this.form.priceUnit = '鍏�/浜�/澶�'
-				} else {
+					this.form.priceNum1 = this.workDays
+				} else if (id === 1) {
 					this.form.priceUnit = '鍏�/浜�/灏忔椂'
+					this.form.priceNum1 = ''
+				} else {
+					this.form.priceUnit = '鍏�/鏂�'
+					this.form.priceNum1 = ''
 				}
 			},
 			confirmCategary(e) {
@@ -278,7 +347,9 @@
 				this.$u.api.getCategoryList({
 					type: 0
 				}).then(res => {
-					this.cateList = [res.data]
+					if (res.code === 200) {
+						this.cateList = [res.data]
+					}
 				})
 			},
 			uploadImg() {

--
Gitblit v1.9.3