feat: 订单的处理,ordertype 等于0的处理

This commit is contained in:
2026-03-31 00:05:42 +08:00
parent c9683398de
commit b8b1a3885a
9 changed files with 60 additions and 28 deletions

View File

@@ -11,7 +11,7 @@
<GoodsInfo :orderData="orderData" />
<UserInfo v-if="orderData.orderType === 0" :orderData="orderData" />
<UserInfo v-if="orderData.orderType == 0" :orderData="orderData" />
<OrderInfo :orderData="orderData" />
</view>
@@ -21,6 +21,7 @@
<!-- 核销凭证 二维码 -->
<OrderQrcode
v-if="orderData.orderStatus === '2'"
v-show="visbleQrcode"
v-model="visbleQrcode"
:orderData="orderData"
@@ -34,8 +35,8 @@
</template>
<script setup>
import { ref } from "vue";
import { onLoad } from "@dcloudio/uni-app";
import { ref, getCurrentInstance } from "vue";
import { onLoad, onUnload } from "@dcloudio/uni-app";
import { userOrderDetail, orderRefund } from "@/request/api/OrderApi";
import TopNavBar from "@/components/TopNavBar/index.vue";
import OrderQrcode from "./components/OrderQrcode/index.vue";
@@ -48,6 +49,9 @@ import OrderInfo from "./components/OrderInfo/index.vue";
import FooterSection from "./components/FooterSection/index.vue";
import RefundPopup from "@/components/RefundPopup/index.vue";
// 获取事件通道对象
let eventChannel = null
const refundVisible = ref(false);
const orderData = ref({});
@@ -55,7 +59,14 @@ const visbleQrcode = ref(false);
const selectedVoucher = ref(null);
const selectedVoucherIndex = ref(0);
onLoad(({ orderId }) => getOrderDetail(orderId));
onLoad(({ orderId }) => {
getOrderDetail(orderId);
// 获取当前页面的事件通道(由 navigateTo 打开时可用)
const pages = getCurrentPages()
const currentPage = pages[pages.length - 1]
eventChannel = currentPage.getOpenerEventChannel()
});
// 处理选中核销凭证事件
const handleSelectedVoucher = (voucher) => {
@@ -96,8 +107,18 @@ const handleRefundConfirm = async ({ orderId }) => {
// 再次预定
const handlePaySuccess = ({ orderId }) => {
console.log("支付成功,刷新订单详情", orderId);
getOrderDetail(orderId);
// 支付成功后通知上一个页面
setTimeout(() => {
eventChannel.emit('refreshOrderList', { success: true });
}, 1000);
};
onUnload(() => {
eventChannel.on('refreshOrderList');
});
</script>
<style lang="scss" scoped>