Browse Source

2026-03-18

询价申请、销售报价、测试申请、打样申请、刀具申请记录、工程变更申请、技术参数卡增加【流程关闭】功能
master
fengyuan_yang 3 months ago
parent
commit
1be253ca98
  1. 7
      src/api/changeManagement/changeManagement.js
  2. 42
      src/views/modules/changeManagement/changeRecord.vue
  3. 31
      src/views/modules/proofing/requestForProofing.vue
  4. 31
      src/views/modules/quotation/requestForQuote.vue
  5. 38
      src/views/modules/quote/index.vue
  6. 3
      src/views/modules/quote/primary/quoteSearch.vue
  7. 11
      src/views/modules/quote/primary/quoteTable.vue
  8. 42
      src/views/modules/sampleManagement/technicalSpecificationList.vue
  9. 31
      src/views/modules/test/requestForTest.vue
  10. 42
      src/views/modules/tooling/searchToolApply.vue

7
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)

42
src/views/modules/changeManagement/changeRecord.vue

@ -54,6 +54,7 @@
<span>{{ "导出" }}</span>
</download-excel>
<el-button @click="filterVisible = true">搜索</el-button>
<el-button type="warning" @click="closeProcessModal()">流程关闭</el-button>
</el-form-item>
</el-form>
@ -66,7 +67,14 @@
ref="changeTable"
@row-click="changeClickRow"
@current-change="currentChange"
@selection-change="selectionChangeHandle"
style="width: 100%;">
<el-table-column
type="selection"
header-align="center"
align="center"
width="50">
</el-table-column>
<el-table-column
v-for="(item,index) in columnList" :key="index"
:sortable="item.columnSortable"
@ -1502,6 +1510,7 @@
checkSuperAdmin, //
searchDelegateAccess,
deleteTempChangeInfo, //
closeProcess,
} from '@/api/changeManagement/changeManagement.js'
import {
getNodeList
@ -1714,6 +1723,7 @@
exportHeader: ['工程变更记录'],
exportFooter: [],
resultList: [],
changeSelections: [],
// ======== ========
height: 200,
secondHeight: 200,
@ -3818,6 +3828,38 @@
}
},
selectionChangeHandle(val) {
this.changeSelections = val
},
closeProcessModal() {
const approvedRows = this.changeSelections.filter(row => 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(() => {})
},
// ======== ========
//

31
src/views/modules/proofing/requestForProofing.vue

@ -106,6 +106,7 @@
<span>{{ "导出" }}</span>
</download-excel>
<el-button @click="filterVisible = true">搜索</el-button>
<el-button type="warning" @click="closeProcessModal()">流程关闭</el-button>
</el-form-item>
</el-form>
@ -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)

31
src/views/modules/quotation/requestForQuote.vue

