2025-11-22 14:50:57 +08:00
|
|
|
|
<template>
|
|
|
|
|
|
<div class="pig-nutrient-requirements-display">
|
2025-11-22 18:30:01 +08:00
|
|
|
|
<div v-if="!isEditing">
|
|
|
|
|
|
<div class="edit-button-container">
|
|
|
|
|
|
<el-button type="primary" @click="handleEdit">编辑营养需求</el-button>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<el-table :data="nutrientRequirements" border style="width: 100%; max-height: 300px; overflow-y: auto;">
|
|
|
|
|
|
<el-table-column prop="nutrient_name" label="营养素名称"></el-table-column>
|
|
|
|
|
|
<el-table-column prop="min_requirement" label="最小需求量"></el-table-column>
|
|
|
|
|
|
<el-table-column prop="max_requirement" label="最大需求量"></el-table-column>
|
|
|
|
|
|
</el-table>
|
|
|
|
|
|
<div v-if="nutrientRequirements.length === 0" class="no-data-message">
|
|
|
|
|
|
暂无该品种该年龄阶段的营养需求数据。
|
|
|
|
|
|
</div>
|
2025-11-22 14:50:57 +08:00
|
|
|
|
</div>
|
2025-11-22 18:30:01 +08:00
|
|
|
|
|
|
|
|
|
|
<PigNutrientRequirementsEditor
|
|
|
|
|
|
v-else
|
|
|
|
|
|
:initialNutrientRequirements="nutrientRequirements"
|
|
|
|
|
|
:pigTypeId="pigTypeId"
|
|
|
|
|
|
@save="handleSave"
|
|
|
|
|
|
@cancel="handleCancel"
|
|
|
|
|
|
></PigNutrientRequirementsEditor>
|
2025-11-22 14:50:57 +08:00
|
|
|
|
</div>
|
|
|
|
|
|
</template>
|
|
|
|
|
|
|
|
|
|
|
|
<script>
|
2025-11-22 18:30:01 +08:00
|
|
|
|
import { defineComponent, ref } from 'vue';
|
|
|
|
|
|
import PigNutrientRequirementsEditor from './PigNutrientRequirementsEditor.vue';
|
2025-11-22 14:50:57 +08:00
|
|
|
|
|
|
|
|
|
|
export default defineComponent({
|
|
|
|
|
|
name: 'PigNutrientRequirementsDisplay',
|
2025-11-22 18:30:01 +08:00
|
|
|
|
components: {
|
|
|
|
|
|
PigNutrientRequirementsEditor,
|
|
|
|
|
|
},
|
2025-11-22 14:50:57 +08:00
|
|
|
|
props: {
|
|
|
|
|
|
nutrientRequirements: {
|
|
|
|
|
|
type: Array,
|
|
|
|
|
|
default: () => [],
|
|
|
|
|
|
},
|
2025-11-22 18:30:01 +08:00
|
|
|
|
pigTypeId: { // 猪类型ID,用于传递给编辑器组件
|
|
|
|
|
|
type: Number,
|
|
|
|
|
|
required: true,
|
2025-11-22 14:50:57 +08:00
|
|
|
|
},
|
|
|
|
|
|
},
|
2025-11-22 18:30:01 +08:00
|
|
|
|
emits: ['refresh'], // 声明触发的事件,用于通知父组件刷新数据
|
|
|
|
|
|
setup(props, { emit }) {
|
|
|
|
|
|
const isEditing = ref(false); // 控制显示展示模式还是编辑模式
|
|
|
|
|
|
|
|
|
|
|
|
const handleEdit = () => {
|
|
|
|
|
|
isEditing.value = true;
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
const handleSave = () => {
|
|
|
|
|
|
isEditing.value = false;
|
|
|
|
|
|
emit('refresh'); // 通知父组件刷新数据
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
const handleCancel = () => {
|
|
|
|
|
|
isEditing.value = false;
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
return {
|
|
|
|
|
|
isEditing,
|
|
|
|
|
|
handleEdit,
|
|
|
|
|
|
handleSave,
|
|
|
|
|
|
handleCancel,
|
|
|
|
|
|
};
|
|
|
|
|
|
},
|
2025-11-22 14:50:57 +08:00
|
|
|
|
});
|
|
|
|
|
|
</script>
|
|
|
|
|
|
|
|
|
|
|
|
<style scoped>
|
|
|
|
|
|
.pig-nutrient-requirements-display {
|
|
|
|
|
|
padding: 10px;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.no-data-message {
|
|
|
|
|
|
text-align: center;
|
|
|
|
|
|
color: #909399;
|
|
|
|
|
|
margin-top: 20px;
|
|
|
|
|
|
}
|
2025-11-22 18:30:01 +08:00
|
|
|
|
.edit-button-container {
|
|
|
|
|
|
margin-bottom: 20px; /* 调整按钮与表格之间的间距 */
|
|
|
|
|
|
text-align: right;
|
|
|
|
|
|
}
|
2025-11-22 14:50:57 +08:00
|
|
|
|
</style>
|