From 5be8f9b15f014ae7e40d0045d75cee32a8854306 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B5=B5=E9=9C=84?= Date: Mon, 27 Nov 2023 18:06:55 +0800 Subject: [PATCH] =?UTF-8?q?update=20=E6=B3=95=E8=A7=84=E5=90=88=E8=A7=84?= =?UTF-8?q?=E6=B5=81=E7=A8=8B=E9=A1=B5=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/common/lang/workCenter/zh.js | 5 +- src/enums/commonEnums.js | 12 ++ .../StandardComplianceProcess.vue | 113 +++++++++++-- .../components/DepartLeaderIssueTable.vue | 147 +++++++++++++++++ .../components/DesignEngineerAssess.vue | 37 +++++ .../components/InitialAssignTable.vue | 87 +++++++++- .../components/InitialBasicServiceInfo.vue | 2 + .../components/ModuleOwnerIssueTable.vue | 148 ++++++++++++++++++ .../modules/UninvolvedModal.vue | 100 ++++++++++++ 9 files changed, 629 insertions(+), 22 deletions(-) create mode 100644 src/views/workCenter/standardComplianceProcess/components/DepartLeaderIssueTable.vue create mode 100644 src/views/workCenter/standardComplianceProcess/components/DesignEngineerAssess.vue create mode 100644 src/views/workCenter/standardComplianceProcess/components/ModuleOwnerIssueTable.vue create mode 100644 src/views/workCenter/standardComplianceProcess/modules/UninvolvedModal.vue diff --git a/src/common/lang/workCenter/zh.js b/src/common/lang/workCenter/zh.js index 57fab7a7..5a189621 100644 --- a/src/common/lang/workCenter/zh.js +++ b/src/common/lang/workCenter/zh.js @@ -387,6 +387,9 @@ module.exports = { // 法规合规评估流程 standardCompliance: { addStandard: '添加标准', - responsibleUnitContactPerson: '责任单位联络人' + responsibleUnitContactPerson: '责任单位联络人', + pleaseSelectDeleteData: '请选择要删除的数据', + moduleOwner: '模块责任人', + projectAppraisal: '项目评估' } } diff --git a/src/enums/commonEnums.js b/src/enums/commonEnums.js index 5332b965..ef85c3bf 100644 --- a/src/enums/commonEnums.js +++ b/src/enums/commonEnums.js @@ -391,3 +391,15 @@ export const EsStartUseNodes = new EsEnums({ leaderApproval: { text: '起草人和会签人主管级领导审批', value: 'sid-0BC5B3BC-ED99-4061-84B4-7320E25DE326' }, standardizationApproval: { text: '标准化审批', value: 'sid-9C90582D-F71F-4516-B54F-1E9F896C30D8' } }) + +// 法规合规流程节点 +export const StandardComplianceNodes = new EsEnums({ + initial: { text: '法规工程师发起', value: '1', btn: ['save', 'submit'] }, + departLeaderIssue: { text: '部所主管级领导下发', value: '2', btn: [] }, + moduleOwnerIssue: { text: '模块责任人分发', value: '3', btn: [] }, + designEngineerAssess: { text: '设计工程师评估', value: '4', btn: [] }, + moduleOwnerReview: { text: '模块责任人审批', value: '5', btn: [] }, + departLeaderApprove: { text: '部所主管级领导审批', value: '6', btn: [] }, + regulatoryEngineerApprove: { text: '法规工程师审批', value: '7', btn: [] }, + designEngineerWriteProject: { text: '设计工程师补充立项项目号', value: '8', btn: [] } +}) diff --git a/src/views/workCenter/standardComplianceProcess/StandardComplianceProcess.vue b/src/views/workCenter/standardComplianceProcess/StandardComplianceProcess.vue index ec1188a1..f9c45b9d 100644 --- a/src/views/workCenter/standardComplianceProcess/StandardComplianceProcess.vue +++ b/src/views/workCenter/standardComplianceProcess/StandardComplianceProcess.vue @@ -53,12 +53,32 @@ :disabled="disabled" v-decorator="['processDescription']" /> + +
+ +
+ +
+
+ - - - - + + + + + + + + + + +
{{ $t('processApprovalInformation') }}
@@ -118,19 +138,26 @@ 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, StandardComplianceNodes } from '../../../enums/commonEnums' import InitialBasicServiceInfo from './components/InitialBasicServiceInfo' import InitialAssignTable from './components/InitialAssignTable' +import DepartLeaderIssueTable from './components/DepartLeaderIssueTable' +import ModuleOwnerIssueTable from './components/ModuleOwnerIssueTable' +import DesignEngineerAssess from './components/DesignEngineerAssess' export default { name: 'StandardComplianceProcess', - components: { ProcessDetailList, InternalDetailPage, PersonnelInfo, InitialBasicServiceInfo, InitialAssignTable }, - mixins: [WorkCenterMixin], - computed: { - pageTitle () { - return `${this.$t('flowCenter')}${this.$route.meta.title}` - } + components: { + ProcessDetailList, + InternalDetailPage, + PersonnelInfo, + InitialBasicServiceInfo, + InitialAssignTable, + DepartLeaderIssueTable, + ModuleOwnerIssueTable, + DesignEngineerAssess }, + mixins: [WorkCenterMixin], data () { return { loading: false, @@ -142,7 +169,7 @@ export default { // 审批信息的表单 approvalInfoForm: this.$form.createForm(this), approvalInfo: {}, - currentNode: null, + currentNode: '4', labelCol: { xs: { span: 24 }, sm: { span: 4 } @@ -165,11 +192,58 @@ export default { rules: [{ required: false, message: this.$t('pleaseEnter') + this.$t('remarks') }], validateTrigger: 'blur' } - } + }, + selectedStandard: {}, // 发起节点,选中的标准 + selectedSource: null // 发起节点,选中标准的分解单来源 + } + }, + computed: { + pageTitle () { + return `${this.$t('flowCenter')}${this.$route.meta.title}` + }, + // 是否发起节点,发起节点展示业务基本信息、业务分派信息 + isInitial () { + return this.currentNode === StandardComplianceNodes.initial.value + }, + // 是否部所主管级领导下发节点 + isDepartLeaderIssue () { + return this.currentNode === StandardComplianceNodes.departLeaderIssue.value + }, + // 是否模块负责人分发 + isModuleOwnerIssue () { + return this.currentNode === StandardComplianceNodes.moduleOwnerIssue.value + }, + // 是否设计工程师评估节点 + isDesignEngineerAssess () { + return this.currentNode === StandardComplianceNodes.designEngineerAssess.value } }, created () { - this.getPersonInfoStructure(ProcessKey.NO_MATCH_TRACKING.value) + // if (this.$route.query.processInstanceId || this.$route.query.draftId) { + // this.currentNode = this.$route.query.nodeId + // } else { + // this.currentNode = StandardComplianceNodes.initial.value + // } + this.btnList = StandardComplianceNodes.propertyOfValue('btn', this.currentNode) + this.getPersonInfoStructure(ProcessKey.NO_MATCH_TRACKING.value, () => { + this.initPersonInfoData() + }) + }, + methods: { + /** + * 分解单来源变化 + * @param source + */ + handleSourceChange (source) { + this.selectedSource = source + }, + /** + * 选择的标准变化 + * @param standard + */ + handleStandardChange (standard) { + this.selectedStandard = Object.assign({}, standard) + } } } @@ -177,4 +251,15 @@ export default { diff --git a/src/views/workCenter/standardComplianceProcess/components/DepartLeaderIssueTable.vue b/src/views/workCenter/standardComplianceProcess/components/DepartLeaderIssueTable.vue new file mode 100644 index 00000000..e682b889 --- /dev/null +++ b/src/views/workCenter/standardComplianceProcess/components/DepartLeaderIssueTable.vue @@ -0,0 +1,147 @@ + + + + + + \ No newline at end of file diff --git a/src/views/workCenter/standardComplianceProcess/components/DesignEngineerAssess.vue b/src/views/workCenter/standardComplianceProcess/components/DesignEngineerAssess.vue new file mode 100644 index 00000000..d65387c3 --- /dev/null +++ b/src/views/workCenter/standardComplianceProcess/components/DesignEngineerAssess.vue @@ -0,0 +1,37 @@ + + + + + + diff --git a/src/views/workCenter/standardComplianceProcess/components/InitialAssignTable.vue b/src/views/workCenter/standardComplianceProcess/components/InitialAssignTable.vue index d8fd0b07..14e6308e 100644 --- a/src/views/workCenter/standardComplianceProcess/components/InitialAssignTable.vue +++ b/src/views/workCenter/standardComplianceProcess/components/InitialAssignTable.vue @@ -8,14 +8,16 @@ {{ $t('workCenter.projectComplianceEvaluationProcess.batchSelector') }} - + {{ $t('batchDelete') }}
- @@ -30,13 +32,13 @@
- + @@ -48,6 +50,37 @@ import UserSelectModal from '../../../../components/selection/UserSelectModal' export default { name: 'InitialAssignTable', components: { UserSelection, JTable, UserSelectModal }, + props: { + // 选中的标准 + selectedStandard: { + type: Object, + required: false, + default: () => { + return {} + } + }, + // 分解单来源 + selectedSource: { + type: String, + required: false, + default: false + } + }, + watch: { + // 选中标准变化,清除表格数据 + selectedStandard: { + handler () { + this.dataSource = [] + }, + deep: true + }, + // 选中的分解单来源变化 + selectedSource (value) { + if (value && this.selectedStandard.id) { + // todo 获取条款号的数据 + } + } + }, data () { return { columns: [ @@ -100,7 +133,7 @@ export default { scopedSlots: { customRender: 'action' } } ], - dataSource: [{ id: 1 }, { id: 2 }, { id: 3 }], + dataSource: [], selectedRowKeys: [] } }, @@ -114,9 +147,49 @@ export default { this.$message.warning(this.$t('pleaseSelectDistributeData')) return } + this.$refs.userSelectModal.open() }, - handleDelete () { - + handleBatchSelected (list) { + const data = JSON.parse(JSON.stringify(this.dataSource)) + this.dataSource = data.map(item => { + if (this.selectedRowKeys.includes(item.id)) { + item.contact = list.map(tt => tt.id).join(',') + item.contact_dictText = list.map(tt => tt.realname + '(' + tt.username + ')').join(',') + } + return item + }) + }, + handleDelete (id) { + this.$confirm({ + title: this.$t('confirmDeletion'), + content: this.$t('areYouSure'), + onOk: () => { + const index = this.dataSource.findIndex(tt => tt.id === id) + this.dataSource[index] = null + this.dataSource = this.dataSource.filter(tt => !!tt) + this.selectedRowKeys = [] + } + }) + }, + batchDelete () { + if (!this.selectedRowKeys || this.selectedRowKeys.length === 0) { + this.$message.warning(this.$t('workCenter.standardCompliance.pleaseSelectDeleteData')) + return + } + this.$confirm({ + title: this.$t('confirmBatchDeletion'), + content: this.$t('deleteAData'), + onOk: () => { + const data = this.dataSource.map(item => { + if (this.selectedRowKeys.includes(item.id)) { + return null + } + return item + }).filter(tt => !!tt) + this.dataSource = JSON.parse(JSON.stringify(data)) + this.selectedRowKeys = [] + } + }) }, onSelectChange (selectedRowKeys) { this.selectedRowKeys = selectedRowKeys diff --git a/src/views/workCenter/standardComplianceProcess/components/InitialBasicServiceInfo.vue b/src/views/workCenter/standardComplianceProcess/components/InitialBasicServiceInfo.vue index 17a2cbad..f49a6910 100644 --- a/src/views/workCenter/standardComplianceProcess/components/InitialBasicServiceInfo.vue +++ b/src/views/workCenter/standardComplianceProcess/components/InitialBasicServiceInfo.vue @@ -93,10 +93,12 @@ export default { }, handleSelectedStandard (list) { this.dataSource = list + this.$emit('standard:change', list[0]) }, handleSourceChange (value, record, index) { record.salvageSource = value this.$set(this.dataSource, index, record) + this.$emit('source:change', value) } } } diff --git a/src/views/workCenter/standardComplianceProcess/components/ModuleOwnerIssueTable.vue b/src/views/workCenter/standardComplianceProcess/components/ModuleOwnerIssueTable.vue new file mode 100644 index 00000000..ad852739 --- /dev/null +++ b/src/views/workCenter/standardComplianceProcess/components/ModuleOwnerIssueTable.vue @@ -0,0 +1,148 @@ + + + + + + \ No newline at end of file diff --git a/src/views/workCenter/standardComplianceProcess/modules/UninvolvedModal.vue b/src/views/workCenter/standardComplianceProcess/modules/UninvolvedModal.vue new file mode 100644 index 00000000..ee5e4dde --- /dev/null +++ b/src/views/workCenter/standardComplianceProcess/modules/UninvolvedModal.vue @@ -0,0 +1,100 @@ + + + + + \ No newline at end of file