修改猪栏卡片批次展示
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