list.js 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401
  1. "use strict";
  2. const common_vendor = require("../../common/vendor.js");
  3. const sheep_hooks_useGoods = require("../../sheep/hooks/useGoods.js");
  4. const sheep_index = require("../../sheep/index.js");
  5. const sheep_api_trade_order = require("../../sheep/api/trade/order.js");
  6. require("../../sheep/url/index.js");
  7. require("../../sheep/store/index.js");
  8. require("../../sheep/store/app.js");
  9. require("../../sheep/api/promotion/diy.js");
  10. require("../../sheep/request/index.js");
  11. require("../../sheep/config/index.js");
  12. require("../../sheep/platform/index.js");
  13. require("../../sheep/platform/provider/wechat/index.js");
  14. require("../../sheep/platform/provider/wechat/miniProgram.js");
  15. require("../../sheep/api/member/auth.js");
  16. require("../../sheep/api/member/social.js");
  17. require("../../sheep/api/member/user.js");
  18. require("../../sheep/platform/provider/apple/index.js");
  19. require("../../sheep/platform/share.js");
  20. require("../../sheep/router/index.js");
  21. require("../../sheep/hooks/useModal.js");
  22. require("../../sheep/helper/index.js");
  23. require("../../sheep/helper/test.js");
  24. require("../../sheep/helper/digit.js");
  25. require("../../sheep/api/member/signin.js");
  26. require("../../sheep/helper/throttle.js");
  27. require("../../sheep/platform/pay.js");
  28. require("../../sheep/api/pay/order.js");
  29. require("../../sheep/store/user.js");
  30. require("../../sheep/store/cart.js");
  31. require("../../sheep/api/trade/cart.js");
  32. require("../../sheep/api/pay/wallet.js");
  33. require("../../sheep/api/promotion/coupon.js");
  34. require("../../sheep/store/sys.js");
  35. require("../../sheep/store/modal.js");
  36. require("../../sheep/util/index.js");
  37. require("../../sheep/config/zIndex.js");
  38. if (!Array) {
  39. const _easycom_su_tabs2 = common_vendor.resolveComponent("su-tabs");
  40. const _easycom_su_sticky2 = common_vendor.resolveComponent("su-sticky");
  41. const _easycom_s_empty2 = common_vendor.resolveComponent("s-empty");
  42. const _easycom_s_goods_item2 = common_vendor.resolveComponent("s-goods-item");
  43. const _easycom_uni_load_more2 = common_vendor.resolveComponent("uni-load-more");
  44. const _easycom_s_layout2 = common_vendor.resolveComponent("s-layout");
  45. (_easycom_su_tabs2 + _easycom_su_sticky2 + _easycom_s_empty2 + _easycom_s_goods_item2 + _easycom_uni_load_more2 + _easycom_s_layout2)();
  46. }
  47. const _easycom_su_tabs = () => "../../sheep/ui/su-tabs/su-tabs.js";
  48. const _easycom_su_sticky = () => "../../sheep/ui/su-sticky/su-sticky.js";
  49. const _easycom_s_empty = () => "../../sheep/components/s-empty/s-empty.js";
  50. const _easycom_s_goods_item = () => "../../sheep/components/s-goods-item/s-goods-item.js";
  51. const _easycom_uni_load_more = () => "../../uni_modules/uni-load-more/components/uni-load-more/uni-load-more.js";
  52. const _easycom_s_layout = () => "../../sheep/components/s-layout/s-layout.js";
  53. if (!Math) {
  54. (_easycom_su_tabs + _easycom_su_sticky + _easycom_s_empty + _easycom_s_goods_item + _easycom_uni_load_more + _easycom_s_layout)();
  55. }
  56. const _sfc_main = {
  57. __name: "list",
  58. setup(__props) {
  59. const pagination = {
  60. list: [],
  61. current_page: 1,
  62. total: 1,
  63. last_page: 1
  64. };
  65. const state = common_vendor.reactive({
  66. currentTab: 0,
  67. // 选中的 tabMaps 下标
  68. pagination: {
  69. list: [],
  70. current_page: 1,
  71. total: 1,
  72. last_page: 1
  73. },
  74. loadStatus: ""
  75. });
  76. const tabMaps = common_vendor.reactive([
  77. {
  78. name: "全部",
  79. num: 0,
  80. isShow: false
  81. },
  82. {
  83. name: "待付款",
  84. value: 0,
  85. num: 0,
  86. isShow: true
  87. },
  88. {
  89. name: "待发货",
  90. value: 10,
  91. num: 0,
  92. isShow: true
  93. },
  94. {
  95. name: "待收货",
  96. value: 20,
  97. num: 0,
  98. isShow: true
  99. },
  100. {
  101. name: "待评价",
  102. value: 30,
  103. num: 0,
  104. isShow: true
  105. }
  106. ]);
  107. function onTabsChange(e) {
  108. if (state.currentTab === e.index) {
  109. return;
  110. }
  111. state.pagination.list = [];
  112. state.pagination.current_page = 1;
  113. state.pagination.total = 1;
  114. state.pagination.last_page = 1;
  115. state.currentTab = e.index;
  116. getOrderList();
  117. }
  118. function onOrderDetail(id) {
  119. sheep_index.sheep.$router.go("/pages/order/detail", {
  120. id
  121. });
  122. }
  123. function onOrderGroupon(order) {
  124. sheep_index.sheep.$router.go("/pages/activity/groupon/detail", {
  125. id: order.ext.groupon_id
  126. });
  127. }
  128. function onPay(id) {
  129. sheep_index.sheep.$router.go("/pages/pay/index", {
  130. id,
  131. openType: 2
  132. });
  133. }
  134. function onComment(id) {
  135. sheep_index.sheep.$router.go("/pages/goods/comment/add", {
  136. id
  137. });
  138. }
  139. async function onConfirm(order, ignore = false) {
  140. let isOpenBusinessView = true;
  141. common_vendor.index.showModal({
  142. title: "提示",
  143. content: "确认收货?",
  144. success: async function(res) {
  145. if (res.confirm) {
  146. if (sheep_index.sheep.$platform.name === "WechatMiniProgram" && !common_vendor.lodashExports.isEmpty(order.wechat_extra_data) && isOpenBusinessView && !ignore) {
  147. mpConfirm(order);
  148. return;
  149. }
  150. const {
  151. code
  152. } = await sheep_api_trade_order.OrderApi.receiveOrder(order.id);
  153. if (code === 0) {
  154. state.pagination = pagination;
  155. await getOrderList();
  156. }
  157. }
  158. }
  159. });
  160. }
  161. function mpConfirm(order) {
  162. if (!common_vendor.wx$1.openBusinessView) {
  163. sheep_index.sheep.$helper.toast(`请升级微信版本`);
  164. return;
  165. }
  166. common_vendor.wx$1.openBusinessView({
  167. businessType: "weappOrderConfirm",
  168. extraData: {
  169. merchant_id: "1481069012",
  170. merchant_trade_no: order.wechat_extra_data.merchant_trade_no,
  171. transaction_id: order.wechat_extra_data.transaction_id
  172. },
  173. success(response) {
  174. console.log("success:", response);
  175. if (response.errMsg === "openBusinessView:ok") {
  176. if (response.extraData.status === "success") {
  177. onConfirm(order, true);
  178. }
  179. }
  180. },
  181. fail(error) {
  182. console.log("error:", error);
  183. },
  184. complete(result) {
  185. console.log("result:", result);
  186. }
  187. });
  188. }
  189. async function onExpress(id) {
  190. sheep_index.sheep.$router.go("/pages/order/express/log", {
  191. id
  192. });
  193. }
  194. async function onCancel(orderId) {
  195. common_vendor.index.showModal({
  196. title: "提示",
  197. content: "确定要取消订单吗?",
  198. success: async function(res) {
  199. if (!res.confirm) {
  200. return;
  201. }
  202. const {
  203. code
  204. } = await sheep_api_trade_order.OrderApi.cancelOrder(orderId);
  205. if (code === 0) {
  206. let index = state.pagination.list.findIndex((order) => order.id === orderId);
  207. const orderInfo = state.pagination.list[index];
  208. orderInfo.status = 40;
  209. sheep_hooks_useGoods.handleOrderButtons(orderInfo);
  210. await getOrderList();
  211. }
  212. }
  213. });
  214. }
  215. function onDelete(orderId) {
  216. common_vendor.index.showModal({
  217. title: "提示",
  218. content: "确定要删除订单吗?",
  219. success: async function(res) {
  220. if (res.confirm) {
  221. const {
  222. code
  223. } = await sheep_api_trade_order.OrderApi.deleteOrder(orderId);
  224. if (code === 0) {
  225. let index = state.pagination.list.findIndex((order) => order.id === orderId);
  226. state.pagination.list.splice(index, 1);
  227. await getOrderList();
  228. }
  229. }
  230. }
  231. });
  232. }
  233. async function getOrderCount() {
  234. let { data } = await sheep_api_trade_order.OrderApi.getOrderCount();
  235. tabMaps[0].num = data.allCount;
  236. tabMaps[1].num = data.unpaidCount;
  237. tabMaps[2].num = data.undeliveredCount;
  238. tabMaps[3].num = data.deliveredCount;
  239. tabMaps[4].num = data.uncommentedCount;
  240. }
  241. async function getOrderList(page = 1, list_rows = 5) {
  242. state.loadStatus = "loading";
  243. let {
  244. code,
  245. data
  246. } = await sheep_api_trade_order.OrderApi.getOrderPage({
  247. pageNo: page,
  248. pageSize: list_rows,
  249. status: tabMaps[state.currentTab].value,
  250. commentStatus: tabMaps[state.currentTab].value === 30 ? false : null
  251. });
  252. getOrderCount();
  253. if (code !== 0) {
  254. return;
  255. }
  256. let orderList = common_vendor._.concat(state.pagination.list, data.list);
  257. data.list.forEach((order) => sheep_hooks_useGoods.handleOrderButtons(order));
  258. state.pagination.list = orderList;
  259. state.pagination.total = data.total;
  260. state.pagination.last_page = Math.ceil(data.total / 5);
  261. if (state.pagination.current_page < state.pagination.last_page) {
  262. state.loadStatus = "more";
  263. } else {
  264. state.loadStatus = "noMore";
  265. }
  266. }
  267. common_vendor.onLoad(async (options) => {
  268. console.log(options.type);
  269. if (options.type) {
  270. state.currentTab = options.type;
  271. }
  272. await getOrderList();
  273. });
  274. common_vendor.onShow(async () => {
  275. if (state.loadStatus == "loading") {
  276. return;
  277. }
  278. state.pagination.list = [];
  279. state.pagination.current_page = 1;
  280. state.pagination.total = 1;
  281. state.pagination.last_page = 1;
  282. await getOrderList();
  283. });
  284. function loadMore() {
  285. if (state.loadStatus !== "noMore") {
  286. state.pagination.current_page += 1;
  287. getOrderList(state.pagination.current_page);
  288. }
  289. }
  290. common_vendor.onReachBottom(() => {
  291. loadMore();
  292. });
  293. common_vendor.onPullDownRefresh(() => {
  294. state.pagination.list = [];
  295. state.pagination.current_page = 1;
  296. state.pagination.total = 1;
  297. state.pagination.last_page = 1;
  298. getOrderList();
  299. setTimeout(function() {
  300. common_vendor.index.stopPullDownRefresh();
  301. }, 800);
  302. });
  303. return (_ctx, _cache) => {
  304. return common_vendor.e({
  305. a: common_vendor.o(onTabsChange),
  306. b: common_vendor.p({
  307. list: tabMaps,
  308. scrollable: false,
  309. current: state.currentTab,
  310. badge: true
  311. }),
  312. c: common_vendor.p({
  313. bgColor: "#fff"
  314. }),
  315. d: state.pagination.total === 0
  316. }, state.pagination.total === 0 ? {
  317. e: common_vendor.p({
  318. icon: "/static/order-empty.png",
  319. text: "暂无订单"
  320. })
  321. } : {}, {
  322. f: state.pagination.total > 0
  323. }, state.pagination.total > 0 ? {
  324. g: common_vendor.f(state.pagination.list, (order, index, i0) => {
  325. return common_vendor.e({
  326. a: common_vendor.t(order.no),
  327. b: common_vendor.t(common_vendor.unref(sheep_hooks_useGoods.formatOrderStatus)(order)),
  328. c: common_vendor.n(common_vendor.unref(sheep_hooks_useGoods.formatOrderColor)(order)),
  329. d: common_vendor.f(order.items, (item, k1, i1) => {
  330. return {
  331. a: "456ecf67-4-" + i0 + "-" + i1 + ",456ecf67-0",
  332. b: common_vendor.p({
  333. img: item.picUrl,
  334. title: item.spuName,
  335. skuText: item.properties.map((property) => property.valueName).join(" "),
  336. price: item.spuPayType === 2 ? item.highPrecisionPrice : item.price,
  337. num: item.count,
  338. virtualPirce: item.spuPayType === 2
  339. }),
  340. c: item.id
  341. };
  342. }),
  343. e: common_vendor.t(order.productCount),
  344. f: common_vendor.t(common_vendor.unref(sheep_hooks_useGoods.fen2yuan)(order.payPrice)),
  345. g: order.buttons.includes("combination")
  346. }, order.buttons.includes("combination") ? {
  347. h: common_vendor.o(($event) => onOrderGroupon(order), order.id)
  348. } : {}, {
  349. i: order.buttons.length === 0
  350. }, order.buttons.length === 0 ? {
  351. j: common_vendor.o(($event) => onOrderDetail(order.id), order.id)
  352. } : {}, {
  353. k: order.buttons.includes("express")
  354. }, order.buttons.includes("express") ? {
  355. l: common_vendor.o(($event) => onExpress(order.id), order.id)
  356. } : {}, {
  357. m: order.buttons.includes("confirm")
  358. }, order.buttons.includes("confirm") ? {
  359. n: common_vendor.o(($event) => onConfirm(order), order.id)
  360. } : {}, {
  361. o: order.buttons.includes("cancel")
  362. }, order.buttons.includes("cancel") ? {
  363. p: common_vendor.o(($event) => onCancel(order.id), order.id)
  364. } : {}, {
  365. q: order.buttons.includes("comment")
  366. }, order.buttons.includes("comment") ? {
  367. r: common_vendor.o(($event) => onComment(order.id), order.id)
  368. } : {}, {
  369. s: order.buttons.includes("delete")
  370. }, order.buttons.includes("delete") ? {
  371. t: common_vendor.o(($event) => onDelete(order.id), order.id)
  372. } : {}, {
  373. v: order.buttons.includes("pay")
  374. }, order.buttons.includes("pay") ? {
  375. w: common_vendor.o(($event) => onPay(order.id), order.id)
  376. } : {}, {
  377. x: common_vendor.n(order.buttons.length > 3 ? "ss-row-between" : "ss-row-right"),
  378. y: order.id,
  379. z: common_vendor.o(($event) => onOrderDetail(order.id), order.id)
  380. });
  381. })
  382. } : {}, {
  383. h: state.pagination.total > 0
  384. }, state.pagination.total > 0 ? {
  385. i: common_vendor.o(_ctx.loadmore),
  386. j: common_vendor.p({
  387. status: state.loadStatus,
  388. ["content-text"]: {
  389. contentdown: "上拉加载更多"
  390. }
  391. })
  392. } : {}, {
  393. k: common_vendor.p({
  394. title: "我的订单"
  395. })
  396. });
  397. };
  398. }
  399. };
  400. const MiniProgramPage = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["__scopeId", "data-v-456ecf67"], ["__file", "D:/zx/mall-front-app/pages/order/list.vue"]]);
  401. wx.createPage(MiniProgramPage);