爱简收旧衣按件回收前端代码仓库
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

274 lines
9.6 KiB

  1. "use strict";
  2. const common_vendor = require("../../common/vendor.js");
  3. const pages_mixins_pullRefreshMixin = require("../mixins/pullRefreshMixin.js");
  4. const _sfc_main = {
  5. mixins: [pages_mixins_pullRefreshMixin.pullRefreshMixin],
  6. data() {
  7. return {
  8. statusBarHeight: 0,
  9. order: {},
  10. // 固定4步流程
  11. steps: [],
  12. currentStep: 0,
  13. baseInfo: [],
  14. qcInfo: [],
  15. showUserStatModal: false,
  16. userStatData: { name: "", unit_num: "", sum: "", order_money: "" }
  17. };
  18. },
  19. onLoad(options) {
  20. this.statusBarHeight = common_vendor.index.getSystemInfoSync().statusBarHeight;
  21. this.getAreaList();
  22. if (options && options.id) {
  23. this.fetchOrderDetail(options.id);
  24. }
  25. },
  26. onShow() {
  27. this.getAreaList();
  28. },
  29. methods: {
  30. async fetchOrderDetail(orderId) {
  31. this.$api("getOrderDetail", { orderId }, (res) => {
  32. if (res && res.code === 200 && res.result) {
  33. const data = res.result;
  34. this.order = data;
  35. this.currentStep = this.getCurrentStep(data.status, data.state);
  36. this.baseInfo = [
  37. { label: "订单编号", value: data.ordeNo, copy: true },
  38. ...data.status === 2 ? [{ label: "快递单号", value: data.wliuNo, copy: true }] : [],
  39. { label: "用户名", value: data.name, arrow: true },
  40. { label: "取件地址", value: data.address + (data.addressDetail || "") },
  41. { label: "预约时间", value: data.goTime }
  42. ];
  43. this.qcInfo = [
  44. { label: "质检数量", value: data.qcNum ? data.qcNum + " 件" : "" },
  45. { label: "质检合格", value: data.qcOkNum ? data.qcOkNum + " 件" : "" },
  46. { label: "质量问题", value: data.qcBadNum ? data.qcBadNum + " 件" : "" },
  47. { label: "不可回收", value: data.qcUnNum ? data.qcUnNum + " 件" : "" },
  48. { label: "订单重量", value: data.weight ? data.weight + " kg" : "" }
  49. ];
  50. }
  51. });
  52. },
  53. getCurrentStep(status, state) {
  54. if (state == 3)
  55. return -1;
  56. if (status == 0)
  57. return 0;
  58. if (status == 1)
  59. return 1;
  60. if (status == 2)
  61. return 2;
  62. if (status == 3)
  63. return 3;
  64. return 0;
  65. },
  66. async onRefresh() {
  67. if (this.order.id)
  68. await this.fetchOrderDetail(this.order.id);
  69. },
  70. goBack() {
  71. common_vendor.index.navigateBack();
  72. },
  73. copyText(text) {
  74. common_vendor.index.setClipboardData({ data: text });
  75. },
  76. maskPhone(phone) {
  77. if (!phone)
  78. return "";
  79. return phone.replace(/(\d{3})\d{4}(\d{4})/, "$1****$2");
  80. },
  81. goToInspect() {
  82. common_vendor.index.navigateTo({ url: "/pages/manager/inspect" });
  83. },
  84. async onUserStatClick() {
  85. if (!this.order || !this.order.userId)
  86. return;
  87. this.$api("getUserOrderNum", { userId: this.order.userId }, (res) => {
  88. if (res && res.code === 200 && res.result) {
  89. this.userStatData = {
  90. name: this.order.name,
  91. unit_num: res.result.unit_num,
  92. sum: res.result.sum,
  93. order_money: res.result.order_money
  94. };
  95. this.showUserStatModal = true;
  96. }
  97. });
  98. },
  99. getAreaList() {
  100. this.$api("getAreaList", {}, (res) => {
  101. common_vendor.index.__f__("log", "at pages/manager/order-detail.vue:283", res, "getAreaList");
  102. if (res.code == 200 && Array.isArray(res.result)) {
  103. const sorted = res.result.slice().sort((a, b) => a.sort - b.sort);
  104. this.steps = sorted.map((item) => ({
  105. // id: item.id,
  106. icon: item.image,
  107. text: item.title
  108. }));
  109. }
  110. });
  111. },
  112. passOrderAction() {
  113. if (!this.order.id)
  114. return;
  115. this.$api("passOrder", { orderId: this.order.id }, (res) => {
  116. if (res && res.code === 200) {
  117. common_vendor.index.showToast({ title: "操作成功", icon: "success" });
  118. this.fetchOrderDetail(this.order.id);
  119. } else {
  120. common_vendor.index.showToast({ title: res.msg || "操作失败", icon: "none" });
  121. }
  122. });
  123. },
  124. rejectOrderAction() {
  125. if (!this.order.id)
  126. return;
  127. this.$api("rejectOrder", { orderId: this.order.id }, (res) => {
  128. if (res && res.code === 200) {
  129. common_vendor.index.showToast({ title: "操作成功", icon: "success" });
  130. this.fetchOrderDetail(this.order.id);
  131. } else {
  132. common_vendor.index.showToast({ title: res.msg || "操作失败", icon: "none" });
  133. }
  134. });
  135. }
  136. }
  137. };
  138. if (!Array) {
  139. const _easycom_uni_icons2 = common_vendor.resolveComponent("uni-icons");
  140. _easycom_uni_icons2();
  141. }
  142. const _easycom_uni_icons = () => "../../uni_modules/uni-icons/components/uni-icons/uni-icons.js";
  143. if (!Math) {
  144. _easycom_uni_icons();
  145. }
  146. function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
  147. return common_vendor.e({
  148. a: common_vendor.p({
  149. type: "left",
  150. size: "20",
  151. color: "#222"
  152. }),
  153. b: common_vendor.o((...args) => $options.goBack && $options.goBack(...args)),
  154. c: $data.order.cancelReason
  155. }, $data.order.cancelReason ? {
  156. d: common_vendor.t($data.order.cancelReason)
  157. } : {}, {
  158. e: $data.order.statusText === "不包邮"
  159. }, $data.order.statusText === "不包邮" ? {} : {}, {
  160. f: common_vendor.t($data.order.statusLabel),
  161. g: common_vendor.n($data.order.statusClass),
  162. h: common_vendor.f($data.steps, (step, idx, i0) => {
  163. return {
  164. a: step.icon,
  165. b: common_vendor.t(step.text),
  166. c: idx === $data.currentStep ? 1 : "",
  167. d: step.text,
  168. e: common_vendor.n({
  169. active: idx === $data.currentStep
  170. })
  171. };
  172. }),
  173. i: common_vendor.f($data.baseInfo, (item, i, i0) => {
  174. return common_vendor.e({
  175. a: common_vendor.t(item.label),
  176. b: common_vendor.t(item.value),
  177. c: item.copy
  178. }, item.copy ? {
  179. d: common_vendor.o(($event) => $options.copyText(item.value), item.label)
  180. } : {}, {
  181. e: item.arrow
  182. }, item.arrow ? {
  183. f: "9bb1abc0-1-" + i0,
  184. g: common_vendor.p({
  185. type: "right",
  186. size: "18",
  187. color: "#bbb"
  188. })
  189. } : {}, {
  190. h: i < $data.baseInfo.length - 1
  191. }, i < $data.baseInfo.length - 1 ? {} : {}, {
  192. i: item.label,
  193. j: item.label === "用户名" ? 1 : "",
  194. k: common_vendor.o(($event) => item.label === "用户名" ? $options.onUserStatClick() : null, item.label)
  195. });
  196. }),
  197. j: $data.showUserStatModal
  198. }, $data.showUserStatModal ? {
  199. k: common_vendor.t($data.userStatData.name),
  200. l: common_vendor.t($data.userStatData.unit_num),
  201. m: common_vendor.t($data.userStatData.sum),
  202. n: common_vendor.t($data.userStatData.order_money),
  203. o: common_vendor.o(($event) => $data.showUserStatModal = false)
  204. } : {}, {
  205. p: $data.order.status === 2 && $data.order.state === 1
  206. }, $data.order.status === 2 && $data.order.state === 1 ? {
  207. q: common_vendor.f($data.order.commonOrderList, (item, k0, i0) => {
  208. return {
  209. a: item.image,
  210. b: common_vendor.t(item.title),
  211. c: common_vendor.t(item.details),
  212. d: common_vendor.t(item.onePrice),
  213. e: common_vendor.t(item.num),
  214. f: common_vendor.t(item.price),
  215. g: item.id
  216. };
  217. })
  218. } : $data.order.status === 3 ? {
  219. s: common_vendor.t($data.order.ordeNo),
  220. t: common_vendor.t($data.order.price || $data.order.estimate),
  221. v: common_vendor.t($data.order.price || $data.order.estimate),
  222. w: common_vendor.f($data.order.commonOrderList, (item, k0, i0) => {
  223. return {
  224. a: item.image,
  225. b: common_vendor.t(item.title),
  226. c: common_vendor.t(item.details),
  227. d: common_vendor.t(item.onePrice),
  228. e: common_vendor.t(item.num),
  229. f: common_vendor.t(item.price),
  230. g: item.id
  231. };
  232. })
  233. } : {}, {
  234. r: $data.order.status === 3,
  235. x: $data.order.status === 3
  236. }, $data.order.status === 3 ? {
  237. y: common_vendor.f($data.qcInfo, (item, i, i0) => {
  238. return common_vendor.e({
  239. a: common_vendor.t(item.label),
  240. b: common_vendor.t(item.value),
  241. c: i < $data.qcInfo.length - 1
  242. }, i < $data.qcInfo.length - 1 ? {} : {}, {
  243. d: item.label
  244. });
  245. }),
  246. z: common_vendor.o((...args) => _ctx.goToInspection && _ctx.goToInspection(...args))
  247. } : $data.order.status === 1 || $data.order.status === 0 ? {
  248. B: common_vendor.t($data.order.price || $data.order.estimate),
  249. C: common_vendor.f($data.order.commonOrderList, (item, k0, i0) => {
  250. return {
  251. a: item.image,
  252. b: common_vendor.t(item.title),
  253. c: common_vendor.t(item.details),
  254. d: common_vendor.t(item.onePrice),
  255. e: common_vendor.t(item.num),
  256. f: common_vendor.t(item.price),
  257. g: item.id
  258. };
  259. })
  260. } : {}, {
  261. A: $data.order.status === 1 || $data.order.status === 0,
  262. D: $data.order.status === 1 || $data.order.status === 0
  263. }, $data.order.status === 1 || $data.order.status === 0 ? {
  264. E: common_vendor.o((...args) => $options.rejectOrderAction && $options.rejectOrderAction(...args)),
  265. F: common_vendor.o((...args) => $options.passOrderAction && $options.passOrderAction(...args))
  266. } : $data.order.status === 2 && $data.order.state === 1 ? {
  267. H: common_vendor.o((...args) => $options.goToInspect && $options.goToInspect(...args))
  268. } : {}, {
  269. G: $data.order.status === 2 && $data.order.state === 1
  270. });
  271. }
  272. const MiniProgramPage = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-9bb1abc0"]]);
  273. wx.createPage(MiniProgramPage);
  274. //# sourceMappingURL=../../../.sourcemap/mp-weixin/pages/manager/order-detail.js.map