From d52e728dc411aa8e43d37bda9f85bfc09871c1a0 Mon Sep 17 00:00:00 2001
From: k94314517 <8417338+k94314517@user.noreply.gitee.com>
Date: 星期六, 19 七月 2025 16:14:29 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 small-program/pages/freight/freight.vue |  418 +++++++++++++++++++++++++++++++++++------------------------
 1 files changed, 247 insertions(+), 171 deletions(-)

diff --git a/small-program/pages/freight/freight.vue b/small-program/pages/freight/freight.vue
index aedbe08..d915dee 100644
--- a/small-program/pages/freight/freight.vue
+++ b/small-program/pages/freight/freight.vue
@@ -6,20 +6,24 @@
 					<view class="list-item-label-x"></view>
 					<text>杞﹁締鍙婅矾绾�</text>
 				</view>
-				<view class="list-item-row" @click="show = true">
-					<view class="list-item-row-label">杞﹁締绫诲瀷<b>*</b></view>
-					<view class="list-item-row-val">
-						<text :style="{ color: form.categoryName ? '#111111' : '' }">{{form.categoryName ? form.categoryName : '璇烽�夋嫨'}}</text>
-						<u-icon name="arrow-right" color="#111111" size="16"></u-icon>
+				
+				<template v-if="!(info.type !== 2 && info.status === 2)">
+					<view class="list-item-row" @click="show = true">
+						<view class="list-item-row-label">杞﹁締绫诲瀷<b>*</b></view>
+						<view class="list-item-row-val">
+							<text :style="{ color: form.categoryName ? '#111111' : '' }">{{form.categoryName ? form.categoryName : '璇烽�夋嫨'}}</text>
+							<u-icon name="arrow-right" color="#111111" size="16"></u-icon>
+						</view>
 					</view>
-				</view>
-				<view class="list-item-row" @click="show3 = true">
-					<view class="list-item-row-label">璐ц溅鍨嬪彿<b>*</b></view>
-					<view class="list-item-row-val">
-						<text :style="{ color: form.carUnit ? '#111111' : '' }">{{form.carUnit ? form.carUnit : '璇烽�夋嫨'}}</text>
-						<u-icon name="arrow-right" color="#111111" size="16"></u-icon>
+					<view class="list-item-row" @click="show3 = true">
+						<view class="list-item-row-label">璐ц溅鍨嬪彿<b>*</b></view>
+						<view class="list-item-row-val">
+							<text :style="{ color: form.carUnit ? '#111111' : '' }">{{form.carUnit ? form.carUnit : '璇烽�夋嫨'}}</text>
+							<u-icon name="arrow-right" color="#111111" size="16"></u-icon>
+						</view>
 					</view>
-				</view>
+				</template>
+				
 				<view class="list-item-row" @click="show2 = true">
 					<view class="list-item-row-label">鐢ㄨ溅鏃堕棿<b>*</b></view>
 					<view class="list-item-row-val">
@@ -27,132 +31,138 @@
 						<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 class="list-item-row-label-add" @click="addAddr">+澧炲姞閫旂粡鐐�</view>
-					</view>
-					<view class="address">
-						<view class="address-item" @click="selectAddress(2)">
-							<view class="address-item-img">
-								<image src="/static/icon/ic_qidian@2x.png" mode="widthFix"></image>
-								<text :style="{color: form.location ? '#111111' : ''}">{{form.location ? form.location : '璇烽�夋嫨璧风偣'}}</text>
-							</view>
-							<u-icon name="arrow-right" color="#111111" size="16"></u-icon>
+				
+				<template v-if="!(info.type !== 2 && info.status === 2)">
+					<view class="list-item-row">
+						<view class="list-item-row-label">
+							杩愯揣鍦板潃<b>*</b>
+							<view class="list-item-row-label-add" @click="addAddr">+澧炲姞閫旂粡鐐�</view>
 						</view>
-						<view class="address-item" v-for="(item, index) in form.wayInfoDTOList" :key="index" @click="selectAddress(4, index)">
-							<view class="address-item-img">
-								<image src="/static/icon/ic_jingguo@2x.png" mode="widthFix"></image>
-								<text :style="{color: item.location ? '#111111' : ''}">{{item.location ? item.location : '璇烽�夋嫨閫旂粡鍦扮偣'}}</text>
+						<view class="address">
+							<view class="address-item" @click="selectAddress(2)">
+								<view class="address-item-img">
+									<image src="/static/icon/ic_qidian@2x.png" mode="widthFix"></image>
+									<text :style="{color: form.location ? '#111111' : ''}">{{form.location ? form.location : '璇烽�夋嫨璧风偣'}}</text>
+								</view>
+								<u-icon name="arrow-right" color="#111111" size="16"></u-icon>
 							</view>
