result.js 6.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169
  1. "use strict";
  2. const common_vendor = require("../../common/vendor.js");
  3. const common_assets = require("../../common/assets.js");
  4. const api_assessment = require("../../api/assessment.js");
  5. const _sfc_main = {
  6. __name: "result",
  7. setup(__props) {
  8. const loading = common_vendor.ref(true);
  9. const resultData = common_vendor.ref({});
  10. const trainingList = common_vendor.ref([]);
  11. const assessmentId = common_vendor.ref("");
  12. common_vendor.onLoad(async (options) => {
  13. assessmentId.value = options.id || options.assessmentId || "";
  14. if (!assessmentId.value || assessmentId.value === "undefined") {
  15. common_vendor.index.showToast({ title: "测评ID缺失", icon: "none" });
  16. return;
  17. }
  18. await loadData();
  19. });
  20. const loadData = async () => {
  21. if (!assessmentId.value || assessmentId.value === "undefined")
  22. return;
  23. try {
  24. const userInfo = common_vendor.index.getStorageSync("userInfo") || {};
  25. const studentId = userInfo.studentId || userInfo.id;
  26. if (!studentId) {
  27. common_vendor.index.showToast({ title: "登录信息失效", icon: "none" });
  28. return;
  29. }
  30. const res = await api_assessment.getEvaluationResult(assessmentId.value, studentId);
  31. if (res.code === 200) {
  32. resultData.value = res.data;
  33. loadTrainings();
  34. }
  35. } catch (e) {
  36. common_vendor.index.__f__("error", "at pages/assessment/result.vue:114", e);
  37. } finally {
  38. loading.value = false;
  39. }
  40. };
  41. const getTypeLabel = (type) => {
  42. const map = { "full-time": "全职", "part-time": "兼职", "intern": "实习" };
  43. return map[type] || type;
  44. };
  45. const getCategoryLabel = (cat) => {
  46. const map = { "audit": "审计", "consult": "咨询", "tax": "税务" };
  47. return map[cat] || cat;
  48. };
  49. const loadTrainings = async () => {
  50. try {
  51. const res = await api_assessment.getTrainingList({ pageNum: 1, pageSize: 5, status: 1 });
  52. if (res.code === 200 && res.rows) {
  53. trainingList.value = res.rows.map((item) => {
  54. let title = item.name || item.trainingName || item.title;
  55. if (!title || title.trim() === "" || title.startsWith("test_")) {
  56. const job = item.job || item.position || "专业技能";
  57. title = `${job}培训课程`;
  58. }
  59. let location = "";
  60. if (item.trainingType === "offline") {
  61. const city = item.city || "";
  62. const area = item.area || "";
  63. const addressDetail = item.addressDetail || "";
  64. location = `${city}${area}${addressDetail}`.replace(/undefined|null/g, "").trim();
  65. if (!location)
  66. location = "线下培训";
  67. } else {
  68. location = "线上培训";
  69. }
  70. const trainingTime = item.trainingStartTime ? item.trainingStartTime.split(" ")[0] + (item.trainingEndTime ? " 至 " + item.trainingEndTime.split(" ")[0] : "") : "";
  71. return {
  72. id: item.id,
  73. title,
  74. trainingType: item.trainingType || "offline",
  75. type: item.jobType || "",
  76. category: item.job || "",
  77. tags: item.tags ? item.tags.split(",") : [],
  78. location,
  79. organizer: item.organizer || "平台推荐",
  80. trainingTime,
  81. mainImage: item.thumbnailUrl || "/static/images/training_default.svg"
  82. };
  83. });
  84. }
  85. } catch (e) {
  86. common_vendor.index.__f__("error", "at pages/assessment/result.vue:175", "加载培训列表失败:", e);
  87. }
  88. };
  89. const goToAssessment = () => {
  90. if (!assessmentId.value || assessmentId.value === "undefined") {
  91. common_vendor.index.navigateBack();
  92. return;
  93. }
  94. common_vendor.index.redirectTo({
  95. url: `/pages/common/webview?mode=kaoshixing&assessmentId=${encodeURIComponent(assessmentId.value)}`
  96. });
  97. };
  98. const viewReport = () => {
  99. if (!assessmentId.value || assessmentId.value === "undefined") {
  100. common_vendor.index.showToast({ title: "参数错误", icon: "none" });
  101. return;
  102. }
  103. common_vendor.index.navigateTo({
  104. url: `/pages/assessment/report?id=${assessmentId.value}`
  105. });
  106. };
  107. const goToTrainingDetail = (item) => {
  108. common_vendor.index.navigateTo({
  109. url: `/pages/assessment/training-detail?type=${item.trainingType}&title=${item.title}`
  110. });
  111. };
  112. const goBack = () => {
  113. common_vendor.index.navigateBack();
  114. };
  115. return (_ctx, _cache) => {
  116. return common_vendor.e({
  117. a: !loading.value
  118. }, !loading.value ? common_vendor.e({
  119. b: common_assets._imports_0$5,
  120. c: common_vendor.o(goBack),
  121. d: resultData.value.finalResult === "1"
  122. }, resultData.value.finalResult === "1" ? {} : {}, {
  123. e: common_vendor.n(resultData.value.finalResult === "1" ? "pass" : "fail"),
  124. f: common_vendor.t(resultData.value.finalResult === "1" ? "恭喜你!达到投递标准" : "很遗憾!未达到投递标准"),
  125. g: resultData.value.finalResult === "2"
  126. }, resultData.value.finalResult === "2" ? {
  127. h: common_vendor.o(goToAssessment)
  128. } : {}, {
  129. i: common_vendor.o(viewReport),
  130. j: common_vendor.f(resultData.value.abilityResults, (item, index, i0) => {
  131. return {
  132. a: common_vendor.t(item.name),
  133. b: common_vendor.t(item.score),
  134. c: common_vendor.n(item.isPass ? "pass" : "fail"),
  135. d: common_vendor.t(item.isPass ? "√" : "×"),
  136. e: common_vendor.n(item.isPass ? "pass" : "fail"),
  137. f: index
  138. };
  139. }),
  140. k: resultData.value.finalResult === "2"
  141. }, resultData.value.finalResult === "2" ? {
  142. l: common_vendor.f(trainingList.value, (item, index, i0) => {
  143. return {
  144. a: common_vendor.t(item.title),
  145. b: common_vendor.t(getTypeLabel(item.type)),
  146. c: common_vendor.t(getCategoryLabel(item.category)),
  147. d: common_vendor.f(item.tags, (tag, tIdx, i1) => {
  148. return {
  149. a: common_vendor.t(tag),
  150. b: tIdx
  151. };
  152. }),
  153. e: common_vendor.t(item.location),
  154. f: common_vendor.t(item.organizer),
  155. g: common_vendor.t(item.trainingTime),
  156. h: index,
  157. i: common_vendor.o(($event) => goToTrainingDetail(item), index)
  158. };
  159. }),
  160. m: common_assets._imports_2$2,
  161. n: common_assets._imports_0$2,
  162. o: common_assets._imports_1$1
  163. } : {}) : {});
  164. };
  165. }
  166. };
  167. const MiniProgramPage = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["__scopeId", "data-v-2ec20a98"]]);
  168. wx.createPage(MiniProgramPage);
  169. //# sourceMappingURL=../../../.sourcemap/mp-weixin/pages/assessment/result.js.map