Files
pig-farm-controller-fe/src/components/feed/PigNutrientRequirementsDisplay.vue

88 lines
2.3 KiB
Vue
Raw Normal View History

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>