// pages/process/order-list/index.js import Scene from '../../index/scene' import Dialog from '../../../components/dialog/dialog' import { getFactoryOrderList, cancelOrder } from "../../../api/saas" const event = require('../../../utils/event') const util = require('../../../utils/util') const app = getApp() //1-定价 2-待过皮重 3-待过榜审核 4-待付款 41-代付中 42-待结算 5-已完成 6-已关闭 Scene({ // * 页面的初始数据 data: { height: app.globalData.fragmentHeight - 90, tabIndex: 0, tabList: [ {id: 0, name: '全部', badge: 0, status: '' }, {id: 1, name: '待定价', badge: 0, status: 1 }, {id: 2, name: '待过皮重', badge: 0, status: 2 }, {id: 3, name: '待过榜审核', badge: 0, status: 3 }, {id: 4, name: '待付款', badge: 0, status: 4 }, {id: 5, name: '代付中', badge: 0, status: 41 }, {id: 6, name: '待结算', badge: 0, status: 42 }, {id: 7, name: '已完成', badge: 0, status: 5 }, {id: 8, name: '已取消', badge: 0, status: 6 } ], loading: true, requesting: false, finished: false, top: 0, orderList: [], form: { funcType: 0, pageNum: 1, pageSize: 15 }, title: '全部', lastTime: null }, // * 生命周期函数--监听页面加载 onLoad: function (options) { if(options.status){ this.data.form.funcType = Number(options.status) if(this.data.form.funcType == 1){ this.data.title = '待定价订单' } else if(this.data.form.funcType == 2){ this.data.title = '过磅审核订单' } else if(this.data.form.funcType == 3){ this.data.title = '待付款订单' } else if(this.data.form.funcType == 4){ this.data.title = '已完成订单' this.data.form.funcType = 6 this.data.form.status = 5 this.data.tabIndex = 7 } else if(this.data.form.funcType == 5){ this.data.title = '已关闭订单' } } event.on('OrderMessage', this, this.onEvent) this.setData({ height: app.globalData.fragmentHeight - 90, title: this.data.title, tabIndex: this.data.tabIndex, admin: app.userInfo.type && app.userInfo.type.indexOf('ADMIN') >= 0 }) this.fetchOrderList() }, onEvent: function(message){ if (message.what == 12) { this.onRefreshList() } }, onTabChange: function ({detail}) { if (this.data.tabIndex == Number(detail.index)) { return } this.setData({ tabIndex: detail.index, requesting: false }) this.data.form.status = this.data.tabList[detail.index].status this.onRefreshList() }, onRefreshList: function () { if (this.data.requesting) { return } this.setData({ orderList: [], ['form.pageNum']: 1, loading: true, finished: false }) this.data.lastTime = null this.fetchOrderList() }, //1:待定价,2:待过皮重,3:待过磅审核,4:待付款,5:已完成 fetchOrderList: function () { if (this.data.requesting || this.data.finished) { return } if (this.data.loading) { this.data.requesting = true } else { this.setData({ requesting: true }) } getFactoryOrderList(this.data.form).then(result => { this.handResult(result) }).catch(err => { this.setData({ requesting: false, loading: false }) util.showToast(err) }).then(() => { this.refresh = this.refresh || this.selectComponent('#refresh') this.refresh.setRefresh(false) }) }, handResult: function(result){ if (result.data && result.data.records && result.data.records.length) { var respList = result.data.records // 对返回的消息列表进行处理,将同一天的消息显示在一起 for (let i = 0; i < respList.length; i++) { if (util.isEmpty(this.data.lastTime)) { this.data.lastTime = respList[i].createTime if (this.data.lastTime.length > 10) { this.data.lastTime = this.data.lastTime.substring(0, 10) } respList[i].tipsTime = this.data.lastTime } else { var itemTime = respList[i].createTime if (itemTime.length > 10) { itemTime = itemTime.substring(0, 10) } if (this.data.lastTime !== itemTime) { respList[i].tipsTime = itemTime } this.data.lastTime = itemTime } } let nowList = `orderList[${this.data.orderList.length}]` var num = this.data.form.pageNum var finished = ((num - 1) * this.data.form.pageSize + respList.length) >= result.data.total this.setData({ [nowList]: respList, ['form.pageNum']: (num + 1), finished, requesting: false, loading: false }) } else { this.setData({ finished: true, requesting: false, loading: false }) } }, cancelOrder: function(e){ Dialog.confirm({ title: '温馨提示', message: '确定取消该订单?' }).then(() => { wx.showLoading({ title: '正在获取', mask: true }) cancelOrder(e.currentTarget.dataset.id).then(result => { wx.hideLoading() util.showToast('订单已经取消') this.onRefreshList() }).catch(err => { wx.hideLoading() util.showToast(err) }) }) }, lookItem: function (e) { var item = this.data.orderList[e.currentTarget.dataset.page][e.currentTarget.dataset.index] if(item.status == 1){ wx.navigateTo({ url: `/pages/process/order-price/index?id=${item.id}` }) } else { wx.navigateTo({ url: `/pages/process/order-info/index?id=${item.id}` }) } }, repriceOrder: function(e){ wx.navigateTo({ url: `/pages/process/order-check/index?id=${e.currentTarget.dataset.id}` }) }, priceOrder: function(e){ wx.navigateTo({ url: '/pages/process/order-price/index?id=' + e.currentTarget.dataset.id }) }, checkOrder: function(e){ wx.navigateTo({ url: '/pages/process/order-info/index?id=' + e.currentTarget.dataset.id }) }, loggerItem: function(e){ wx.navigateTo({url: `/pages/process/order-logger/index?type=1&orderId=${e.currentTarget.dataset.id}` }) }, paymentItem: function (e) { var item = this.data.orderList[e.currentTarget.dataset.page][e.currentTarget.dataset.index] if(!this.data.admin) { wx.navigateTo({ url: `/pages/process/order-info/index?id=${item.id}` }) return } const that = this wx.navigateTo({ url: `/pages/process/payment/index?channel=1`, events: { onOrderChange: (data) => { if (data.what == 12) { that.onRefreshList(that.data.form.isSameCustomer) } } }, success: function(res) { res.eventChannel.emit('onParam', item) } }) }, onUnload: function(){ event.remove('OrderMessage', this) } })