|
|
@ -22,6 +22,22 @@ |
|
|
ref="workOrderInput" |
|
|
ref="workOrderInput" |
|
|
/> |
|
|
/> |
|
|
</div> |
|
|
</div> |
|
|
|
|
|
<div class="search-container"> |
|
|
|
|
|
<el-input |
|
|
|
|
|
clearable |
|
|
|
|
|
v-model="releaseNo" |
|
|
|
|
|
placeholder="请输入下达号(默认*)" |
|
|
|
|
|
@keyup.enter.native="handleSearchWorkOrder" |
|
|
|
|
|
class="narrow-input" |
|
|
|
|
|
/> |
|
|
|
|
|
<el-input |
|
|
|
|
|
clearable |
|
|
|
|
|
v-model="sequenceNo" |
|
|
|
|
|
placeholder="请输入序列号(默认*)" |
|
|
|
|
|
@keyup.enter.native="handleSearchWorkOrder" |
|
|
|
|
|
class="narrow-input" |
|
|
|
|
|
/> |
|
|
|
|
|
</div> |
|
|
|
|
|
|
|
|
<!-- 工单信息卡片列表 --> |
|
|
<!-- 工单信息卡片列表 --> |
|
|
<!-- <div class="work-order-list" v-if="workOrderList.length > 0"> |
|
|
<!-- <div class="work-order-list" v-if="workOrderList.length > 0"> |
|
|
@ -114,7 +130,7 @@ |
|
|
</div> |
|
|
</div> |
|
|
|
|
|
|
|
|
<!-- 加载状态 --> |
|
|
<!-- 加载状态 --> |
|
|
<div v-if="loading" class="loading-state"> |
|
|
|
|
|
|
|
|
<div v-if="loading||detailLoading" class="loading-state"> |
|
|
<i class="el-icon-loading"></i> |
|
|
<i class="el-icon-loading"></i> |
|
|
<p>加载中...</p> |
|
|
<p>加载中...</p> |
|
|
</div> |
|
|
</div> |
|
|
@ -130,11 +146,14 @@ export default { |
|
|
data() { |
|
|
data() { |
|
|
return { |
|
|
return { |
|
|
workOrderNo: "", |
|
|
workOrderNo: "", |
|
|
|
|
|
releaseNo: "*", |
|
|
|
|
|
sequenceNo: "*", |
|
|
workOrderList: [], |
|
|
workOrderList: [], |
|
|
selectedWorkOrder: null, |
|
|
selectedWorkOrder: null, |
|
|
materialList: [], |
|
|
materialList: [], |
|
|
selectedMaterial: null, |
|
|
selectedMaterial: null, |
|
|
loading: false, |
|
|
loading: false, |
|
|
|
|
|
detailLoading: false, |
|
|
}; |
|
|
}; |
|
|
}, |
|
|
}, |
|
|
methods: { |
|
|
methods: { |
|
|
@ -145,6 +164,8 @@ export default { |
|
|
savePageStateForIssueList() { |
|
|
savePageStateForIssueList() { |
|
|
const state = { |
|
|
const state = { |
|
|
workOrderNo: this.workOrderNo, |
|
|
workOrderNo: this.workOrderNo, |
|
|
|
|
|
releaseNo: this.releaseNo, |
|
|
|
|
|
sequenceNo: this.sequenceNo, |
|
|
workOrderList: this.workOrderList, |
|
|
workOrderList: this.workOrderList, |
|
|
selectedWorkOrder: this.selectedWorkOrder, |
|
|
selectedWorkOrder: this.selectedWorkOrder, |
|
|
materialList: this.materialList, |
|
|
materialList: this.materialList, |
|
|
@ -159,6 +180,8 @@ export default { |
|
|
if (shouldRestore === 'true' && savedState) { |
|
|
if (shouldRestore === 'true' && savedState) { |
|
|
const state = JSON.parse(savedState); |
|
|
const state = JSON.parse(savedState); |
|
|
this.workOrderNo = state.workOrderNo || ""; |
|
|
this.workOrderNo = state.workOrderNo || ""; |
|
|
|
|
|
this.releaseNo = state.releaseNo || "*"; |
|
|
|
|
|
this.sequenceNo = state.sequenceNo || "*"; |
|
|
this.workOrderList = state.workOrderList || []; |
|
|
this.workOrderList = state.workOrderList || []; |
|
|
this.selectedWorkOrder = state.selectedWorkOrder || null; |
|
|
this.selectedWorkOrder = state.selectedWorkOrder || null; |
|
|
this.materialList = state.materialList || []; |
|
|
this.materialList = state.materialList || []; |
|
|
@ -180,13 +203,15 @@ export default { |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
this.loading = true; |
|
|
this.loading = true; |
|
|
|
|
|
this.detailLoading = true; |
|
|
const params = { |
|
|
const params = { |
|
|
workOrderNo: this.workOrderNo.trim(), |
|
|
workOrderNo: this.workOrderNo.trim(), |
|
|
|
|
|
releaseNo: (this.releaseNo || "*").trim() || "*", |
|
|
|
|
|
sequenceNo: (this.sequenceNo || "*").trim() || "*", |
|
|
site: localStorage.getItem('site'), |
|
|
site: localStorage.getItem('site'), |
|
|
}; |
|
|
}; |
|
|
|
|
|
|
|
|
getReturnWorkOrderInfo(params).then(({ data }) => { |
|
|
getReturnWorkOrderInfo(params).then(({ data }) => { |
|
|
this.loading = false; |
|
|
|
|
|
console.log("工单信息", data); |
|
|
console.log("工单信息", data); |
|
|
|
|
|
|
|
|
if ( |
|
|
if ( |
|
|
@ -208,8 +233,9 @@ export default { |
|
|
} |
|
|
} |
|
|
}) |
|
|
}) |
|
|
.catch((error) => { |
|
|
.catch((error) => { |
|
|
this.loading = false; |
|
|
|
|
|
this.$message.error(error.msg); |
|
|
this.$message.error(error.msg); |
|
|
|
|
|
}).finally(() => { |
|
|
|
|
|
this.loading = false; |
|
|
}); |
|
|
}); |
|
|
}, |
|
|
}, |
|
|
|
|
|
|
|
|
@ -228,12 +254,15 @@ export default { |
|
|
|
|
|
|
|
|
const params = { |
|
|
const params = { |
|
|
workOrderNo: this.selectedWorkOrder.orderNo, |
|
|
workOrderNo: this.selectedWorkOrder.orderNo, |
|
|
|
|
|
releaseNo: (this.releaseNo || "*").trim() || "*", |
|
|
|
|
|
sequenceNo: (this.sequenceNo || "*").trim() || "*", |
|
|
site: localStorage.getItem('site'), |
|
|
site: localStorage.getItem('site'), |
|
|
}; |
|
|
}; |
|
|
|
|
|
|
|
|
getWorkOrderMaterials(params) |
|
|
getWorkOrderMaterials(params) |
|
|
.then(({ data }) => { |
|
|
.then(({ data }) => { |
|
|
if (data && data.code === 0) { |
|
|
if (data && data.code === 0) { |
|
|
|
|
|
this.detailLoading = false; |
|
|
this.materialList = (data.materials || []).map((item, index) => ({ |
|
|
this.materialList = (data.materials || []).map((item, index) => ({ |
|
|
...item, |
|
|
...item, |
|
|
id: index + 1, |
|
|
id: index + 1, |
|
|
@ -246,6 +275,8 @@ export default { |
|
|
.catch((error) => { |
|
|
.catch((error) => { |
|
|
console.error('获取材料清单失败:', error); |
|
|
console.error('获取材料清单失败:', error); |
|
|
this.$message.error('获取材料清单失败'); |
|
|
this.$message.error('获取材料清单失败'); |
|
|
|
|
|
}).finally(() => { |
|
|
|
|
|
this.detailLoading = false; |
|
|
}); |
|
|
}); |
|
|
}, |
|
|
}, |
|
|
|
|
|
|
|
|
@ -257,6 +288,8 @@ export default { |
|
|
name: 'productionReturnIssueList', |
|
|
name: 'productionReturnIssueList', |
|
|
query: { |
|
|
query: { |
|
|
workOrderNo: this.selectedWorkOrder.orderNo, |
|
|
workOrderNo: this.selectedWorkOrder.orderNo, |
|
|
|
|
|
releaseNo: (this.selectedWorkOrder.releaseNo || "*").trim() || "*", |
|
|
|
|
|
sequenceNo: (this.selectedWorkOrder.sequenceNo || "*").trim() || "*", |
|
|
componentPartNo: material.componentPartNo, |
|
|
componentPartNo: material.componentPartNo, |
|
|
componentPartDesc: material.componentPartDesc, |
|
|
componentPartDesc: material.componentPartDesc, |
|
|
lineItemNo: material.lineItemNo, |
|
|
lineItemNo: material.lineItemNo, |
|
|
@ -321,7 +354,7 @@ export default { |
|
|
|
|
|
|
|
|
/* 搜索容器 */ |
|
|
/* 搜索容器 */ |
|
|
.search-container { |
|
|
.search-container { |
|
|
padding: 12px 16px; |
|
|
|
|
|
|
|
|
padding: 3px 16px; |
|
|
background: white; |
|
|
background: white; |
|
|
display: flex; |
|
|
display: flex; |
|
|
align-items: center; |
|
|
align-items: center; |
|
|
@ -332,6 +365,14 @@ export default { |
|
|
flex: 1; |
|
|
flex: 1; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
.narrow-input { |
|
|
|
|
|
width: 120px; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
.narrow-input ::v-deep .el-input__inner { |
|
|
|
|
|
text-align: center; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
/* 工单列表 */ |
|
|
/* 工单列表 */ |
|
|
.work-order-list { |
|
|
.work-order-list { |
|
|
overflow-y: auto; |
|
|
overflow-y: auto; |
|
|
|