points.js 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  1. "use strict";
  2. const common_vendor = require("../../common/vendor.js");
  3. const utils_api = require("../../utils/api.js");
  4. const utils_auth = require("../../utils/auth.js");
  5. const _sfc_main = {
  6. __name: "points",
  7. setup(__props) {
  8. const records = common_vendor.ref([]);
  9. const loading = common_vendor.ref(false);
  10. const handleBack = () => {
  11. const pages = getCurrentPages();
  12. if (pages.length > 1) {
  13. common_vendor.index.navigateBack();
  14. } else {
  15. common_vendor.index.switchTab({
  16. url: "/pages/mine/mine"
  17. });
  18. }
  19. };
  20. const groupedRecords = common_vendor.computed(() => {
  21. const groups = {};
  22. records.value.forEach((item) => {
  23. const dateKey = formatDate(item.createTime);
  24. if (!groups[dateKey]) {
  25. groups[dateKey] = [];
  26. }
  27. groups[dateKey].push(item);
  28. });
  29. return groups;
  30. });
  31. const formatDate = (timestamp) => {
  32. const date = new Date(timestamp);
  33. const today = /* @__PURE__ */ new Date();
  34. const yesterday = new Date(today);
  35. yesterday.setDate(yesterday.getDate() - 1);
  36. const dateStr = date.toLocaleDateString("zh-CN", {
  37. year: "numeric",
  38. month: "2-digit",
  39. day: "2-digit"
  40. });
  41. const todayStr = today.toLocaleDateString("zh-CN", {
  42. year: "numeric",
  43. month: "2-digit",
  44. day: "2-digit"
  45. });
  46. const yesterdayStr = yesterday.toLocaleDateString("zh-CN", {
  47. year: "numeric",
  48. month: "2-digit",
  49. day: "2-digit"
  50. });
  51. if (dateStr === todayStr) {
  52. return "今天";
  53. } else if (dateStr === yesterdayStr) {
  54. return "昨天";
  55. } else {
  56. return dateStr;
  57. }
  58. };
  59. const formatTime = (timestamp) => {
  60. const date = new Date(timestamp);
  61. const hours = String(date.getHours()).padStart(2, "0");
  62. const minutes = String(date.getMinutes()).padStart(2, "0");
  63. return `${hours}:${minutes}`;
  64. };
  65. const getTitle = (item) => {
  66. return item.bizTypeName || item.remark || "积分变动";
  67. };
  68. const loadRecords = async () => {
  69. if (!utils_auth.isLoggedIn()) {
  70. console.log("未登录,无法获取积分记录");
  71. return;
  72. }
  73. loading.value = true;
  74. try {
  75. const res = await utils_api.getPointsRecordsApi();
  76. if (res.code === 200 && res.data) {
  77. records.value = res.data;
  78. console.log("[积分记录] 加载成功,共", records.value.length, "条");
  79. }
  80. } catch (e) {
  81. console.error("加载积分记录失败:", e);
  82. records.value = [];
  83. } finally {
  84. loading.value = false;
  85. }
  86. };
  87. common_vendor.onMounted(() => {
  88. loadRecords();
  89. });
  90. return (_ctx, _cache) => {
  91. return common_vendor.e({
  92. a: common_vendor.o(handleBack),
  93. b: common_vendor.f(common_vendor.unref(groupedRecords), (group, dateKey, i0) => {
  94. return {
  95. a: common_vendor.t(dateKey),
  96. b: common_vendor.f(group, (item, index, i1) => {
  97. return {
  98. a: common_vendor.t(getTitle(item)),
  99. b: common_vendor.t(formatTime(item.createTime)),
  100. c: common_vendor.t(item.type === 1 ? "+" : "-"),
  101. d: common_vendor.t(item.amount),
  102. e: common_vendor.n(item.type === 1 ? "amount-sell" : "amount-buy"),
  103. f: common_vendor.t(item.type === 1 ? "获得" : "消耗"),
  104. g: common_vendor.n(item.type === 1 ? "status-sell" : "status-buy"),
  105. h: index
  106. };
  107. }),
  108. c: dateKey
  109. };
  110. }),
  111. c: records.value.length === 0
  112. }, records.value.length === 0 ? {} : {});
  113. };
  114. }
  115. };
  116. const MiniProgramPage = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["__scopeId", "data-v-9b5c2d6e"], ["__file", "D:/program/gupiao-wx/src/pages/points/points.vue"]]);
  117. wx.createPage(MiniProgramPage);