@ -113,6 +113,7 @@
<span>{{ "导出" }}</span>
</download-excel>
<el-button @click="filterVisible = true">搜索</el-button>
<el-button type="warning" @click="closeProcessModal()">流程关闭</el-button>
</el-form-item>
</el-form>
@ -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(() => {})
},
// ======== ========
/**
* 封装录入方法

38
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 {
<i v-if="exportLoading" class="el-icon-loading"></i>
<span>{{ '导出' }}</span>
</download-excel>
<quote-search v-if="isMenu" v-model:quote="quoteForm" :node-options="nodeOptions" @filterSearch="filterVisible = true" @search="handleSearch" @save="handleSave"></quote-search>
<quote-search v-if="isMenu" v-model:quote="quoteForm" :node-options="nodeOptions" @filterSearch="filterVisible = true" @search="handleSearch" @save="handleSave" @closeProcess="handleCloseProcess"></quote-search>
<quote-table v-loading="searchLoading"
:current-row="currentQuote"
:columns="columns"
@ -1616,6 +1649,7 @@ export default {
@queryById="handleQueryById"
@againQuote="handleAgainQuote"
@editStatus="handleEditStatus"
@selectionChange="handleSelectionChange"
:data-list="dataList"
:issue-loading="submitLoading"
:height="height">

3
src/views/modules/quote/primary/quoteSearch.vue

@ -115,11 +115,12 @@ export default {
<el-date-picker style="width: 100%" placeholder="结束日期" v-model="quote.endDate" type="date" value-format='yyyy-MM-dd' format='yyyy-MM-dd'></el-date-picker>
</el-form-item>
</el-col>
<el-col :span="5">
<el-col :span="6">
<el-form-item label=" ">
<el-button @click="$emit('search')"> </el-button>
<el-button type="primary" @click="$emit('save')" v-if="isAuth('5011:save')"> </el-button>
<el-button @click="$emit('filterSearch')">搜索</el-button>
<el-button type="warning" @click="$emit('closeProcess')">流程关闭</el-button>
</el-form-item>
</el-col>
</el-row>

11
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 {
</script>
<template>
<el-table :data="dataList" border :height="height" :row-style="rowStyle" @row-click="handleRowClick">
<el-table :data="dataList" border :height="height" :row-style="rowStyle" @row-click="handleRowClick" @selection-change="handleSelectionChange">
<el-table-column
type="selection"
header-align="center"
align="center"
width="50">
</el-table-column>
<el-table-column
v-for="(item,index) in columns" :key="index"
:sortable="item.columnSortable"

42
src/views/modules/sampleManagement/technicalSpecificationList.vue

@ -78,6 +78,7 @@
<span>{{ '导出' }}</span>
</download-excel>
<el-button @click="filterVisible = true">搜索</el-button>
<el-button type="warning" @click="closeProcessModal()">流程关闭</el-button>
<!-- <el-button @click="test()" type="primary" style="margin-left: 2px;margin-top:0px">测试</el-button>-->
</el-form-item>
</el-form>
@ -88,9 +89,16 @@
border
ref="mainTable"
@row-click="changeData"
@selection-change="selectionChangeMainHandle"
highlight-current-row
v-loading="dataListLoading"
style="width: 100%; ">
<el-table-column
type="selection"
header-align="center"
align="center"
width="50">
</el-table-column>
<el-table-column
v-for="(item,index) in columnList1" :key="index"
:sortable="item.columnSortable"
@ -570,6 +578,7 @@
import {
getNodeAuthority, //
getApprovalList, //
closeProcess,
} from '@/api/changeManagement/changeManagement.js'
import ApprovalInformation from "../changeManagement/approvalInformation.vue";
import CustomerInfo from "../quotation/sellForQuotation/customerInfo.vue";
@ -598,6 +607,7 @@
filterVisible: false,
isFilterSearch: false,
filterSearchData: {},
mainTableSelections: [],
height: 200,
dataList1: [],
partList: [],
@ -1136,6 +1146,38 @@
}
},
methods: {
selectionChangeMainHandle(val) {
this.mainTableSelections = val
},
closeProcessModal() {
const approvedRows = this.mainTableSelections.filter(row => row.statusDesc === '审批中')
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.codeNo),
documentType: 'BM'
}).then(({data}) => {
if (data && data.code === 0) {
this.$message.success('流程关闭成功')
this.search()
} else {
this.$message.error(data.msg)
}
}).catch(err => {
this.$message.error(err.message || '流程关闭失败')
})
}).catch(() => {})
},
//
issueModal (row) {
this.$confirm(`是否确认下达?`, '提示', {

31
src/views/modules/test/requestForTest.vue

@ -116,6 +116,7 @@
<span>{{ "导出" }}</span>
</download-excel>
<el-button @click="filterVisible = true">搜索</el-button>
<el-button type="warning" @click="closeProcessModal()">流程关闭</el-button>
</el-form-item>
</el-form>
@ -1018,7 +1019,7 @@ import {queryCustomer} from "../../../api/customer/customerInformation";
import {queryProjectByCustomer, queryProjectPart} from "../../../api/project/project";
import OssComponents from "../oss/ossComponents.vue";
import BuSelect from "../base/BuSelect.vue";
import {getApprovalList} from "../../../api/changeManagement/changeManagement";
import {getApprovalList, closeProcess} from "../../../api/changeManagement/changeManagement";
import CustomerInfo from "../quotation/sellForQuotation/customerInfo.vue";
import FilterSearch from "../../common/filterSearch.vue";
import {quotationInformationSearchByAnyField} from "../../../api/quotation/quotationInformation";
@ -3142,6 +3143,34 @@ export default {
* 复选报价信息
* @param val
*/
closeProcessModal() {
const approvedRows = this.testSelections.filter(row => row.testStatus === '审批中')
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.testNo),
documentType: 'TEST'
}).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(() => {})
},
selectionTest(val) {
this.testSelections = val
this.$refs.selectDiv.setLengthselected(this.testSelections.length)

42
src/views/modules/tooling/searchToolApply.vue

@ -71,6 +71,7 @@
<span>{{ '导出' }}</span>
</download-excel>
<el-button @click="filterVisible = true">搜索</el-button>
<el-button type="warning" @click="closeProcessModal()">流程关闭</el-button>
</el-form-item>
</el-form>
@ -80,9 +81,16 @@
border
ref="mainTable"
@row-click="changeData"
@selection-change="selectionChangeMainHandle"
highlight-current-row
v-loading="dataListLoading"
style="width: 100%;">
<el-table-column
type="selection"
header-align="center"
align="center"
width="50">
</el-table-column>
<el-table-column
header-align="center"
align="center"
@ -1015,6 +1023,7 @@ import {
getNodeAuthority, //
getApprovalList, //
checkSuperAdmin, //
closeProcess,
} from '@/api/changeManagement/changeManagement.js'
import {
getNodeList
@ -1166,6 +1175,7 @@ export default {
toolDetailFlag: false,
currentRow: {},
currentRow2: {},
mainTableSelections: [],
height: 200,
dataList2: [],
dataList1: [],
@ -2256,6 +2266,38 @@ export default {
accessProcessField(key) {
return this.processField.indexOf(key) !== -1 || false
},
selectionChangeMainHandle(val) {
this.mainTableSelections = val
},
closeProcessModal() {
const approvedRows = this.mainTableSelections.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.applyNo),
documentType: 'TOOL'
}).then(({data}) => {
if (data && data.code === 0) {
this.$message.success('流程关闭成功')
this.search()
} else {
this.$message.error(data.msg)
}
}).catch(err => {
this.$message.error(err.message || '流程关闭失败')
})
}).catch(() => {})
},
//
getApprovalList() {
if (Object.keys(this.currentRow).length !== 0) {

Loading…
Cancel
Save