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 @@
+
+ {this.getFileContentData(this.detailData)}" v-drag>
+
+
+
+
+
+
+
+
+
+ 添加
+ 删除
+ 批量新增
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 保存
+ 关闭
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 确定
+ 取消
+
+
+
@@ -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