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, actionRemark: "", traceList: [], }, 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), }, }); if (data.order_id) { const traceData = await app.request({ url: `/api/logistics/${data.order_id}/trace`, method: "GET", }); this.setData({ traceList: traceData.trace_list || [], }); } } catch (error) { this.setData({ message: error.message || "加载任务详情失败", }); } finally { this.setData({ loading: false }); } }, handleRemarkInput(event) { this.setData({ actionRemark: event.detail.value, }); }, 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", data: { photo_files: this.data.taskInfo?.status === "accepted" || this.data.taskInfo?.status === "picked_up" ? [ { file_url: "https://oss.example.com/demo-photo.jpg", file_name: "demo-photo.jpg", }, ] : [], video_files: [], remark: this.data.actionRemark || action.successMessage, }, }); await this.loadDetail(); this.setData({ message: action.successMessage, actionRemark: "", }); } catch (error) { this.setData({ message: error.message || "任务操作失败", }); } finally { this.setData({ actionLoading: false }); } }, });