diff --git a/src/api/feed.js b/src/api/feed.js index e938cd5d..b0637cc3 100644 --- a/src/api/feed.js +++ b/src/api/feed.js @@ -240,6 +240,7 @@ import {PaginationDTO, Response} from '../enums'; * @property {string} description * @property {Array} raw_material_nutrients * @property {number} [reference_price] - 参考价格(kg/元) + * @property {number} [max_addition_ratio] - 最大添加比例(%) */ /** @@ -264,6 +265,7 @@ import {PaginationDTO, Response} from '../enums'; * @property {string} name - 原料名称 * @property {string} [description] - 描述 * @property {number} [reference_price] - 参考价格(kg/元) + * @property {number} [max_addition_ratio] - 最大添加比例(%) */ /** @@ -271,6 +273,7 @@ import {PaginationDTO, Response} from '../enums'; * @property {string} name - 原料名称 * @property {string} [description] - 描述 * @property {number} [reference_price] - 参考价格(kg/元) + * @property {number} [max_addition_ratio] - 最大添加比例(%) */ // --- Recipe --- diff --git a/src/components/feed/RawMaterialForm.vue b/src/components/feed/RawMaterialForm.vue index bd1555db..fb2d430c 100644 --- a/src/components/feed/RawMaterialForm.vue +++ b/src/components/feed/RawMaterialForm.vue @@ -6,6 +6,9 @@ + + + ({ name: '', description: '', - reference_price: 0, // 新增参考价格默认值 + reference_price: 0, + max_addition_ratio: 0, }), }, }, @@ -47,7 +51,8 @@ export default { const formData = reactive({ name: '', description: '', - reference_price: 0, // 新增参考价格 + reference_price: 0, + max_addition_ratio: 0, }); // 监听 initialData 变化,用于编辑模式下初始化表单 @@ -57,7 +62,8 @@ export default { if (newVal) { formData.name = newVal.name || ''; formData.description = newVal.description || ''; - formData.reference_price = newVal.reference_price || 0; // 初始化参考价格 + formData.reference_price = newVal.reference_price || 0; + formData.max_addition_ratio = newVal.max_addition_ratio || 0; } }, { immediate: true, deep: true } @@ -73,6 +79,10 @@ export default { { type: 'number', message: '参考价格必须是数字', trigger: 'change' }, { min: 0, type: 'number', message: '参考价格不能小于0', trigger: 'change' }, ], + max_addition_ratio: [ + { required: true, message: '请输入最大添加比例', trigger: 'change' }, + { type: 'number', min: 0, max: 100, message: '比例必须在 0 到 100 之间', trigger: 'change' }, + ], }; const submitForm = () => { @@ -96,7 +106,8 @@ export default { // 手动重置 formData,因为 resetFields 不会重置未绑定 prop 的字段 formData.name = ''; formData.description = ''; - formData.reference_price = 0; // 重置参考价格 + formData.reference_price = 0; + formData.max_addition_ratio = 0; }; return { diff --git a/src/components/feed/RawMaterialTable.vue b/src/components/feed/RawMaterialTable.vue index fd5fcfed..4d64eea6 100644 --- a/src/components/feed/RawMaterialTable.vue +++ b/src/components/feed/RawMaterialTable.vue @@ -40,6 +40,12 @@ +