// 客户订单管理
(() => {
Router.register('/plan-mgmt/customer-order', async () => {
// 先返回 HTML
const html = `
| 下单时间 |
订单编号 |
客户名称 |
物料 |
订单数量 |
单价 |
操作 |
| 加载中... |
`;
// DOM 渲染后初始化
setTimeout(() => {
const addBtn = document.getElementById('add-order-btn');
if (addBtn) {
addBtn.addEventListener('click', () => {
openModal();
});
}
loadOrders();
}, 100);
return html;
});
async function loadOrders() {
try {
console.log('开始加载订单列表...');
const res = await fetch('/api/customer-orders');
console.log('API响应状态:', res.status);
const data = await res.json();
console.log('订单数据:', data);
const tbody = document.getElementById('order-list');
if (!tbody) {
console.error('找不到 order-list 元素');
return;
}
if (!data.list || data.list.length === 0) {
tbody.innerHTML = '| 暂无数据 |
';
return;
}
tbody.innerHTML = data.list.map(order => `
| ${order.order_date || '—'} |
${order.order_no || '—'} |
${order.customer_name || '—'} |
${order.material || '—'} |
${order.quantity || 0} |
${order.unit_price || 0} |
|
`).join('');
console.log('订单列表加载完成');
} catch (err) {
console.error('加载订单失败:', err);
const tbody = document.getElementById('order-list');
if (tbody) {
tbody.innerHTML = '| 加载失败,请刷新重试 |
';
}
API.toast('加载订单失败', 'error');
}
}
let materialRowIndex = 0;
let productList = []; // 缓存BOM产品列表
async function loadProductList() {
try {
const res = await fetch('/api/bom/products');
const data = await res.json();
productList = (data.list || []).map(p => p.product_name).filter(Boolean);
// 同时从已有订单中提取物料名称(去重)
const orderRes = await fetch('/api/customer-orders');
const orderData = await orderRes.json();
if (orderData.list) {
for (const o of orderData.list) {
if (o.material && !productList.includes(o.material)) {
productList.push(o.material);
}
}
}
} catch (e) {
console.error('加载产品列表失败:', e);
}
}
function buildMaterialOptions() {
return productList.map(name => `