jiangchengfeiyi-xiaochengxu/unpackage/dist/dev/mp-weixin/pages/order/singleGoodOrder/singleGoodOrder.js

232 lines
8.1 KiB
JavaScript

"use strict";
const common_vendor = require("../../../common/vendor.js");
const utils_emitter = require("../../../utils/emitter.js");
const api_request = require("../../../api/request.js");
require("../../../common/global.js");
if (!Array) {
const _easycom_uni_popup2 = common_vendor.resolveComponent("uni-popup");
_easycom_uni_popup2();
}
const _easycom_uni_popup = () => "../../../uni_modules/uni-popup/components/uni-popup/uni-popup.js";
if (!Math) {
(addressComponentVue + _easycom_uni_popup)();
}
const addressComponentVue = () => "../component/addressComponent.js";
const _sfc_main = {
__name: "singleGoodOrder",
setup(__props) {
const sumprice = common_vendor.ref(0);
const popup = common_vendor.ref(null);
const addressRealInfo = common_vendor.ref({
detailAddress: "请选择/添加地址"
});
const productObject = common_vendor.ref({});
common_vendor.ref([]);
const userInfo = common_vendor.wx$1.getStorageSync("userInfo");
common_vendor.ref({});
const totalInfo = common_vendor.ref([]);
const note = common_vendor.ref("");
const postCartArr = common_vendor.ref([]);
const quantity = common_vendor.ref(1);
common_vendor.onMounted(() => {
getFonts();
utils_emitter.emitter.on("close", () => {
close();
});
utils_emitter.emitter.on("addressInfo", (val) => {
addressRealInfo.value = val;
});
});
common_vendor.onLoad((options) => {
totalInfo.value = JSON.parse(options.cartInfo);
console.log("options.cartInfo-->", JSON.parse(options.cartInfo));
console.log("totalInfo.value-->", common_vendor.toRaw(totalInfo.value));
getProduct();
});
common_vendor.onShow(() => {
userInfo.value = common_vendor.wx$1.getStorageSync("userInfo");
getDefaultAddress();
});
const close = () => {
popup.value.close();
};
const loadPop = () => {
popup.value.open("bottom");
};
const getDefaultAddress = async () => {
const res = await common_vendor.index.request({
url: api_request.baseUrl + "/address/list",
method: "POST",
header: {
cookie: common_vendor.wx$1.getStorageSync("cookie")
}
});
for (let key in res.data.data) {
if (res.data.data[key].isDefault === 1) {
addressRealInfo.value = res.data.data[key];
}
}
};
const createOrder = async () => {
console.log("地址信息-->", addressRealInfo.value);
formatArr();
console.log("postCartArr--->", postCartArr.value);
const resOrder = await common_vendor.index.request({
//向后端发送生成订单请求
url: api_request.baseUrl + "/order/add",
method: "POST",
header: {
cookie: common_vendor.wx$1.getStorageSync("cookie")
},
data: {
orderType: productObject.value.type === "服务类" ? "service" : "product",
userName: userInfo.userName,
addressId: addressRealInfo.value.id,
//地址信息id
// contactsId: null, //联系人信息id
couponId: null,
//优惠卷id
note: note.value,
orderItemMainInfoAddRequestList: common_vendor.toRaw(postCartArr.value)
}
});
console.log("后台返回订单响应==>", resOrder.data);
if (resOrder.data.code === 1) {
wxPay(resOrder.data.data);
}
};
const getProduct = async () => {
const res = await common_vendor.index.request({
url: api_request.baseUrl + "/goods/getById",
method: "POST",
header: {
cookie: common_vendor.wx$1.getStorageSync("cookie")
},
data: { id: totalInfo.value }
});
console.log("展示订单页面的商品信息-->", res.data);
if (res.data.code === 1) {
dealRes(res);
}
};
const dealRes = (res) => {
productObject.value = res.data.data;
sumprice.value = res.data.data.price;
console.log("productArr--->", productObject.value);
};
const shortNum = () => {
if (quantity.value > 1) {
quantity.value -= 1;
sumprice.value = common_vendor.round(sumprice.value - productObject.value.price, 2);
}
};
const addNum = () => {
if (quantity.value < productObject.value.inventory) {
quantity.value += 1;
sumprice.value = common_vendor.round(sumprice.value + productObject.value.price, 2);
}
};
const formatArr = () => {
postCartArr.value.splice(0, postCartArr.value.length);
postCartArr.value.push({
goodId: totalInfo.value,
quantity: quantity.value
});
console.log(postCartArr.value);
};
const wxPay = async (oid) => {
try {
const res = await common_vendor.index.request({
url: api_request.baseUrl + "/wechat/payment/create",
method: "POST",
header: {
"cookie": common_vendor.wx$1.getStorageSync("cookie")
},
data: { id: oid }
});
const paymentData = res.data.data;
common_vendor.wx$1.requestPayment({
appid: paymentData.appId,
nonceStr: paymentData.nonceStr,
package: paymentData.packageVal,
paySign: paymentData.paySign,
timeStamp: paymentData.timeStamp,
signType: paymentData.signType,
success(res2) {
common_vendor.index.showModal({
content: "支付成功",
showCancel: false
});
common_vendor.index.redirectTo({
url: "/pages/order/product-paysuccess/product-paysuccess?oid=" + JSON.stringify(oid)
});
console.log("支付成功res--->", res2);
},
fail(e) {
common_vendor.index.showModal({
content: "支付失败,原因为:" + e.errMsg,
showCancel: false
});
common_vendor.index.redirectTo({
url: "/pages/order/product-paysuccess/product-paysuccess?oid=" + JSON.stringify(oid)
});
console.log("e.errMsg--->", e.errMsg);
}
});
} catch (error) {
console.error("支付请求失败", error);
common_vendor.index.showModal({
content: "支付请求失败,请重试。",
showCancel: false
});
}
};
const getFonts = () => {
common_vendor.index.loadFontFace({
family: "FangZhengFonts",
source: `url("https://carbon2.obs.cn-north-4.myhuaweicloud.com/fonts/FangZhengFonts.TTF")`,
success: (res) => {
console.log("success", res);
},
fail: (err) => {
console.log("err", err);
}
});
};
const textAssign = (e) => {
note.value = e.detail.value;
console.log("note--->", note.value);
};
return (_ctx, _cache) => {
return {
a: common_vendor.t(addressRealInfo.value.region),
b: common_vendor.t(addressRealInfo.value.detailAddress),
c: common_vendor.o(loadPop),
d: common_vendor.t(addressRealInfo.value.name),
e: common_vendor.t(addressRealInfo.value.phone),
f: productObject.value.goodImg.split(";")[0],
g: common_vendor.t(productObject.value.name),
h: common_vendor.t(productObject.value.type),
i: common_vendor.t(productObject.value.price),
j: common_vendor.o(shortNum),
k: common_vendor.t(quantity.value),
l: common_vendor.o(addNum),
m: common_vendor.t(quantity.value),
n: common_vendor.t(sumprice.value),
o: common_vendor.t(sumprice.value),
p: common_vendor.o(textAssign),
q: common_vendor.t(sumprice.value),
r: common_vendor.o(createOrder),
s: common_vendor.sr(popup, "2ef34a39-0", {
"k": "popup"
}),
t: common_vendor.p({
["background-color"]: "#fff"
})
};
};
}
};
const MiniProgramPage = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["__scopeId", "data-v-2ef34a39"], ["__file", "D:/微信小程序/课设整合/匠承非遗小程序端/jiangchengfeiyi-xiaochengxu/pages/order/singleGoodOrder/singleGoodOrder.vue"]]);
wx.createPage(MiniProgramPage);