diff --git a/src/views/modules/qc/FQCResultEntry.vue b/src/views/modules/qc/FQCResultEntry.vue index a9a31a6..e276bb3 100644 --- a/src/views/modules/qc/FQCResultEntry.vue +++ b/src/views/modules/qc/FQCResultEntry.vue @@ -104,10 +104,9 @@ this.isMustReadWorkFile(file, row)) + }, + saveWorkFileReadToServer(row) { const target = this.resolveWorkFileRow(row) if (!target || !target.inspectionNo || target.workFileRead === 'Y') { @@ -3341,8 +3356,8 @@ export default { }) }, - onWorkFilePreviewed() { - if (this.currentWorkFileRow) { + onWorkFilePreviewed(file) { + if (this.currentWorkFileRow && this.isMustReadWorkFile(file, this.currentWorkFileRow)) { this.saveWorkFileReadToServer(this.currentWorkFileRow) } }, @@ -3382,7 +3397,8 @@ export default { } else { this.fileContentList = [] } - this.$set(this.resolveWorkFileRow(row), 'hasWorkFile', this.fileContentList.length > 0 ? 'Y' : 'N') + const mustReadFiles = this.getMustReadWorkFiles(this.fileContentList, row) + this.$set(this.resolveWorkFileRow(row), 'hasWorkFile', mustReadFiles.length > 0 ? 'Y' : 'N') this.fileLoading = false }) .catch(() => { @@ -3675,28 +3691,29 @@ export default { }) }, - // 明细记录信息查询 + // 明细记录信息查询:无文件→无需阅读直接进;有需阅读文件且未读才拦截 detailModal(row) { - if (row.state === '待检验' && row.workFileRead !== 'Y') { - if (row.hasWorkFile === 'N') { + if (row.state !== '待检验') { + this.openDetailModal(row) + return + } + if (row.workFileRead === 'Y' || row.hasWorkFile === 'N') { + this.openDetailModal(row) + return + } + this.fetchWorkFiles(row).then(files => { + const target = this.resolveWorkFileRow(row) + const mustReadFiles = this.getMustReadWorkFiles(files, target) + this.$set(target, 'hasWorkFile', mustReadFiles.length > 0 ? 'Y' : 'N') + if (mustReadFiles.length === 0 || target.workFileRead === 'Y') { this.openDetailModal(row) return } - this.fetchWorkFiles(row).then(files => { - const target = this.resolveWorkFileRow(row) - this.$set(target, 'hasWorkFile', files.length > 0 ? 'Y' : 'N') - if (files.length > 0 && target.workFileRead !== 'Y') { - this.$message.warning('请先预览工作文件后再进行检验操作') - this.currentWorkFileRow = target - this.fileContentList = files - this.fileFlag = true - return - } - this.openDetailModal(row) - }) - return - } - this.openDetailModal(row) + this.$message.warning('请先预览工作文件后再进行检验操作') + this.currentWorkFileRow = target + this.fileContentList = files + this.fileFlag = true + }) }, openDetailModal(row) { diff --git a/src/views/modules/qc/IPQCResultEntry.vue b/src/views/modules/qc/IPQCResultEntry.vue index 67d9c1e..a714351 100644 --- a/src/views/modules/qc/IPQCResultEntry.vue +++ b/src/views/modules/qc/IPQCResultEntry.vue @@ -140,10 +140,9 @@ label="是否阅读"> this.isMustReadWorkFile(file, row)) + }, + saveWorkFileReadToServer (row) { const target = this.resolveWorkFileRow(row) if (!target || !target.inspectionNo || target.workFileRead === 'Y') { @@ -3067,8 +3082,8 @@ }) }, - onWorkFilePreviewed () { - if (this.currentWorkFileRow) { + onWorkFilePreviewed (file) { + if (this.currentWorkFileRow && this.isMustReadWorkFile(file, this.currentWorkFileRow)) { this.saveWorkFileReadToServer(this.currentWorkFileRow) } }, @@ -3105,7 +3120,8 @@ } else { this.fileContentList = [] } - this.$set(this.resolveWorkFileRow(row), 'hasWorkFile', this.fileContentList.length > 0 ? 'Y' : 'N') + const mustReadFiles = this.getMustReadWorkFiles(this.fileContentList, row) + this.$set(this.resolveWorkFileRow(row), 'hasWorkFile', mustReadFiles.length > 0 ? 'Y' : 'N') this.fileLoading = false }).catch(()=>{ this.fileLoading = false @@ -3774,28 +3790,29 @@ }) }, - // 明细记录信息查询 + // 明细记录信息查询:无文件→无需阅读直接进;有需阅读文件且未读才拦截 detailModal (row) { - if (row.state === '待检验' && row.workFileRead !== 'Y') { - if (row.hasWorkFile === 'N') { + if (row.state !== '待检验') { + this.openDetailModal(row) + return + } + if (row.workFileRead === 'Y' || row.hasWorkFile === 'N') { + this.openDetailModal(row) + return + } + this.fetchWorkFiles(row).then(files => { + const target = this.resolveWorkFileRow(row) + const mustReadFiles = this.getMustReadWorkFiles(files, target) + this.$set(target, 'hasWorkFile', mustReadFiles.length > 0 ? 'Y' : 'N') + if (mustReadFiles.length === 0 || target.workFileRead === 'Y') { this.openDetailModal(row) return } - this.fetchWorkFiles(row).then(files => { - const target = this.resolveWorkFileRow(row) - this.$set(target, 'hasWorkFile', files.length > 0 ? 'Y' : 'N') - if (files.length > 0 && target.workFileRead !== 'Y') { - this.$message.warning('请先预览工作文件后再进行检验操作') - this.currentWorkFileRow = target - this.fileContentList = files - this.fileFlag = true - return - } - this.openDetailModal(row) - }) - return - } - this.openDetailModal(row) + this.$message.warning('请先预览工作文件后再进行检验操作') + this.currentWorkFileRow = target + this.fileContentList = files + this.fileFlag = true + }) }, openDetailModal (row) { diff --git a/src/views/modules/qc/IQCFileTable.vue b/src/views/modules/qc/IQCFileTable.vue index 1104b2d..4193336 100644 --- a/src/views/modules/qc/IQCFileTable.vue +++ b/src/views/modules/qc/IQCFileTable.vue @@ -132,6 +132,7 @@ export default { // 释放URL 对象 URL.revokeObjectURL(linkNode.href) document.body.removeChild(linkNode) + this.emitFilePreviewed(row) }) }, @@ -156,6 +157,7 @@ export default { // 释放URL 对象 URL.revokeObjectURL(linkNode.href) document.body.removeChild(linkNode) + this.emitFilePreviewed(row) }) }, diff --git a/src/views/modules/qc/PQCResultEntry.vue b/src/views/modules/qc/PQCResultEntry.vue index e7cbcb2..b6a9e1c 100644 --- a/src/views/modules/qc/PQCResultEntry.vue +++ b/src/views/modules/qc/PQCResultEntry.vue @@ -3949,6 +3949,23 @@ export default { }, Transfer (type) { + if (!this.detailData.operator || this.detailData.operator === '') { + this.$message.warning('请选择协同人员!') + return + } + if (!this.detailData.responsiblePerson || this.detailData.responsiblePerson === '') { + this.$message.warning('请选择责任人!') + return + } + if (this.detailList.length > 0) { + for (let i = 0; i < this.detailList.length; i++) { + const item = this.detailList[i] + if (item.valueTypeDb === 'N' && (item.numberValue === '' || item.numberValue == null)) { + this.$message.warning('检验项目【'+ item.itemNo+'-'+ (item.itemDesc || (i + 1)) + '】实测值不能为空!') + return + } + } + } if (type === '2') { // if (this.detailData.inspectionResult === '' || this.detailData.inspectionResult == null) { // this.$message.warning('请选择检验结论!')