From 9b72289a2f36be0290d7b390c40aa176e12f58fc Mon Sep 17 00:00:00 2001 From: zhang1106 <849185023@qq.com> Date: Tue, 30 Dec 2025 11:18:55 +0800 Subject: [PATCH] =?UTF-8?q?refactor(devices):=20=E5=8A=A8=E6=80=81?= =?UTF-8?q?=E9=AA=8C=E8=AF=81=E5=BF=85=E5=A1=AB=E5=AD=97=E6=AE=B5=E9=85=8D?= =?UTF-8?q?=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 将硬编码的必填字段验证改为从数据库配置动态获取,提高灵活性和可维护性 --- backend/routes/devices.js | 28 ++++++++++++---------------- 1 file changed, 12 insertions(+), 16 deletions(-) diff --git a/backend/routes/devices.js b/backend/routes/devices.js index 7a72d94..2de16c7 100644 --- a/backend/routes/devices.js +++ b/backend/routes/devices.js @@ -407,23 +407,19 @@ router.post('/import', async (req, res) => { }); try { + // 动态获取必填字段配置(从数据库读取) + const requiredFieldConfigs = deviceFields.filter(field => field.required); + const requiredFieldNames = requiredFieldConfigs.map(field => field.displayName); + // 验证必填字段 - const requiredFields = { - '设备ID': fieldValueMap['设备ID'], - '设备名称': fieldValueMap['设备名称'], - '设备类型': fieldValueMap['设备类型'], - '型号': fieldValueMap['型号'], - '序列号': fieldValueMap['序列号'], - '所在机柜ID': fieldValueMap['所在机柜ID'], - '位置(U)': fieldValueMap['位置(U)'], - '高度(U)': fieldValueMap['高度(U)'], - '功率(W)': fieldValueMap['功率(W)'], - '状态': fieldValueMap['状态'], - '购买日期': fieldValueMap['购买日期'], - '保修到期': fieldValueMap['保修到期'] - }; - - const missingFields = Object.keys(requiredFields).filter(fieldName => !requiredFields[fieldName]); + const missingFields = []; + for (const fieldName of requiredFieldNames) { + const value = fieldValueMap[fieldName]; + if (!value || (typeof value === 'string' && value.trim() === '')) { + missingFields.push(fieldName); + } + } + if (missingFields.length > 0) { throw new Error(`缺少必填字段:${missingFields.join('、')}`); }