Files

92 lines
2.5 KiB
JavaScript
Raw Permalink Normal View History

var { request } = require('../../../utils/request');
var app = getApp();
Page({
data: {
orders: [],
caregivers: [],
orderLoading: false,
selectedOrder: null,
selectedCaregiverId: null,
showDialog: false,
history: [],
historyLoading: false
},
onShow() {
this.loadPending();
this.loadCaregivers();
this.loadHistory();
},
onPullDownRefresh() {
Promise.all([this.loadPending(), this.loadCaregivers(), this.loadHistory()])
.finally(function() { wx.stopPullDownRefresh(); });
},
async loadPending() {
this.setData({ orderLoading: true });
try {
var res = await request({ url: '/system/dispatch/pending', method: 'GET', loading: false });
if (res.code === 200) {
this.setData({ orders: res.data || [], orderLoading: false });
}
} catch (e) { this.setData({ orderLoading: false }); }
},
async loadCaregivers() {
try {
var res = await request({ url: '/system/dispatch/caregivers', method: 'GET', loading: false });
if (res.code === 200) {
this.setData({ caregivers: res.data || [] });
}
} catch (e) {}
},
async loadHistory() {
this.setData({ historyLoading: true });
try {
var res = await request({ url: '/system/dispatch/history', method: 'GET', loading: false });
if (res.code === 200) {
this.setData({ history: res.data || [], historyLoading: false });
}
} catch (e) { this.setData({ historyLoading: false }); }
},
showAssignDialog(e) {
var order = e.currentTarget.dataset.item;
this.setData({ selectedOrder: order, selectedCaregiverId: null, showDialog: true });
},
async doAssign() {
if (!this.data.selectedCaregiverId || !this.data.selectedOrder) return;
try {
var res = await request({
url: '/system/dispatch/assign/' + this.data.selectedOrder.orderId + '/' + this.data.selectedCaregiverId,
method: 'POST',
loading: true,
loadingText: '派单中...'
});
if (res.code === 200) {
wx.showToast({ title: '派单成功', icon: 'success' });
this.setData({ showDialog: false });
this.loadPending();
this.loadCaregivers();
this.loadHistory();
}
} catch (e) {}
},
selectCaregiver(e) {
this.setData({ selectedCaregiverId: e.currentTarget.dataset.id });
},
closeDialog() {
this.setData({ showDialog: false, selectedOrder: null, selectedCaregiverId: null });
},
getStatusLabel(s) {
return app.getStatusLabel(s);
}
});