diff --git a/src/views/modules/quality/com_qualityIssueDetail.vue b/src/views/modules/quality/com_qualityIssueDetail.vue index f535f66..b9c36e8 100644 --- a/src/views/modules/quality/com_qualityIssueDetail.vue +++ b/src/views/modules/quality/com_qualityIssueDetail.vue @@ -1,355 +1,6 @@ @@ -445,82 +95,13 @@ export default { } }, data() { - return { - isEditMode: false, - editData: {}, - saveLoading: false - } - }, - watch: { - detailData: { - handler(newVal) { - if (newVal && Object.keys(newVal).length) { - this.initEditData() - } - }, - immediate: true, - deep: true - } + return {} }, methods: { formatDate(dateStr) { if (!dateStr) return '' // 如果包含时分秒,截取前10位 return dateStr.length > 10 ? dateStr.substring(0, 10) : dateStr - }, - initEditData() { - this.editData = { - issueDate: this.detailData.issueDate, - supplierResponsible: this.detailData.supplierResponsible, - plant: this.detailData.plant, - claimNo: this.detailData.claimNo, - productCategory: this.detailData.productCategory, - partNo: this.detailData.partNo, - batchQty: this.detailData.batchQty, - rejectBatchQty: this.detailData.rejectBatchQty, - receiveComplaintDate: this.detailData.receiveComplaintDate, - receiveSampleDate: this.detailData.receiveSampleDate, - issueSummary: this.detailData.issueSummary, - issueDescription: this.detailData.issueDescription, - levelNo: this.detailData.levelNo, - mode1: this.detailData.mode1, - mode2: this.detailData.mode2, - mode3: this.detailData.mode3, - inspector: this.detailData.inspector, - requireReplyDate: this.detailData.requireReplyDate, - whyEscape: this.detailData.whyEscape, - analysis: this.detailData.analysis, - correctiveAction: this.detailData.correctiveAction, - replyBy: this.detailData.replyBy, - replyTime: this.detailData.replyTime, - entryBy: this.detailData.entryBy, - entryDate: this.detailData.entryDate, - claimFlag: this.detailData.claimFlag, - claimAmount: this.detailData.claimAmount, - disposalRemark: this.detailData.disposalRemark, - entryByClaim: this.detailData.entryByClaim, - entryDateClaim: this.detailData.entryDateClaim, - closeBy: this.detailData.closeBy, - closeTime: this.detailData.closeTime - } - }, - handleEdit() { - this.isEditMode = true - this.initEditData() - }, - handleCancelEdit() { - this.isEditMode = false - this.initEditData() - }, - handleSave() { - this.saveLoading = true - // 触发父组件的保存事件,传递修改后的数据 - this.$emit('save', this.editData, (success) => { - this.saveLoading = false - if (success !== false) { - this.isEditMode = false - } - }) } } } @@ -788,6 +369,11 @@ export default { min-width: 80px; } +/* 隐藏修改按钮 */ +.btn-area .el-button--primary { + display: none; +} + .claim-section /deep/ .el-select { width: 100%; } diff --git a/src/views/modules/quality/qualityIssueList.vue b/src/views/modules/quality/qualityIssueList.vue index 5432a3b..2684d54 100644 --- a/src/views/modules/quality/qualityIssueList.vue +++ b/src/views/modules/quality/qualityIssueList.vue @@ -134,7 +134,9 @@ - + @@ -1222,6 +1224,41 @@ export default { this.currentRow = row ? JSON.parse(JSON.stringify(row)) : {} }, + // 保存详情(从子组件触发) + handleSaveDetail (editData, callback) { + if (!this.currentRow || !this.currentRow.issueNo) { + this.$message.warning('请选择要保存的数据') + callback && callback(false) + return + } + + // 构建提交数据,合并当前行的原始数据和编辑后的数据 + const submitData = { + site: this.currentRow.site, + issueNo: this.currentRow.issueNo, + ...editData + } + + console.log('保存详情数据:', submitData) + + updateQualityIssue(submitData).then(({ data }) => { + console.log('更新接口返回:', data) + if (data.code === 0) { + this.$message.success('保存成功') + // 刷新列表和详情 + this.getMainData() + callback && callback(true) + } else { + this.$message.error(data.msg || '保存失败') + callback && callback(false) + } + }).catch((error) => { + console.error('保存接口错误:', error) + this.$message.error('保存失败,请稍后重试') + callback && callback(false) + }) + }, + // 新增质量问题 addQualityIssue () { this.addDialogVisible = true