From 1be253ca987f5caefd9f2ffc2dfdda3494785b3b Mon Sep 17 00:00:00 2001 From: fengyuan_yang <1976974459@qq.com> Date: Wed, 18 Mar 2026 16:42:21 +0800 Subject: [PATCH] =?UTF-8?q?2026-03-18=20=E8=AF=A2=E4=BB=B7=E7=94=B3?= =?UTF-8?q?=E8=AF=B7=E3=80=81=E9=94=80=E5=94=AE=E6=8A=A5=E4=BB=B7=E3=80=81?= =?UTF-8?q?=E6=B5=8B=E8=AF=95=E7=94=B3=E8=AF=B7=E3=80=81=E6=89=93=E6=A0=B7?= =?UTF-8?q?=E7=94=B3=E8=AF=B7=E3=80=81=E5=88=80=E5=85=B7=E7=94=B3=E8=AF=B7?= =?UTF-8?q?=E8=AE=B0=E5=BD=95=E3=80=81=E5=B7=A5=E7=A8=8B=E5=8F=98=E6=9B=B4?= =?UTF-8?q?=E7=94=B3=E8=AF=B7=E3=80=81=E6=8A=80=E6=9C=AF=E5=8F=82=E6=95=B0?= =?UTF-8?q?=E5=8D=A1=E5=A2=9E=E5=8A=A0=E3=80=90=E6=B5=81=E7=A8=8B=E5=85=B3?= =?UTF-8?q?=E9=97=AD=E3=80=91=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/changeManagement/changeManagement.js | 7 ++++ .../modules/changeManagement/changeRecord.vue | 42 +++++++++++++++++++ .../modules/proofing/requestForProofing.vue | 31 +++++++++++++- .../modules/quotation/requestForQuote.vue | 31 +++++++++++++- src/views/modules/quote/index.vue | 38 ++++++++++++++++- .../modules/quote/primary/quoteSearch.vue | 3 +- .../modules/quote/primary/quoteTable.vue | 11 ++++- .../technicalSpecificationList.vue | 42 +++++++++++++++++++ src/views/modules/test/requestForTest.vue | 31 +++++++++++++- src/views/modules/tooling/searchToolApply.vue | 42 +++++++++++++++++++ 10 files changed, 271 insertions(+), 7 deletions(-) diff --git a/src/api/changeManagement/changeManagement.js b/src/api/changeManagement/changeManagement.js index 5e85bf0..c5c5b5c 100644 --- a/src/api/changeManagement/changeManagement.js +++ b/src/api/changeManagement/changeManagement.js @@ -259,6 +259,13 @@ export const searchDelegateAccess = (data)=> createAPI(`/plm/changeManagement/se */ export const updateShowInQueryFlag = data => createAPI(`/plm/changeManagement/updateShowInQueryFlag`,'post',data) +/** + * 流程关闭 + * @param data + * @returns {*} + */ +export const closeProcess = data => createAPI(`/plm/changeManagement/closeProcess`,'post',data) + diff --git a/src/views/modules/changeManagement/changeRecord.vue b/src/views/modules/changeManagement/changeRecord.vue index 445aa45..dc74812 100644 --- a/src/views/modules/changeManagement/changeRecord.vue +++ b/src/views/modules/changeManagement/changeRecord.vue @@ -54,6 +54,7 @@ {{ "导出" }} 搜索 + 流程关闭 @@ -66,7 +67,14 @@ ref="changeTable" @row-click="changeClickRow" @current-change="currentChange" + @selection-change="selectionChangeHandle" style="width: 100%;"> + + row.changeStatus === '审批中') + if (approvedRows.length === 0) { + this.$message.warning('请勾选状态为"审批中"的单据!') + return + } + this.$confirm(`确定关闭这 ${approvedRows.length} 条工程变更申请的OA流程?关闭后状态将变为"草稿"。`, '流程关闭', { + confirmButtonText: '确定', + cancelButtonText: '取消', + type: 'warning' + }).then(() => { + closeProcess({ + site: this.$store.state.user.site, + documentNos: approvedRows.map(row => row.changeNo), + documentType: 'ECN' + }).then(({data}) => { + if (data && data.code === 0) { + this.$message.success('流程关闭成功') + this.getDataList() + } else { + this.$message.error(data.msg) + } + }).catch(err => { + this.$message.error(err.message || '流程关闭失败') + }) + }).catch(() => {}) + }, + // ======== 列表数据刷新方法 ======== // 获取数据列表 diff --git a/src/views/modules/proofing/requestForProofing.vue b/src/views/modules/proofing/requestForProofing.vue index cdc7ce5..cd38531 100644 --- a/src/views/modules/proofing/requestForProofing.vue +++ b/src/views/modules/proofing/requestForProofing.vue @@ -106,6 +106,7 @@ {{ "导出" }} 搜索 + 流程关闭 @@ -876,7 +877,7 @@ import { searchDelegateAccess, searchDelegateAccessByUser, submitChange } from "../../../api/proofing/proofingInformation"; -import {getNodeAuthority, getApprovalList, checkSuperAdmin} from "../../../api/changeManagement/changeManagement"; +import {getNodeAuthority, getApprovalList, checkSuperAdmin, closeProcess} from "../../../api/changeManagement/changeManagement"; import ProjectInfo from "../quotation/sellForQuotation/projectInfo.vue"; import profingFile from "./profingFile" import proofingAttribute from "../demoComponents/orderProperties" @@ -2937,6 +2938,34 @@ export default { * 复选报价信息 * @param val */ + closeProcessModal() { + const approvedRows = this.proofingSelections.filter(row => row.proofingStatus === '审批中') + if (approvedRows.length === 0) { + this.$message.warning('请勾选状态为"审批中"的单据!') + return + } + this.$confirm(`确定关闭这 ${approvedRows.length} 条打样申请的OA流程?关闭后状态将变为"草稿"。`, '流程关闭', { + confirmButtonText: '确定', + cancelButtonText: '取消', + type: 'warning' + }).then(() => { + closeProcess({ + site: this.$store.state.user.site, + documentNos: approvedRows.map(row => row.proofingNo), + documentType: 'PROOFING' + }).then(({data}) => { + if (data && data.code === 0) { + this.$message.success('流程关闭成功') + this.getDataList() + } else { + this.$message.error(data.msg) + } + }).catch(err => { + this.$message.error(err.message || '流程关闭失败') + }) + }).catch(() => {}) + }, + selectionProofing(val) { this.proofingSelections = val this.$refs.selectDiv.setLengthselected(this.proofingSelections.length) diff --git a/src/views/modules/quotation/requestForQuote.vue b/src/views/modules/quotation/requestForQuote.vue index e47f715..0df9451 100644 --- a/src/views/modules/quotation/requestForQuote.vue +++ b/src/views/modules/quotation/requestForQuote.vue @@ -113,6 +113,7 @@ {{ "导出" }} 搜索 + 流程关闭 @@ -817,7 +818,7 @@ import {projectPartSearchByAnyField, queryProjectByCustomer} from "../../../api/ import OssComponents from "../oss/ossComponents.vue"; import BuSelect from "../base/BuSelect.vue"; import ApprovalInformation from "../changeManagement/approvalInformation.vue"; -import {getApprovalList} from "../../../api/changeManagement/changeManagement"; +import {getApprovalList, closeProcess} from "../../../api/changeManagement/changeManagement"; import CustomerInfo from "./sellForQuotation/customerInfo.vue"; import {isAuth} from "../../../utils"; import FilterSearch from "../../common/filterSearch.vue"; @@ -2782,6 +2783,34 @@ export default { this.$refs.selectDiv.setLengthselected(this.quotationSelections.length) }, + closeProcessModal() { + const approvedRows = this.quotationSelections.filter(row => row.quotationStatus === '审批中') + if (approvedRows.length === 0) { + this.$message.warning('请勾选状态为"审批中"的单据!') + return + } + this.$confirm(`确定关闭这 ${approvedRows.length} 条询价申请的OA流程?关闭后状态将变为"草稿"。`, '流程关闭', { + confirmButtonText: '确定', + cancelButtonText: '取消', + type: 'warning' + }).then(() => { + closeProcess({ + site: this.$store.state.user.site, + documentNos: approvedRows.map(row => row.quotationBatchNo), + documentType: 'QUOTATION' + }).then(({data}) => { + if (data && data.code === 0) { + this.$message.success('流程关闭成功') + this.getDataList() + } else { + this.$message.error(data.msg) + } + }).catch(err => { + this.$message.error(err.message || '流程关闭失败') + }) + }).catch(() => {}) + }, + // ======== 询价结果相关方法 ======== /** * 封装录入方法 diff --git a/src/views/modules/quote/index.vue b/src/views/modules/quote/index.vue index e8b79a6..fe4bfb9 100644 --- a/src/views/modules/quote/index.vue +++ b/src/views/modules/quote/index.vue @@ -27,7 +27,7 @@ import { import PriceCheckProperties from "../quotation/priceCheckProperties.vue"; import ApprovalInformation from "../changeManagement/approvalInformation.vue"; import {getPriceCheckPropertiesList} from "../../../api/quotation/priceCheckProperties"; -import {getApprovalList, getNodeAuthority, checkSuperAdmin} from "../../../api/changeManagement/changeManagement"; +import {getApprovalList, getNodeAuthority, checkSuperAdmin, closeProcess} from "../../../api/changeManagement/changeManagement"; import QuoteGroupDetail from "./detail/quoteGroupDetail.vue"; import {submitChange} from "../../../api/quote/quote"; import {queryQuoteDetail} from "../../../api/quote/quoteDetail"; @@ -537,6 +537,7 @@ export default { filterVisible:false, isFilterSearch: false, filterSearchData: {}, + quoteSelections: [], currentQuote:{ }, @@ -663,6 +664,38 @@ export default { }).catch(() => {}) }, + handleSelectionChange(val) { + this.quoteSelections = val + }, + + handleCloseProcess() { + const approvedRows = this.quoteSelections.filter(row => row.status === '审批中') + if (approvedRows.length === 0) { + this.$message.warning('请勾选状态为"审批中"的单据!') + return + } + this.$confirm(`确定关闭这 ${approvedRows.length} 条销售报价的OA流程?关闭后状态将变为"草稿"。`, '流程关闭', { + confirmButtonText: '确定', + cancelButtonText: '取消', + type: 'warning' + }).then(() => { + closeProcess({ + site: this.$store.state.user.site, + documentNos: approvedRows.map(row => row.quoteVersionNo), + documentType: 'QUOTE' + }).then(({data}) => { + if (data && data.code === 0) { + this.$message.success('流程关闭成功') + this.handleSearch() + } else { + this.$message.error(data.msg) + } + }).catch(err => { + this.$message.error(err.message || '流程关闭失败') + }) + }).catch(() => {}) + }, + handleSearch(index){ let params = { ...this.quoteForm, @@ -1603,7 +1636,7 @@ export default { {{ '导出' }} - + diff --git a/src/views/modules/quote/primary/quoteSearch.vue b/src/views/modules/quote/primary/quoteSearch.vue index 172a8f4..aef9135 100644 --- a/src/views/modules/quote/primary/quoteSearch.vue +++ b/src/views/modules/quote/primary/quoteSearch.vue @@ -115,11 +115,12 @@ export default { - + 查 询 新 增 搜索 + 流程关闭 diff --git a/src/views/modules/quote/primary/quoteTable.vue b/src/views/modules/quote/primary/quoteTable.vue index 1444b36..0857933 100644 --- a/src/views/modules/quote/primary/quoteTable.vue +++ b/src/views/modules/quote/primary/quoteTable.vue @@ -29,6 +29,9 @@ export default { } }, methods:{ + handleSelectionChange(val) { + this.$emit('selectionChange', val) + }, handleRowClick(row, column, event){ if (column.label === '操作'){ return @@ -110,7 +113,13 @@ export default {