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(() => {