-							<view style="display: flex; align-items: center; flex-shrink: 0;">
-								<image src="/static/icon/ic_delete@2x.png" style="margin-right: 22rpx; width: 32rpx; height: 32rpx;" @click.stop="form.wayInfoDTOList.splice(index, 1)" mode="widthFix"></image>
+							<view class="address-item" v-for="(item, index) in form.wayInfoDTOList" :key="index" @click="selectAddress(4, index)">
+								<view class="address-item-img">
+									<image src="/static/icon/ic_jingguo@2x.png" mode="widthFix"></image>
+									<text :style="{color: item.location ? '#111111' : ''}">{{item.location ? item.location : '璇烽�夋嫨閫旂粡鍦扮偣'}}</text>
+								</view>
+								<view style="display: flex; align-items: center; flex-shrink: 0;">
+									<image src="/static/icon/ic_delete@2x.png" style="margin-right: 22rpx; width: 32rpx; height: 32rpx;" @click.stop="form.wayInfoDTOList.splice(index, 1)" mode="widthFix"></image>
+									<u-icon name="arrow-right" color="#111111" size="16"></u-icon>
+								</view>
+							</view>
+							<view class="address-item" @click="selectAddress(3)">
+								<view class="address-item-img">
+									<image src="/static/icon/ic_zhongdian@2x.png" mode="widthFix"></image>
+									<text :style="{color: form.locationEnd ? '#111111' : ''}">{{form.locationEnd ? form.locationEnd : '璇烽�夋嫨缁堢偣'}}</text>
+								</view>
 								<u-icon name="arrow-right" color="#111111" size="16"></u-icon>
 							</view>
 						</view>
-						<view class="address-item" @click="selectAddress(3)">
-							<view class="address-item-img">
-								<image src="/static/icon/ic_zhongdian@2x.png" mode="widthFix"></image>
-								<text :style="{color: form.locationEnd ? '#111111' : ''}">{{form.locationEnd ? form.locationEnd : '璇烽�夋嫨缁堢偣'}}</text>
-							</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 :style="{ color: form.transportTypeName ? '#111111' : '' }">{{form.transportTypeName ? form.transportTypeName : '璇烽�夋嫨'}}</text>
 							<u-icon name="arrow-right" color="#111111" size="16"></u-icon>
 						</view>
 					</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 :style="{ color: form.transportTypeName ? '#111111' : '' }">{{form.transportTypeName ? form.transportTypeName : '璇烽�夋嫨'}}</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" disabled placeholder="1" />
-						<text>杈�</text>
-					</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.transportNum" placeholder="璇疯緭鍏�" />
-						<text @click="show4 = true">{{form.transportUnit}}</text>
-						<u-icon name="arrow-down" color="#111111" size="16"></u-icon>
-					</view>
-				</view>
-				<view class="list-item-row" v-if="viewStatus">
-					<view class="list-item-row-label">闇�姹傝ˉ鍏�</view>
-					<view class="list-item-row-val">
-						<textarea cols="30" v-model="form.supplement" 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>
+					<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" disabled placeholder="1" />
+							<text>杈�</text>
 						</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">杩愯緭閲嶉噺/鏁伴噺<b>*</b></view>
+						<view class="list-item-row-val">
+							<input type="text" v-model="form.transportNum" placeholder="璇疯緭鍏�" />
+							<text @click="show4 = true">{{form.transportUnit}}</text>
+							<u-icon name="arrow-down" color="#111111" size="16"></u-icon>
+						</view>
+					</view>
+					<view class="list-item-row" v-if="viewStatus">
+						<view class="list-item-row-label">闇�姹傝ˉ鍏�</view>
+						<view class="list-item-row-val">
+							<textarea cols="30" v-model="form.supplement" 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="item.id === form.carType ? 'list-item-cate-item active' : 'list-item-cate-item'" v-for="(item, index) in ff" :key="index" @click="form.carType = item.id">鎸夊ぉ浠樿垂</view>
+					</view>
+					<view class="list-item-row">
+						<view class="list-item-row-label">澶╂暟</view>
+						<view class="list-item-row-val">
+							<input type="number" v-model="form.priceNum1" disabled placeholder="璇疯緭鍏�" />
+							<text>澶�</text>
+						</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" @blur="getPrice" v-model="form.price" 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="item.id === form.carType ? 'list-item-cate-item active' : 'list-item-cate-item'" v-for="(item, index) in ff" :key="index" @click="form.carType = item.id">鎸夊ぉ浠樿垂</view>
-				</view>
-				<view class="list-item-row">
-					<view class="list-item-row-label">澶╂暟</view>
-					<view class="list-item-row-val">
-						<input type="number" v-model="form.priceNum1" disabled 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 type="number" @blur="getPrice" v-model="form.price" placeholder="璇疯緭鍏�" />
-						<text>{{form.priceUnit}}</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">
@@ -228,12 +238,14 @@
 		},
 		data() {
 			return {
+				info: {},
 				show: false,
 				show1: false,
 				show2: false,
 				show3: false,
 				show4: false,
 				form: {
+					id: null,
 					startDate: '',
 					endDate: '',
 					lat: '',
@@ -284,22 +296,43 @@
 				}
 			}
 		},
