From a1c569d40b5d1d6571a197467a41fd3421c393ce Mon Sep 17 00:00:00 2001
From: doum <doum>
Date: 星期一, 15 九月 2025 09:10:49 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
small-program/pages/freight/freight.vue | 255 ++++++++++++++++++++++++++++++++++++--------------
1 files changed, 181 insertions(+), 74 deletions(-)
diff --git a/small-program/pages/freight/freight.vue b/small-program/pages/freight/freight.vue
index b6c615e..d0f17e9 100644
--- a/small-program/pages/freight/freight.vue
+++ b/small-program/pages/freight/freight.vue
@@ -27,7 +27,7 @@
<view class="list-item-row" @click="show2 = true">
<view class="list-item-row-label">鐢ㄨ溅鏃堕棿<b>*</b></view>
<view class="list-item-row-val">
- <text :style="{ color: form.startDate ? '#111111' : '' }">{{form.startDate ? form.startDate + ' 鑷� ' + form.endDate + ' (' + form.priceNum1 + '澶�) ' : '璇烽�夋嫨'}}</text>
+ <text :style="{ color: form.startDate ? '#111111' : '' }">{{form.startDate ? form.startDate + ' 鑷� ' + form.endDate + ' (' + form.totalDays + '澶�) ' : '璇烽�夋嫨'}}</text>
<u-icon name="arrow-right" color="#111111" size="16"></u-icon>
</view>
</view>
@@ -91,34 +91,40 @@
<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>
+ <input type="digit" style="flex: 3;" v-model="form.transportNum" placeholder="璇疯緭鍏�" />
+ <!-- <view @click="show4 = true" style="width: 100rpx; flex-shrink: 0; display: flex; align-items: center; justify-content: flex-end;">
+ <text>{{form.transportUnit}}</text>
+ <u-icon name="arrow-down" color="#111111" size="16"></u-icon>
+ </view> -->
+ <view style="flex: 1;" :class="form.transportUnit ==='涓�' ? 'val-cate-item val-active' : 'val-cate-item'" @click="form.transportUnit = '涓�'">涓�</view>
+ <view style="flex: 1;" :class="form.transportUnit ==='鏂�' ? 'val-cate-item val-active' : 'val-cate-item'" @click="form.transportUnit = '鏂�'">鏂�</view>
</view>
+
</view>
- <view class="list-item-row" v-if="viewStatus">
+ <view class="list-item-row" >
<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" >
<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">
+ <view class="upload-item" v-for="(item, index) in form.multifileList" :key="index" @click="preview(index, form.multifileList)">
<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>
+ <image class="upload-item-dele" @click.stop="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 style="width: 215rpx; height: 0;"></view>
</view>
</view>
- <view class="list-item-zk" @click="viewStatus = !viewStatus">
+ <!-- <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>
<view class="list-item">
<view class="list-item-label">
@@ -126,19 +132,26 @@
<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 :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">{{item.name}}</view>
</view>
- <view class="list-item-row">
- <view class="list-item-row-label">澶╂暟</view>
+ <view class="list-item-row" v-if="form.carType==0">
+ <view class="list-item-row-label">鐢ㄨ溅澶╂暟</view>
<view class="list-item-row-val">
- <input type="number" v-model="form.priceNum1" disabled placeholder="璇疯緭鍏�" />
+ <input type="digit" v-model="form.totalDays" disabled placeholder="" />
<text>澶�</text>
+ </view>
+ </view>
+ <view class="list-item-row" v-if="form.carType==1">
+ <view class="list-item-row-label">鐢ㄨ溅娆℃暟<b>*</b></view>
+ <view class="list-item-row-val">
+ <input type="digit" v-model="form.priceNum1" @input="getPrice" 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="璇疯緭鍏�" />
+ <input type="digit" @input="getPrice" v-model="form.price" placeholder="璇疯緭鍏�" />
<text>{{form.priceUnit}}</text>
</view>
</view>
@@ -173,10 +186,10 @@
<text>鍏�</text>
</view>
</view>
- <view class="footer-bottom">
- <div class="footer-bottom-btn" @click="submit">
- <text>绔嬪嵆涓嬪崟</text>
- <text>锛堟湇鍔″畬鎴愬悗浠樻锛�</text>
+ <view class="footer-bottom">
+ <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>
@@ -220,6 +233,7 @@
<u-calendar
:show="show2"
color="#00BC12"
+ :allowSameDay="true"
mode="range"
@close="show2 = false"
@confirm="confirmDate" />
@@ -259,6 +273,7 @@
categoryName: '',
wayInfoDTOList: [],
priceNum1: '',
+ totalDays:null,
priceNum2: 1,
transportNum: '',
transportTypeId: '',
@@ -282,7 +297,7 @@
],
dw: [['涓�', '鏂�']],
carArr: [],
- viewStatus: false
+ viewStatus: true
};
},
watch: {
@@ -293,6 +308,7 @@
} else if (news === 1) {
this.form.priceUnit = '鍏�/娆�'
}
+ this.getPrice()
}
}
},
@@ -304,6 +320,7 @@
}).then(res => {
if (res.code === 200) {
this.info = res.data
+ console.log(res.data.totalDays)
for (const key in this.form) {
this.form[key] = res.data[key]
}
@@ -318,12 +335,15 @@
})
} else {
const res = uni.getStorageSync('carData');
+ console.log(res)
this.form.linkPhone = this.userInfo.telephone
+ this.form.linkName = this.userInfo.name
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.totalDays = res.days
+ this.form.priceNum1=res.days
this.form.categoryId = res.categoryId
this.form.categoryName = res.categoryName
this.form.location = res.location
@@ -336,12 +356,27 @@
this.getCategoryLists()
},
methods: {
+ preview(current, arr) {
+ let urls = arr.map(item => item.url || item.fileurlFull)
+ uni.previewImage({ current, urls })
+ },
+ handleInputPrice(e) {
+ try{
+ this.form.price = Number(this.form.price).toFixed(3)
+ }catch(e){
+ this.form.price =null
+ }
+ },
confirmDw(e) {
this.form.transportUnit = e.value[0]
this.show4 = false
},
// 鎻愪氦璁㈠崟
submit() {
+ var that = this;
+ if (!this.form.carUnit) {
+ return uni.showToast({ title: '璇烽�夋嫨璐ц溅鍨嬪彿', icon: 'none' })
+ }
if (!this.form.transportTypeName) {
return uni.showToast({ title: '璇烽�夋嫨杩愯緭鍝佺', icon: 'none' })
}
@@ -357,52 +392,99 @@
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 (!that.form.id) {
+ uni.requestSubscribeMessage({
+ tmplIds: ['oVjOBLcHxIlGzOMJsdInmgI5CHGXh-UTvMzQqfFOnIg','AA97cHjvlPiNO4viMkVe4JifCf9TD5b5Eb7s6El3VS8'],
+ success(res) {
+ if(that.form.carType == 0){
+ that.form.priceNum1 = that.form.totalDays
+ }
+ that.$u.api.release({
+ ...that.form,
+ price: Number(that.form.price) * 100,
+ wayInfoDTOList: [
+ {
+ lat: that.form.lat,
+ lgt: that.form.lgt,
+ location: that.form.location
+ },
+ ...that.form.wayInfoDTOList,
+ {
+ lat: that.form.latEnd,
+ lgt: that.form.lgtEnd,
+ location: that.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 {
+ // uni.requestSubscribeMessage({
+ // tmplIds: ['3YSC7gouRlSjHXz4CrWOGFzPmGwEBtFj4snwdfMvKHk','AA97cHjvlPiNO4viMkVe4JifCf9TD5b5Eb7s6El3VS8'],
+ // success(res) {
+ that.$u.api.updateOrder({
+ ...that.form,
+ price: Number(that.form.price) * 100,
+ wayInfoDTOList: [
+ {
+ lat: that.form.lat,
+ lgt: that.form.lgt,
+ location: that.form.location
+ },
+ ...that.form.wayInfoDTOList,
+ {
+ lat: that.form.latEnd,
+ lgt: that.form.lgtEnd,
+ location: that.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;
- uni.uploadFile({
- url: this.$baseUrl + '/web/public/upload',
- filePath: tempFilePaths[0],
- name: 'file',
- formData: {
- 'folder': 'orders'
- },
- success: (uploadFileRes) => {
- const res = JSON.parse(uploadFileRes.data)
- that.form.multifileList.push({
- fileurl: res.data.imgaddr,
- name: res.data.originname,
- url: res.data.url,
- type: 0
- })
- }
- });
+ for (let i = 0; i < chooseImageRes.tempFilePaths.length; i++) {
+ uni.uploadFile({
+ url: this.$baseUrl + '/web/public/upload',
+ filePath: chooseImageRes.tempFilePaths[i],
+ name: 'file',
+ formData: {
+ 'folder': 'orders'
+ },
+ success: (uploadFileRes) => {
+ const res = JSON.parse(uploadFileRes.data)
+ that.form.multifileList.push({
+ fileurl: res.data.imgaddr,
+ name: res.data.originname,
+ url: res.data.url,
+ type: 0
+ })
+ }
+ });
+ }
}
});
},
@@ -410,10 +492,11 @@
getPrice() {
if (this.form.price && this.form.priceNum1 && this.form.priceNum2) {
this.$u.api.getTotal({
- price: Number(this.form.price) * 100,
+ price: Number(this.form.price).toFixed(2) * 100,
priceUnit: this.form.priceUnit,
- priceNum1: this.form.priceNum1,
+ priceNum1: this.form.carType!=1?this.form.totalDays:this.form.priceNum1,
priceNum2: this.form.priceNum2,
+ carType:this.form.carType ,
type: 1
}).then(res => {
if (res.code === 200) {
@@ -462,8 +545,10 @@
confirmDate(e) {
this.form.startDate = e[0]
this.form.endDate = e[e.length - 1]
- this.form.priceNum1 = e.length;
+ let time = this.form.startDate == this.form.endDate ? 1 : 0
+ this.form.totalDays = e.length - time;
this.show2 = false
+ this.getPrice()
},
addAddr() {
this.form.wayInfoDTOList.push({
@@ -478,15 +563,16 @@
if ([2].includes(type)) {
this.form.latitude = res.latitude
this.form.longitude = res.longitude
- this.form.address = res.address
+ this.form.location = res.name || res.address
+ this.form.address = res.name || res.address
} else if (type === 3) {
- this.form.locationEnd = res.address
+ this.form.locationEnd = res.name || res.address
this.form.latEnd = res.latitude
this.form.lgtEnd = res.longitude
- } else if (type === 4) {
- this.form.wayInfoDTOList[0].lat = res.latitude
- this.form.wayInfoDTOList[0].lgt = res.longitude
- this.form.wayInfoDTOList[0].location = res.address
+ } else if (type === 4) {
+ this.form.wayInfoDTOList[index].lat = res.latitude
+ this.form.wayInfoDTOList[index].lgt = res.longitude
+ this.form.wayInfoDTOList[index].location = res.name || res.address
}
}
});
@@ -851,21 +937,22 @@
width: 100%;
display: flex;
align-items: center;
+ justify-content: space-between;
flex-wrap: wrap;
padding: 30rpx 0;
box-sizing: border-box;
.upload-item {
- width: 156rpx;
- height: 156rpx;
+ width: 215rpx;
+ height: 215rpx;
display: flex;
align-items: center;
flex-direction: column;
justify-content: center;
background: #F8F9FB;
border-radius: 8rpx;
- margin-right: 20rpx;
border: 2rpx solid #EEEEEE;
position: relative;
+ margin-bottom: 15rpx;
&:last-child {
margin: 0 !important;
}
@@ -889,13 +976,14 @@
}
}
.list-item-row-val {
- width: 100%;
+ // width: 100%;
padding: 30rpx 0;
box-sizing: border-box;
display: flex;
align-items: center;
justify-content: space-between;
text {
+ // width: 80%;
flex-shrink: 0;
font-weight: 400;
font-size: 30rpx;
@@ -914,6 +1002,25 @@
font-size: 30rpx;
color: #111111;
}
+ .val-active {
+ background: #00BC12 !important;
+ color: #ffffff !important;
+ }
+ .val-cate-item {
+ width: 208rpx;
+ height: 72rpx;
+ line-height: 72rpx;
+ text-align: center;
+ font-weight: 400;
+ font-size: 28rpx;
+ color: #333333;
+ background: #EEEEEE;
+ border-radius: 36rpx;
+ margin-right: 24rpx;
+ &:last-child {
+ margin: 0 !important;
+ }
+ }
}
}
}
--
Gitblit v1.9.3