From 62801326cb0b948657f1f43e2e673f5d06a94c69 Mon Sep 17 00:00:00 2001 From: huang <1724659546@qq.com> Date: Thu, 23 Oct 2025 18:05:41 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BE=A4=E5=86=85=E8=B0=83=E6=A0=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/PigBatchList.vue | 14 +- src/components/TransferPigsModal.vue | 161 +++++++++++++++++++++++ src/views/pms/PigBatchManagementView.vue | 23 ++++ 3 files changed, 197 insertions(+), 1 deletion(-) create mode 100644 src/components/TransferPigsModal.vue diff --git a/src/components/PigBatchList.vue b/src/components/PigBatchList.vue index 2e932ca9..f81d4962 100644 --- a/src/components/PigBatchList.vue +++ b/src/components/PigBatchList.vue @@ -32,6 +32,15 @@ 增加猪栏 + + 群内调栏 + 编辑 删除 @@ -100,7 +109,7 @@ export default { required: true } }, - emits: ['edit-batch', 'delete-batch', 'add-pen', 'remove-pen', 'assign-pen-to-batch', 'reload-data'], + emits: ['edit-batch', 'delete-batch', 'add-pen', 'remove-pen', 'assign-pen-to-batch', 'reload-data', 'transfer-pigs'], data() { return { addPenDialogVisible: false, @@ -181,6 +190,9 @@ export default { emitDeleteBatch(batch) { this.$emit('delete-batch', batch); }, + emitTransferPigs(batch) { + this.$emit('transfer-pigs', batch); + }, // 猪栏操作 emitRemovePen(pen) { this.$emit('remove-pen', pen); diff --git a/src/components/TransferPigsModal.vue b/src/components/TransferPigsModal.vue new file mode 100644 index 00000000..ec65d0be --- /dev/null +++ b/src/components/TransferPigsModal.vue @@ -0,0 +1,161 @@ + + + + + diff --git a/src/views/pms/PigBatchManagementView.vue b/src/views/pms/PigBatchManagementView.vue index 60591976..574c190c 100644 --- a/src/views/pms/PigBatchManagementView.vue +++ b/src/views/pms/PigBatchManagementView.vue @@ -42,6 +42,7 @@ @modify-pig-count-pen="handleModifyPigCountPen" @remove-pen="handleRemovePen" @assign-pen-to-batch="handleAssignPenToBatch" + @transfer-pigs="handleTransferPigs" @reload-data="loadData" /> @@ -66,6 +67,14 @@ @success="handlePenSuccess" @cancel="penDialogVisible = false" /> + + + @@ -76,6 +85,7 @@ import { getPigHouses } from '@/api/pigHouse.js'; import PigBatchList from '@/components/PigBatchList.vue'; import PigBatchForm from '@/components/PigBatchForm.vue'; import PenForm from '@/components/PenForm.vue'; +import TransferPigsModal from '@/components/TransferPigsModal.vue'; import { Refresh } from '@element-plus/icons-vue'; export default { @@ -84,6 +94,7 @@ export default { PigBatchList, PigBatchForm, PenForm, + TransferPigsModal, Refresh }, data() { @@ -99,6 +110,9 @@ export default { penDialogVisible: false, isEditPen: false, currentPen: {}, + // 调栏模态框状态 + transferDialogVisible: false, + currentBatchForTransfer: {}, // 辅助映射 houseMap: new Map(), // 用于猪栏显示猪舍名称 }; @@ -264,6 +278,15 @@ export default { this.$message.error('分配猪栏失败: ' + (error.response?.data?.message || error.message || '未知错误')); console.error('Failed to assign pen to batch:', error); } + }, + // --- 调栏操作 --- + handleTransferPigs(batch) { + this.currentBatchForTransfer = batch; + this.transferDialogVisible = true; + }, + handleTransferSuccess() { + this.transferDialogVisible = false; + this.loadData(); // 重新加载数据以反映变化 } } }