This repository has been archived on 2024-07-11. You can view files and clone it, but cannot push or open issues or pull requests.
yoshop-wechat/pages/order/index.js
2021-07-16 16:37:55 +08:00

302 lines
6.2 KiB
JavaScript

const App = getApp();
// 枚举类:发货方式
import DeliveryTypeEnum from '../../utils/enum/DeliveryType.js';
// 枚举类:支付方式
import PayTypeEnum from '../../utils/enum/order/PayType'
Page({
/**
* 页面的初始数据
*/
data: {
dataType: 'all', // 列表类型
list: [], // 订单列表
scrollHeight: null, // 列表容器高度
DeliveryTypeEnum, // 配送方式
PayTypeEnum, // 支付方式
no_more: false, // 没有更多数据
isLoading: true, // 是否正在加载中
page: 1, // 当前页码
showQRCodePopup: false, // 核销码弹窗显示隐藏
QRCodeImage: '', // 核销码图片
},
/**
* 生命周期函数--监听页面加载
*/
onLoad(options) {
let _this = this;
// 设置scroll-view高度
_this.setListHeight();
// 设置数据类型
_this.setData({
dataType: options.type || 'all'
});
},
/**
* 生命周期函数--监听页面显示
*/
onShow() {
// 获取订单列表
this.getOrderList();
},
/**
* 获取订单列表
*/
getOrderList(isPage, page) {
let _this = this;
App._get('user.order/lists', {
page: page || 1,
dataType: _this.data.dataType
}, result => {
let resList = result.data.list,
dataList = _this.data.list;
if (isPage == true) {
_this.setData({
'list.data': dataList.data.concat(resList.data),
isLoading: false,
});
} else {
_this.setData({
list: resList,
isLoading: false,
});
}
});
},
/**
* 切换标签
*/
bindHeaderTap(e) {
this.setData({
dataType: e.currentTarget.dataset.type,
list: {},
isLoading: true,
page: 1,
no_more: false,
});
// 获取订单列表
this.getOrderList(e.currentTarget.dataset.type);
},
/**
* 取消订单
*/
cancelOrder(e) {
let _this = this;
let order_id = e.currentTarget.dataset.id;
wx.showModal({
title: "友情提示",
content: "确认要取消该订单吗?",
success(o) {
if (o.confirm) {
App._post_form('user.order/cancel', {
order_id
}, result => {
_this.getOrderList(_this.data.dataType);
});
}
}
});
},
/**
* 确认收货
*/
receipt(e) {
let _this = this;
let order_id = e.currentTarget.dataset.id;
wx.showModal({
title: "提示",
content: "确认收到商品?",
success(o) {
if (o.confirm) {
App._post_form('user.order/receipt', {
order_id
}, result => {
_this.getOrderList(_this.data.dataType);
});
}
}
});
},
/**
* 点击付款按钮
*/
onPayOrder(e) {
let _this = this;
// 记录订单id
_this.setData({
payOrderId: e.currentTarget.dataset.id
});
// 显示支付方式弹窗
_this.onTogglePayPopup();
},
/**
* 选择支付方式
*/
onSelectPayType(e) {
let _this = this;
// 隐藏支付方式弹窗
_this.onTogglePayPopup();
if (!_this.data.showPayPopup) {
// 发起付款请求
_this.payment(_this.data.payOrderId, e.currentTarget.dataset.value);
}
},
/**
* 显示/隐藏支付方式弹窗
*/
onTogglePayPopup() {
this.setData({
showPayPopup: !this.data.showPayPopup
});
},
/**
* 发起付款请求
*/
payment(orderId, payType) {
// 显示loading
wx.showLoading({
title: '正在处理...',
});
App._post_form('user.order/pay', {
order_id: orderId,
payType: payType
}, result => {
if (result.code === -10) {
App.showError(result.msg);
return false;
}
// 发起微信支付
if (result.data.pay_type == PayTypeEnum.WECHAT.value) {
App.wxPayment({
payment: result.data.payment,
success() {
// 跳转到已付款订单
wx.navigateTo({
url: '../order/detail?order_id=' + orderId
});
},
fail() {
App.showError(result.msg.error);
},
});
}
// 余额支付
if (result.data.pay_type == PayTypeEnum.BALANCE.value) {
App.showSuccess(result.msg.success, () => {
// 跳转到已付款订单
wx.navigateTo({
url: '../order/detail?order_id=' + orderId
});
});
}
}, null, () => {
wx.hideLoading();
});
},
/**
* 订单评价
*/
comment(e) {
let _this = this;
let order_id = e.currentTarget.dataset.id;
wx.navigateTo({
url: './comment/comment?order_id=' + order_id,
})
},
/**
* 跳转订单详情页
*/
navigateToDetail(e) {
let order_id = e.currentTarget.dataset.id;
wx.navigateTo({
url: '../order/detail?order_id=' + order_id
});
},
onPullDownRefresh() {
wx.stopPullDownRefresh();
},
/**
* 下拉到底加载数据
*/
bindDownLoad() {
// 已经是最后一页
if (this.data.page >= this.data.list.last_page) {
this.setData({
no_more: true
});
return false;
}
// 加载下一页列表
this.getOrderList(true, ++this.data.page);
},
/**
* 设置商品列表高度
*/
setListHeight() {
let systemInfo = wx.getSystemInfoSync(),
rpx = systemInfo.windowWidth / 750, // 计算rpx
tapHeight = Math.floor(rpx * 88), // tap高度
scrollHeight = systemInfo.windowHeight - tapHeight; // swiper高度
this.setData({
scrollHeight
});
},
/**
* 查看核销二维码
*/
onExtractQRCode(e) {
let _this = this,
order_id = e.currentTarget.dataset.id;
// 调用后台api获取核销二维码
wx.showLoading({
title: '加载中',
});
App._get('user.order/extractQrcode', {
order_id
}, (result) => {
// 设置二维码图片路径
_this.setData({
QRCodeImage: result.data.qrcode
});
// 显示核销二维码
_this.onToggleQRCodePopup();
}, null, () => {
wx.hideLoading();
});
},
/**
* 核销码弹出层
*/
onToggleQRCodePopup() {
let _this = this;
_this.setData({
showQRCodePopup: !_this.data.showQRCodePopup
});
},
});