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 @@
+
+
+
+
{{ $t('workCenter.dispatchInformation') }}
+
+
+
+ {{ $t('workCenter.projectComplianceEvaluationProcess.batchSelector') }}
+
+
+
+
+
+
+
+
+ {{ global.emptyLine }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ 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 @@
+
+
+
+
+
{{ $t('workCenter.standardCompliance.projectAppraisal') }}
+
+
+
+
+
+
+
+
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') }}
-
+
@@ -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 @@
+
+
+
+
{{ $t('workCenter.dispatchInformation') }}
+
+
+
+ {{ $t('workCenter.projectComplianceEvaluationProcess.batchSelector') }}
+
+
+
+
+
+
+
+
+ {{ global.emptyLine }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ 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 @@
+
+
+
+
+
+
+
+
+
+
+
+ {{ $t('cancel') }}
+
+ {{ $t('workCenter.projectComplianceEvaluationProcess.cancelNotInvolve') }}
+
+ {{ $t('submit') }}
+
+
+
+
+
+
+
+
\ No newline at end of file