优化展示

This commit is contained in:
2025-11-27 16:41:24 +08:00
parent fded64ef8f
commit 80ab64e428
3 changed files with 32 additions and 4 deletions

View File

@@ -240,6 +240,7 @@ import {PaginationDTO, Response} from '../enums';
* @property {string} description
* @property {Array<RawMaterialNutrientDTO>} 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 ---

View File

@@ -6,6 +6,9 @@
<el-form-item label="参考价格(kg/元)" prop="reference_price">
<el-input-number v-model="formData.reference_price" :min="0" :precision="2" :step="0.01" controls-position="right" style="width: 100%;"></el-input-number>
</el-form-item>
<el-form-item label="最大添加比例(%)" prop="max_addition_ratio">
<el-input-number v-model="formData.max_addition_ratio" :min="0" :max="100" :precision="2" :step="1" controls-position="right" style="width: 100%;"></el-input-number>
</el-form-item>
<el-form-item label="描述" prop="description">
<el-input
v-model="formData.description"
@@ -37,7 +40,8 @@ export default {
default: () => ({
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 {

View File

@@ -40,6 +40,12 @@
</el-table-column>
<el-table-column prop="name" label="原料名称" width="150"></el-table-column>
<el-table-column prop="reference_price" label="参考价格(kg/元)" width="180"></el-table-column>
<el-table-column
prop="max_addition_ratio"
label="最大添加比例(%)"
width="180"
:formatter="formatMaxAdditionRatio"
></el-table-column>
<el-table-column prop="description" label="描述"></el-table-column>
<el-table-column label="操作">
<template #default="scope">
@@ -185,6 +191,13 @@ export default {
emit('edit-nutrients', row); // 触发 edit-nutrients 事件
};
const formatMaxAdditionRatio = (row, column, cellValue) => {
if (typeof cellValue === 'number') {
return cellValue.toFixed(2);
}
return cellValue;
};
onMounted(() => {
fetchRawMaterials();
});
@@ -206,6 +219,7 @@ export default {
handleDelete,
handleEditNutrients,
fetchRawMaterials, // 将方法暴露出去
formatMaxAdditionRatio,
};
},
};