From 7353fde4cb2663679bfc1ae8e3519eeba6e567c1 Mon Sep 17 00:00:00 2001 From: qiankanghui Date: Wed, 3 Jun 2026 17:09:42 +0800 Subject: [PATCH] =?UTF-8?q?feat(quality):=20=E6=B7=BB=E5=8A=A0=E8=B4=A8?= =?UTF-8?q?=E9=87=8F=E9=97=AE=E8=AF=A6=E6=83=85=E9=A1=B5=E9=9D=A2=E5=8F=8A?= =?UTF-8?q?PO=E5=88=97=E8=A1=A8=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 创建了质量问题详情页面com_qualityIssueDetail.vue,展示问题详细信息 - 实现了质量问题PO列表管理页面com_qualityIssuePoList.vue,支持PO的选择和关联 - 添加了质量问题相关的API接口定义,包括PO列表查询和绑定功能 - 集成了PO列表到质量问题主列表页面,实现多标签页展示功能 --- src/api/quality/qualityIssue.js | 8 + .../quality/com_qualityIssueDetail.vue | 4 - .../quality/com_qualityIssuePoList.vue | 424 ++++++++++++++++++ .../modules/quality/qualityIssueList.vue | 59 ++- 4 files changed, 477 insertions(+), 18 deletions(-) create mode 100644 src/views/modules/quality/com_qualityIssuePoList.vue diff --git a/src/api/quality/qualityIssue.js b/src/api/quality/qualityIssue.js index fae9531..5d80a4e 100644 --- a/src/api/quality/qualityIssue.js +++ b/src/api/quality/qualityIssue.js @@ -20,3 +20,11 @@ export const saveClaim = (data) => createAPI(`/srm/qualityIssue/saveClaim`, 'pos // 关闭质量问题 export const closeQualityIssue = (data) => createAPI(`/srm/qualityIssue/close`, 'post', data) + +export const getIssuePoList = data => createAPI('/srm/qualityIssue/getIssuePoList', 'post', data) + +export const getAvailablePoList = data => createAPI('/srm/qualityIssue/getAvailablePoList', 'post', data) + +export const saveIssuePo = data => createAPI('/srm/qualityIssue/bindIssuePo', 'post', data) + +export const deleteIssuePo = data => createAPI('/srm/qualityIssue/deleteIssuePo', 'post', data) diff --git a/src/views/modules/quality/com_qualityIssueDetail.vue b/src/views/modules/quality/com_qualityIssueDetail.vue index 4517ae1..0e50619 100644 --- a/src/views/modules/quality/com_qualityIssueDetail.vue +++ b/src/views/modules/quality/com_qualityIssueDetail.vue @@ -53,10 +53,6 @@
-
- PO No: - {{ detailData.poNo }} -
批次数量: diff --git a/src/views/modules/quality/com_qualityIssuePoList.vue b/src/views/modules/quality/com_qualityIssuePoList.vue new file mode 100644 index 0000000..26d1a17 --- /dev/null +++ b/src/views/modules/quality/com_qualityIssuePoList.vue @@ -0,0 +1,424 @@ + + + + + diff --git a/src/views/modules/quality/qualityIssueList.vue b/src/views/modules/quality/qualityIssueList.vue index 2cb99e0..a0b992e 100644 --- a/src/views/modules/quality/qualityIssueList.vue +++ b/src/views/modules/quality/qualityIssueList.vue @@ -130,11 +130,19 @@ - + + + + + @@ -191,11 +199,6 @@ - - - - - @@ -218,9 +221,6 @@ - - - - @@ -703,13 +702,15 @@ import { queryQualityIssuePage, saveQualityIssue,deleteQualityIssue,updateQualit import Chooselist from '@/views/modules/common/Chooselist_eam' import ComQualityIssueDetail from './com_qualityIssueDetail.vue' import ComQualityIssueAttachment from './com_qualityIssueAttachment.vue' +import ComQualityIssuePo from './com_qualityIssuePoList.vue' import excel from '@/utils/excel-util.js' export default { components: { Chooselist, QualityIssueDetail: ComQualityIssueDetail, - QualityIssueAttachment: ComQualityIssueAttachment + QualityIssueAttachment: ComQualityIssueAttachment, + QualityIssuePoList: ComQualityIssuePo }, data () { return { @@ -1029,8 +1030,15 @@ export default { }, mounted () { this.$nextTick(() => { - this.height = (window.innerHeight - 220) / 2 - this.detailHeight = (window.innerHeight - 220) / 2 + // 计算查询区域和分页的高度 + const queryHeight = 220 // 查询条件大约高度 + const paginationHeight = 40 // 分页大约高度 + const availableHeight = window.innerHeight - queryHeight - paginationHeight - 40 // 40为余量 + + // 主表格和页签各占一半 + this.height = availableHeight * 0.5 + this.detailHeight = availableHeight * 0.5 + this.getMainData() }) }, @@ -1117,6 +1125,12 @@ export default { this.$refs.attachmentTab.loadAttachmentList() } }) + }else if(tab.name === 'po') { + this.$nextTick(() => { + if (this.$refs.qualityIssuePo) { + this.$refs.qualityIssuePo.loadData() + } + }) } }, @@ -1726,8 +1740,25 @@ export default { font-size: 13px; } +/deep/ .customer-tab { + overflow: hidden; + margin-top: 10px !important; + height: calc(60vh - 100px); + display: flex; + flex-direction: column; +} + /deep/ .customer-tab .el-tabs__content { - padding: 5px !important; + padding: 0 !important; + flex: 1; + overflow: hidden; + display: flex; + flex-direction: column; +} + +/deep/ .customer-tab .el-tab-pane { + height: 100%; + overflow-y: auto; } .add-dialog-form /deep/ .el-form-item {