diff --git a/src/api/automatedWarehouse/palletPacking.js b/src/api/automatedWarehouse/palletPacking.js index 8228d3a..e70d435 100644 --- a/src/api/automatedWarehouse/palletPacking.js +++ b/src/api/automatedWarehouse/palletPacking.js @@ -20,3 +20,9 @@ export const savePalletDetail = data => createAPI(`/wcsIntegration/savePalletDet // 删除栈板明细(扫出) - AI制作 export const deletePalletDetail = data => createAPI(`/wcsIntegration/deletePalletDetail`,'post',data) + +// 获取编辑位置时的层数选项(排除指定标签) - AI制作 +export const getLayersForEdit = data => createAPI(`/wcsIntegration/getLayersForEdit`,'post',data) + +// 更新栈板明细位置 - AI制作 +export const updatePalletDetailPosition = data => createAPI(`/wcsIntegration/updatePalletDetailPosition`,'post',data) diff --git a/src/views/modules/automatedWarehouse/palletPacking.vue b/src/views/modules/automatedWarehouse/palletPacking.vue index 3078856..94bc697 100644 --- a/src/views/modules/automatedWarehouse/palletPacking.vue +++ b/src/views/modules/automatedWarehouse/palletPacking.vue @@ -116,6 +116,7 @@ v-for="(detail, index) in detailList" :key="index" class="table-row" + @click="handleRowDblClick(detail, index)" >
{{ detail.position }}
{{ detail.layer }}
@@ -196,6 +197,71 @@ + + + +
+ +
+ + +
+ + +
+ + + + +
+ + +
+ + + + +
+
+ + +
@@ -207,7 +273,9 @@ import { getLayersByPosition, validateLabel, savePalletDetail, - deletePalletDetail + deletePalletDetail, + getLayersForEdit, + updatePalletDetailPosition } from '../../../api/automatedWarehouse/palletPacking' export default { @@ -234,6 +302,15 @@ export default { // 栈板明细 detailList: [], + + // 修改位置模态框 + editPositionModalVisible: false, + editSerialNo: '', + editPosition: '', + editLayer: '', + editLayerOptions: [], + editOriginalPosition: '', + editOriginalLayer: '', }; }, methods: { @@ -326,7 +403,6 @@ export default { } }); }, - // 关闭扫码模态框 closeScanModal() { this.scanModalVisible = false; @@ -420,6 +496,95 @@ export default { }); } }, + + // 双击行事件 - 修改位置 + handleRowDblClick(detail, index) { + + this.editSerialNo = detail.serialNo; + this.editPosition = detail.position; + this.editLayer = detail.layer; + this.editOriginalPosition = detail.position; + this.editOriginalLayer = detail.layer; + + // 获取当前位置的层数选项(排除自己) + this.handleEditPositionChange(); + + this.editPositionModalVisible = true; + }, + + // 编辑位置选择变化 + handleEditPositionChange() { + if (this.editPosition) { + getLayersForEdit({ + site: this.site, + palletId: this.palletCode, + position: this.editPosition, + excludeSerialNo: this.editSerialNo + }).then(({ data }) => { + if (data.code === 0) { + this.editLayerOptions = data.layers || []; + // 如果当前选择的层数不在新的选项中,清空选择 + // if (!this.editLayerOptions.includes(this.editLayer)) { + // this.editLayer = ''; + // } + } + }).catch(error => { + console.error('获取层数失败:', error); + this.editLayerOptions = []; + }); + } else { + this.editLayerOptions = []; + this.editLayer = ''; + } + }, + + // 确定修改位置 + confirmEditPosition() { + if (!this.editPosition) { + this.$message.error('请选择位置'); + return; + } + if (!this.editLayer) { + this.$message.error('请选择层数'); + return; + } + + // 检查是否有变化 + if (this.editPosition === this.editOriginalPosition && this.editLayer === this.editOriginalLayer) { + this.$message.warning('位置没有变化'); + return; + } + + updatePalletDetailPosition({ + site: this.site, + palletId: this.palletCode, + serialNo: this.editSerialNo, + newPosition: this.editPosition, + newLayer: this.editLayer + }).then(({ data }) => { + if (data.code === 0) { + this.$message.success('位置修改成功'); + this.closeEditPositionModal(); + this.refreshTable(); + } else { + this.$message.error(data.msg || '位置修改失败'); + } + }).catch(error => { + console.error('位置修改失败:', error); + this.$message.error('位置修改失败'); + }); + }, + + // 关闭修改位置模态框 + closeEditPositionModal() { + this.editPositionModalVisible = false; + this.editSerialNo = ''; + this.editPosition = ''; + this.editLayer = ''; + this.editLayerOptions = []; + this.editOriginalPosition = ''; + this.editOriginalLayer = ''; + }, }, mounted() { this.$nextTick(() => {