diff --git a/src/common/lang/workCenter/zh.js b/src/common/lang/workCenter/zh.js index 44b3688f..1a744421 100644 --- a/src/common/lang/workCenter/zh.js +++ b/src/common/lang/workCenter/zh.js @@ -378,5 +378,10 @@ module.exports = { preNodePeople: '上一节点处理人', evaluationFeedback:'评估反馈', ccPerson: '抄送人员' + }, + // 未符合项跟踪流程 + noMatchTracking: { + queryByCondition: '按条件查询', + problemTypes: '问题类型' } } diff --git a/src/enums/commonEnums.js b/src/enums/commonEnums.js index 2500ff50..5332b965 100644 --- a/src/enums/commonEnums.js +++ b/src/enums/commonEnums.js @@ -368,6 +368,14 @@ export const EsAnnulNodes = new EsEnums({ standardizationApproval: { text: '标准化审批', value: 'sid-9C90582D-F71F-4516-B54F-1E9F896C30D8' } }) +// 未符合项跟踪流程 +export const NoMatchTrackingNodes = new EsEnums({ + initial: { text: '法规工程师发起整改', value: '1', btn: ['save', 'submit'] }, + designEngineer: { text: '设计工程师上传整改材料', value: '2', btn: ['return', 'save', 'submit'] }, + directorLevelLeader: { text: '主管级领导审批', value: '3', btn: ['return', 'save', 'agree', 'reject'] }, + regulatoryEngineer: { text: '法规工程师审批', value: '4', btn: ['return', 'save', 'agree', 'reject'] } +}) + // 企标封存流程 export const EsSealSaveNodes = new EsEnums({ initiatorStart: { text: '发起人发起', value: 'sid-5F5FC475-64DE-4F98-A52D-5F6837C39B63' }, diff --git a/src/views/workCenter/noMatchTrackingProcess/NoMatchTrackingProcess.vue b/src/views/workCenter/noMatchTrackingProcess/NoMatchTrackingProcess.vue index e579b938..15dd4193 100644 --- a/src/views/workCenter/noMatchTrackingProcess/NoMatchTrackingProcess.vue +++ b/src/views/workCenter/noMatchTrackingProcess/NoMatchTrackingProcess.vue @@ -55,6 +55,61 @@ + +
{{ $t('basicServiceInformation') }}
+ +
+ +
+ + + +
+ +
+ + + +
+ +
+ + + +
+ + + {{ $t('workCenter.noMatchTracking.queryByCondition') }} +
+ +
+ + + + + +
{{ $t('processApprovalInformation') }}
@@ -105,6 +160,9 @@ {{ $t('reject') }} + + + @@ -113,17 +171,14 @@ import PersonnelInfo from '../../../components/PersonnelInfo' import InternalDetailPage from '../../../components/InternalDetailPage' import ProcessDetailList from '../../../components/ProcessDetailList' import { WorkCenterMixin } from '../../../mixins/WorkCenterMixin' -import { ProcessKey } from '../../../enums/commonEnums' +import { ProcessKey, NoMatchTrackingNodes } from '../../../enums/commonEnums' +import UserSelection from '../../../components/selection/UserSelection' +import NoMatchItemSelectDrawer from './modules/NoMatchItemSelectDrawer' export default { name: 'NoMatchTrackingProcess', - components: { ProcessDetailList, InternalDetailPage, PersonnelInfo }, + components: { ProcessDetailList, InternalDetailPage, PersonnelInfo, UserSelection, NoMatchItemSelectDrawer }, mixins: [WorkCenterMixin], - computed: { - pageTitle () { - return `${this.$t('flowCenter')}${this.$route.meta.title}` - } - }, data () { return { loading: false, @@ -135,6 +190,10 @@ export default { // 审批信息的表单 approvalInfoForm: this.$form.createForm(this), approvalInfo: {}, + // 业务基本信息表单(发起时候的查询条件) + businessInfoForm: this.$form.createForm(this), + businessInfo: {}, + currentNode: '2', labelCol: { xs: { span: 24 }, sm: { span: 4 } @@ -156,12 +215,210 @@ export default { handleText: { rules: [{ required: false, message: this.$t('pleaseEnter') + this.$t('remarks') }], validateTrigger: 'blur' + }, + // 标准编号/标准名称 + standardNumberName: { + rules: [{ required: true, message: this.$t('pleaseEnter') + this.$t('projectLibrary.vehicleItemLibrary.standardNumberStandardName') }], + validateTrigger: 'blur' + }, + // 设计工程师 + designEngineer: { + rules: [{ required: true, message: this.$t('pleaseSelect') + this.$t('workCenter.standardConsultationProcess.designEngineer') }], + validateTrigger: 'change' } + }, + columns: [ + // 标准编号 + { + dataIndex: 'standardNumber', + title: this.$t('standardNumber'), + width: 150, + align: 'center', + scopedSlots: { customRender: 'detail' } + }, + // 标准名称 + { + dataIndex: 'standardName', + title: this.$t('standardName'), + width: 150, + scopedSlots: { customRender: 'detail' } + }, + // 问题类型 + { + dataIndex: '1', + title: this.$t('workCenter.noMatchTracking.problemTypes'), + width: 150, + align: 'center', + scopedSlots: { customRender: 'text' } + }, + // 条款号 + { + dataIndex: 'termNumber', + title: this.$t('workCenter.enStandardRevision.clauseNumber'), + width: 150, + align: 'center', + scopedSlots: { customRender: 'text' } + }, + // 条款名称 + { + title: this.$t('workCenter.enStandardRevision.clauseName'), + width: 150, + dataIndex: 'termName', + align: 'center', + scopedSlots: { customRender: 'text' } + }, + // 相关项目 + { + title: this.$t('projectLibrary.noncoincidenceItem.relevantProject'), + width: 150, + dataIndex: '2', + align: 'center', + scopedSlots: { customRender: 'text' } + }, + // 责任部门 + { + dataIndex: 'departmentId_dictText', + title: this.$t('projectLibrary.vehicleItemLibrary.responsibleDepartment'), + width: 120, + align: 'center', + scopedSlots: { customRender: 'text' } + }, + // 设计工程师 + { + dataIndex: 'engineerName', + title: this.$t('workCenter.standardConsultationProcess.designEngineer'), + width: 120, + align: 'center', + scopedSlots: { customRender: 'text' } + }, + // 预计整改完成日期 + { + dataIndex: 'expectedTime', + title: this.$t('projectLibrary.vehicleItemLibrary.estimatedDateOfCompletionOfRectification'), + width: 180, + align: 'center', + scopedSlots: { customRender: 'text' } + } + ], + dataSource: [{ id: 1, standardNumber: '124' }], + // 展开表格的规则 + extraForm: { + rules: { + // 依据描述 + basisDescription: { + required: true, + message: this.$t('pleaseEnter') + this.$t('projectLibrary.specialProjectLibrary.basisDescription'), + trigger: 'blur' + }, + // 佐证材料 + basisFile: { + required: false, + message: this.$t('pleaseUpload') + this.$t('projectLibrary.specialProjectLibrary.supportingMaterial'), + trigger: 'change' + } + }, + formArr: [ + { + fieldShowType: 1, + dbFieldTxt: this.$t('projectLibrary.specialProjectLibrary.basisDescription'), + dbFieldName: 'basisDescription' + }, + { + fieldShowType: 2, + dbFieldTxt: this.$t('projectLibrary.specialProjectLibrary.supportingMaterial'), + dbFieldName: 'basisFile', + fileType: 'pdf,doc,docx,pptx,ppt,jpg,jpeg,png,xls,xlsx,bmp' + } + ] } } }, + computed: { + pageTitle () { + return `${this.$t('flowCenter')}${this.$route.meta.title}` + }, + // 是否展示选择标准的表单 + showSelectStandardForm () { + return this.currentNode === NoMatchTrackingNodes.initial.value + }, + // 表格用哪个组件 + tableComponent () { + if (this.showSelectStandardForm) { + return resolve => require(['../../../components/jero/JTable.vue'], resolve) + } + return resolve => require(['../../../components/JExpandTable.vue'], resolve) + }, + // 展开表格是否禁用,设计工程师上传整改材料节点不禁用 + expandTableDisabled () { + return this.currentNode !== NoMatchTrackingNodes.designEngineer.value + } + }, created () { - this.getPersonInfoStructure(ProcessKey.NO_MATCH_TRACKING.value) + // if (this.$route.query.processInstanceId || this.$route.query.draftId) { + // this.currentNode = this.$route.query.nodeId + // this.initProcessInfo() + // } else { + // this.currentNode = NoMatchTrackingNodes.initial.value + // } + // 如果节点不是固定节点,就默认显示审批节点的信息 + this.btnList = NoMatchTrackingNodes.propertyOfValue('btn', this.currentNode) || NoMatchTrackingNodes.regulatoryEngineer.btn + this.getPersonInfoStructure(ProcessKey.NO_MATCH_TRACKING.value, () => { + this.initPersonInfoData(this.current) + }) + }, + methods: { + /** + * 获取流程信息 + */ + initProcessInfo () { + + }, + /** + * 选择标准 + */ + selectStandard () { + this.businessInfoForm.validateFields((errors, values) => { + if (!errors) { + this.$refs.selectStandardDrawer.open(values) + } + }) + }, + handleStandardSelected (list) { + this.dataSource = list + }, + /** + * 跳转标准详情 + * @param record + */ + toDetailPage ({ standardId, splitStandardSource }) { + let path + // 根据来源跳转不同的详情页 + switch (splitStandardSource) { + // 国内 + case StandardSource.DOMESTIC.value: + path = '/standardRegulationLibrary/DomesticStandardDetail' + break + // 海外 + case StandardSource.OVERSEAS.value: + path = '/standardRegulationLibrary/OverseasStandardDetail' + break + // 企标 + case StandardSource.ENTERPRISE.value: + path = '/enterpriseStandardLibrary/enterpriseStandardDetail' + break + default: + break + } + if (!path) { + return + } + const query = { + id: standardId + } + this.$openPageNewSheet({ + path, query + }) + } } } @@ -169,4 +426,19 @@ export default { \ No newline at end of file diff --git a/src/views/workCenter/noMatchTrackingProcess/modules/NoMatchItemSelectDrawer.vue b/src/views/workCenter/noMatchTrackingProcess/modules/NoMatchItemSelectDrawer.vue new file mode 100644 index 00000000..c958844c --- /dev/null +++ b/src/views/workCenter/noMatchTrackingProcess/modules/NoMatchItemSelectDrawer.vue @@ -0,0 +1,264 @@ + + + + + \ No newline at end of file diff --git a/src/views/workCenter/projectComplianceEvaluationProcess/ProjectComplianceEvaluationProcess.vue b/src/views/workCenter/projectComplianceEvaluationProcess/ProjectComplianceEvaluationProcess.vue index d2456264..f58a778d 100644 --- a/src/views/workCenter/projectComplianceEvaluationProcess/ProjectComplianceEvaluationProcess.vue +++ b/src/views/workCenter/projectComplianceEvaluationProcess/ProjectComplianceEvaluationProcess.vue @@ -547,7 +547,7 @@ export default { }, // 节点显示的按钮 btnList () { - let btnList = ProjectComplianceEvaluationProcessNode.propertyOfValue('btn', this.currentNode) + let btnList = ProjectComplianceEvaluationProcessNode.propertyOfValue('btn', this.currentNode) || ProjectComplianceEvaluationProcessNode.moduleOwnerApproval.btn if (this.currentNode === ProjectComplianceEvaluationProcessNode.initiate.value) { switch (this.currentStep) { case 0: @@ -677,9 +677,9 @@ export default { } ]) } - // 设计工程师评估、模块负责人审批、各部门主管级领导审批、法规工程师归档 + // 设计工程师评估、模块负责人审批、各部门主管级领导审批、法规工程师归档,及用户新增的审批节点都显示审批节点的表头 const showNode = [ProjectComplianceEvaluationProcessNode.designEngineerEvaluation.value, ProjectComplianceEvaluationProcessNode.moduleOwnerApproval.value, ProjectComplianceEvaluationProcessNode.departLeaderApproval.value, ProjectComplianceEvaluationProcessNode.regulatoryEngineerFiling.value] - if (showNode.includes(this.currentNode)) { + if (showNode.includes(this.currentNode) || !ProjectComplianceEvaluationProcessNode.keyOfValue(this.currentNode)) { return this.basicColumns.concat([ // 上一节点处理人 { @@ -709,7 +709,7 @@ export default { showExpandTable () { // 设计工程师评估及之后节点都是 const showNode = [ProjectComplianceEvaluationProcessNode.designEngineerEvaluation.value, ProjectComplianceEvaluationProcessNode.moduleOwnerApproval.value, ProjectComplianceEvaluationProcessNode.departLeaderApproval.value, ProjectComplianceEvaluationProcessNode.regulatoryEngineerFiling.value] - return showNode.includes(this.currentNode) + return showNode.includes(this.currentNode) || !ProjectComplianceEvaluationProcessNode.keyOfValue(this.currentNode) }, // 展开表格的禁用 expandTableDisabled () {