优化展示

This commit is contained in:
2025-11-27 22:01:49 +08:00
parent e1f38fd995
commit e9545c9be1

View File

@@ -1,23 +1,25 @@
<template> <template>
<el-dialog <el-dialog
title="一键生成配方" title="一键生成配方"
v-model="dialogVisible" v-model="dialogVisible"
width="500px" width="500px"
:before-close="handleCancel" :before-close="handleCancel"
> >
<el-form :model="form" ref="generateRecipeForm" label-width="100px"> <el-form :model="form" ref="generateRecipeForm" label-width="100px">
<el-form-item label="生成对象" prop="selectedPigType" :rules="[{ required: true, message: '请选择生成对象', trigger: 'change' }]"> <el-form-item label="生成对象" prop="selectedPigType"
:rules="[{ required: true, message: '请选择生成对象', trigger: 'change' }]">
<el-select v-model="form.selectedPigType" placeholder="请选择猪品种-猪年龄阶段" style="width: 100%;"> <el-select v-model="form.selectedPigType" placeholder="请选择猪品种-猪年龄阶段" style="width: 100%;">
<el-option <el-option
v-for="item in pigTypesOptions" v-for="item in pigTypesOptions"
:key="item.value" :key="item.value"
:label="item.label" :label="item.label"
:value="item.value" :value="item.value"
></el-option> ></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="生成方式" prop="selectedGenerationMethod" :rules="[{ required: true, message: '请选择生成方式', trigger: 'change' }]"> <el-form-item label="生成方式" prop="selectedGenerationMethod"
:rules="[{ required: true, message: '请选择生成方式', trigger: 'change' }]">
<el-select v-model="form.selectedGenerationMethod" placeholder="请选择生成方式" style="width: 100%;"> <el-select v-model="form.selectedGenerationMethod" placeholder="请选择生成方式" style="width: 100%;">
<el-option label="使用系统中所有可用的原料" value="all_raw_materials"></el-option> <el-option label="使用系统中所有可用的原料" value="all_raw_materials"></el-option>
<!-- 新增选项 --> <!-- 新增选项 -->
@@ -36,9 +38,9 @@
</template> </template>
<script> <script>
import { ref, reactive, watch, onMounted, computed } from 'vue'; import {ref, reactive, watch, onMounted, computed} from 'vue';
import { ElMessage } from 'element-plus'; import {ElMessage} from 'element-plus';
import { FeedApi } from '../../api/feed'; // 假设 FeedApi 包含生成配方接口 import {FeedApi} from '../../api/feed'; // 假设 FeedApi 包含生成配方接口
export default { export default {
name: 'GenerateRecipeDialog', name: 'GenerateRecipeDialog',
@@ -49,7 +51,7 @@ export default {
}, },
}, },
emits: ['update:visible', 'success', 'cancel'], emits: ['update:visible', 'success', 'cancel'],
setup(props, { emit }) { setup(props, {emit}) {
const generateRecipeForm = ref(null); const generateRecipeForm = ref(null);
const loading = ref(false); const loading = ref(false);
const pigTypesOptions = ref([]); const pigTypesOptions = ref([]);
@@ -70,12 +72,12 @@ export default {
*/ */
const fetchPigTypes = async () => { const fetchPigTypes = async () => {
try { try {
const response = await FeedApi.getPigTypes({ page: 1, page_size: 999 }); // 调用 FeedApi 中的 getPigTypes 方法获取猪类型列表 const response = await FeedApi.getPigTypes({page: 1, page_size: 999}); // 调用 FeedApi 中的 getPigTypes 方法获取猪类型列表
if (response.data && response.data.list) { if (response.data && response.data.list) {
pigTypesOptions.value = response.data.list.map(pigType => ({ pigTypesOptions.value = response.data.list.map(pigType => ({
label: `${pigType.breed_name}-${pigType.age_stage_name}`, label: `${pigType.breed_name}-${pigType.age_stage_name}`,
value: `${pigType.id}`, // 下拉框的值直接是 pigType 的 ID value: `${pigType.id}`, // 下拉框的值直接是 pigType 的 ID
})); }));
} }
} catch (error) { } catch (error) {
console.error('获取猪种类失败:', error); console.error('获取猪种类失败:', error);
@@ -94,18 +96,19 @@ export default {
loading.value = true; loading.value = true;
try { try {
const pigTypeId = parseInt(form.selectedPigType); // 获取选中的 pigType ID const pigTypeId = parseInt(form.selectedPigType); // 获取选中的 pigType ID
let response = null; // 声明 response 变量
if (form.selectedGenerationMethod === 'all_raw_materials') { if (form.selectedGenerationMethod === 'all_raw_materials') {
// 调用使用所有原料生成配方的接口 // 调用使用所有原料生成配方的接口
response = await FeedApi.generateRecipeFromAllMaterials(pigTypeId); response = await FeedApi.generateRecipeFromAllMaterials(pigTypeId);
} else if (form.selectedGenerationMethod === 'prefer_in_stock_materials') { } else if (form.selectedGenerationMethod === 'prefer_in_stock_materials') {
// 调用优先使用有库存原料生成配方的接口 // 调用优先使用有库存原料生成配方的接口
response = await FeedApi.generatePrioritizedStockRecipe(pigTypeId); response = await FeedApi.generatePrioritizedStockRecipe(pigTypeId);
} else { } else {
ElMessage.error('未知的生成方式'); ElMessage.error('未知的生成方式');
loading.value = false; loading.value = false;
return; return;
} }
if (response.data) { if (response.data) {
ElMessage.success('配方生成成功!'); ElMessage.success('配方生成成功!');