From aa5ab5fc17b632b24577880934200a512542f550 Mon Sep 17 00:00:00 2001 From: zhang1106 <849185023@qq.com> Date: Fri, 6 Feb 2026 16:09:57 +0800 Subject: [PATCH] =?UTF-8?q?refactor(=E8=AE=BE=E5=A4=87=E5=AF=BC=E5=85=A5):?= =?UTF-8?q?=20=E5=8A=A8=E6=80=81=E6=9E=84=E5=BB=BA=E5=BF=85=E5=A1=AB?= =?UTF-8?q?=E5=AD=97=E6=AE=B5=E5=88=97=E8=A1=A8=E4=BB=A5=E4=BF=9D=E6=8C=81?= =?UTF-8?q?=E4=B8=8E=E6=95=B0=E6=8D=AE=E5=BA=93=E9=85=8D=E7=BD=AE=E5=90=8C?= =?UTF-8?q?=E6=AD=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/routes/devices.js | 27 +++++++++++++++++++++------ 1 file changed, 21 insertions(+), 6 deletions(-) diff --git a/backend/routes/devices.js b/backend/routes/devices.js index d13ed42..5bf5fd9 100644 --- a/backend/routes/devices.js +++ b/backend/routes/devices.js @@ -528,12 +528,27 @@ router.post('/import', async (req, res) => { }); try { - // 真正的必填字段列表(与前端表单一致) - // 注意:设备ID由系统自动生成,型号/功率/购买日期/保修到期已改为非必填 - const trulyRequiredFields = [ - '设备名称', '设备类型', '序列号', - '所在机房名称', '所在机柜名称', '位置(U)', '高度(U)', '状态' - ]; + // 动态构建必填字段列表(从数据库配置读取,保持与字段管理页面同步) + const trulyRequiredFields = []; + + deviceFields.forEach(field => { + // 跳过设备ID(系统生成) + if (field.fieldName === 'deviceId') return; + + // 机柜字段特殊处理:拆分为机房名称+机柜名称 + if (field.fieldName === 'rackId') { + if (field.required) { + trulyRequiredFields.push('所在机房名称'); + trulyRequiredFields.push('所在机柜名称'); + } + return; + } + + // 其他字段根据数据库配置 + if (field.required) { + trulyRequiredFields.push(field.displayName); + } + }); // 验证必填字段 const missingFields = [];