From a696d336732690fbdc63fc814bac699c9dd59b32 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B5=B5=E9=9C=84?= Date: Thu, 14 Dec 2023 14:42:15 +0800 Subject: [PATCH] =?UTF-8?q?update=20=E9=A1=B9=E7=9B=AE=E5=90=88=E8=A7=84?= =?UTF-8?q?=E6=B5=81=E7=A8=8B-=E5=8F=91=E8=B5=B7=E3=80=81=E5=8F=91?= =?UTF-8?q?=E8=B5=B7=E8=8A=82=E7=82=B9=E4=BF=9D=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/workCenter.js | 8 +- .../processCenter/table/DraftList.vue | 4 + .../processCenter/table/TodoList.vue | 4 + .../ProjectComplianceEvaluationProcess.vue | 141 ++++++++++++------ .../components/ProjectTable.vue | 21 +++ .../components/StandardList.vue | 19 +++ 6 files changed, 147 insertions(+), 50 deletions(-) diff --git a/src/api/workCenter.js b/src/api/workCenter.js index 5f7c9d2a..0545f3d3 100644 --- a/src/api/workCenter.js +++ b/src/api/workCenter.js @@ -367,6 +367,10 @@ const queryStandardClauseList = (params) => postAction('/process/projectAssess/p const initiateProjectComplianceEvaluation = (params) => postAction('/process/projectAssess/startProcess', params) // 提交 const submitProjectComplianceEvaluation = (params) => postAction('/process/projectAssess/submit', params) +// 保存 +const saveProjectComplianceEvaluation = (params) => postAction('/process/projectAssess/saveToDraft', params) +// 获取流程数据 +const queryProjectComplianceEvaluation = (params) => getAction('/process/projectAssess/queryProcessInfoVO', params) export { getProcessNodeList, @@ -552,5 +556,7 @@ export { queryProjectRegulationList, queryStandardClauseList, initiateProjectComplianceEvaluation, - submitProjectComplianceEvaluation + submitProjectComplianceEvaluation, + saveProjectComplianceEvaluation, + queryProjectComplianceEvaluation } diff --git a/src/views/workCenter/processCenter/table/DraftList.vue b/src/views/workCenter/processCenter/table/DraftList.vue index eae65da3..2d208afa 100644 --- a/src/views/workCenter/processCenter/table/DraftList.vue +++ b/src/views/workCenter/processCenter/table/DraftList.vue @@ -121,6 +121,10 @@ export default { case '2': path = '/workCenter/StandardConsultationProcess' break + // 项目合规评估流程 + case '3': + path = '/workCenter/ProjectComplianceEvaluationProcess' + break // 法规采购流程 case '6': path = '/workCenter/StandardProcurementProcess' diff --git a/src/views/workCenter/processCenter/table/TodoList.vue b/src/views/workCenter/processCenter/table/TodoList.vue index f4c6d27c..6a90fc80 100644 --- a/src/views/workCenter/processCenter/table/TodoList.vue +++ b/src/views/workCenter/processCenter/table/TodoList.vue @@ -160,6 +160,10 @@ export default { case '2': path = '/workCenter/StandardConsultationProcess' break + // 项目合规评估流程 + case '3': + path = '/workCenter/ProjectComplianceEvaluationProcess' + break // 法规采购流程 case '6': path = '/workCenter/StandardProcurementProcess' diff --git a/src/views/workCenter/projectComplianceEvaluationProcess/ProjectComplianceEvaluationProcess.vue b/src/views/workCenter/projectComplianceEvaluationProcess/ProjectComplianceEvaluationProcess.vue index 87a82505..ec745904 100644 --- a/src/views/workCenter/projectComplianceEvaluationProcess/ProjectComplianceEvaluationProcess.vue +++ b/src/views/workCenter/projectComplianceEvaluationProcess/ProjectComplianceEvaluationProcess.vue @@ -92,7 +92,11 @@ - + @@ -109,7 +113,7 @@ :can-drag="true" :scroll="{x: '100%'}" ref="table" - :rowKey="(record,index)=>{return index}" + rowKey="tableRowKey" :columns="columns" :dataSource="dataSource" :pagination="ipagination" @@ -175,7 +179,7 @@ @@ -321,11 +325,15 @@ import UserSelection from '../../../components/selection/UserSelection' import UserSelectModal from '../../../components/selection/UserSelectModal' import UninvolvedModal from './modules/UninvolvedModal' import JExpandTable from '../../../components/JExpandTable' -import { queryStandardClauseList, initiateProjectComplianceEvaluation, submitProjectComplianceEvaluation } from '../../../api/workCenter' +import { + queryStandardClauseList, + initiateProjectComplianceEvaluation, + submitProjectComplianceEvaluation, + saveProjectComplianceEvaluation, + queryProjectComplianceEvaluation +} from '../../../api/workCenter' import SplitClauseDetail from '../../documentTool/documentSplit/modules/SplitClauseDetail' -const saveJson = '{"processInfo":{"processName":"zx测试流程01","processDueDate":"2023-12-31","processDescription":"流程说明"},"currentStep":1,"projectList":[{"id":"1701513651987582978","projectSource":"1","projectName":"ZX测试项目01","projectLeader":"1701412226645331970","workNumber":"ZXTESTPROJECT01","projectHealth":"3","createBy":"admin","createTime":"2023-09-12 16:30:42","updateBy":null,"updateTime":"2023-09-12 16:30:42","orgCode":null,"delFlag":"0","nameWorkNo":null,"projectSource_dictText":"本地新增","projectLeader_dictText":"赵霄-管理员(zx-admin)","projectHealth_dictText":"正常"}],"standardList":[],"dispatchList":[],"approvalInfo":{}}' - export default { name: 'ProjectComplianceEvaluationProcess', components: { @@ -567,7 +575,8 @@ export default { } ] } - } + }, + echoDataSource: [] // 发起节点,保存第二、三步回显的表格数据 } }, computed: { @@ -753,49 +762,62 @@ export default { return this.currentNode === ProjectComplianceEvaluationProcessNode.regulatoryEngineerFiling.value } }, - mounted () { - // if (this.$route.query.processInstanceId || this.$route.query.draftId) { - // this.currentNode = this.$route.query.nodeId - // this.initProcessInfo() - // } else { - this.currentNode = ProjectComplianceEvaluationProcessNode.initiate.value - this.initProcessInfo() - // } + created () { + if (this.$route.query.processInstanceId || this.$route.query.draftId) { + this.currentNode = this.$route.query.nodeId || ProjectComplianceEvaluationProcessNode.initiate.value + this.initProcessInfo() + } else { + this.currentNode = ProjectComplianceEvaluationProcessNode.initiate.value + } this.getPersonInfoStructure(ProcessKey.PROJECT_COMPLIANCE_EVALUATION.value, () => { - this.initPersonInfoData() + this.initPersonInfoData(this.currentNode === ProjectComplianceEvaluationProcessNode.initiate.value) }) }, methods: { + /** + * 获取流程数据 + */ initProcessInfo () { - const result = JSON.parse(saveJson) - console.log('数据初始化=======') - console.log(result) - - // 流程信息 - this.processInfo = Object.assign({}, result.processInfo) - if (this.currentNode === ProjectComplianceEvaluationProcessNode.initiate.value) { - // 步骤条回显 - this.currentStep = result.currentStep - // 项目信息 - this.projectDataSource = result.projectList - // 标准信息 - this.standardDataSource = result.standardDataSource + const params = { + draftId: this.$route.query.draftId, + processInstanceId: this.$route.query.draftId ? null : this.$route.query.processInstanceId } - // 流程审批信息 - this.approvalInfo = Object.assign({}, result.approvalInfo) - this.$nextTick(() => { - if (this.currentStep === 1) { - this.$refs.projectStandardTable.dataSource = this.projectDataSource - } - if (this.currentStep === 2) { - this.$refs.projectStandardTable.dataSource = this.standardDataSource - } - if (this.processInfoForm) { - this.processInfoForm.setFieldsValue(this.processInfo) - } - if (this.approvalInfoForm) { - this.approvalInfoForm.setFieldsValue(this.approvalInfo) + this.loading = true + queryProjectComplianceEvaluation(params).then(res => { + if (res.success) { + const { result = {} } = res + const draftResult = JSON.parse(result.infoJsonStr) + // 流程信息 + this.processInfo = Object.assign({}, result.basicProcessInfoDTO) + if (this.currentNode === ProjectComplianceEvaluationProcessNode.initiate.value) { + // 步骤条回显 + this.currentStep = draftResult.currentStep + // 项目信息 + this.projectDataSource = draftResult.projectList + // 标准信息 + this.standardDataSource = draftResult.standardList + // 业务分派信息 + this.dataSource = draftResult.dispatchList + } + // 流程审批信息 + this.approvalInfo = Object.assign({}, draftResult.approvalInfo) + this.$nextTick(() => { + if (this.currentStep === 1) { + this.echoDataSource = this.projectDataSource + } + if (this.currentStep === 2) { + this.echoDataSource = this.standardDataSource + } + if (this.processInfoForm) { + this.processInfoForm.setFieldsValue(this.processInfo) + } + if (this.approvalInfoForm) { + this.approvalInfoForm.setFieldsValue(this.approvalInfo) + } + }) } + }).finally(() => { + this.loading = false }) }, /** @@ -858,7 +880,11 @@ export default { }) queryStandardClauseList(params).then(res => { if (res.success) { - this.dataSource = res.result || [] + const data = res.result || [] + this.dataSource = data.map((item, index) => { + item.tableRowKey = index + return item + }) } }) }, @@ -948,6 +974,7 @@ export default { this.selectedRowKeys = [] }, onSelectChange (selectedRowKeys) { + console.log(selectedRowKeys) this.selectedRowKeys = selectedRowKeys }, /** @@ -970,10 +997,13 @@ export default { handleUserChange (list, record, index, fieldName) { record[fieldName] = list.map(tt => tt.id).join(',') record[fieldName + '_dictText'] = list.map(tt => tt.realname + '(' + tt.username + ')').join(',') - this.$set(this.dataSource, index, record) }, - handleDelete (id) { - const index = this.dataSource.findIndex(tt => tt.id === id) + /** + * 删除 + * @param rowKey + */ + handleDelete (rowKey) { + const index = this.dataSource.findIndex(tt => tt.tableRowKey === rowKey) if (index !== -1) { this.$confirm({ title: this.$t('confirmDeletion'), @@ -1064,7 +1094,7 @@ export default { handleSave () { const formData = {} // 流程信息 - formData.processInfo = Object.assign(this.processInfo, this.processInfoForm.getFieldsValue()) + const processInfo = Object.assign(this.processInfo, this.processInfoForm.getFieldsValue()) if (this.currentNode === ProjectComplianceEvaluationProcessNode.initiate.value) { // 记录当前在哪一步 formData.currentStep = this.currentStep @@ -1086,9 +1116,22 @@ export default { // 流程审批信息 formData.approvalInfo = Object.assign(this.approvalInfo, this.approvalInfoForm.getFieldsValue()) const params = { - saveMap: JSON.stringify(formData) + infoJsonStr: JSON.stringify(formData), + basicProcessInfoDTO: processInfo, + draftId: this.$route.query.draftId } console.log(params) + this.loading = true + saveProjectComplianceEvaluation(params).then(res => { + if (res.success) { + this.$message.success(res.message) + this.goBack() + } else { + this.$message.warning(res.message) + } + }).finally(() => { + this.loading = false + }) }, /** * 提交 diff --git a/src/views/workCenter/projectComplianceEvaluationProcess/components/ProjectTable.vue b/src/views/workCenter/projectComplianceEvaluationProcess/components/ProjectTable.vue index 1972663d..be9127b2 100644 --- a/src/views/workCenter/projectComplianceEvaluationProcess/components/ProjectTable.vue +++ b/src/views/workCenter/projectComplianceEvaluationProcess/components/ProjectTable.vue @@ -33,6 +33,16 @@ import SelectProjectModal from '../modules/SelectProjectModal' export default { name: 'ProjectTable', components: { JTable, SelectProjectModal }, + props: { + // 回显的数据 + echoDataSource: { + type: Array, + required: false, + default: () => { + return [] + } + } + }, data () { return { columns: [ @@ -60,6 +70,17 @@ export default { rowIds: [] } }, + watch: { + echoDataSource: { + handler() { + if (this.echoDataSource && this.echoDataSource.length > 0) { + this.dataSource = JSON.parse(JSON.stringify(this.echoDataSource)) + } + }, + immediate: true, + deep: true + } + }, methods: { handleAdd () { this.$refs.selectProjectModal.open(this.rowIds) diff --git a/src/views/workCenter/projectComplianceEvaluationProcess/components/StandardList.vue b/src/views/workCenter/projectComplianceEvaluationProcess/components/StandardList.vue index d95007cd..b826774c 100644 --- a/src/views/workCenter/projectComplianceEvaluationProcess/components/StandardList.vue +++ b/src/views/workCenter/projectComplianceEvaluationProcess/components/StandardList.vue @@ -52,6 +52,14 @@ export default { type: String, required: false, default: null + }, + // 回显的数据 + echoDataSource: { + type: Array, + required: false, + default: () => { + return [] + } } }, data () { @@ -118,6 +126,17 @@ export default { rowIds: [] } }, + watch: { + echoDataSource: { + handler() { + if (this.echoDataSource && this.echoDataSource.length > 0) { + this.dataSource = JSON.parse(JSON.stringify(this.echoDataSource)) + } + }, + immediate: true, + deep: true + } + }, methods: { handleAdd () { this.$refs.selectStandardDrawer.open(this.projectId)