From 800f10a99a19f4936dd2394d0e764a4c7ed7998a Mon Sep 17 00:00:00 2001
From: doum <doum>
Date: 星期五, 05 九月 2025 18:31:49 +0800
Subject: [PATCH] 修BUG
---
small-program/pages/sorting/sorting.vue | 384 ++++++++++++++++++++++++++++++++++++++++++++----------
1 files changed, 314 insertions(+), 70 deletions(-)
diff --git a/small-program/pages/sorting/sorting.vue b/small-program/pages/sorting/sorting.vue
index fd813b4..590cce0 100644
--- a/small-program/pages/sorting/sorting.vue
+++ b/small-program/pages/sorting/sorting.vue
@@ -6,109 +6,338 @@
<view class="list-item-label-x"></view>
<text>鏃堕棿鍦扮偣</text>
</view>
- <view class="list-item-row">
+ <view class="list-item-row" @click="show = true">
<view class="list-item-row-label">鐢ㄥ伐鏃堕棿<b>*</b></view>
<view class="list-item-row-val">
- <text>璇烽�夋嫨</text>
+ <text>{{form.startDate ? form.startDate + ' 鑷� ' + form.endDate + ' (' + form.priceNum1 + '澶�) ' : '璇烽�夋嫨'}}</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">
- <text>璇烽�夋嫨</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" 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">
- <view class="list-item-row-label">鍒嗘嫞鍝佺<b>*</b></view>
- <view class="list-item-row-val">
- <text>璇烽�夋嫨</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">
- <text>璇烽�夋嫨</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">
- <textarea cols="30" rows="10" placeholder="璇疯緭鍏�" maxlength="200"></textarea>
- </view>
- </view>
- <view class="list-item-row">
- <view class="list-item-row-label">鍥剧墖</view>
- <view class="list-item-row-upload">
- <view class="upload-item">
- <image src="/static/logo.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">
- <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" >
+ <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" >
+ <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-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>
+ </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-zk">
- <text>琛ュ厖闇�姹�</text>
- <u-icon name="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-row">
- <view class="list-item-row-label">璐圭敤鏍囧噯<b>*</b></view>
- <view class="list-item-row-val">
- <input type="text" 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>
+ </template>
+
</view>
<view style="width: 100%; height: calc(214rpx + env(safe-area-inset-bottom));"></view>
<view class="footer">
<view class="footer-price">
<view class="footer-price-info">棰勪及鎬昏垂鐢�</view>
<view class="footer-price-num">
- <text>0</text>
+ <text>{{totalPrice}}</text>
<text>鍏�</text>
</view>
</view>
<view class="footer-bottom">
- <div class="footer-bottom-btn">
- <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>
</view>
+
+ <!-- 閫夋嫨鏃ユ湡鑼冨洿 -->
+ <u-calendar
+ :show="show"
+ color="#00BC12"
+ mode="range"
+ :allowSameDay="true"
+ @close="show = false"
+ @confirm="confirmDate" />
+
+ <!-- 閫夋嫨鍝佺 -->
+ <u-picker
+ :show="show1"
+ :immediateChange="true"
+ :columns="cateList"
+ confirmColor="#00BC12"
+ @confirm="confirmCategary"
+ @cancel="show1 = false"
+ keyName="name" />
</view>
</template>
<script>
+ import { mapState } from 'vuex'
export default {
+ computed: {
+ ...mapState(['userInfo']),
+ totalPrice() {
+ return this.form.estimatedAccount / 100
+ }
+ },
data() {
return {
-
+ info: {},
+ show: false,
+ show1: false,
+ form: {
+ id: null,
+ days: '',
+ startDate: '',
+ endDate: '',
+ lat: '',
+ lgt: '',
+ location: '',
+ workType: 0,
+ locationRemark: '',
+ categoryId: '',
+ categoryName: '',
+ priceNum1: '',
+ priceNum2: '',
+ price: '',
+ supplement: '',
+ multifileList: [],
+ linkName: '',
+ linkPhone: '',
+ priceUnit: '鍏�/浜�/澶�',
+ estimatedAccount: '',
+ type: 0
+ },
+ cateList: [],
+ viewStatus: true
};
+ },
+ 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.days = res.data.totalDays
+ this.form.price = Number(this.form.price) / 100
+ if (!this.form.multifileList) {
+ this.form.multifileList = []
+ }
+ }
+
+ })
+ } else {
+ this.form.linkName = this.userInfo.name
+ 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.getCateList()
+ },
+ methods: {
+ // 鎻愪氦璁㈠崟
+ submit() {
+ if (!this.form.categoryId) {
+ return uni.showToast({ title: '璇烽�夋嫨鍒嗘嫞鍝佺', 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' })
+ }
+ 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) {
+ 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 => {
+ 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.priceNum1 = e.length;
+ this.show = false
+ this.getPrice()
+ },
+ selectAddress() {
+ uni.chooseLocation({
+ success: (res) => {
+ this.form.lat = res.latitude
+ this.form.lgt = res.longitude
+ this.form.address = res.name || res.address
+ }
+ });
+ },
+ confirmCategary(e) {
+ this.form.categoryId = e.value[0].id
+ this.form.categoryName = e.value[0].name
+ this.show1 = false
+ },
+ getCateList() {
+ this.$u.api.getCategoryList({
+ type: 0
+ }).then(res => {
+ if (res.code === 200) {
+ this.cateList = [res.data]
+ }
+
+ })
+ },
+ uploadImg() {
+ 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)
+ this.form.multifileList.push({
+ fileurl: res.data.imgaddr,
+ name: res.data.originname,
+ url: res.data.url,
+ type: 0
+ })
+ }
+ });
+ }
+ });
+ }
}
}
</script>
@@ -233,6 +462,12 @@
font-weight: 600;
font-size: 32rpx;
color: #222222;
+ }
+ .list-item-label-info {
+ font-weight: 400;
+ font-size: 26rpx;
+ color: #999999;
+ margin-left: 26rpx;
}
.list-item-label-x {
width: 6rpx;
@@ -396,6 +631,7 @@
border-radius: 8rpx;
margin-right: 20rpx;
border: 2rpx solid #EEEEEE;
+ position: relative;
&:last-child {
margin: 0 !important;
}
@@ -408,6 +644,14 @@
color: #666666;
margin-top: 16rpx;
}
+ .upload-item-dele {
+ position: absolute;
+ top: -20rpx;
+ right: -20rpx;
+ width: 40rpx;
+ height: 40rpx;
+ z-index: 9;
+ }
}
}
.list-item-row-val {
--
Gitblit v1.9.3