|
|
|
@ -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) { |
|
|
|
|