fix(consumable): 修复最大库存字段逻辑并改进耗材管理

将 maxStock 字段从允许 null 改为默认 0 表示无限制
添加耗材创建时的数据验证和错误处理
优化前端耗材管理页面的表单初始化和显示逻辑
添加数据库迁移脚本处理现有数据
This commit is contained in:
zhang1106
2026-02-05 16:26:51 +08:00
parent ebd4b5faa9
commit 384a1a9246
4 changed files with 135 additions and 14 deletions
+14 -2
View File
@@ -53,7 +53,13 @@ router.get('/', async (req, res) => {
router.post('/', async (req, res) => {
const transaction = await sequelize.transaction();
try {
const consumable = await Consumable.create(req.body, { transaction });
console.log('接收到的数据:', JSON.stringify(req.body, null, 2));
const consumableData = {
...req.body,
consumableId: req.body.consumableId || `CON${Date.now()}`
};
console.log('处理后的数据:', JSON.stringify(consumableData, null, 2));
const consumable = await Consumable.create(consumableData, { transaction });
await ConsumableLog.create({
consumableId: consumable.consumableId,
@@ -71,7 +77,13 @@ router.post('/', async (req, res) => {
res.status(201).json(consumable);
} catch (error) {
await transaction.rollback();
res.status(400).json({ error: error.message });
console.error('创建耗材错误:', error);
if (error.name === 'SequelizeValidationError') {
const messages = error.errors.map(e => `${e.path}: ${e.message}`).join(', ');
res.status(400).json({ error: `Validation error: ${messages}` });
} else {
res.status(400).json({ error: error.message });
}
}
});