dingdanquanliucheng/frontend/mini-manager/pages/task-create.js

103 lines
2.6 KiB
JavaScript

Page({
data: {
loading: true,
saving: false,
message: "",
orderRows: [],
selectedOrderId: null,
selectedOrderNo: "",
driverId: 10,
pickupAddress: "",
deliveryAddress: "",
pickupContent: "",
quantity: 1,
factoryId: 1001,
remark: "微信管理层端创建司机任务",
},
async onShow() {
await this.loadOrders();
},
async loadOrders() {
const app = getApp();
this.setData({ loading: true, message: "" });
try {
const data = await app.request({
url: "/api/orders?order_status=pending_factory&page_no=1&page_size=50",
method: "GET",
});
this.setData({
orderRows: (data.list || []).map((item) => ({
orderId: item.order_id,
orderNo: item.order_no,
customerName: item.customer_name,
statusText: app.mapOrderStatus(item.order_status),
})),
});
} catch (error) {
this.setData({
message: error.message || "加载待分配订单失败",
});
} finally {
this.setData({ loading: false });
}
},
handleChooseOrder(event) {
const { id, no, customer } = event.currentTarget.dataset;
this.setData({
selectedOrderId: id,
selectedOrderNo: no,
pickupAddress: "工厂A",
deliveryAddress: `${customer} 收货地址`,
pickupContent: `${customer} 订单货物`,
quantity: 1,
});
},
handleInput(event) {
const { field } = event.currentTarget.dataset;
this.setData({
[field]: event.detail.value,
});
},
async handleSave() {
if (!this.data.selectedOrderId) {
this.setData({ message: "请先选择一笔订单" });
return;
}
const app = getApp();
this.setData({ saving: true, message: "" });
try {
const data = await app.request({
url: "/api/logistics/tasks",
method: "POST",
data: {
order_id: this.data.selectedOrderId,
driver_id: Number(this.data.driverId),
pickup_address: this.data.pickupAddress,
delivery_address: this.data.deliveryAddress,
pickup_content: this.data.pickupContent,
quantity: Number(this.data.quantity),
factory_id: Number(this.data.factoryId),
remark: this.data.remark,
},
});
this.setData({
message: `司机任务 ${data.task_no} 创建成功`,
selectedOrderId: null,
selectedOrderNo: "",
});
await this.loadOrders();
} catch (error) {
this.setData({
message: error.message || "创建司机任务失败",
});
} finally {
this.setData({ saving: false });
}
},
});