refactor(devices): 动态验证必填字段配置
将硬编码的必填字段验证改为从数据库配置动态获取,提高灵活性和可维护性
This commit is contained in:
+12
-16
@@ -407,23 +407,19 @@ router.post('/import', async (req, res) => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
try {
|
try {
|
||||||
|
// 动态获取必填字段配置(从数据库读取)
|
||||||
|
const requiredFieldConfigs = deviceFields.filter(field => field.required);
|
||||||
|
const requiredFieldNames = requiredFieldConfigs.map(field => field.displayName);
|
||||||
|
|
||||||
// 验证必填字段
|
// 验证必填字段
|
||||||
const requiredFields = {
|
const missingFields = [];
|
||||||
'设备ID': fieldValueMap['设备ID'],
|
for (const fieldName of requiredFieldNames) {
|
||||||
'设备名称': fieldValueMap['设备名称'],
|
const value = fieldValueMap[fieldName];
|
||||||
'设备类型': fieldValueMap['设备类型'],
|
if (!value || (typeof value === 'string' && value.trim() === '')) {
|
||||||
'型号': fieldValueMap['型号'],
|
missingFields.push(fieldName);
|
||||||
'序列号': 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]);
|
|
||||||
if (missingFields.length > 0) {
|
if (missingFields.length > 0) {
|
||||||
throw new Error(`缺少必填字段:${missingFields.join('、')}`);
|
throw new Error(`缺少必填字段:${missingFields.join('、')}`);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user