- 后端:RlzDispatch/Profit/Promotion/Region 控制器、服务、Mapper、领域模型 - 权限:MethodSecurityConfig + PermissionInterceptor - 管理后台:派单/分润/推广/区域 页面与 API - Android 陪护端:派单/运营/退款 Fragment 及布局 - 小程序:推广员子包、派单/运营/退款/检索子包、自定义 tabBar - 文档:多角色系统方案、角色权限矩阵、用户操作手册等 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
92 lines
2.5 KiB
JavaScript
92 lines
2.5 KiB
JavaScript
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);
|
|
}
|
|
});
|