update 法规合规评估

This commit is contained in:
赵霄
2024-01-19 17:32:02 +08:00
parent d09214f346
commit a0c306aeff
3 changed files with 154 additions and 37 deletions
+4 -1
View File
@@ -422,6 +422,8 @@ const rejectStandardCompliance = (params) => postAction('/process/projectStandar
const queryStandardCompliance = (params) => getAction('/process/projectStandard/queryProcessInfoVO', params) const queryStandardCompliance = (params) => getAction('/process/projectStandard/queryProcessInfoVO', params)
// 查询评估结果 // 查询评估结果
const queryStandardComplianceResult = (params) => getAction('/process/projectStandard/getTermUserList', params) const queryStandardComplianceResult = (params) => getAction('/process/projectStandard/getTermUserList', params)
// 归档节点查询下方表格数据
const queryStandardComplianceEvaluateDetail = (params) => getAction('/process/projectStandard/getTermApprovalList', params)
export { export {
getProcessNodeList, getProcessNodeList,
@@ -635,5 +637,6 @@ export {
agreeStandardCompliance, agreeStandardCompliance,
rejectStandardCompliance, rejectStandardCompliance,
queryStandardCompliance, queryStandardCompliance,
queryStandardComplianceResult queryStandardComplianceResult,
queryStandardComplianceEvaluateDetail
} }
@@ -94,10 +94,10 @@
<module-owner-approve-table v-if="isModuleOwnerApprove" ref="termList" :display-data-source="dispatchDataSource" /> <module-owner-approve-table v-if="isModuleOwnerApprove" ref="termList" :display-data-source="dispatchDataSource" />
<!--部所主管级领导审批--> <!--部所主管级领导审批-->
<depart-leader-approve-table v-if="isDepartLeaderApprove" ref="termList" :display-data-source="dispatchDataSource"/> <depart-leader-approve-table v-if="isDepartLeaderApprove" ref="termList" :display-data-source="dispatchDataSource" />
<!--法规工程师审批--> <!--法规工程师审批-->
<regulatory-engineer-approval v-if="isRegulatoryEngineerApproval" /> <regulatory-engineer-approval v-if="isRegulatoryEngineerApproval" ref="termList" :display-data-source="dispatchDataSource" />
<!--设计工程师补充立项项目号--> <!--设计工程师补充立项项目号-->
<design-engineer-write-project v-if="isDesignEngineerWriteProject" /> <design-engineer-write-project v-if="isDesignEngineerWriteProject" />
@@ -3,34 +3,52 @@
<!--项目归档--> <!--项目归档-->
<div class="process-part-title">{{ $t('workCenter.standardCompliance.projectFiling') }}</div> <div class="process-part-title">{{ $t('workCenter.standardCompliance.projectFiling') }}</div>
<div> <div>
<j-table :columns="columns" :data-source="dataSource" :pagination="false" :scroll="{x: '100%'}"> <j-table :columns="columns" :data-source="dataSource" :pagination="ipagination" :scroll="{x: '100%'}" @change="handleTableChange">
<!--评估详情下方列表-->
<template v-slot:evaluateDetail="{text, record}">
<div class="table-text can-click-table-text" @click="loadSubTable(record)" v-if="text">
{{ text }}
</div>
<div class="table-text" v-else>{{ global.emptyLine }}</div>
</template>
<!--是否立项--> <!--是否立项-->
<template v-slot:isProject="{text,record,index}"> <template v-slot:projectApprovalFlag="{text,record}">
<j-dict-select-tag v-model="record.isProject" dict-code="yn" style="width: 100%" /> <j-dict-select-tag v-model="record.projectApprovalFlag" dict-code="yn" style="width: 100%" />
</template> </template>
<!--设计工程师--> <!--设计工程师-->
<template v-slot:designEngineer="{text, record, index}"> <template v-slot:designEngineer="{text, record}">
<user-selection :name-str="record.designEngineer_dictText" <!--立项需要选-->
<user-selection v-if="record.projectApprovalFlag === yesValue"
:name-str="record.designEngineer_dictText"
:show-btn="false" :show-btn="false"
v-model="record.designEngineer" v-model="record.designEngineer"
:placeholder="$t('pleaseSelect') + $t('workCenter.standardConsultationProcess.designEngineer')" :placeholder="$t('pleaseSelect') + $t('workCenter.standardConsultationProcess.designEngineer')"
style="width: 100%" style="width: 100%"
type="radio" /> type="radio" />
<!--<div>{{ global.emptyLine }}</div>--> <div v-else>{{ global.emptyLine }}</div>
</template> </template>
<!--抄送人员--> <!--抄送人员-->
<template v-slot:ccPerson="{text, record, index}"> <template v-slot:carbonCopyPersonnels="{text, record}">
<user-selection :name-str="record.ccPerson_dictText" <user-selection :name-str="record.carbonCopyPersonnels_dictText"
:show-btn="false" :show-btn="false"
v-model="record.ccPerson" v-model="record.carbonCopyPersonnels"
:placeholder="$t('pleaseSelect') + $t('workCenter.projectComplianceEvaluationProcess.ccPerson')" :placeholder="$t('pleaseSelect') + $t('workCenter.projectComplianceEvaluationProcess.ccPerson')"
style="width: 100%" style="width: 100%"
type="checkbox" /> type="checkbox" />
<!--<div>{{ global.emptyLine }}</div>--> <!--<div>{{ global.emptyLine }}</div>-->
</template> </template>
<!--条文内容-->
<template v-slot:clauseContent="{text}">
<div class="table-text" style="cursor: pointer" @click="showContent(text)" v-if="text">
{{ text && text !== 'null' ? text.replace(/<.*?>/ig, ' ') : '' }}
</div>
<div class="table-text" v-else>{{ global.emptyLine }}</div>
</template>
</j-table> </j-table>
</div> </div>
<div class="detail-page-part-form"> <div class="detail-page-part-form">
@@ -46,19 +64,36 @@
</div> </div>
</div> </div>
<div> <div>
<j-table :columns="subColumns" :data-source="subDataSource" :pagination="false" :scroll="{x: '100%'}"> <j-table :loading="subTableLoading" :columns="subColumns" :data-source="subDataSource" :pagination="false" :scroll="{x: '100%'}">
</j-table> </j-table>
</div> </div>
<!--条文内容-->
<split-clause-detail ref="clauseDetail" />
</div> </div>
</template> </template>
<script> <script>
import JTable from '../../../../components/jero/JTable' import JTable from '../../../../components/jero/JTable'
import UserSelection from '../../../../components/selection/UserSelection' import UserSelection from '../../../../components/selection/UserSelection'
import DepartLeaderDetailModal from '../modules/DepartLeaderDetailModal'
import SplitClauseDetail from '../../../documentTool/documentSplit/modules/SplitClauseDetail'
import { YesOrNoEnum } from '../../../../enums/commonEnums'
import { queryStandardComplianceEvaluateDetail } from '../../../../api/workCenter'
export default { export default {
name: 'RegulatoryEngineerApproval', name: 'RegulatoryEngineerApproval',
components: { UserSelection, JTable }, components: { SplitClauseDetail, DepartLeaderDetailModal, UserSelection, JTable },
props: {
// 回显的数据
displayDataSource: {
type: Array,
required: false,
default: () => {
return []
}
}
},
data () { data () {
return { return {
columns: [ columns: [
@@ -73,46 +108,48 @@ export default {
}, },
// 标准编号/条款号 // 标准编号/条款号
{ {
dataIndex: 'workNumber', dataIndex: 'termNumber',
title: this.$t('projectLibrary.vehicleItemLibrary.standardNumberClauseNumber'), title: this.$t('projectLibrary.vehicleItemLibrary.standardNumberClauseNumber'),
width: 150 width: 150,
scopedSlots: { customRender: 'evaluateDetail' }
}, },
// 标准名称/条款名称 // 标准名称/条款名称
{ {
dataIndex: 'projectName', dataIndex: 'termName',
title: this.$t('workCenter.projectComplianceEvaluationProcess.standardNameClauseName'), title: this.$t('workCenter.projectComplianceEvaluationProcess.standardNameClauseName'),
width: 160
},
// 标准状态
{
title: this.$t('standardSelect.textState'),
dataIndex: 'standardState_dictText',
width: 150 width: 150
}, },
// 条款内容
{
dataIndex: 'termText',
title: this.$t('workCenter.projectComplianceEvaluationProcess.terms'),
width: 250,
scopedSlots: { customRender: 'clauseContent' }
},
// 实施日期 // 实施日期
{ {
title: this.$t('dashboard.advancedSearch.materialDate'), title: this.$t('dashboard.advancedSearch.materialDate'),
width: 180, width: 150,
dataIndex: 'implementation_date' dataIndex: 'implementationDate'
}, },
// 责任单位联络人 // 责任单位联络人
{ {
title: this.$t('workCenter.standardCompliance.responsibleUnitContactPerson'), title: this.$t('workCenter.standardCompliance.responsibleUnitContactPerson'),
dataIndex: 'contact', dataIndex: 'responsibleUnitLeader',
width: 150 width: 150
}, },
// 评估结果 // 评估结果
{ {
dataIndex: 'evaluationResults_dictText', dataIndex: 'assessResults_dictText',
title: this.$t('projectLibrary.vehicleItemLibrary.evaluationResult'), title: this.$t('projectLibrary.vehicleItemLibrary.evaluationResult'),
width: 120 width: 120
}, },
// 是否立项 // 是否立项
{ {
dataIndex: 'isProject', dataIndex: 'projectApprovalFlag',
title: this.$t('projectLibrary.specialProjectLibrary.whetherToApproveAProjectOrNot'), title: this.$t('projectLibrary.specialProjectLibrary.whetherToApproveAProjectOrNot'),
width: 150, width: 150,
scopedSlots: { customRender: 'isProject' } scopedSlots: { customRender: 'projectApprovalFlag' }
}, },
// 设计工程师 // 设计工程师
{ {
@@ -124,9 +161,9 @@ export default {
// 抄送人员 // 抄送人员
{ {
title: this.$t('workCenter.projectComplianceEvaluationProcess.ccPerson'), title: this.$t('workCenter.projectComplianceEvaluationProcess.ccPerson'),
dataIndex: 'ccPerson', dataIndex: 'carbonCopyPersonnels',
width: 150, width: 150,
scopedSlots: { customRender: 'ccPerson' } scopedSlots: { customRender: 'carbonCopyPersonnels' }
} }
], ],
dataSource: [], dataSource: [],
@@ -143,24 +180,101 @@ export default {
// 责任单位联络人 // 责任单位联络人
{ {
title: this.$t('workCenter.standardCompliance.responsibleUnitContactPerson'), title: this.$t('workCenter.standardCompliance.responsibleUnitContactPerson'),
dataIndex: 'contact', dataIndex: 'responsibleUnitLeader_dictText',
width: 150 width: 150
}, },
// 评估结果 // 评估结果
{ {
dataIndex: 'evaluationResults_dictText', dataIndex: 'assessResults_dictText',
title: this.$t('projectLibrary.vehicleItemLibrary.evaluationResult'), title: this.$t('projectLibrary.vehicleItemLibrary.evaluationResult'),
width: 120 width: 120
}, },
// 是否立项 // 是否立项
{ {
dataIndex: 'isProject', dataIndex: 'projectApprovalFlag_dictText',
title: this.$t('projectLibrary.specialProjectLibrary.whetherToApproveAProjectOrNot'), title: this.$t('projectLibrary.specialProjectLibrary.whetherToApproveAProjectOrNot'),
width: 150, width: 150
scopedSlots: { customRender: 'isProject' }
} }
], ],
subDataSource: [] subDataSource: [],
yesValue: YesOrNoEnum.YES.value,
subTableLoading: false,
/* 分页参数 */
ipagination: {
current: 1,
pageSize: 10,
pageSizeOptions: ['10', '30', '50', '100', '150', '200'],
showTotal: (total, range) => {
return range[0] + '-' + range[1] + ' ' + this.$t('total') + total + this.$t('strip')
},
showQuickJumper: true,
showSizeChanger: true,
total: 0
}
}
},
watch: {
displayDataSource: {
handler (value) {
this.dataSource = value || []
},
deep: true,
immediate: true
}
},
methods: {
handleTableChange (pagination) {
this.ipagination = pagination
},
showContent (text) {
this.$refs.clauseDetail.open(text)
},
/**
* 加载下面子表格
* @param record
*/
loadSubTable (record) {
this.subDataSource = []
this.subTableLoading = true
queryStandardComplianceEvaluateDetail({ id: record.id }).then(res => {
if (res.success) {
this.subDataSource = res.result || []
} else {
this.$message.warning(res.message)
}
}).finally(() => {
this.subTableLoading = false
})
},
submit (needValidator, needRemind) {
if (!needValidator) {
return this.dataSource
}
let flag = true
for (const record of this.dataSource) {
// 如果是否立项没有填,跳出校验
if (!record.projectApprovalFlag) {
flag = false
continue
}
// 没选抄送人员,跳出校验
if (!record.carbonCopyPersonnels) {
flag = false
continue
}
// 是否立项为是,没选设计工程师
if (record.projectApprovalFlag === this.yesValue && !record.designEngineer) {
flag = false
}
}
if (!flag) {
if (needRemind) {
// 校验提醒
this.$message.warning(this.$t('workCenter.checkTableRequired'))
}
return false
}
return this.dataSource
} }
} }
} }