diff --git a/components/delivery-time-op/delivery-time-op.vue b/components/delivery-time-op/delivery-time-op.vue
index 98a3e2a..10a1d6e 100644
--- a/components/delivery-time-op/delivery-time-op.vue
+++ b/components/delivery-time-op/delivery-time-op.vue
@@ -4,7 +4,7 @@
@@ -214,6 +214,7 @@ export default {
}
.add {
+ height: 380px;
transform: translateY(0);
}
diff --git a/pages/checkout/checkout.vue b/pages/checkout/checkout.vue
index ed6ed62..d08c44c 100644
--- a/pages/checkout/checkout.vue
+++ b/pages/checkout/checkout.vue
@@ -136,8 +136,9 @@
+ v-if="!shouldHideImmediateDelivery"
+ :class="{ active: activeTab === 'immediate' }"
+ @click="setActiveTab('immediate')">
立即配送
{{ immediateDeliveryTime }}
@@ -810,6 +811,7 @@ export default {
items: [],
UserMembership: {},
},
+ store_ids_time:0,
selectedTime:"",
dateTitle:"",
activeTab: "immediate",
@@ -823,7 +825,7 @@ export default {
paymentData: {},
integral: "",
discount: 0,
- immediateDeliveryTime:"",
+ immediateDeliveryTime:"",
disbursements: "",
IsUseCoupon: 1,
canSelfpick: 0, //是否允许自提
@@ -908,15 +910,24 @@ export default {
loginPopup,
deliveryTimeOp
},
- computed: mapState([
- "Config",
- "StateCode",
- "notice",
- "plantformInfo",
- "shopInfo",
- "userInfo",
- "hasLogin",
- ]),
+ computed: {
+ ...mapState([
+ "Config",
+ "StateCode",
+ "notice",
+ "plantformInfo",
+ "shopInfo",
+ "userInfo",
+ "hasLogin",
+ ]),
+ shouldHideImmediateDelivery() {
+ const forbidStates = [3, 12];
+ // 检查所有店铺的items中是否有store_biz_state为12的
+ return this.submitinfo.items.some(store_item =>
+ forbidStates.includes(store_item.store_biz_state)
+ );
+ }
+ },
onLoad: async function (options) {
uni.setNavigationBarTitle({
title: this.__("订单提交"),
@@ -1074,6 +1085,10 @@ export default {
});
},
setActiveTab(tab) {
+ // 如果需要隐藏立即配送且用户点击了立即配送,则直接返回
+ if (tab === 'immediate' && this.shouldHideImmediateDelivery) {
+ return;
+ }
this.activeTab = tab;
if (tab === 'immediate') {
this.selectedTime = "";
@@ -1241,7 +1256,7 @@ export default {
url: this.Config.URL.cart.getTimeSlots, // 替换为实际的接口地址
method: 'GET',
data: {
- store_ids: 80
+ store_ids: this.store_ids_time||''
}
});
@@ -1375,6 +1390,12 @@ export default {
data: params,
success: function (data, status, msg, code) {
if (200 == status) {
+ // 提取所有店铺ID并拼接成字符串
+ const storeIds = data.items.map(store => store.store_id).join(',');
+ that.setData({ store_ids_time: storeIds });
+
+ // 立即获取时间槽
+ that.getTimeSlots();
for (var i = 0; i <= data.transportIds.length; i++) {
if (data.transportIds[i] == 10) {
that.delivery = true;
@@ -1437,7 +1458,13 @@ export default {
that.setData({
order_amount: data.orderSelMoneyAmount,
});
-
+ // 检查是否需要自动切换到预约配送
+ if (that.shouldHideImmediateDelivery) {
+ that.setData({
+ activeTab: 'scheduled',
+ booking_state: 2
+ });
+ }
//地址信息监测
if (ud_id > 0) {
//that.checkDelivery(ud_id);
@@ -2320,6 +2347,11 @@ submitorder: function (e) {
},
mounted() {
this.calculateImmediateDeliveryTime();
+ // 检查是否需要自动切换到预约配送
+ if (this.shouldHideImmediateDelivery) {
+ this.activeTab = 'scheduled';
+ this.booking_state = 2;
+ }
},
};
diff --git a/pages/product/detail.vue b/pages/product/detail.vue
index 56f0631..8067cab 100644
--- a/pages/product/detail.vue
+++ b/pages/product/detail.vue
@@ -878,7 +878,7 @@
-