| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237 |
- import PageContainerBehavior from "../../../../core/behavior/page-container.behavior";
- import tickleBehavior, {
- getTickleContext,
- } from "../../../../core/behavior/tickle.behavior";
- import {
- getOrderDetailMethod,
- orderPayMethod,
- orderCancelMethod,
- orderConfirmMethod,
- } from "../../request";
- // module/article/pages/order-detail/order-detail.ts
- Page({
- behaviors: [PageContainerBehavior, tickleBehavior],
- onLoad(options: any) {
- console.log(options, "options");
- if (options.id) {
- this.setData({ id: options.id });
- }
- },
- properties: {},
- data: {
- showDetail: false,
- id: "",
- showConfirm: false,
- url: "https://pic.nximg.cn/file/20190718/28170468_214109363000_2.jpg",
- dialogKey: "",
- totalPrice: 0,
- orderStatus: "", // 'pending' | 'received' | 'completed' | ''
- orderDetail: {},
- address: "",
- name: "",
- phone: "",
- // selectedAddress: null,
- // 节流控制
- isPaymentLoading: false,
- isConfirmLoading: false,
- },
- // 切换收货地址
- changeAddress(event: any) {
- const orderStatus = event.currentTarget.dataset.status;
- // 根据订单状态判断是否可以切换地址. 待支付状态下可以切换地址
- if (orderStatus === "0") {
- wx.navigateTo({
- url:
- "/module/article/pages/manage-address/manage-address?type=orderDetail&orderId=" +
- this.data.id,
- });
- }
- },
- // 订单支付
- async payment() {
- if (this.data.isPaymentLoading) {
- return;
- }
- this.setData({ isPaymentLoading: true });
- try {
- await orderPayMethod(this.data.id);
- wx.redirectTo({
- url: "/module/article/pages/success-page/success-page?title=订单支付成功",
- });
- } catch (error: any) {
- wx.showToast({
- title: error.errMsg,
- icon: "none",
- });
- } finally {
- this.setData({ isPaymentLoading: false });
- }
- },
- statusType(status: any) {
- const code = status == null ? "" : String(status);
- switch (code) {
- case "0":
- this.setData({ orderStatus: "pending" });
- break;
- case "6":
- this.setData({ orderStatus: "received" });
- break;
- case "2":
- this.setData({ orderStatus: "closed" });
- break;
- case "345":
- this.setData({ orderStatus: "completed" });
- break;
- default:
- this.setData({ orderStatus: "" });
- break;
- }
- },
- // 订单详情
- async load(id: string) {
- wx.showLoading({ title: "加载中" });
- try {
- const res = await getOrderDetailMethod(id);
- if (res && res.data) {
- this.setData({ orderDetail: res.data });
- if (
- !res.data.liaison ||
- !res.data.phone ||
- !res.data.provinceName ||
- !res.data.cityName ||
- !res.data.areaName ||
- !res.data.detailAddress
- ) {
- this.setData({
- showDetail: true,
- });
- } else {
- this.setData({
- showDetail: false,
- });
- this.setData({
- name: res.data.liaison ? `${res.data.liaison}` : "",
- phone: res.data.phone ? `${res.data.phone}` : "",
- address: `${res.data.provinceName}${
- res.data.cityName ? `${res.data.cityName}` : ""
- }${res.data.areaName ? `${res.data.areaName}` : ""}${
- res.data.detailAddress ? `${res.data.detailAddress}` : ""
- }`,
- });
- }
- // 0:待付款
- // 2 交易关闭
- // 6 待收货
- // 345 交易成功
- this.statusType(res.data.orderStatus);
- const totalPrice = res.data.items.reduce(
- (acc: number, item: any) => acc + item.totalPrice,
- 0
- );
- this.setData({ totalPrice });
- }
- } catch (error: any) {
- wx.showToast({
- title: error.errMsg,
- icon: "none",
- });
- }
- wx.hideLoading();
- },
- closeDialog() {
- this.setData({ showConfirm: false });
- },
- async confirmDialog() {
- const that = this;
- wx.showModal({
- title: "提示",
- content: "确认取消该订单吗?",
- success: (res) => {
- if (res.confirm) {
- that.cancelOrdering();
- }
- },
- });
- },
- // 取消订单
- async cancelOrdering() {
- try {
- await orderCancelMethod(this.data.id);
- this.setData({ showConfirm: false });
- wx.navigateTo({
- url: "/module/article/pages/success-page/success-page?title=订单取消成功",
- });
- } catch (error: any) {
- wx.showToast({
- title: error.errMsg,
- icon: "none",
- });
- }
- },
- // 取消订单
- async cancelOrder() {
- this.setData({ showConfirm: true });
- },
- // 查看物流
- viewLogistics() {
- wx.showToast({
- title: "暂未开通",
- icon: "none",
- });
- // 物流接口现在没有 先空着
- // wx.navigateTo({ url: "/module/article/pages/see-logistics/see-logistics" });
- },
- // 确认收货
- async confirmReceipt() {
- if (this.data.isConfirmLoading) {
- return;
- }
- this.setData({ isConfirmLoading: true });
- const orderId = this.data.id;
- wx.navigateTo({
- url: `/module/article/pages/confirm-receiving/confirm-receiving?orderId=${orderId}`,
- });
- // 延迟重置loading状态,给页面跳转一些时间
- setTimeout(() => {
- this.setData({ isConfirmLoading: false });
- }, 2000);
- // let that = this;
- // wx.showModal({
- // title: "提示",
- // content: "确认收货后,订单将无法修改,请确认无误后再进行操作",
- // success: (res) => {
- // if (res.confirm) {
- // that.confirmReceiving();
- // }
- // },
- // });
- },
- async confirmReceiving() {
- try {
- await orderConfirmMethod(this.data.id);
- wx.navigateTo({
- url: "/module/article/pages/success-page/success-page?title=确认收货成功",
- });
- // 物流接口现在没有 先空着
- // wx.navigateTo({
- // url: "/module/article/pages/confirm-receiving/confirm-receiving",
- // });
- } catch (error: any) {
- wx.showToast({
- title: error.errMsg,
- icon: "none",
- });
- }
- },
- onShow() {
- if(this.data.id){
- this.load(this.data.id);
- }
- },
- });
|