function mapTaskStatus(status) { const statusMap = { pending: "待接单", accepted: "已接单", picked_up: "已揽货", delivered: "已送达", canceled: "已取消", }; return statusMap[status] || status || "-"; } Page({ data: { loading: true, message: "", actionLoading: false, taskId: null, taskInfo: null, }, async onLoad(options) { this.setData({ taskId: Number(options.id || 0), }); await this.loadDetail(); }, async loadDetail() { const app = getApp(); this.setData({ loading: true, message: "" }); try { const data = await app.request({ url: `/api/driver/tasks/${this.data.taskId}`, method: "GET", }); this.setData({ taskInfo: { ...data, statusText: mapTaskStatus(data.status), }, }); } catch (error) { this.setData({ message: error.message || "加载任务详情失败", }); } finally { this.setData({ loading: false }); } }, getActionConfig() { const status = this.data.taskInfo?.status; if (status === "pending") { return { text: "接单", url: `/api/driver/tasks/${this.data.taskId}/accept`, successMessage: "接单成功", }; } if (status === "accepted") { return { text: "确认揽货", url: `/api/driver/tasks/${this.data.taskId}/pickup`, successMessage: "已确认揽货", }; } if (status === "picked_up") { return { text: "确认送达", url: `/api/driver/tasks/${this.data.taskId}/deliver`, successMessage: "已确认送达", }; } return null; }, async handleAction() { const action = this.getActionConfig(); if (!action) { return; } const app = getApp(); this.setData({ actionLoading: true, message: "" }); try { await app.request({ url: action.url, method: "POST", }); await this.loadDetail(); this.setData({ message: action.successMessage, }); } catch (error) { this.setData({ message: error.message || "任务操作失败", }); } finally { this.setData({ actionLoading: false }); } }, });