-		onLoad() {
-			const res = uni.getStorageSync('carData');
-			this.form.linkPhone = this.userInfo.telephone
-			this.form.startDate = res.startDate
-			this.form.endDate = res.endDate
-			this.form.lat = res.lat
-			this.form.lgt = res.lgt
-			this.form.priceNum1 = res.days
-			this.form.categoryId = res.categoryId
-			this.form.categoryName = res.categoryName
-			this.form.location = res.location
-			this.form.latEnd = res.latEnd
-			this.form.lgtEnd = res.lgtEnd
-			this.form.locationEnd = res.locationEnd
-			this.form.wayInfoDTOList = res.wayInfoDTOList
-			uni.removeStorageSync('carData');
+		onLoad(option) {
+			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.price = Number(this.form.price) / 100
+						if (!this.form.multifileList) {
+							this.form.multifileList = []
+						}
+						if (!this.form.wayInfoDTOList) {
+							this.form.wayInfoDTOList = []
+						}
+					}
+				})
+			} else {
+				const res = uni.getStorageSync('carData');
+				this.form.linkPhone = this.userInfo.telephone
+				this.form.startDate = res.startDate
+				this.form.endDate = res.endDate
+				this.form.lat = res.lat
+				this.form.lgt = res.lgt
+				this.form.priceNum1 = res.days
+				this.form.categoryId = res.categoryId
+				this.form.categoryName = res.categoryName
+				this.form.location = res.location
+				this.form.latEnd = res.latEnd
+				this.form.lgtEnd = res.lgtEnd
+				this.form.locationEnd = res.locationEnd
+				this.form.wayInfoDTOList = res.wayInfoDTOList
+				uni.removeStorageSync('carData');
+			}
 			this.getCategoryLists()
 		},
 		methods: {
@@ -324,31 +357,66 @@
 				if (!this.form.linkPhone) {
 					return uni.showToast({ title: '璇疯緭鍏ヨ仈绯荤數璇�', icon: 'none' })
 				}
-				this.$u.api.release({ 
-					...this.form,
-					price: Number(this.form.price) * 100,
-					wayInfoDTOList: [
-						{
-							lat: this.form.lat,
-							lgt: this.form.lgt,
-							location: this.form.location
-						},
-						...this.form.wayInfoDTOList,
-						{
-							lat: this.form.latEnd,
-							lgt: this.form.lgtEnd,
-							location: this.form.locationEnd
+				if (!this.form.id) {
+					this.$u.api.release({
+						...this.form,
+						price: Number(this.form.price) * 100,
+						wayInfoDTOList: [
+							{
+								lat: this.form.lat,
+								lgt: this.form.lgt,
+								location: this.form.location
+							},
+							...this.form.wayInfoDTOList,
+							{
+								lat: this.form.latEnd,
+								lgt: this.form.lgtEnd,
+								location: this.form.locationEnd
+							}
+						]
+					}).then(res => {
+						if (res.code == 200) {
+							uni.navigateTo({
+								url: `/pages/success/success?orderId=${res.data.id}`
+							})
 						}
-					]
-				}).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,
+						wayInfoDTOList: [
+							{
+								lat: this.form.lat,
+								lgt: this.form.lgt,
+								location: this.form.location
+							},
+							...this.form.wayInfoDTOList,
+							{
+								lat: this.form.latEnd,
+								lgt: this.form.lgtEnd,
+								location: this.form.locationEnd
+							}
+						]
+					}).then(res => {
+						if (res.code == 200) {
+							uni.showToast({
+								title: '缂栬緫鎴愬姛',
+								icon: 'success',
+								mask: true,
+								duration: 2000
+							})
+							setTimeout(() => {
+								uni.navigateBack({ delta: 1 });
+								// uni.$emit('refresh')
+							}, 1500)
+							
+						}
+					})
+				}
 			},
 			uploadImg() {
+				var that = this;
 				uni.chooseImage({
 					success: (chooseImageRes) => {
 						const tempFilePaths = chooseImageRes.tempFilePaths;
@@ -361,7 +429,7 @@
 							},
 							success: (uploadFileRes) => {
 								const res = JSON.parse(uploadFileRes.data)
-								this.form.multifileList.push({
+								that.form.multifileList.push({
 									fileurl: res.data.imgaddr,
 									name: res.data.originname,
 									url: res.data.url,
@@ -382,23 +450,31 @@
 						priceNum2: this.form.priceNum2,
 						type: 1
 					}).then(res => {
-						this.form.estimatedAccount = res.data
+						if (res.code === 200) {
+							this.form.estimatedAccount = res.data
+						}
+						
 					})
 				}
 			},
 			getCategoryLists() {
 				this.$u.api.getCategoryList({ type: 1 })
 					.then(res => {
-						this.car = [res.data]
-						res.data.forEach(item => {
-							if (item.id === this.form.categoryId) {
-								this.carArr = [item.detailList]
-							}
-						})
+						if (res.code === 200) {
+							this.car = [res.data]
+							res.data.forEach(item => {
+								if (item.id === this.form.categoryId) {
+									this.carArr = [item.detailList]
+								}
+							})
+						}
+						
 					})
 				this.$u.api.getCategoryList({ type: 0 })
 					.then(res => {
-						this.variety = [res.data]
+						if (res.code === 200) {
+							this.variety = [res.data]
+						}
 					})
 			},
 			confirmCategary(e) {

--
Gitblit v1.9.3