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 @@ - + @@ -1028,7 +1028,7 @@ - +