/** * 管理层创建物流任务页面 * 职责:选择待发厂的订单,填写信息创建配送任务。 */ Page({ data: { statusBarHeight: 20, loading: true, saving: false, message: "", orderRows: [], selectedOrderId: null, selectedOrderNo: "", driverId: "", pickupAddress: "", deliveryAddress: "", pickupContent: "", quantity: "", factoryId: "", remark: "", }, onShow: function () { var app = getApp(); this.setData({ statusBarHeight: app.globalData.statusBarHeight || 20 }); this.loadOrders(); }, loadOrders: function () { var that = this; var app = getApp(); that.setData({ loading: true, message: "" }); app.request({ url: "/api/orders?order_status=pending_factory&page_no=1&page_size=50", method: "GET" }).then(function (data) { var rows = (data.list || []).map(function (item) { return { orderId: item.order_id, orderNo: item.order_no, customerName: item.customer_name, statusText: app.mapOrderStatus(item.order_status), orderStatus: item.order_status, }; }); that.setData({ orderRows: rows }); }).catch(function (error) { that.setData({ message: error.message || "加载待分配订单失败" }); }).finally(function () { that.setData({ loading: false }); }); }, handleChooseOrder: function (event) { var id = event.currentTarget.dataset.id; var no = event.currentTarget.dataset.no; var customer = event.currentTarget.dataset.customer; this.setData({ selectedOrderId: id, selectedOrderNo: no, pickupAddress: "工厂A", deliveryAddress: customer + " 收货地址", pickupContent: customer + " 订单货物", quantity: "1", message: "已选择订单 " + no, }); }, handleInput: function (event) { var field = event.currentTarget.dataset.field; var obj = {}; obj[field] = event.detail.value; this.setData(obj); }, handleSave: function () { var that = this; if (!this.data.selectedOrderId) { this.setData({ message: "请先选择一笔订单" }); return; } var app = getApp(); that.setData({ saving: true, message: "" }); app.request({ url: "/api/logistics/tasks", method: "POST", data: { order_id: that.data.selectedOrderId, driver_id: Number(that.data.driverId), pickup_address: that.data.pickupAddress, delivery_address: that.data.deliveryAddress, pickup_content: that.data.pickupContent, quantity: Number(that.data.quantity), factory_id: Number(that.data.factoryId), remark: that.data.remark, }, }).then(function (data) { that.setData({ message: "任务 " + data.task_no + " 创建成功", selectedOrderId: null, selectedOrderNo: "" }); that.loadOrders(); wx.navigateTo({ url: "/pages/driver/task-detail/task-detail?id=" + data.task_id }); }).catch(function (error) { that.setData({ message: error.message || "创建失败" }); }).finally(function () { that.setData({ saving: false }); }); }, handleBack: function () { wx.navigateBack({ delta: 1 }); }, });