119 lines
3.1 KiB
JavaScript
119 lines
3.1 KiB
JavaScript
Page({
|
|
data: {
|
|
loading: true,
|
|
actionLoading: false,
|
|
message: "",
|
|
orderRows: [],
|
|
selectedOrderId: null,
|
|
selectedOrderNo: "",
|
|
textContent: "",
|
|
templateType: "default",
|
|
},
|
|
|
|
async onShow() {
|
|
await this.loadOrders();
|
|
},
|
|
|
|
async loadOrders() {
|
|
const app = getApp();
|
|
this.setData({ loading: true, message: "" });
|
|
try {
|
|
const [approvedData, pendingFactoryData] = await Promise.all([
|
|
app.request({
|
|
url: "/api/orders?order_status=approved&page_no=1&page_size=50",
|
|
method: "GET",
|
|
}),
|
|
app.request({
|
|
url: "/api/orders?order_status=pending_factory&page_no=1&page_size=50",
|
|
method: "GET",
|
|
}),
|
|
]);
|
|
const orderRows = [...(approvedData.list || []), ...(pendingFactoryData.list || [])].map((item) => ({
|
|
orderId: item.order_id,
|
|
orderNo: item.order_no,
|
|
customerName: item.customer_name,
|
|
statusText: app.mapOrderStatus(item.order_status),
|
|
}));
|
|
this.setData({ orderRows });
|
|
} catch (error) {
|
|
this.setData({
|
|
message: error.message || "加载待发厂订单失败",
|
|
});
|
|
} finally {
|
|
this.setData({ loading: false });
|
|
}
|
|
},
|
|
|
|
handleChooseOrder(event) {
|
|
const { id, no } = event.currentTarget.dataset;
|
|
this.setData({
|
|
selectedOrderId: id,
|
|
selectedOrderNo: no,
|
|
textContent: "",
|
|
});
|
|
},
|
|
|
|
handleTextInput(event) {
|
|
this.setData({
|
|
textContent: event.detail.value,
|
|
});
|
|
},
|
|
|
|
async handleGenerateText() {
|
|
if (!this.data.selectedOrderId) {
|
|
this.setData({ message: "请先选择一笔订单" });
|
|
return;
|
|
}
|
|
const app = getApp();
|
|
this.setData({ actionLoading: true, message: "" });
|
|
try {
|
|
const data = await app.request({
|
|
url: `/api/orders/${this.data.selectedOrderId}/supplier-text`,
|
|
method: "POST",
|
|
data: { supplier_id: 1001 },
|
|
});
|
|
this.setData({
|
|
textContent: data.text_content,
|
|
templateType: data.template_type,
|
|
message: "发厂文案已生成",
|
|
});
|
|
} catch (error) {
|
|
this.setData({
|
|
message: error.message || "生成发厂文案失败",
|
|
});
|
|
} finally {
|
|
this.setData({ actionLoading: false });
|
|
}
|
|
},
|
|
|
|
async handleConfirmText() {
|
|
if (!this.data.selectedOrderId) {
|
|
this.setData({ message: "请先选择一笔订单" });
|
|
return;
|
|
}
|
|
const app = getApp();
|
|
this.setData({ actionLoading: true, message: "" });
|
|
try {
|
|
await app.request({
|
|
url: `/api/orders/${this.data.selectedOrderId}/supplier-text/confirm`,
|
|
method: "POST",
|
|
data: {
|
|
supplier_id: 1001,
|
|
text_content: this.data.textContent,
|
|
remark: "微信管理层端确认发厂",
|
|
},
|
|
});
|
|
this.setData({
|
|
message: `订单 ${this.data.selectedOrderNo} 已确认下发工厂`,
|
|
});
|
|
await this.loadOrders();
|
|
} catch (error) {
|
|
this.setData({
|
|
message: error.message || "确认发厂失败",
|
|
});
|
|
} finally {
|
|
this.setData({ actionLoading: false });
|
|
}
|
|
},
|
|
});
|