修改猪栏卡片批次展示

This commit is contained in:
2025-10-23 10:15:45 +08:00
parent dc3f311037
commit 0f9429be45
2 changed files with 15 additions and 6 deletions

View File

@@ -4,7 +4,7 @@
<div class="title">猪栏: {{ pen.pen_number }}</div>
<div class="info-item">状态: <el-tag size="small" :type="statusType">{{ pen.status || '未知' }}</el-tag></div>
<div class="info-item">容量: {{ pen.capacity }}</div>
<div class="info-item">批次ID: {{ pen.pig_batch_id || '未分配' }}</div>
<div class="info-item">批次: {{ pen.batch_number || '未分配' }}</div>
</div>
<div class="actions-section">
<el-button size="small" @click="emitEdit">编辑</el-button>

View File

@@ -70,6 +70,7 @@
<script>
import { getPigHouses, deletePigHouse } from '@/api/pigHouse.js';
import { getPens, deletePen } from '@/api/pen.js';
import { getPigBatches } from '@/api/pigBatch.js';
import PigHouseList from '@/components/PigHouseList.vue';
import PigHouseForm from '@/components/PigHouseForm.vue';
import PenForm from '@/components/PenForm.vue';
@@ -106,15 +107,17 @@ export default {
this.loading = true;
this.error = null;
try {
const [pigHousesResponse, pensResponse] = await Promise.all([
const [pigHousesResponse, pensResponse, batchesResponse] = await Promise.all([
getPigHouses(),
getPens()
getPens(),
getPigBatches()
]);
const houses = Array.isArray(pigHousesResponse.data) ? pigHousesResponse.data : [];
const pens = Array.isArray(pensResponse.data) ? pensResponse.data : [];
const batches = Array.isArray(batchesResponse.data) ? batchesResponse.data : [];
this.pigHousesData = this.assembleData(houses, pens);
this.pigHousesData = this.assembleData(houses, pens, batches);
} catch (err) {
this.error = err.message || '无法获取数据';
console.error('Failed to fetch pig farm data:', err);
@@ -122,11 +125,17 @@ export default {
this.loading = false;
}
},
assembleData(houses, pens) {
assembleData(houses, pens, batches) {
const batchMap = new Map(batches.map(batch => [batch.id, batch.batch_number]));
const houseMap = new Map(houses.map(house => [house.id, { ...house, pens: [], isExpanded: false }]));
for (const pen of pens) {
if (houseMap.has(pen.house_id)) {
houseMap.get(pen.house_id).pens.push(pen);
const penWithBatch = {
...pen,
batch_number: batchMap.get(pen.pig_batch_id) || null
};
houseMap.get(pen.house_id).pens.push(penWithBatch);
}
}
return Array.from(houseMap.values());