order.js 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. "use strict";
  2. const common_vendor = require("../../common/vendor.js");
  3. const utils_auth = require("../../utils/auth.js");
  4. const utils_api = require("../../utils/api.js");
  5. const _sfc_main = {
  6. __name: "order",
  7. setup(__props) {
  8. const orders = common_vendor.ref([]);
  9. const loading = common_vendor.ref(false);
  10. const isLoggedIn = common_vendor.ref(false);
  11. const checkLogin = () => {
  12. isLoggedIn.value = utils_auth.isLoggedIn();
  13. };
  14. const handleBack = () => {
  15. const pages = getCurrentPages();
  16. pages.length > 1 ? common_vendor.index.navigateBack() : common_vendor.index.switchTab({ url: "/pages/mine/mine" });
  17. };
  18. const loadOrders = async () => {
  19. if (!isLoggedIn.value)
  20. return;
  21. loading.value = true;
  22. try {
  23. const res = await utils_api.getUserOrders();
  24. if (res.code === 200) {
  25. orders.value = res.data || [];
  26. }
  27. } catch (e) {
  28. console.error("加载订单记录失败:", e);
  29. } finally {
  30. loading.value = false;
  31. }
  32. };
  33. const handlePay = async (order) => {
  34. try {
  35. common_vendor.index.showLoading({ title: "正在支付..." });
  36. const res = await utils_api.createOrder({ planId: order.planId });
  37. if (res.code !== 200) {
  38. throw new Error(res.message || "创建订单失败");
  39. }
  40. await utils_api.wxPay(res.data);
  41. common_vendor.index.showToast({ title: "支付成功", icon: "success" });
  42. setTimeout(() => loadOrders(), 1500);
  43. } catch (e) {
  44. common_vendor.index.showToast({ title: e.message || "支付失败", icon: "none" });
  45. } finally {
  46. common_vendor.index.hideLoading();
  47. }
  48. };
  49. const getStatusClass = (status) => {
  50. switch (status) {
  51. case 0:
  52. return "status-pending";
  53. case 1:
  54. return "status-paid";
  55. case 2:
  56. return "status-cancelled";
  57. default:
  58. return "status-closed";
  59. }
  60. };
  61. common_vendor.onLoad(() => checkLogin());
  62. common_vendor.onMounted(() => {
  63. if (isLoggedIn.value)
  64. loadOrders();
  65. });
  66. common_vendor.onShow(() => {
  67. checkLogin();
  68. if (isLoggedIn.value)
  69. loadOrders();
  70. });
  71. return (_ctx, _cache) => {
  72. return common_vendor.e({
  73. a: common_vendor.o(handleBack),
  74. b: loading.value
  75. }, loading.value ? {} : orders.value.length === 0 ? {} : {
  76. d: common_vendor.f(orders.value, (order, index, i0) => {
  77. return common_vendor.e({
  78. a: common_vendor.t(order.poolType === 1 ? "⚡" : "📈"),
  79. b: common_vendor.t(order.poolName || (order.poolType === 1 ? "超短池" : "强势池")),
  80. c: common_vendor.n(order.poolType === 1 ? "tag-orange" : "tag-purple"),
  81. d: common_vendor.t(order.orderStatusName),
  82. e: common_vendor.n(getStatusClass(order.orderStatus)),
  83. f: common_vendor.t(order.orderNo),
  84. g: common_vendor.t(order.amount),
  85. h: order.expireTime
  86. }, order.expireTime ? {
  87. i: common_vendor.t(order.expireTime)
  88. } : {}, {
  89. j: common_vendor.t(order.createTime),
  90. k: order.orderStatus === 0
  91. }, order.orderStatus === 0 ? {
  92. l: common_vendor.o(($event) => handlePay(order), order.orderNo)
  93. } : {}, {
  94. m: order.orderNo,
  95. n: index === orders.value.length - 1 ? 1 : ""
  96. });
  97. })
  98. }, {
  99. c: orders.value.length === 0
  100. });
  101. };
  102. }
  103. };
  104. const MiniProgramPage = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["__scopeId", "data-v-88bf5328"], ["__file", "D:/program/gupiao-wx/src/pages/order/order.vue"]]);
  105. wx.createPage(MiniProgramPage);