From be2d5e65a33c132dc68deb7cbaa98090d6d0e168 Mon Sep 17 00:00:00 2001
From: wangfukang <15630117759@163.com>
Date: Fri, 29 May 2026 16:39:20 +0800
Subject: [PATCH] 1
---
package1/address/addressList.vue | 167 ++++++--
package1/buyFood/buyFood.vue | 291 +++++++++++++-
package1/goods/goodsDetail.vue | 247 ++++--------
package1/order/orderDetail.vue | 671 +++++++++++++++++++++++++------
package1/order/orderList.vue | 6 +-
package1/order/returnOrder.vue | 202 ++++++++--
package1/runErrand/runErrand.vue | 182 ++++++++-
7 files changed, 1370 insertions(+), 396 deletions(-)
diff --git a/package1/address/addressList.vue b/package1/address/addressList.vue
index 94d47cc..63c69e2 100644
--- a/package1/address/addressList.vue
+++ b/package1/address/addressList.vue
@@ -37,40 +37,26 @@
-
+
+
+
@@ -88,11 +106,11 @@
export default {
data() {
return {
- isComboxFocused: false,
addressList: [],
areaList: [],
areaTitleList: [],
areaTitleInput: '',
+ areaSearchInput: '',
addressForm: {
id: '',
areaId: '',
@@ -109,6 +127,13 @@
this.getAddressList();
this.getAreaList();
},
+ computed: {
+ filteredAreaTitleList() {
+ const keyword = (this.areaSearchInput || '').toString();
+ if (!keyword) return this.areaTitleList;
+ return this.areaTitleList.filter(item => item.toString().indexOf(keyword) > -1);
+ }
+ },
methods: {
getAddressList() {
let that = this;
@@ -165,6 +190,7 @@
isDefault: 0
};
this.areaTitleInput = '';
+ this.areaSearchInput = '';
this.$refs.addBookPopup.open('bottom');
},
openEdit(item) {
@@ -180,8 +206,21 @@
};
let match = this.areaList.find(a => a.id === item.areaId);
this.areaTitleInput = match ? match.title : (item.areaName || '');
+ this.areaSearchInput = '';
this.$refs.addBookPopup.open('bottom');
},
+ openAreaPopup() {
+ this.areaSearchInput = this.areaTitleInput;
+ this.$refs.areaPopup.open();
+ },
+ closeAreaPopup() {
+ this.$refs.areaPopup.close();
+ },
+ selectAreaTitle(title) {
+ this.areaTitleInput = title;
+ this.areaSearchInput = title;
+ this.closeAreaPopup();
+ },
submitAddress() {
if(this.areaTitleInput) {
let match = this.areaList.find(a => a.title === this.areaTitleInput);
@@ -256,13 +295,81 @@
}
.book-popup-content{
height: auto;
+ padding-top: 40rpx;
}
-
-
-
\ No newline at end of file
diff --git a/package1/buyFood/buyFood.vue b/package1/buyFood/buyFood.vue
index 12bacc3..908f962 100644
--- a/package1/buyFood/buyFood.vue
+++ b/package1/buyFood/buyFood.vue
@@ -119,9 +119,10 @@
不指定
-
+
佣金 ¥
-
+ {{customCommission || '0.1'}}
+
@@ -281,8 +282,10 @@
备注
-
@@ -313,7 +316,7 @@
- {{isStoreGroupOrder ? '立即支付-到店核销' : ('立即支付' + (nowMake && isPaotui == false ? '-即刻出餐' : ''))}}
+ {{isStoreGroupOrder ? '立即支付-到店核销' : ('立即支付' + (nowMake && isPaotui == false ? '-即刻出餐' : ''))}} {{totalAmountCalc.toFixed(2)}}
@@ -324,6 +327,35 @@
@close="closeAddressBook">
+
+
+
+
+
+
@@ -508,8 +540,10 @@
nowMake:true,
content: [],
remark:'',
+ remarkInputValue: '',
selected: 'buzhiding',
- customCommission: '0',
+ customCommission: '0.1',
+ commissionInputValue: '',
shopItem: {},
cartItems: [],
groupItem: null,
@@ -521,6 +555,7 @@
totalPackageFee: 0,
backendTotalAmount: 0,
currentOrderId: '',
+ isCreatingOrder: false,
createdOrderInfo: null,
isPaymentSuccessGroupInitiate: false,
availableCoupons: [],
@@ -655,13 +690,7 @@
}
}
},
- watch: {
- preDiscountTotal(newVal, oldVal) {
- if (newVal !== oldVal) {
- this.fetchCoupons();
- }
- }
- },
+ watch: {},
onShow() {
this.menuButtonInfo = uni.getMenuButtonBoundingClientRect()
this.initAddress()
@@ -711,6 +740,63 @@
nowMakeMethod(){
this.nowMake = !this.nowMake
},
+ formatCommissionValue(value) {
+ let amount = parseFloat(value);
+ if (isNaN(amount) || amount < 0.1) {
+ return '0.1';
+ }
+ amount = Math.floor(amount * 100) / 100;
+ return amount.toFixed(2).replace(/\.?0+$/, '');
+ },
+ filterCommissionInput(value) {
+ value = String(value || '');
+ value = value.replace(/[^\d.]/g, '');
+ const dotIndex = value.indexOf('.');
+ if (dotIndex !== -1) {
+ value = value.slice(0, dotIndex + 1) + value.slice(dotIndex + 1).replace(/\./g, '');
+ const parts = value.split('.');
+ value = parts[0] + '.' + parts[1].slice(0, 2);
+ }
+ return value;
+ },
+ openCommissionPopup() {
+ this.commissionInputValue = '';
+ this.$refs.commissionPopup.open('center');
+ },
+ onCommissionPopupInput(e) {
+ const value = this.filterCommissionInput(e.detail.value);
+ this.commissionInputValue = value;
+ return value;
+ },
+ confirmCommission() {
+ const value = this.formatCommissionValue(this.commissionInputValue);
+ this.customCommission = value;
+ this.$refs.commissionPopup.close();
+ this.fetchCoupons();
+ },
+ openRemarkPopup() {
+ this.remarkInputValue = this.remark;
+ this.$refs.remarkPopup.open('center');
+ },
+ confirmRemark() {
+ this.remark = this.remarkInputValue.slice(0, 100);
+ this.$refs.remarkPopup.close();
+ },
+ onCustomCommissionInput(e) {
+ let value = String(e.detail.value || '');
+ value = value.replace(/[^\d.]/g, '');
+ const dotIndex = value.indexOf('.');
+ if (dotIndex !== -1) {
+ value = value.slice(0, dotIndex + 1) + value.slice(dotIndex + 1).replace(/\./g, '');
+ const parts = value.split('.');
+ value = parts[0] + '.' + parts[1].slice(0, 2);
+ }
+ this.customCommission = value;
+ return value;
+ },
+ normalizeCustomCommission() {
+ this.customCommission = this.formatCommissionValue(this.customCommission);
+ },
initAddress() {
let cachedAddress = uni.getStorageSync('selectedAddress');
if (cachedAddress) {
@@ -749,6 +835,11 @@
return arr.join(',');
},
submitPay() {
+ if (this.currentOrderId && this.backendTotalAmount) {
+ this.$refs.payPopup.open('bottom');
+ return;
+ }
+ if (this.isCreatingOrder) return;
let isJoiningFaceToFace = this.isGroupBuy && this.groupItem && this.groupItem.groupId && this.groupItem
.isFaceToFace;
if (this.isPaotui && !this.formData.address && !isJoiningFaceToFace) {
@@ -758,8 +849,9 @@
}
if (this.isPaotui && this.selected === 'buzhiding' && !isJoiningFaceToFace) {
+ this.normalizeCustomCommission();
let comm = parseFloat(this.customCommission);
- if (isNaN(comm) || comm <= 0) {
+ if (isNaN(comm) || comm < 0.1) {
this.warnPopup = 'psyj';
this.$refs.warnPopup.open();
return;
@@ -979,6 +1071,8 @@
return name;
},
submitOrderToBackend() {
+ if (this.isCreatingOrder) return;
+ this.isCreatingOrder = true;
let isJoiningFaceToFace = this.isGroupBuy && this.groupItem && this.groupItem.groupId && this.groupItem
.isFaceToFace;
@@ -1084,6 +1178,7 @@
payload.regionId = JSON.parse(uni.getStorageSync('area')).id
this.tui.request("/mall/order/create", "POST", payload, false, false).then(res => {
uni.hideLoading();
+ this.isCreatingOrder = false;
if (res.success && res.result) {
let orderId = res.result.id;
let totalAmount = res.result.totalAmount;
@@ -1102,6 +1197,7 @@
}
}).catch(err => {
uni.hideLoading();
+ this.isCreatingOrder = false;
});
},
showFreeOrderEffect(orderInfo) {
@@ -1631,19 +1727,96 @@
margin-right: 10rpx;
}
- input {
+ .commission-value {
width: 132rpx;
height: 52rpx;
- min-height: 52rpx;
text-align: center;
font-size: 28rpx;
font-weight: normal;
+ line-height: 52rpx;
border-radius: 16rpx;
background: #f6faf8;
border: 1rpx solid #e5efeb;
}
}
+ .commission-popup {
+ width: 620rpx;
+ padding: 44rpx 36rpx 34rpx;
+ box-sizing: border-box;
+ border-radius: 32rpx;
+ background: #fff;
+ box-shadow: 0 28rpx 70rpx rgba(0, 35, 28, 0.18);
+ }
+
+ .commission-popup-title {
+ color: $primary;
+ font-size: 34rpx;
+ font-weight: 900;
+ text-align: center;
+ }
+
+ .commission-popup-desc {
+ margin-top: 12rpx;
+ color: $muted;
+ font-size: 24rpx;
+ text-align: center;
+ }
+
+ .commission-popup-input {
+ display: flex;
+ align-items: center;
+ height: 88rpx;
+ margin-top: 34rpx;
+ padding: 0 26rpx;
+ border-radius: 24rpx;
+ background: #f6faf8;
+ border: 1rpx solid #e5efeb;
+
+ text {
+ margin-right: 12rpx;
+ color: #ff7043;
+ font-size: 34rpx;
+ font-weight: 900;
+ }
+
+ input {
+ flex: 1;
+ height: 88rpx;
+ min-height: 88rpx;
+ font-size: 34rpx;
+ font-weight: 800;
+ }
+ }
+
+ .commission-popup-actions {
+ display: flex;
+ margin-top: 34rpx;
+ gap: 18rpx;
+ }
+
+ .commission-popup-cancel,
+ .commission-popup-confirm {
+ flex: 1;
+ height: 76rpx;
+ border-radius: 999rpx;
+ font-size: 28rpx;
+ font-weight: 800;
+ line-height: 76rpx;
+ text-align: center;
+ }
+
+ .commission-popup-cancel {
+ background: #f3f6f4;
+ color: $muted;
+ }
+
+ .commission-popup-confirm {
+ background: linear-gradient(135deg, #0b9b73, #20d6a4);
+ color: #fff;
+ box-shadow: 0 12rpx 26rpx rgba(11, 155, 115, 0.2);
+ }
+
.worker-entry {
width: 50%;
color: $muted;
@@ -1745,7 +1918,7 @@
.remark-box {
flex: 1;
- input {
+ .remark-value {
width: 100%;
box-sizing: border-box;
text-align: right;
@@ -1753,12 +1926,96 @@
font-weight: normal;
min-height: 56rpx;
height: 56rpx;
+ line-height: 56rpx;
padding: 0 18rpx;
border-radius: 18rpx;
background: #f6faf8;
+ overflow: hidden;
+ white-space: nowrap;
+ text-overflow: ellipsis;
+ }
+ }
+
+ .remark-placeholder {
+ color: #9aa6a2;
+ }
+
+ .remark-popup {
+ width: 620rpx;
+ padding: 44rpx 36rpx 34rpx;
+ box-sizing: border-box;
+ border-radius: 32rpx;
+ background: #fff;
+ box-shadow: 0 28rpx 70rpx rgba(0, 35, 28, 0.18);
+ }
+
+ .remark-popup-title {
+ color: $primary;
+ font-size: 34rpx;
+ font-weight: 900;
+ text-align: center;
+ }
+
+ .remark-popup-desc {
+ margin-top: 12rpx;
+ color: $muted;
+ font-size: 24rpx;
+ text-align: center;
+ }
+
+ .remark-popup-input {
+ position: relative;
+ margin-top: 34rpx;
+ padding: 22rpx 24rpx 44rpx;
+ border-radius: 24rpx;
+ background: #f6faf8;
+ border: 1rpx solid #e5efeb;
+
+ textarea {
+ width: 100%;
+ height: 180rpx;
+ font-size: 28rpx;
+ line-height: 40rpx;
}
}
+ .remark-popup-count {
+ position: absolute;
+ right: 24rpx;
+ bottom: 14rpx;
+ color: #9aa6a2;
+ font-size: 20rpx;
+ line-height: 24rpx;
+ }
+
+ .remark-popup-actions {
+ display: flex;
+ margin-top: 34rpx;
+ gap: 18rpx;
+ }
+
+ .remark-popup-cancel,
+ .remark-popup-confirm {
+ flex: 1;
+ height: 76rpx;
+ border-radius: 999rpx;
+ font-size: 28rpx;
+ font-weight: 800;
+ line-height: 76rpx;
+ text-align: center;
+ }
+
+ .remark-popup-cancel {
+ background: #f3f6f4;
+ color: $muted;
+ }
+
+ .remark-popup-confirm {
+ background: linear-gradient(135deg, #0b9b73, #20d6a4);
+ color: #fff;
+ box-shadow: 0 12rpx 26rpx rgba(11, 155, 115, 0.2);
+ }
+
.coupon-row {
border-top: 1rpx solid #f0f3f2;
font-size: 28rpx;
diff --git a/package1/goods/goodsDetail.vue b/package1/goods/goodsDetail.vue
index ac8523d..1307a0b 100644
--- a/package1/goods/goodsDetail.vue
+++ b/package1/goods/goodsDetail.vue
@@ -1,6 +1,6 @@
-
+
@@ -11,68 +11,35 @@
- 牛仔农庄(医专店)
+ {{goodsItem.productName || ''}}
- ¥90.00
+ ¥{{soloPrice}}
-
- 拼团¥59.90
+
+ 拼团¥{{groupPrice}}
- 月售 100+
+ 销量 {{goodsItem.tailWarn != null ? goodsItem.tailWarn : 0}}
-
-
-
-
-
-
- +
+
+ 餐盒费 ¥{{packageFee}}
-
- 差1人拼成
-
-
-
- 拼团
商品详情
-
- 老北京鸡肉卷是一款融合传统京味与现代快餐便捷性的经典美食,以薄韧面饼包裹鲜嫩鸡肉与清爽配菜,搭配浓郁甜面酱,层次丰富,咸香适口,是早餐、午餐、下午茶及宵夜的理想选择。肯德基原创经典款已成为国民记忆,市面亦有众多速冻即食版本,满足不同消费场景需求。
- 门店现制款
- 单份重量:约 170g
- 参考价格:15-17 元 / 份
- 套餐搭配:OK 三件套(含鸡肉卷 + 中薯条 + 中可乐)约 19.9 元,工作日特惠
- 供应时间:9:15-22:44(具体以门店为准)
-
-
-
-
-
-
-
- 1
-
- ¥18.00
-
-
-
- 直接购买
+
+
-
- 拼团买¥15.00
+
+ 暂无商品详情
@@ -83,21 +50,78 @@
export default {
data() {
return {
- menuButtonInfo: {}
+ menuButtonInfo: {},
+ goodsItem: {},
+ shopItem: {}
}
},
components: {
},
- onLoad() {
-
+ onLoad(option) {
+ if (option.item) {
+ this.goodsItem = JSON.parse(decodeURIComponent(option.item));
+ }
+ if (option.shopItem) {
+ this.shopItem = JSON.parse(decodeURIComponent(option.shopItem));
+ }
},
onShow() {
this.menuButtonInfo = uni.getMenuButtonBoundingClientRect()
},
+ computed: {
+ productImage() {
+ return this.goodsItem.productPicture || '';
+ },
+ productIntro() {
+ if (this.goodsItem.productIntro == undefined || this.goodsItem.productIntro == null) return '';
+ if (typeof this.goodsItem.productIntro === 'object') {
+ return this.goodsItem.productIntro.html || this.goodsItem.productIntro.text || '';
+ }
+ return this.goodsItem.productIntro;
+ },
+ groupRules() {
+ return Array.isArray(this.goodsItem.productGroupBuyPrices) ? this.goodsItem.productGroupBuyPrices : [];
+ },
+ soloPrice() {
+ return this.formatMoney(this.getAttributePrice(this.goodsItem));
+ },
+ groupPrice() {
+ if (!this.groupRules.length || this.goodsItem.isMoreBuy == 1) return '';
+ let rule = this.groupRules[0];
+ return rule && rule.groupPrice ? this.formatMoney(rule.groupPrice) : '';
+ },
+ packageFeeNumber() {
+ let fee = parseFloat(this.goodsItem.lunchBox || 0);
+ return isNaN(fee) ? 0 : fee;
+ },
+ packageFee() {
+ return this.formatMoney(this.packageFeeNumber);
+ }
+ },
methods: {
back() {
uni.navigateBack()
+ },
+ getAttributePrice(item) {
+ let price = 0;
+ if (!item || !item.attributeListPrice) return price;
+ try {
+ let pObj = typeof item.attributeListPrice === 'string' ? JSON.parse(item.attributeListPrice) : item.attributeListPrice;
+ if (Array.isArray(pObj) && pObj.length > 0) {
+ price = parseFloat(pObj[0].specPrice);
+ } else {
+ for (let k in pObj) {
+ price = parseFloat(pObj[k].specPrice);
+ break;
+ }
+ }
+ } catch (e) {}
+ return isNaN(price) ? 0 : price;
+ },
+ formatMoney(value) {
+ let amount = parseFloat(value);
+ return (isNaN(amount) ? 0 : amount).toFixed(2);
}
}
}
@@ -123,7 +147,8 @@
background: url('https://jewel-shop.oss-cn-beijing.aliyuncs.com/9362dfb66c0f426789584cabb3977ccc.png') no-repeat;
width: 100%;
height: 700rpx;
- background-size: 100%;
+ background-size: cover;
+ background-position: center;
position: fixed;
top: 0;
z-index: -1;
@@ -177,6 +202,17 @@
text-align: right;
}
+ .goods-fee {
+ display: inline-block;
+ padding: 8rpx 18rpx;
+ border-radius: 999rpx;
+ background: rgba(255, 244, 232, 0.92);
+ border: 1rpx solid rgba(255, 180, 118, 0.54);
+ color: #b4572d;
+ font-size: 22rpx;
+ font-weight: 800;
+ }
+
.pintuan-left-price {
display: inline;
padding: 10rpx;
@@ -196,53 +232,6 @@
margin: 40rpx;
}
- .pintuan-right {
- display: flex;
- width: 30%;
- padding: 30rpx;
- flex: 1;
- }
-
- .pintuan-right-img {
- height: 80rpx;
- display: flex;
-
- img {
- width: 80rpx;
- height: 80rpx;
- z-index: 98;
- background-size: 100%;
- }
- }
-
- .weipincheng {
- width: 80rpx;
- height: 80rpx;
- background: #a6ffea;
- border-radius: 80rpx;
- text-align: center;
- font-size: 28rpx;
- font-weight: 700;
- margin-left: -6rpx;
- z-index: 97;
- line-height: 80rpx;
- }
-
- .goods-center {
- width: 95%;
- margin: 0 auto 20rpx;
- background: #f5f8f5;
- height: 140rpx;
- border-radius: 20rpx;
- overflow: hidden;
- display: flex;
- }
-
- .pintuan-right-cha {
- line-height: 80rpx;
- margin-left: 20rpx;
- }
-
.goods-bottom {
width: 95%;
margin: 0 auto;
@@ -260,70 +249,8 @@
padding-bottom: 80rpx;
}
- .bottom {
- position: fixed;
- bottom: 0;
- left: 0;
- width: 100%;
- height: 160rpx;
- display: flex;
- background: #fff;
- z-index: 99;
- box-shadow: 0 -20rpx 30rpx rgba(0, 0, 0, 0.3);
- }
-
- .bottom-left {
- flex: 1;
- display: flex;
- padding: 20rpx;
-
- img {
- width: 60rpx;
- height: 80rpx;
- background-size: 100%;
- }
- }
-
- .bottom-price {
- margin-left: 40rpx;
- font-size: 40rpx;
- color: red;
- font-weight: 700;
- line-height: 110rpx;
- }
-
- .bottom-right {
- padding-top: 20rpx;
- flex: 1;
- display: flex;
-
- img {
- width: 360rpx;
- height: 100rpx;
- background-size: 100%;
- }
- }
-
- .bottom-dot {
- position: absolute;
- top: 0;
- right: -20rpx;
- background: red;
- color: #fff;
- width: 32rpx;
- height: 32rpx;
- border-radius: 32rpx;
- text-align: center;
- line-height: 32rpx;
+ .detail-empty {
+ color: #999;
}
- .bottom-btn {
- width: 240rpx;
- height: 100rpx;
- background: linear-gradient(90deg, rgba(227, 255, 150, 1), rgba(166, 255, 234, 1));
- font-size: 26rpx;
- font-weight: 700;
- line-height: 100rpx;
- text-align: center;
- }
\ No newline at end of file
diff --git a/package1/order/orderDetail.vue b/package1/order/orderDetail.vue
index 0a417e1..e7350c0 100644
--- a/package1/order/orderDetail.vue
+++ b/package1/order/orderDetail.vue
@@ -1,6 +1,6 @@
-
+
@@ -16,12 +16,12 @@
{{orderDetail.shopName}}
-
+
-
+
-
+
{{item1.productName}}
@@ -54,6 +54,9 @@
快呼唤小伙伴参加吧!
+
+ {{isRefreshing ? '刷新中' : '刷新'}}
+
@@ -160,7 +163,7 @@
申请售后
- 刷新
+ {{isRefreshing ? '刷新中' : '刷新'}}
+
+
+ 具体原因(可多选)
+
+
+ {{item}}
+
-
-
-
- 申请说明
+
+ 取消原因
+
+
+
+ 上传图片
+
+
+
-
-
-
-
-
-
-
-
-
-
+
+
-
-
-
-
+
+
+
+
+
- 取消订单需要商家同意
-
- 请选择退款原因
-
-
+ 取消订单需要商家同意
+
+ 请选择退款原因
+
+
+
-
+
商家还未出餐
-
-
-
-
-
- 配送员到店时间:{{shopTime}}
-
-
+
+
+
+ 配送员到店时间:{{shopTime}}
+
-
-
-
-
- 本单商家备餐时长:{{shopTime}}
-
-
+
+
+
+ 本单商家备餐时长:{{shopTime}}
+
-
-
-
-
- 配送员配送时长:{{peisongTime}}
-
-
+
+
+
+ 配送员配送时长:{{peisongTime}}
+
-
- 确认取消
-
+
+
+
+ 确认取消
@@ -697,18 +695,18 @@
-
-
-
- 增加配送佣金
+
+
@@ -765,6 +763,13 @@
menuButtonInfo: {},
refundType: 3,
refundTypeStatus: 1,
+ returnData: {
+ reason: '',
+ pictures: ''
+ },
+ cancelReasonOptions: ['配送超时', '收到的商品少了', '骑手送错地址', '收到的商品错了', '商家出餐超时', '餐品损坏或撒了', '商品质量问题'],
+ selectedCancelReasonOptions: [],
+ popupPageStyle: '',
shopTime: '',
hasRefund: false,
peisongTime: '',
@@ -776,7 +781,8 @@
},
codeImg: 'https://jewel-shop.oss-cn-beijing.aliyuncs.com/3a4e68eb14d7417cbb4f15fa85907c64.jpg',
additionalFee: '',
- addFeeTradeNo: ''
+ addFeeTradeNo: '',
+ isRefreshing: false
}
},
components: {
@@ -886,6 +892,22 @@
},
methods: {
+ isRefundPending(item) {
+ return item && (item.status == 0 || item.status == 3);
+ },
+ getAutoRefundTime(value) {
+ if (!value) return '';
+ const date = new Date(value);
+ if (isNaN(date.getTime())) return '';
+ date.setHours(date.getHours() + 1);
+ const year = date.getFullYear();
+ const month = String(date.getMonth() + 1).padStart(2, '0');
+ const day = String(date.getDate()).padStart(2, '0');
+ const hour = String(date.getHours()).padStart(2, '0');
+ const minute = String(date.getMinutes()).padStart(2, '0');
+ const second = String(date.getSeconds()).padStart(2, '0');
+ return `${year}-${month}-${day} ${hour}:${minute}:${second}`;
+ },
openCode() {
let that = this
this.$refs.imgPopup.open()
@@ -983,6 +1005,18 @@
this.refundTypeStatus = 3
}
},
+ onCancelPopupChange(e) {
+ this.popupPageStyle = e.show ? 'height:100vh;overflow:hidden;' : '';
+ },
+ toggleCancelReasonOption(item) {
+ let index = this.selectedCancelReasonOptions.indexOf(item);
+ if (index === -1) {
+ this.selectedCancelReasonOptions.push(item);
+ } else {
+ this.selectedCancelReasonOptions.splice(index, 1);
+ }
+ this.returnData.reason = this.selectedCancelReasonOptions.join('、');
+ },
makeCall(phone) {
uni.makePhoneCall({
phoneNumber: phone
@@ -1103,16 +1137,19 @@
refundType: this.refundType,
refundTypeStatus: this.refundTypeStatus,
orderId: item.id,
- userId: uni.getStorageSync('id')
+ userId: uni.getStorageSync('id'),
+ reason: this.returnData.reason,
+ pictures: this.returnData.pictures
}, false, true).then((res) => {
+ uni.hideLoading();
if (res.code == 200) {
that.tui.toast("取消订单成功");
that.getOrderDetail(item.id)
that.$forceUpdate();
} else {
- that.tui.toast(res.message);
+ that.tui.toast(res.message,2000);
}
- uni.hideLoading();
+
}).catch((res) => {});
},
returnOrderBuy() {
@@ -1178,7 +1215,7 @@
that.payData.packageFee
});
} else {
- that.tui.toast(res.message);
+ that.tui.toast(res.message,2000);
return;
}
uni.hideLoading();
@@ -1191,8 +1228,18 @@
}).catch((res) => {});
},
refreah(item) {
+ if (this.isRefreshing) return;
+ this.isRefreshing = true;
+ uni.showLoading({
+ title: '刷新中...',
+ mask: true
+ });
this.getOrderDetail(item.id)
this.$forceUpdate();
+ setTimeout(() => {
+ uni.hideLoading();
+ this.isRefreshing = false;
+ }, 1000);
},
returnProducts(item) {
uni.redirectTo({
@@ -1245,7 +1292,9 @@
return
}
}).catch((res) => {})
- uni.hideLoading();
+ if (!this.isRefreshing) {
+ uni.hideLoading();
+ }
},
goAssignWorker() {
let shopAreaId = this.orderDetail.getAreaId || '';
@@ -1291,11 +1340,35 @@
},
openAddFeePopup() {
this.additionalFee = '';
- this.$refs.addFeePopup.open('bottom');
+ this.$refs.addFeePopup.open('center');
+ },
+ formatMoneyInput(value) {
+ value = String(value || '');
+ value = value.replace(/[^\d.]/g, '');
+ const dotIndex = value.indexOf('.');
+ if (dotIndex !== -1) {
+ value = value.slice(0, dotIndex + 1) + value.slice(dotIndex + 1).replace(/\./g, '');
+ const parts = value.split('.');
+ value = parts[0] + '.' + parts[1].slice(0, 2);
+ }
+ return value;
+ },
+ formatAdditionalFee(value) {
+ let fee = parseFloat(this.formatMoneyInput(value));
+ if (isNaN(fee) || fee < 0.1) {
+ return '';
+ }
+ return (Math.floor(fee * 100) / 100).toFixed(2).replace(/\.?0+$/, '');
+ },
+ onAdditionalFeeInput(e) {
+ const value = this.formatMoneyInput(e.detail.value);
+ this.additionalFee = value;
+ return value;
},
submitAddFee() {
+ this.additionalFee = this.formatAdditionalFee(this.additionalFee);
let fee = parseFloat(this.additionalFee);
- if (isNaN(fee) || fee <= 0) {
+ if (isNaN(fee) || fee < 0.1) {
this.tui.toast('请输入有效的金额');
return;
}
@@ -1310,8 +1383,9 @@
},
addFeeWxPayment() {
let that = this;
+ this.additionalFee = this.formatAdditionalFee(this.additionalFee);
let fee = parseFloat(this.additionalFee);
- if (!fee || fee <= 0) return;
+ if (!fee || fee < 0.1) return;
let amountInCents = Math.round(fee * 100);
this.tui.request("/api/wechat/pay/unified-order", "POST", {
@@ -1379,7 +1453,12 @@
});
},
back() {
- uni.navigateBack()
+ const pages = getCurrentPages()
+ if (pages.length > 1) {
+ uni.navigateBack({ delta: 1 })
+ } else {
+ uni.switchTab({ url: '/pages/index/index' })
+ }
}
}
@@ -1453,6 +1532,120 @@
overflow: hidden;
}
+ .auto-refund-tip {
+ margin: 8rpx 0 18rpx;
+ padding: 18rpx 20rpx;
+ border-radius: 18rpx;
+ background: rgba(255, 244, 232, 0.9);
+ border: 1rpx solid rgba(255, 180, 118, 0.48);
+ color: #b4572d;
+ font-size: 24rpx;
+ font-weight: 700;
+ line-height: 34rpx;
+ }
+
+ .refund-card {
+ margin-top: 10px;
+ padding: 20rpx;
+ background: rgba(247, 248, 248, 0.6);
+ border-radius: 20rpx;
+ }
+
+ .refund-goods-card {
+ display: flex;
+ padding: 18rpx;
+ margin: 12rpx 0;
+ background: rgba(255, 255, 255, 0.72);
+ border-radius: 22rpx;
+ border: 1rpx solid rgba(166, 255, 234, 0.28);
+ box-sizing: border-box;
+ }
+
+ .refund-goods-img {
+ width: 132rpx;
+ height: 132rpx;
+ flex-shrink: 0;
+ border-radius: 20rpx;
+ overflow: hidden;
+ background: #f4f7f6;
+ }
+
+ .refund-goods-img img {
+ width: 100%;
+ height: 100%;
+ border-radius: 20rpx;
+ object-fit: cover;
+ }
+
+ .refund-goods-content {
+ flex: 1;
+ min-width: 0;
+ padding-left: 18rpx;
+ }
+
+ .refund-goods-name {
+ color: #243f38;
+ font-size: 28rpx;
+ font-weight: 900;
+ line-height: 38rpx;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+ }
+
+ .refund-goods-spec {
+ margin-top: 8rpx;
+ color: #7b8883;
+ font-size: 22rpx;
+ line-height: 32rpx;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+ }
+
+ .refund-goods-bottom {
+ display: flex;
+ justify-content: space-between;
+ margin-top: 14rpx;
+ color: #243f38;
+ font-size: 24rpx;
+ font-weight: 800;
+ line-height: 34rpx;
+ }
+
+ .refund-info-row {
+ display: flex;
+ align-items: flex-start;
+ padding: 18rpx 0;
+ border-bottom: 1rpx solid rgba(0, 35, 28, 0.045);
+ }
+
+ .refund-info-label {
+ width: 160rpx;
+ flex-shrink: 0;
+ color: #87938f;
+ font-weight: 700;
+ line-height: 38rpx;
+ }
+
+ .refund-info-value {
+ flex: 1;
+ min-width: 0;
+ color: #243f38;
+ font-weight: 700;
+ line-height: 38rpx;
+ word-break: break-all;
+ text-align: right;
+ }
+
+ .refund-image {
+ width: 180rpx;
+ height: 180rpx;
+ border-radius: 20rpx;
+ display: block;
+ margin-left: auto;
+ }
+
.content > .box1:first-child {
background:
radial-gradient(circle at 94% 4%, rgba(255, 221, 176, 0.2) 0, rgba(255, 221, 176, 0) 170rpx),
@@ -1683,6 +1876,143 @@
box-shadow: 0 -18rpx 44rpx rgba(0, 35, 28, 0.12);
}
+ .cancel-popup {
+ max-height: 86vh;
+ padding: 20rpx 20rpx 0 !important;
+ overflow: hidden;
+ box-sizing: border-box;
+ background: #fff;
+ }
+
+ .cancel-scroll {
+ height: 62vh;
+ overflow: hidden;
+ }
+
+ .cancel-type-item {
+ min-height: 76rpx;
+ line-height: 76rpx;
+ color: #243f38;
+ font-size: 28rpx;
+ font-weight: 700;
+ }
+
+ .cancel-section {
+ padding: 0 20rpx 24rpx;
+ }
+
+ .cancel-section-title {
+ margin: 10rpx 0 18rpx;
+ color: #243f38;
+ font-size: 28rpx;
+ font-weight: 900;
+ }
+
+ .cancel-option-list {
+ display: flex;
+ flex-wrap: wrap;
+ gap: 16rpx;
+ }
+
+ .cancel-option {
+ padding: 0 22rpx;
+ height: 64rpx;
+ line-height: 64rpx;
+ border-radius: 999rpx;
+ background: rgba(247, 248, 248, 0.78);
+ border: 1rpx solid rgba(0, 35, 28, 0.06);
+ color: #65736f;
+ font-size: 24rpx;
+ font-weight: 700;
+ }
+
+ .cancel-option.checked {
+ background: linear-gradient(90deg, rgba(227, 255, 150, 1), rgba(166, 255, 234, 1));
+ color: #00231C;
+ border-color: rgba(166, 255, 234, 0.78);
+ }
+
+ .cancel-textarea {
+ width: 100%;
+ height: 180rpx;
+ padding: 20rpx;
+ box-sizing: border-box;
+ border-radius: 24rpx;
+ background: rgba(247, 248, 248, 0.8);
+ color: #243f38;
+ font-size: 26rpx;
+ line-height: 38rpx;
+ }
+
+ .cancel-upload-row {
+ display: flex;
+ align-items: center;
+ gap: 18rpx;
+ flex-wrap: wrap;
+ }
+
+ .cancel-upload-img {
+ width: 150rpx;
+ height: 150rpx;
+ border-radius: 20rpx;
+ object-fit: cover;
+ }
+
+ .cancel-upload-btn {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ background: rgba(247, 248, 248, 0.8);
+ border: 1rpx dashed rgba(0, 35, 28, 0.18);
+ }
+
+ .cancel-upload-preview {
+ width: 150rpx;
+ height: 150rpx;
+ border-radius: 20rpx;
+ overflow: hidden;
+ }
+
+ .cancel-warning-card {
+ margin-top: 20rpx;
+ padding: 18rpx 20rpx;
+ border-radius: 18rpx;
+ background: #fff5f5;
+ color: #ff5722;
+ font-size: 24rpx;
+ line-height: 36rpx;
+ box-sizing: border-box;
+ }
+
+ .cancel-time-tips {
+ margin-top: 14rpx;
+ display: flex;
+ flex-direction: column;
+ gap: 10rpx;
+ }
+
+ .cancel-warning-line {
+ display: flex;
+ align-items: flex-start;
+ width: 100%;
+ min-height: 36rpx;
+ line-height: 36rpx;
+ text-align: left;
+ word-break: break-all;
+ }
+
+ .cancel-warning-line text {
+ flex: 1;
+ min-width: 0;
+ padding-left: 10rpx;
+ white-space: normal;
+ }
+
+ .cancel-confirm-btn {
+ width: 95%;
+ margin: 18rpx auto 20rpx;
+ }
+
.evaluate-content {
background: linear-gradient(180deg, #ffffff 0%, #f7fffb 100%);
}
@@ -1700,6 +2030,83 @@
background-size: 100%;
}
+ .commission-popup {
+ width: 620rpx;
+ padding: 44rpx 36rpx 34rpx;
+ box-sizing: border-box;
+ border-radius: 32rpx;
+ background: #fff;
+ box-shadow: 0 28rpx 70rpx rgba(0, 35, 28, 0.18);
+ }
+
+ .commission-popup-title {
+ color: #243f38;
+ font-size: 34rpx;
+ font-weight: 900;
+ text-align: center;
+ }
+
+ .commission-popup-desc {
+ margin-top: 12rpx;
+ color: #87938f;
+ font-size: 24rpx;
+ text-align: center;
+ }
+
+ .commission-popup-input {
+ display: flex;
+ align-items: center;
+ height: 88rpx;
+ margin-top: 34rpx;
+ padding: 0 26rpx;
+ border-radius: 24rpx;
+ background: #f6faf8;
+ border: 1rpx solid #e5efeb;
+
+ text {
+ margin-right: 12rpx;
+ color: #ff7043;
+ font-size: 34rpx;
+ font-weight: 900;
+ }
+
+ input {
+ flex: 1;
+ height: 88rpx;
+ min-height: 88rpx;
+ font-size: 34rpx;
+ font-weight: 800;
+ }
+ }
+
+ .commission-popup-actions {
+ display: flex;
+ margin-top: 34rpx;
+ gap: 18rpx;
+ }
+
+ .commission-popup-cancel,
+ .commission-popup-confirm {
+ flex: 1;
+ height: 76rpx;
+ border-radius: 999rpx;
+ font-size: 28rpx;
+ font-weight: 800;
+ line-height: 76rpx;
+ text-align: center;
+ }
+
+ .commission-popup-cancel {
+ background: #f3f6f4;
+ color: #87938f;
+ }
+
+ .commission-popup-confirm {
+ background: linear-gradient(135deg, #fff7d7 0%, #a6ffea 100%);
+ color: #243f38;
+ box-shadow: 0 12rpx 26rpx rgba(0, 191, 160, 0.12);
+ }
+
.evaluate-content {
width: 600rpx;
height: 800rpx;
@@ -1879,6 +2286,20 @@
box-sizing: border-box;
}
+ .kaituan-refresh-btn {
+ height: 44rpx;
+ line-height: 44rpx;
+ padding: 0 22rpx;
+ margin: 10rpx 0 0 16rpx;
+ border-radius: 999rpx;
+ background: rgba(255, 255, 255, 0.86);
+ border: 1rpx solid rgba(166, 255, 234, 0.7);
+ color: #0f806d;
+ font-size: 22rpx;
+ font-weight: 800;
+ box-shadow: 0 8rpx 18rpx rgba(0, 35, 28, 0.06);
+ }
+
.kaituan21 {
display: flex;
align-items: center;
diff --git a/package1/order/orderList.vue b/package1/order/orderList.vue
index bccd33a..d4cf24c 100644
--- a/package1/order/orderList.vue
+++ b/package1/order/orderList.vue
@@ -168,7 +168,7 @@
-
+
@@ -454,7 +454,7 @@
that.tui.toast("订单创建失败,请联系客服处理");
}
}) */
- uni.redirectTo({
+ uni.navigateTo({
url: '/package1/order/orderDetail?id=' + that.payData.id
});
},
@@ -472,7 +472,7 @@
return false;
},
orderDetail(id){
- uni.redirectTo({
+ uni.navigateTo({
url: '/package1/order/orderDetail?id=' + id
});
},
diff --git a/package1/order/returnOrder.vue b/package1/order/returnOrder.vue
index a25630d..2f75abe 100644
--- a/package1/order/returnOrder.vue
+++ b/package1/order/returnOrder.vue
@@ -1,6 +1,6 @@
-
+
@@ -190,37 +190,7 @@
{{orderDetail.deliveryInfo.finishTime ? orderDetail.deliveryInfo.finishTime : '尽快送达' | formatTime}}
-
-
- 上传图片
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 订单备注
-
-
-
-
-
-
-
+
售后原因
@@ -231,38 +201,64 @@
-
-
-
-
+
+
+
@@ -293,8 +289,13 @@
orderId: '',
vModelValue: 0,
returnData: {
+ reason: '',
+ pictures: '',
refundAmount: 0
},
+ reasonOptions: ['配送超时', '收到的商品少了', '骑手送错地址', '收到的商品错了', '商家出餐超时', '餐品损坏或撒了', '商品质量问题'],
+ selectedReasonOptions: [],
+ popupPageStyle: '',
payData: {},
orderDetail: {},
codeImg: 'https://jewel-shop.oss-cn-beijing.aliyuncs.com/3a4e68eb14d7417cbb4f15fa85907c64.jpg'
@@ -372,9 +373,15 @@
},
onShow() {
this.menuButtonInfo = uni.getMenuButtonBoundingClientRect()
- this.$refs.carPopup.open();
+ this.openReasonPopup();
},
methods: {
+ onReasonPopupChange(e) {
+ this.popupPageStyle = e.show ? 'height:100vh;overflow:hidden;' : '';
+ },
+ openReasonPopup() {
+ this.$refs.carPopup.open('bottom');
+ },
chooseReturnType() {
this.$refs.carPopup.close()
if (this.sellTime == 0) {
@@ -398,6 +405,18 @@
}
this.changeProduct()
},
+ toggleReasonOption(item) {
+ let index = this.selectedReasonOptions.indexOf(item);
+ if (index === -1) {
+ this.selectedReasonOptions.push(item);
+ } else {
+ this.selectedReasonOptions.splice(index, 1);
+ }
+ this.syncReasonText();
+ },
+ syncReasonText() {
+ this.returnData.reason = this.selectedReasonOptions.join('、');
+ },
changeProduct() {
for (let i = 0; i < this.orderDetail.goodsList.length; i++) {
if (this.orderDetail.goodsList[i].returnCount) {
@@ -967,7 +986,7 @@
width: 100%;
border-radius: 20rpx;
padding: 20rpx;
- overflow: scroll;
+ overflow: hidden;
}
.car-close {
@@ -986,6 +1005,101 @@
font-weight: 700;
}
+ .reason-popup {
+ border-radius: 36rpx 36rpx 0 0;
+ max-height: 86vh;
+ box-sizing: border-box;
+ }
+
+ .reason-scroll {
+ height: 62vh;
+ overflow: hidden;
+ }
+
+ .reason-type-item {
+ min-height: 76rpx;
+ line-height: 76rpx;
+ color: #243f38;
+ font-size: 28rpx;
+ font-weight: 700;
+ }
+
+ .reason-section {
+ padding: 0 20rpx 24rpx;
+ }
+
+ .reason-section-title {
+ margin: 10rpx 0 18rpx;
+ color: #243f38;
+ font-size: 28rpx;
+ font-weight: 900;
+ }
+
+ .reason-option-list {
+ display: flex;
+ flex-wrap: wrap;
+ gap: 16rpx;
+ }
+
+ .reason-option {
+ padding: 0 22rpx;
+ height: 64rpx;
+ line-height: 64rpx;
+ border-radius: 999rpx;
+ background: rgba(247, 248, 248, 0.78);
+ border: 1rpx solid rgba(0, 35, 28, 0.06);
+ color: #65736f;
+ font-size: 24rpx;
+ font-weight: 700;
+ }
+
+ .reason-option.checked {
+ background: linear-gradient(90deg, rgba(227, 255, 150, 1), rgba(166, 255, 234, 1));
+ color: #00231C;
+ border-color: rgba(166, 255, 234, 0.78);
+ }
+
+ .reason-textarea {
+ width: 100%;
+ height: 180rpx;
+ padding: 20rpx;
+ box-sizing: border-box;
+ border-radius: 24rpx;
+ background: rgba(247, 248, 248, 0.8);
+ color: #243f38;
+ font-size: 26rpx;
+ line-height: 38rpx;
+ }
+
+ .upload-row {
+ display: flex;
+ align-items: center;
+ gap: 18rpx;
+ flex-wrap: wrap;
+ }
+
+ .upload-img {
+ width: 150rpx;
+ height: 150rpx;
+ border-radius: 20rpx;
+ object-fit: cover;
+ }
+
+ .upload-btn {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ background: rgba(247, 248, 248, 0.8);
+ border: 1rpx dashed rgba(0, 35, 28, 0.18);
+ }
+
+ .upload-preview {
+ width: 150rpx;
+ height: 150rpx;
+ border-radius: 20rpx;
+ overflow: hidden;
+ }
+
.btn {
width: 95%;
height: 100rpx;
diff --git a/package1/runErrand/runErrand.vue b/package1/runErrand/runErrand.vue
index df23ff0..76e7423 100644
--- a/package1/runErrand/runErrand.vue
+++ b/package1/runErrand/runErrand.vue
@@ -116,11 +116,10 @@
不指定
-
+
佣金 ¥
-
+ {{customCommission || '0.1'}}
+
@@ -243,15 +242,15 @@
-
-
+
+
立即支付{{backendTotalAmount ? backendTotalAmount.toFixed(2) : totalAmountCalc.toFixed(2)}}
-
+
@@ -312,6 +311,22 @@
+
+
+
+
@@ -368,11 +383,13 @@
menuButtonInfo: {},
selectedWorker:'buzhiding',
assignedWorker:null,
- customCommission:'0',
+ customCommission:'0.1',
+ commissionInputValue: '',
shopArea: [],
kuaidiAreaList: [],
selectedPickupArea: null,
addressSelectMode: 'put', // 'put' | 'get'
+ isBookPopupOpen: false,
formData: {
address: null, // 收货地址 putArea
pickupAddress: null, // 取货地址 getArea (跑腿模式)
@@ -392,6 +409,7 @@
immediateTimeStr: '',
backendTotalAmount: 0,
currentOrderId: '',
+ isCreatingOrder: false,
warnPopup: '',
availableCoupons: [],
selectedCoupon: null
@@ -431,13 +449,7 @@
return total > 0 ? total : 0.01;
}
},
- watch: {
- deliveryFeeCalc(newVal, oldVal) {
- if (newVal !== oldVal) {
- this.fetchCoupons();
- }
- }
- },
+ watch: {},
onLoad() {
//this.getShopArea()
},
@@ -465,6 +477,39 @@
uni.removeStorageSync('pendingAssignWorker');
},
methods: {
+ formatCommissionValue(value) {
+ let amount = parseFloat(value);
+ if (isNaN(amount) || amount < 0.1) {
+ return '0.1';
+ }
+ amount = Math.floor(amount * 100) / 100;
+ return amount.toFixed(2).replace(/\.?0+$/, '');
+ },
+ filterCommissionInput(value) {
+ value = String(value || '');
+ value = value.replace(/[^\d.]/g, '');
+ const dotIndex = value.indexOf('.');
+ if (dotIndex !== -1) {
+ value = value.slice(0, dotIndex + 1) + value.slice(dotIndex + 1).replace(/\./g, '');
+ const parts = value.split('.');
+ value = parts[0] + '.' + parts[1].slice(0, 2);
+ }
+ return value;
+ },
+ openCommissionPopup() {
+ this.commissionInputValue = '';
+ this.$refs.commissionPopup.open('center');
+ },
+ onCommissionPopupInput(e) {
+ const value = this.filterCommissionInput(e.detail.value);
+ this.commissionInputValue = value;
+ return value;
+ },
+ confirmCommission() {
+ this.customCommission = this.formatCommissionValue(this.commissionInputValue);
+ this.$refs.commissionPopup.close();
+ this.fetchCoupons();
+ },
openCouponPopup() {
this.fetchCoupons();
this.$refs.couponPopup.open('bottom');
@@ -530,8 +575,12 @@
},
openAddressBook(mode) {
this.addressSelectMode = mode;
+ this.isBookPopupOpen = true;
this.$refs.bookPopup.open('bottom');
},
+ onBookPopupChange(e) {
+ this.isBookPopupOpen = !!e.show;
+ },
handleSelectAddress(address) {
if (this.addressSelectMode === 'put') {
this.formData.address = address;
@@ -539,6 +588,7 @@
} else {
this.formData.pickupAddress = address;
}
+ this.isBookPopupOpen = false;
this.$refs.bookPopup.close();
},
updateArea(v){
@@ -745,6 +795,12 @@
return null;
},
submitPay() {
+ uni.hideKeyboard();
+ if (this.currentOrderId && this.backendTotalAmount) {
+ this.$refs.payPopup.open('bottom');
+ return;
+ }
+ if (this.isCreatingOrder) return;
if (this.isKuaidi && !this.selectedPickupArea) {
uni.showToast({ title: '请选择代取点', icon: 'none' });
return;
@@ -759,8 +815,9 @@
return;
}
if (this.selectedWorker === 'buzhiding') {
+ this.customCommission = this.formatCommissionValue(this.customCommission);
let comm = parseFloat(this.customCommission);
- if (isNaN(comm) || comm <= 0) {
+ if (isNaN(comm) || comm < 0.1) {
this.warnPopup = 'psyj';
this.$refs.warnPopup.open();
return;
@@ -779,6 +836,8 @@
this.submitOrderToBackend();
},
submitOrderToBackend() {
+ if (this.isCreatingOrder) return;
+ this.isCreatingOrder = true;
let deliveryType = this.isKuaidi ? 2 : 3;
let putAddressStr = (this.formData.address.areaName || '') + (this.formData.address.floor ? this.formData.address.floor + '层' : '') + (this.formData.address.roomNum || '');
@@ -846,6 +905,7 @@
this.tui.request("/mall/delivery/insert", "POST", payload, false, false).then(res => {
uni.hideLoading();
+ this.isCreatingOrder = false;
if (res.success && res.result) {
this.currentOrderId = res.result.id;
this.backendTotalAmount = res.result.deliveryFee || this.deliveryFeeCalc;
@@ -855,6 +915,7 @@
}
}).catch(err => {
uni.hideLoading();
+ this.isCreatingOrder = false;
});
},
wxPayment() {
@@ -1051,6 +1112,93 @@
margin: 0 20rpx 0 0;
}
+ .commission-value {
+ width: 140rpx;
+ height: 50rpx;
+ border-bottom: 1px solid #ccc;
+ text-align: center;
+ font-size: 28rpx;
+ font-weight: normal;
+ line-height: 50rpx;
+ }
+
+ .commission-popup {
+ width: 620rpx;
+ padding: 44rpx 36rpx 34rpx;
+ box-sizing: border-box;
+ border-radius: 32rpx;
+ background: #fff;
+ box-shadow: 0 28rpx 70rpx rgba(0, 35, 28, 0.18);
+ }
+
+ .commission-popup-title {
+ color: #00231C;
+ font-size: 34rpx;
+ font-weight: 900;
+ text-align: center;
+ }
+
+ .commission-popup-desc {
+ margin-top: 12rpx;
+ color: #777;
+ font-size: 24rpx;
+ text-align: center;
+ }
+
+ .commission-popup-input {
+ display: flex;
+ align-items: center;
+ height: 88rpx;
+ margin-top: 34rpx;
+ padding: 0 26rpx;
+ border-radius: 24rpx;
+ background: #f6faf8;
+ border: 1rpx solid #e5efeb;
+
+ text {
+ margin-right: 12rpx;
+ color: #ff7043;
+ font-size: 34rpx;
+ font-weight: 900;
+ }
+
+ input {
+ flex: 1;
+ height: 88rpx;
+ min-height: 88rpx;
+ font-size: 34rpx;
+ font-weight: 800;
+ }
+ }
+
+ .commission-popup-actions {
+ display: flex;
+ margin-top: 34rpx;
+ gap: 18rpx;
+ }
+
+ .commission-popup-cancel,
+ .commission-popup-confirm {
+ flex: 1;
+ height: 76rpx;
+ border-radius: 999rpx;
+ font-size: 28rpx;
+ font-weight: 800;
+ line-height: 76rpx;
+ text-align: center;
+ }
+
+ .commission-popup-cancel {
+ background: #f3f6f4;
+ color: #777;
+ }
+
+ .commission-popup-confirm {
+ background: linear-gradient(90deg, #e3ff96, #a6ffea);
+ color: #00231C;
+ box-shadow: 0 12rpx 26rpx rgba(11, 155, 115, 0.12);
+ }
+
.check-input {
height: 70rpx;
width: 100%;
@@ -1090,7 +1238,7 @@
height: 150rpx;
display: flex;
background: #fff;
- z-index: 99;
+ z-index: 9999;
box-shadow: 0 -20rpx 30rpx rgba(0, 0, 0, 0.3);
}