diff --git a/src/views/modules/customerIssue/customerIssuePDA.vue b/src/views/modules/customerIssue/customerIssuePDA.vue index 845e5b1..c3f0b63 100644 --- a/src/views/modules/customerIssue/customerIssuePDA.vue +++ b/src/views/modules/customerIssue/customerIssuePDA.vue @@ -11,7 +11,7 @@
-
@@ -20,12 +20,12 @@
- 申请单号:{{ material.SHIPMENT_ID }} + shipmentId:{{ material.SHIPMENT_ID }}
- 客户地址:{{ material.RECEIVER_ADDRESS_NAME }} + 客户名称:{{ material.RECEIVER_ADDRESS_NAME }}
diff --git a/src/views/modules/production-issue/directIssue.vue b/src/views/modules/production-issue/directIssue.vue index 077eb9f..67372c9 100644 --- a/src/views/modules/production-issue/directIssue.vue +++ b/src/views/modules/production-issue/directIssue.vue @@ -147,6 +147,52 @@ export default { return date ? moment(date).format("YYYY-MM-DD") : ""; }, + // 保存页面状态到sessionStorage(仅用于从详情页返回时恢复) + savePageStateForDetail() { + const state = { + workOrderNo: this.workOrderNo, + workOrderList: this.workOrderList, + selectedWorkOrder: this.selectedWorkOrder, + materialList: this.materialList, + showOnlySelected: this.showOnlySelected, + }; + sessionStorage.setItem('directIssue_state_fromDetail', JSON.stringify(state)); + }, + + // 从sessionStorage恢复页面状态(仅当从详情页返回时) + restorePageStateFromDetail() { + try { + const shouldRestore = sessionStorage.getItem('directIssue_shouldRestore'); + const savedState = sessionStorage.getItem('directIssue_state_fromDetail'); + + if (shouldRestore === 'true' && savedState) { + const state = JSON.parse(savedState); + this.workOrderNo = state.workOrderNo || ""; + this.workOrderList = state.workOrderList || []; + this.selectedWorkOrder = state.selectedWorkOrder || null; + this.materialList = state.materialList || []; + this.showOnlySelected = state.showOnlySelected || false; + + // 如果发料成功,刷新材料列表 + const needRefresh = sessionStorage.getItem('directIssue_needRefresh'); + if (needRefresh === 'true' && this.selectedWorkOrder) { + this.loadMaterialList(); + } + + // 清除标记 + sessionStorage.removeItem('directIssue_shouldRestore'); + sessionStorage.removeItem('directIssue_state_fromDetail'); + sessionStorage.removeItem('directIssue_needRefresh'); + } + } catch (error) { + console.error('恢复页面状态失败:', error); + // 清除可能损坏的数据 + sessionStorage.removeItem('directIssue_shouldRestore'); + sessionStorage.removeItem('directIssue_state_fromDetail'); + sessionStorage.removeItem('directIssue_needRefresh'); + } + }, + // 查询工单信息 handleSearchWorkOrder() { if (!this.workOrderNo.trim()) { @@ -175,7 +221,7 @@ export default { this.materialList = []; this.showOnlySelected = false; } else { - this.$message.error("未找到该工单信息"); + this.$message.error(data.msg ||"未找到该工单信息"); this.workOrderList = []; this.selectedWorkOrder = null; this.materialList = []; @@ -184,8 +230,7 @@ export default { }) .catch((error) => { this.loading = false; - console.error("查询工单信息失败:", error); - this.$message.error("查询工单信息失败"); + this.$message.error(error.msg || "查询工单信息失败"); }); }, @@ -258,6 +303,8 @@ export default { this.$message.warning('该物料为'+material.reserveIssueMethod+',不支持直接领料,请选择其他物料!'); return; } + // 跳转前保存当前页面状态(用于从详情页返回时恢复) + this.savePageStateForDetail(); this.$router.push({ name: "directIssueDetail", query: { @@ -274,6 +321,8 @@ export default { }, }, mounted() { + // 检查是否从详情页返回,如果是则恢复状态 + this.restorePageStateFromDetail(); // 聚焦工单号输入框 this.$nextTick(() => { if (this.$refs.workOrderInput) { diff --git a/src/views/modules/production-issue/directIssueDetail.vue b/src/views/modules/production-issue/directIssueDetail.vue index dbbb508..b6fa7f9 100644 --- a/src/views/modules/production-issue/directIssueDetail.vue +++ b/src/views/modules/production-issue/directIssueDetail.vue @@ -2,7 +2,7 @@
-
+
直接领料
@@ -202,11 +202,15 @@ export default { }) .then(() => { this.scannedLabels = [] + // 设置标记,表示需要恢复directIssue页面的状态 + sessionStorage.setItem('directIssue_shouldRestore', 'true') this.$router.back() this.$message.success('已清空') }) .catch(() => {}) } else { + // 设置标记,表示需要恢复directIssue页面的状态 + sessionStorage.setItem('directIssue_shouldRestore', 'true') this.$router.back() } }, @@ -241,6 +245,9 @@ export default { .then(({ data }) => { if (data && data.code === 0) { this.$message.success('发料成功') + // 设置标记,表示需要恢复directIssue页面的状态,并刷新材料列表 + sessionStorage.setItem('directIssue_shouldRestore', 'true') + sessionStorage.setItem('directIssue_needRefresh', 'true') this.$router.back() } else { this.$message.error(data.msg || '发料失败') @@ -272,6 +279,12 @@ export default { this.$router.back() } */ }, + // 处理返回操作(头部返回按钮) + handleBack() { + // 设置标记,表示需要恢复directIssue页面的状态 + sessionStorage.setItem('directIssue_shouldRestore', 'true') + this.$router.back() + }, }, mounted() { this.initFromRoute()