feat: 全系统窗体升级 - 配置驱动通用单据页(BillPage)、原料专用单据页、宽屏弹窗及日期转换优化

This commit is contained in:
2026-08-16 03:58:22 +08:00
parent 1bec470647
commit 9f416561d6
33 changed files with 3379 additions and 96 deletions
+68
View File
@@ -0,0 +1,68 @@
/**
* 复现原料出库单保存 500 错误
* 用法:node server/scripts/debug-outstock-save.mjs
*/
const BASE = process.env.F9MES_API || 'http://localhost:5136';
const PHONE = '13800000000';
const PASSWORD = '123456';
async function main() {
const login = await fetch(BASE + '/api/auth/login', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ phone: PHONE, password: PASSWORD }),
}).then((r) => r.json());
if (login.code !== 0) throw new Error('登录失败: ' + JSON.stringify(login));
const h = { Authorization: 'Bearer ' + login.data.token, 'Content-Type': 'application/json' };
// 取第一个庄口
const zk = await fetch(BASE + '/api/data/RawMaterial_Zhuangkou/all', { headers: h }).then((r) => r.json());
const zkItems = (zk.data && (zk.data.data || zk.data.items)) || (Array.isArray(zk.data) ? zk.data : []);
if (!zkItems.length) throw new Error('无庄口');
const zhuangkouId = zkItems[0].id;
console.log('使用庄口 id=' + zhuangkouId);
// 取第一个组织(OutOrgId
let outOrgId = 0;
try {
const org = await fetch(BASE + '/api/data/RawMaterial_Org/all', { headers: h }).then((r) => r.json());
const orgItems = (org.data && (org.data.data || org.data.items)) || (Array.isArray(org.data) ? org.data : []);
if (orgItems.length) outOrgId = orgItems[0].id;
} catch { /* 无组织表则用0 */ }
console.log('使用组织 id=' + outOrgId);
// 生成单号
let billNo = 'YLC' + new Date().toISOString().slice(0, 10).replace(/-/g, '') + '-DBG';
try {
const g = await fetch(BASE + '/api/meta/gencode/RawMaterial_OutStock/billNo', { method: 'POST', headers: h }).then((r) => r.json());
if (g.code === 0 && g.data && g.data.value) billNo = g.data.value;
} catch (e) { console.log('gencode 失败,使用自造单号', e.message); }
console.log('使用单号 ' + billNo);
// 模拟前端 payload(与 outstock-bill.vue handleSave 完全一致)
const payload = {
billNo,
zhuangkouId,
outOrgId,
outWeight: 100,
receiver: '张三',
outDate: '2026-08-16 14:30:00',
outType: 0,
status: 0,
};
const resp = await fetch(BASE + '/api/data/RawMaterial_OutStock/add', {
method: 'POST',
headers: h,
body: JSON.stringify(payload),
});
const text = await resp.text();
console.log('HTTP ' + resp.status);
console.log('BODY>>>');
console.log(text.slice(0, 3000));
}
main().catch((e) => {
console.error('ERR: ' + e.message);
process.exit(1);
});