修改猪栏卡片批次展示
This commit is contained in:
@@ -4,7 +4,7 @@
|
|||||||
<div class="title">猪栏: {{ pen.pen_number }}</div>
|
<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">状态: <el-tag size="small" :type="statusType">{{ pen.status || '未知' }}</el-tag></div>
|
||||||
<div class="info-item">容量: {{ pen.capacity }}</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>
|
||||||
<div class="actions-section">
|
<div class="actions-section">
|
||||||
<el-button size="small" @click="emitEdit">编辑</el-button>
|
<el-button size="small" @click="emitEdit">编辑</el-button>
|
||||||
|
|||||||
@@ -70,6 +70,7 @@
|
|||||||
<script>
|
<script>
|
||||||
import { getPigHouses, deletePigHouse } from '@/api/pigHouse.js';
|
import { getPigHouses, deletePigHouse } from '@/api/pigHouse.js';
|
||||||
import { getPens, deletePen } from '@/api/pen.js';
|
import { getPens, deletePen } from '@/api/pen.js';
|
||||||
|
import { getPigBatches } from '@/api/pigBatch.js';
|
||||||
import PigHouseList from '@/components/PigHouseList.vue';
|
import PigHouseList from '@/components/PigHouseList.vue';
|
||||||
import PigHouseForm from '@/components/PigHouseForm.vue';
|
import PigHouseForm from '@/components/PigHouseForm.vue';
|
||||||
import PenForm from '@/components/PenForm.vue';
|
import PenForm from '@/components/PenForm.vue';
|
||||||
@@ -106,15 +107,17 @@ export default {
|
|||||||
this.loading = true;
|
this.loading = true;
|
||||||
this.error = null;
|
this.error = null;
|
||||||
try {
|
try {
|
||||||
const [pigHousesResponse, pensResponse] = await Promise.all([
|
const [pigHousesResponse, pensResponse, batchesResponse] = await Promise.all([
|
||||||
getPigHouses(),
|
getPigHouses(),
|
||||||
getPens()
|
getPens(),
|
||||||
|
getPigBatches()
|
||||||
]);
|
]);
|
||||||
|
|
||||||
const houses = Array.isArray(pigHousesResponse.data) ? pigHousesResponse.data : [];
|
const houses = Array.isArray(pigHousesResponse.data) ? pigHousesResponse.data : [];
|
||||||
const pens = Array.isArray(pensResponse.data) ? pensResponse.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) {
|
} catch (err) {
|
||||||
this.error = err.message || '无法获取数据';
|
this.error = err.message || '无法获取数据';
|
||||||
console.error('Failed to fetch pig farm data:', err);
|
console.error('Failed to fetch pig farm data:', err);
|
||||||
@@ -122,11 +125,17 @@ export default {
|
|||||||
this.loading = false;
|
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 }]));
|
const houseMap = new Map(houses.map(house => [house.id, { ...house, pens: [], isExpanded: false }]));
|
||||||
|
|
||||||
for (const pen of pens) {
|
for (const pen of pens) {
|
||||||
if (houseMap.has(pen.house_id)) {
|
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());
|
return Array.from(houseMap.values());
|
||||||
|
|||||||
Reference in New Issue
Block a user