JewelryMall/miniprogram/unpackage/dist/dev/mp-weixin/pages/order/submit.js
2026-02-21 14:20:00 +08:00

90 lines
3.6 KiB
JavaScript

"use strict";
const common_vendor = require("../../common/vendor.js");
const store_cart = require("../../store/cart.js");
const api_order = require("../../api/order.js");
const _sfc_main = /* @__PURE__ */ common_vendor.defineComponent({
__name: "submit",
setup(__props) {
const cartStore = store_cart.useCartStore();
const receiverName = common_vendor.ref("");
const receiverPhone = common_vendor.ref("");
const receiverAddress = common_vendor.ref("");
const agreed = common_vendor.ref(false);
const submitting = common_vendor.ref(false);
const orderItems = common_vendor.computed(() => cartStore.checkedItems);
const totalPrice = common_vendor.computed(
() => orderItems.value.reduce((sum, item) => sum + item.specData.totalPrice * item.quantity, 0)
);
const canSubmit = common_vendor.computed(() => agreed.value && !submitting.value);
async function handleSubmit() {
if (!canSubmit.value)
return;
if (!receiverName.value.trim()) {
common_vendor.index.showToast({ title: "请输入收货人姓名", icon: "none" });
return;
}
if (!receiverPhone.value.trim()) {
common_vendor.index.showToast({ title: "请输入联系电话", icon: "none" });
return;
}
if (!receiverAddress.value.trim()) {
common_vendor.index.showToast({ title: "请输入收货地址", icon: "none" });
return;
}
submitting.value = true;
try {
const order = await api_order.createOrder({
items: orderItems.value.map((item) => ({
productId: item.productId,
specDataId: item.specDataId,
quantity: item.quantity,
unitPrice: item.specData.totalPrice
})),
receiverName: receiverName.value.trim(),
receiverPhone: receiverPhone.value.trim(),
receiverAddress: receiverAddress.value.trim()
});
for (const item of orderItems.value) {
cartStore.removeFromCart(item.id);
}
common_vendor.index.redirectTo({ url: `/pages/order/detail?id=${order.id}` });
} catch {
common_vendor.index.showToast({ title: "提交订单失败,请重试", icon: "none" });
} finally {
submitting.value = false;
}
}
return (_ctx, _cache) => {
return common_vendor.e({
a: receiverName.value,
b: common_vendor.o(($event) => receiverName.value = $event.detail.value),
c: receiverPhone.value,
d: common_vendor.o(($event) => receiverPhone.value = $event.detail.value),
e: receiverAddress.value,
f: common_vendor.o(($event) => receiverAddress.value = $event.detail.value),
g: common_vendor.f(orderItems.value, (item, k0, i0) => {
return {
a: item.product.bannerImages[0] || "",
b: common_vendor.t(item.product.name),
c: common_vendor.t(item.specData.modelName),
d: common_vendor.t(item.specData.fineness),
e: common_vendor.t(item.specData.totalPrice),
f: common_vendor.t(item.quantity),
g: item.id
};
}),
h: common_vendor.t(totalPrice.value),
i: agreed.value
}, agreed.value ? {} : {}, {
j: agreed.value ? 1 : "",
k: common_vendor.o(($event) => agreed.value = !agreed.value),
l: !canSubmit.value ? 1 : "",
m: common_vendor.o(handleSubmit)
});
};
}
});
const MiniProgramPage = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["__scopeId", "data-v-c3fa8b8a"]]);
wx.createPage(MiniProgramPage);
//# sourceMappingURL=../../../.sourcemap/mp-weixin/pages/order/submit.js.map