123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285 |
- const wxpay = require('../../utils/pay.js')
- const WXAPI = require('apifm-wxapi')
- const AUTH = require('../../utils/auth')
- Page({
- data: {
- page: 1,
- tabIndex: 0,
- statusType: [
- {
- status: 9999,
- label: '全部'
- },
- {
- status: 0,
- label: '待付款'
- },
- {
- status: 1,
- label: '待发货'
- },
- {
- status: 2,
- label: '待收货'
- },
- {
- status: 3,
- label: '待评价'
- },
- ],
- status: 9999,
- hasRefund: false,
- badges: [0, 0, 0, 0, 0]
- },
- statusTap: function(e) {
- const index = e.detail.index
- const status = this.data.statusType[index].status
- this.setData({
- page: 1,
- status
- });
- this.orderList();
- },
- cancelOrderTap: function(e) {
- const that = this;
- const orderId = e.currentTarget.dataset.id;
- wx.showModal({
- title: '确定要取消该订单吗?',
- content: '',
- success: function(res) {
- if (res.confirm) {
- WXAPI.orderClose(wx.getStorageSync('token'), orderId).then(function(res) {
- if (res.code == 0) {
- that.data.page = 1
- that.orderList()
- that.getOrderStatistics()
- }
- })
- }
- }
- })
- },
- refundApply (e) {
- // 申请售后
- const orderId = e.currentTarget.dataset.id;
- const amount = e.currentTarget.dataset.amount;
- wx.navigateTo({
- url: "/pages/order/refundApply?id=" + orderId + "&amount=" + amount
- })
- },
- toPayTap: function(e) {
- // 防止连续点击--开始
- if (this.data.payButtonClicked) {
- wx.showToast({
- title: '休息一下~',
- icon: 'none'
- })
- return
- }
- this.data.payButtonClicked = true
- setTimeout(() => {
- this.data.payButtonClicked = false
- }, 3000) // 可自行修改时间间隔(目前是3秒内只能点击一次支付按钮)
- // 防止连续点击--结束
- const that = this;
- const orderId = e.currentTarget.dataset.id;
- let money = e.currentTarget.dataset.money;
- const needScore = e.currentTarget.dataset.score;
- WXAPI.userAmount(wx.getStorageSync('token')).then(function(res) {
- if (res.code == 0) {
- const order_pay_user_balance = wx.getStorageSync('order_pay_user_balance')
- if (order_pay_user_balance != '1') {
- res.data.balance = 0
- }
- // 增加提示框
- if (res.data.score < needScore) {
- wx.showToast({
- title: '您的积分不足,无法支付',
- icon: 'none'
- })
- return;
- }
- let _msg = '订单金额: ' + money +' 元'
- if (res.data.balance > 0) {
- _msg += ',可用余额为 ' + res.data.balance +' 元'
- if (money - res.data.balance > 0) {
- _msg += ',仍需微信支付 ' + (money - res.data.balance).toFixed(2) + ' 元'
- }
- }
- if (needScore > 0) {
- _msg += ',并扣除 ' + needScore + ' 积分'
- }
- money = money - res.data.balance
- wx.showModal({
- title: '请确认支付',
- content: _msg,
- confirmText: "确认支付",
- cancelText: "取消支付",
- success: function (res) {
- console.log(res);
- if (res.confirm) {
- that._toPayTap(orderId, money)
- } else {
- console.log('用户点击取消支付')
- }
- }
- });
- } else {
- wx.showModal({
- title: '错误',
- content: '无法获取用户资金信息',
- showCancel: false
- })
- }
- })
- },
- async wxSphGetpaymentparams(e) {
- const orderId = e.currentTarget.dataset.id
- const res = await WXAPI.wxSphGetpaymentparams(wx.getStorageSync('token'), orderId)
- if (res.code != 0) {
- wx.showToast({
- title: res.msg,
- icon: 'none'
- })
- return;
- }
- // 发起支付
- wx.requestPayment({
- timeStamp: res.data.timeStamp,
- nonceStr: res.data.nonceStr,
- package: res.data.package,
- signType: res.data.signType,
- paySign: res.data.paySign,
- fail: aaa => {
- console.error(aaa)
- wx.showToast({
- title: '支付失败:' + aaa
- })
- },
- success: () => {
- // 提示支付成功
- wx.showToast({
- title: '支付成功'
- })
- this.orderList()
- }
- })
- },
- _toPayTap: function (orderId, money){
- const _this = this
- if (money <= 0) {
- // 直接使用余额支付
- WXAPI.orderPay(wx.getStorageSync('token'), orderId).then(function (res) {
- _this.data.page = 1
- _this.orderList()
- _this.getOrderStatistics()
- })
- } else {
- wxpay.wxpay('order', money, orderId, "/pages/order-list/index");
- }
- },
- onLoad: function(options) {
- if (options && options.type) {
- if (options.type == 99) {
- this.setData({
- hasRefund: true
- });
- } else {
- const tabIndex = this.data.statusType.findIndex(ele => {
- return ele.status == options.type
- })
- this.setData({
- status: options.type,
- tabIndex
- });
- }
- }
- this.getOrderStatistics();
- this.orderList();
- this.setData({
- sphpay_open: wx.getStorageSync('sphpay_open')
- })
- },
- onReady: function() {
- // 生命周期函数--监听页面初次渲染完成
- },
- getOrderStatistics() {
- WXAPI.orderStatistics(wx.getStorageSync('token')).then(res => {
- if (res.code == 0) {
- const badges = this.data.badges;
- badges[1] = res.data.count_id_no_pay
- badges[2] = res.data.count_id_no_transfer
- badges[3] = res.data.count_id_no_confirm
- badges[4] = res.data.count_id_no_reputation
- this.setData({
- badges
- })
- }
- })
- },
- onShow: function() {
- },
- onPullDownRefresh: function () {
- this.data.page = 1
- this.getOrderStatistics()
- this.orderList()
- wx.stopPullDownRefresh()
- },
- onReachBottom() {
- this.setData({
- page: this.data.page + 1
- });
- this.orderList()
- },
- async orderList(){
- wx.showLoading({
- title: '',
- })
- var postData = {
- page: this.data.page,
- pageSize: 20,
- token: wx.getStorageSync('token')
- };
- if (this.data.hasRefund) {
- postData.hasRefund = true
- }
- if (!postData.hasRefund) {
- postData.status = this.data.status;
- }
- if (postData.status == 9999) {
- postData.status = ''
- }
- const res = await WXAPI.orderList(postData)
- wx.hideLoading()
- if (res.code == 0) {
- if (this.data.page == 1) {
- this.setData({
- orderList: res.data.orderList,
- logisticsMap: res.data.logisticsMap,
- goodsMap: res.data.goodsMap
- })
- } else {
- this.setData({
- orderList: this.data.orderList.concat(res.data.orderList),
- logisticsMap: Object.assign(this.data.logisticsMap, res.data.logisticsMap),
- goodsMap: Object.assign(this.data.goodsMap, res.data.goodsMap)
- })
- }
- } else {
- if (this.data.page == 1) {
- this.setData({
- orderList: null,
- logisticsMap: {},
- goodsMap: {}
- })
- } else {
- wx.showToast({
- title: '没有更多了',
- icon: 'none'
- })
- }
- }
- },
- })
|