123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302 |
- 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
- });
- },
- });
|