@@ -1643,6 +1643,27 @@
}
},
+ /**
+ * 加载「检验模板清单」表格;使用序号丢弃过期响应,避免打开弹框时的请求晚于「新增」关闭后的刷新而把列表覆盖成旧数据。
+ */
+ loadTemplateDetailList () {
+ this._detailListLoadSeq = (this._detailListLoadSeq || 0) + 1
+ const seq = this._detailListLoadSeq
+ const param = {
+ site: this.detailData.site,
+ buNo: this.detailData.buNo,
+ partNo: this.detailData.partNo,
+ attributeNo: this.detailData.attributeNo || this.detailData.partNo,
+ attributeType: this.detailData.attributeType || 'A',
+ createBy: this.detailData.createBy
+ }
+ return searchPartAttributeDetails(param).then(({ data }) => {
+ if (seq !== this._detailListLoadSeq) return
+ const rows = (data && data.rows) ? data.rows : []
+ this.detailList = rows.slice()
+ })
+ },
+
// 打开物料模板清单
detailModal (row) {
this.detailData.site = row.site
@@ -1650,12 +1671,8 @@
this.detailData.partNo = row.partNo
this.detailData.attributeNo = row.partNo
this.detailData.partDesc = row.partDesc
- let detailDataTemp = JSON.parse(JSON.stringify(this.detailData));
- detailDataTemp.inspectionTypeNo='';
- searchPartAttributeDetails(detailDataTemp).then(({data}) => {
- this.detailList = data.rows
- })
this.detailModelFlag = true
+ this.loadTemplateDetailList()
},
checkInspectionType () {
@@ -1748,6 +1765,7 @@
this.itemList1 = data.row1
this.itemList2 = data.row2
})
+ this.loadTemplateDetailList()
this.itemSelections1 = []
this.operation = ''
this.resourceId = ''
@@ -1779,6 +1797,7 @@
this.itemList1 = data.row1
this.itemList2 = data.row2
})
+ this.loadTemplateDetailList()
this.itemSelections2 = []
} else {
this.$alert(data.msg, '错误', {
@@ -1788,13 +1807,10 @@
})
},
- // 关闭后刷新列表
+ // 关闭「新增」弹框后刷新父弹框清单(与 loadTemplateDetailList 共用防竞态逻辑)
refreshDetailList () {
- let detailDataTemp = JSON.parse(JSON.stringify(this.detailData));
- detailDataTemp.inspectionTypeNo='';
- searchPartAttributeDetails(detailDataTemp).then(({data}) => {
- this.detailList = data.rows
- })
+ if (!this.detailModelFlag) return
+ this.loadTemplateDetailList()
},
// 删除物料属性中的模板
@@ -1806,11 +1822,7 @@
}).then(() => {
deletePartAttributeDetails(row).then(({data}) => {
if (data && data.code === 0) {
- let detailDataTemp = JSON.parse(JSON.stringify(this.detailData));
- detailDataTemp.inspectionTypeNo='';
- searchPartAttributeDetails(detailDataTemp).then(({data}) => {
- this.detailList = data.rows
- })
+ this.loadTemplateDetailList()
this.$message({
message: '操作成功',
type: 'success',