修改猪栏卡片批次展示
This commit is contained in:
@@ -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>
|
||||
|
||||
@@ -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());
|
||||
|
||||
Reference in New Issue
Block a user