From 814458d94bb0b1acd2918d03b9d63654e24a2a6c Mon Sep 17 00:00:00 2001 From: fengyuan_yang <1976974459@qq.com> Date: Fri, 23 Jan 2026 14:32:04 +0800 Subject: [PATCH] =?UTF-8?q?2026-01-23=20=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../soIssueNotify/searchIssureNotify.vue | 4 +- src/views/modules/qc/inboundNotification.vue | 2 +- src/views/modules/qc/outboundNotification.vue | 2 +- .../yieldReport/com_process_inspection.vue | 444 +++++++++++++++++- 4 files changed, 442 insertions(+), 10 deletions(-) diff --git a/src/views/modules/orderIssure/soIssueNotify/searchIssureNotify.vue b/src/views/modules/orderIssure/soIssueNotify/searchIssureNotify.vue index df12371..8f410d5 100644 --- a/src/views/modules/orderIssure/soIssueNotify/searchIssureNotify.vue +++ b/src/views/modules/orderIssure/soIssueNotify/searchIssureNotify.vue @@ -1379,13 +1379,13 @@ status: true, fixed: '', columnWidth: 80 - },{ + }, { userId: this.$store.state.user.name, functionId: 701002, serialNumber: '701002Table1Category', tableId: "701002Table1", tableName: "领料申请主表", - columnProp: "category", + columnProp: "categoryName", headerAlign: "center", align: "center", columnLabel: "出库类别", diff --git a/src/views/modules/qc/inboundNotification.vue b/src/views/modules/qc/inboundNotification.vue index 29b19e1..f2f4342 100644 --- a/src/views/modules/qc/inboundNotification.vue +++ b/src/views/modules/qc/inboundNotification.vue @@ -937,7 +937,7 @@ serialNumber: '610Table1Category', tableId: "610Table1", tableName: "收货入库任务表", - columnProp: 'category', + columnProp: 'categoryName', headerAlign: "center", align: "center", columnLabel: '入库类别', diff --git a/src/views/modules/qc/outboundNotification.vue b/src/views/modules/qc/outboundNotification.vue index 379e419..5eda216 100644 --- a/src/views/modules/qc/outboundNotification.vue +++ b/src/views/modules/qc/outboundNotification.vue @@ -945,7 +945,7 @@ serialNumber: '620Table1Category', tableId: "620Table1", tableName: "拣货出库任务表", - columnProp: 'category', + columnProp: 'categoryName', headerAlign: "center", align: "center", columnLabel: '出库类别', diff --git a/src/views/modules/yieldReport/com_process_inspection.vue b/src/views/modules/yieldReport/com_process_inspection.vue index 543ff4f..48a3c27 100644 --- a/src/views/modules/yieldReport/com_process_inspection.vue +++ b/src/views/modules/yieldReport/com_process_inspection.vue @@ -489,6 +489,9 @@ 文件清单 + + 子明细导入 +
@@ -520,9 +523,10 @@ prop="" header-align="center" align="center" - width="80" + width="110" label="操作"> @@ -604,6 +608,17 @@ + + + + - - - - - + + + 上传文件 + + + @@ -967,6 +984,111 @@ + + + + + + + + + + + + 添加 + 删除 + 批量新增 +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + 保存 + 关闭 + +
+ + + + + + + + + + + + + + + + 确定 + 取消 + + +
@@ -1002,13 +1124,25 @@ import { deleteIPQCItemDetails, // 删除检验项目 getIPQCTemplateList, // 获取IPQC模板列表 importIPQCTemplateItems, // 导入模板项目 + selectIPQCSubDetailedRecord, // 子明细记录信息查询 + saveIPQCSubDetailed, // 保存子明细信息 } from "@/api/qc/qc.js" import {getTableDefaultListLanguage, getTableUserListLanguage} from "@/api/table.js" import { getInspectionFile } from '@/api/eam/eam_object_list.js' import { searchQcSopFileList, downloadSopFile } from '@/api/qc/qc.js' +import qcFAIUploadFile from "../qc/qc_FAI_upload_file" +import subDetailUpload from "../qc/sub_detail_upload" +import IqcFileTable from "../qc/IQCFileTable.vue" +import comQcItemImageUploadFile from "../qc/com_qc_itemImage_upload_file" export default { name: 'ComProcessInspection', + components: { + qcFAIUploadFile, + subDetailUpload, + IqcFileTable, + comQcItemImageUploadFile + }, props: { visible: { type: Boolean, @@ -1039,6 +1173,16 @@ export default { default: '' } }, + computed: { + templateTableData() { + let start = (this.pageIndex2 - 1) * this.pageSize2 + let end = start + this.pageSize2 + if (end > this.tableData.length) { + end = this.tableData.length + } + return this.tableData.slice(start, end) + } + }, data() { return { // 查询参数 @@ -1441,9 +1585,78 @@ export default { fileContentList: [], fileLoading: false, fileActiveTab: 'qcFile', + fileColumnList: [ + { + columnProp: 'fileName', + headerAlign: "center", + align: "left", + columnLabel: '文件名称', + columnHidden: false, + columnImage: false, + columnSortable: false, + sortLv: 0, + status: true, + fixed: '', + columnWidth: 200, + showOverflowTooltip: true + }, + { + columnProp: 'createdBy', + headerAlign: "center", + align: "center", + columnLabel: '上传人', + columnHidden: false, + columnImage: false, + columnSortable: false, + sortLv: 0, + status: true, + fixed: '', + columnWidth: 120 + }, + { + columnProp: 'createDate', + headerAlign: "center", + align: "center", + columnLabel: '上传时间', + columnHidden: false, + columnImage: false, + columnSortable: false, + sortLv: 0, + status: true, + fixed: '', + columnWidth: 160 + } + ], sopFileList: [], sopFileLoading: false, currentFileRow: null, + // 子明细相关 + subDetailFlag: false, + subDetailLoading: false, + subDetailData: { + site: '', + buNo: '', + inspectionNo: '', + itemNo: '', + itemDesc: '', + defaultValue: '', + maxValue: '', + minValue: '', + valueTypeDb: '', + subDetailValues: [], + page: 1, + limit: 10, + }, + tableData: [], + checkedDetail: [], + pageIndex2: 1, + pageSize2: 20, + batchAddFlag: false, + batchAddData: { + samplingLocation: '', + samplingLocationB: '', + samplingNumber: 1 + }, // 派工单号相关 seqDetailFlag: false, seqInfoList: [], @@ -2316,6 +2529,225 @@ export default { this.fileFlag = true }, + // 上传文件弹窗 + addUploadFileModal() { + let currentData = { + titleCon: 'IPQC文件上传', + site: this.detailData.site, + buNo: this.detailData.buNo, + createBy: this.$store.state.user.name, + inspectionNo: this.detailData.inspectionNo, + remark: '', + folder: 'qcIPQC', + } + this.$nextTick(() => { + this.$refs.qcFAIUploadFile.init(currentData) + }) + }, + + // 子明细导入弹窗 + subDetailUploadModal() { + let currentData = { + flag: 'IPQC', + site: this.detailData.site, + buNo: this.detailData.buNo, + inspectionNo: this.detailData.inspectionNo + } + this.$nextTick(() => { + this.$refs.subDetailUpload.init(currentData) + }) + }, + + // 上传项目图片弹窗 + uploadImageModal(row) { + let currentData = { + site: this.detailData.site, + buNo: this.detailData.buNo, + createBy: this.$store.state.user.name, + inspectionNo: this.detailData.inspectionNo, + itemNo: row.itemNo, + folder: 'IPQCItemImageFile' + } + this.$nextTick(() => { + this.$refs.comQcItemImageUploadFile.init(currentData) + }) + }, + + // 子明细记录信息查询 + subDetailModal(row) { + this.subDetailLoading = true + this.subDetailData = { + ...row, + site: this.detailData.site, + buNo: this.detailData.buNo, + inspectionNo: this.detailData.inspectionNo, + subDetailValues: [] + } + this.pageIndex2 = 1 + selectIPQCSubDetailedRecord(this.subDetailData).then(({data}) => { + if (data.code === 0) { + this.tableData = data.rows || [] + } + this.subDetailLoading = false + }).catch(() => { + this.subDetailLoading = false + }) + this.batchAddData = { + samplingLocation: '', + samplingLocationB: '', + samplingNumber: 1 + } + this.subDetailFlag = true + }, + + // 子明细分页变化 + sizeChangeHandle2(val) { + this.pageSize2 = val + this.pageIndex2 = 1 + }, + + currentChangeHandle2(val) { + this.pageIndex2 = val + }, + + // 子明细行样式 + rowClassName({row, rowIndex}) { + row.xh = (this.pageIndex2 - 1) * this.pageSize2 + rowIndex + 1 + row.num = row.xh + return '' + }, + + // 子明细多选变化 + handleDetailSelectionChange(val) { + this.checkedDetail = val + }, + + // 添加子明细 + handleAddBtn(row) { + let newRow = { + site: this.detailData.site, + buNo: this.detailData.buNo, + inspectionNo: this.detailData.inspectionNo, + itemNo: row.itemNo, + samplingLocation: '', + samplingLocationB: '', + subDetailValue: '', + subDetailValueB: '', + subDetailValueC: '', + subDetailValueD: '', + subDetailValueE: '', + isSubmit: 'N' + } + this.tableData.push(newRow) + }, + + // 删除子明细 + handleDeleteBtn(row) { + if (this.checkedDetail.length === 0) { + this.$message.warning('请选择要删除的记录!') + return + } + // 过滤已提交的记录 + const canDelete = this.checkedDetail.filter(item => item.isSubmit !== 'Y') + if (canDelete.length === 0) { + this.$message.warning('已提交的记录不能删除!') + return + } + this.tableData = this.tableData.filter(item => !canDelete.includes(item)) + this.checkedDetail = [] + }, + + // 批量新增弹窗 + batchHandleAdd(row) { + this.batchAddData = { + samplingLocation: '', + samplingLocationB: '', + samplingNumber: 1 + } + this.batchAddFlag = true + }, + + // 确认批量新增 + confirmBatchAdd() { + if (!this.batchAddData.samplingNumber || this.batchAddData.samplingNumber < 1) { + this.$message.warning('请输入有效的新增数量!') + return + } + for (let i = 0; i < this.batchAddData.samplingNumber; i++) { + let newRow = { + site: this.detailData.site, + buNo: this.detailData.buNo, + inspectionNo: this.detailData.inspectionNo, + itemNo: this.subDetailData.itemNo, + samplingLocation: this.batchAddData.samplingLocation, + samplingLocationB: this.batchAddData.samplingLocationB, + subDetailValue: '', + subDetailValueB: '', + subDetailValueC: '', + subDetailValueD: '', + subDetailValueE: '', + isSubmit: 'N' + } + this.tableData.push(newRow) + } + this.batchAddFlag = false + }, + + // 保存子明细 + saveSubDetailResult() { + if (this.tableData.length === 0) { + this.$message.warning('没有可保存的数据!') + return + } + this.subDetailData.subDetailValues = this.tableData + saveIPQCSubDetailed(this.subDetailData).then(({data}) => { + if (data && data.code === 0) { + if (data.count > 0) { + this.subDetailData.itemResult = 'N' + this.subDetailData.unqualifiedQuantity = data.count + this.subDetailData.subDetailRecordNum = this.tableData.length + } else { + this.subDetailData.subDetailRecordNum = this.tableData.length > 0 ? this.tableData.length : -1 + this.subDetailData.unqualifiedQuantity = 0 + this.subDetailData.itemResult = 'Y' + } + this.subDetailFlag = false + this.tableData = [] + this.$message.success('保存成功') + this.getInspectionFormData() + } else { + this.$message.error(data.msg || '保存失败') + } + }) + }, + + // 子明细输入框焦点跳转 + nextFocus1(index) { + this.$refs[`${index}b`] && this.$refs[`${index}b`].focus() + }, + nextFocus2(index) { + this.$refs[`${index}c`] && this.$refs[`${index}c`].focus() + }, + nextFocus3(index) { + this.$refs[`${index}d`] && this.$refs[`${index}d`].focus() + }, + nextFocus4(index) { + this.$refs[`${index}e`] && this.$refs[`${index}e`].focus() + }, + nextFocus5(index) { + this.$refs[`${index}f`] && this.$refs[`${index}f`].focus() + }, + nextFocus6(index) { + this.$refs[`${index}g`] && this.$refs[`${index}g`].focus() + }, + nextFocus7(index) { + // 跳转到下一行 + const nextIndex = index + 1 + if (nextIndex < this.templateTableData.length) { + this.$refs[`${nextIndex}a`] && this.$refs[`${nextIndex}a`].focus() + } + }, + // 获取SOP文件列表(过程检验传所有条件:site, partNo, operationDesc, workcenterNo, orderNo) getSopFileList(row) { this.sopFileLoading = true