diff --git a/src/api/enterpriseStandardLibraryApi.js b/src/api/enterpriseStandardLibraryApi.js
index 25c3156d..94f5e933 100644
--- a/src/api/enterpriseStandardLibraryApi.js
+++ b/src/api/enterpriseStandardLibraryApi.js
@@ -53,6 +53,8 @@ const initReview = (params) => getAction('', params)
// 企标计划-根据id获取计划详情
const getEnterpriseStandardPlanInfoById = (params) => getAction('/enterprise/plan/detail', params)
+// 企标计划-分页获取(选择企标计划组件中用)
+const getEnterpriseStandardPlanPage = (params) => getAction('/enterprise/plan/page', params)
export {
getEnterpriseStandardTableHeader,
@@ -83,5 +85,6 @@ export {
initReview,
- getEnterpriseStandardPlanInfoById
+ getEnterpriseStandardPlanInfoById,
+ getEnterpriseStandardPlanPage
}
diff --git a/src/api/workCenter.js b/src/api/workCenter.js
index aba92fab..c5cda46f 100644
--- a/src/api/workCenter.js
+++ b/src/api/workCenter.js
@@ -16,7 +16,8 @@ const enterprisePlanApprovalTurnTo = (params) => postAction('', params)
const enterprisePlanApprovalAgree = (params) => postAction('', params)
// 驳回
const enterprisePlanApprovalReject = (params) => postAction('', params)
-
+// 确定
+const enterprisePlanApprovalDetermine = (params) => postAction('', params)
export {
deployWorkFlow,
getFlowNodeList,
@@ -25,5 +26,6 @@ export {
enterprisePlanApprovalTurnTo,
enterprisePlanApprovalAgree,
- enterprisePlanApprovalReject
+ enterprisePlanApprovalReject,
+ enterprisePlanApprovalDetermine
}
diff --git a/src/common/lang/en-us.js b/src/common/lang/en-us.js
index 879b6a92..1d19a0d6 100644
--- a/src/common/lang/en-us.js
+++ b/src/common/lang/en-us.js
@@ -500,6 +500,10 @@ module.exports = {
releaseDate: 'Release date',
textState: 'Text state'
},
+ // 企标计划选择器
+ enterprisePlanSelect: {
+ title: '企标计划选择'
+ },
// 用户/组织结构选择器
userOrOrganSelect: {
select: 'Select',
@@ -515,7 +519,9 @@ module.exports = {
selectUser: 'Select User',
userList: 'Users List',
name: 'name',
- post: 'Post'
+ post: 'Post',
+ selectedPersonnel: '已选人员',
+ workGroup: '内部工作组'
},
// 弹框上传附件
uploadFile: {
diff --git a/src/common/lang/system/en.js b/src/common/lang/system/en.js
index 21cfea1d..6daf2c14 100644
--- a/src/common/lang/system/en.js
+++ b/src/common/lang/system/en.js
@@ -80,5 +80,12 @@ module.exports = {
isShelf: 'Shelf Or Not',
sort: 'Sort',
shelfWarn: 'the link is empty please fill in the link first'
+ },
+ // 联络人管理
+ contact: {
+ departName: '部门名称',
+ standardizationEngineer: '标准化工程师',
+ contactPerson: '联络人',
+ contactPersonSupervisorLevelLeader: '部门联络人主管级领导'
}
}
diff --git a/src/common/lang/system/zh.js b/src/common/lang/system/zh.js
index df6ed506..b5688473 100644
--- a/src/common/lang/system/zh.js
+++ b/src/common/lang/system/zh.js
@@ -81,5 +81,12 @@ module.exports = {
isShelf: '是否上架',
sort: '排序',
shelfWarn: '链接为空,请先填写链接'
+ },
+ // 联络人管理
+ contact: {
+ departName: '部门名称',
+ standardizationEngineer: '标准化工程师',
+ contactPerson: '联络人',
+ contactPersonSupervisorLevelLeader: '部门联络人主管级领导'
}
}
diff --git a/src/common/lang/workCenter/en.js b/src/common/lang/workCenter/en.js
index bde541e4..b7304b50 100644
--- a/src/common/lang/workCenter/en.js
+++ b/src/common/lang/workCenter/en.js
@@ -72,7 +72,9 @@ module.exports = {
originalDraftPlanFinishDate: '原草稿计划完成日期',
originalExposureDraftPlanFinishDate: '原征求意见稿计划完成日期',
originalPlanSubmissionDate: '原计划报批日期',
- changeReason: '变更原因'
+ changeReason: '变更原因',
+ superintendent: '所长',
+ relatedPersonnel: '相关人员'
},
// 流程配置
processConfig: {
diff --git a/src/common/lang/workCenter/zh.js b/src/common/lang/workCenter/zh.js
index bde541e4..b7304b50 100644
--- a/src/common/lang/workCenter/zh.js
+++ b/src/common/lang/workCenter/zh.js
@@ -72,7 +72,9 @@ module.exports = {
originalDraftPlanFinishDate: '原草稿计划完成日期',
originalExposureDraftPlanFinishDate: '原征求意见稿计划完成日期',
originalPlanSubmissionDate: '原计划报批日期',
- changeReason: '变更原因'
+ changeReason: '变更原因',
+ superintendent: '所长',
+ relatedPersonnel: '相关人员'
},
// 流程配置
processConfig: {
diff --git a/src/common/lang/zh-cn.js b/src/common/lang/zh-cn.js
index 6426de1c..f1883343 100644
--- a/src/common/lang/zh-cn.js
+++ b/src/common/lang/zh-cn.js
@@ -501,6 +501,10 @@ module.exports = {
releaseDate: '发布日期',
textState: '文本状态'
},
+ // 企标计划选择器
+ enterprisePlanSelect: {
+ title: '企标计划选择'
+ },
// 用户/组织结构选择器
userOrOrganSelect: {
select: '选择',
@@ -517,7 +521,8 @@ module.exports = {
userList: '用户列表',
name: '姓名',
post: '岗位',
- selectedPersonnel: '已选人员'
+ selectedPersonnel: '已选人员',
+ workGroup: '内部工作组'
},
// 弹框上传附件
uploadFile: {
diff --git a/src/components/PersonnelInfo.vue b/src/components/PersonnelInfo.vue
index ba08ac61..0ac44d73 100644
--- a/src/components/PersonnelInfo.vue
+++ b/src/components/PersonnelInfo.vue
@@ -29,7 +29,9 @@
-
+
+
+
{{ step.userList }}
@@ -48,10 +50,12 @@
+
+
diff --git a/src/components/selection/EnterprisePlanSelectionModal.vue b/src/components/selection/EnterprisePlanSelectionModal.vue
new file mode 100644
index 00000000..fb63b070
--- /dev/null
+++ b/src/components/selection/EnterprisePlanSelectionModal.vue
@@ -0,0 +1,316 @@
+
+
+
+
+
+
{{ $t('cancel') }}
+
{{ $t('submit') }}
+
+
+
+
+
+
+
diff --git a/src/components/selection/StandardSelection.vue b/src/components/selection/StandardSelection.vue
index bf00231e..ff0e77c1 100644
--- a/src/components/selection/StandardSelection.vue
+++ b/src/components/selection/StandardSelection.vue
@@ -8,7 +8,7 @@
{{this.$t('standardSelect.standardSelection')}}
-
+
@@ -46,9 +46,6 @@ export default {
},
modalNameChange (value) {
this.$emit('nameChange', value)
- },
- modalListChange (value) {
- this.$emit('listChange', value)
}
},
model: {
diff --git a/src/components/selection/StandardSelectionModal.vue b/src/components/selection/StandardSelectionModal.vue
index 5735380f..4d1dcf50 100644
--- a/src/components/selection/StandardSelectionModal.vue
+++ b/src/components/selection/StandardSelectionModal.vue
@@ -193,7 +193,6 @@ export default {
})
this.$emit('change', serialNumber.join(','))
this.$emit('nameChange', serialNameArr.join(','))
- this.$emit('listChange', this.selectedRowList)
this.visible = false
} else {
this.$message.warning(this.$t('selectLeastOne'))
diff --git a/src/components/selection/UserSelectByContact.vue b/src/components/selection/UserSelectByContact.vue
new file mode 100644
index 00000000..18a9777c
--- /dev/null
+++ b/src/components/selection/UserSelectByContact.vue
@@ -0,0 +1,116 @@
+
+
+
+
+
+
+ {{ $t('userSelect.select') }}
+
+
+
+
+
+
+
+
+
diff --git a/src/components/selection/UserSelectByContactModal.vue b/src/components/selection/UserSelectByContactModal.vue
new file mode 100644
index 00000000..5a4dae01
--- /dev/null
+++ b/src/components/selection/UserSelectByContactModal.vue
@@ -0,0 +1,320 @@
+
+
+
+
+
+
+
+
+
+
+
+ {{$t('reset')}}
+ {{$t('query')}}
+
+
+
+
+
+
+
+
+ {{ text || text === 0 ? text : global.emptyLine }}
+ {{ text || text === 0 ? text : global.emptyLine }}
+
+
+
+
+ {{ $t('userSelect.selectedPersonnel') }}
+
+
+ {{ item.realname + '(' + item.username + ')' }}
+
+
+
+
+
+
+
+
+
+
diff --git a/src/components/selection/UserSelectByWorkGroup.vue b/src/components/selection/UserSelectByWorkGroup.vue
new file mode 100644
index 00000000..ffff8e6c
--- /dev/null
+++ b/src/components/selection/UserSelectByWorkGroup.vue
@@ -0,0 +1,116 @@
+
+
+
+
+
+
+ {{ $t('userSelect.select') }}
+
+
+
+
+
+
+
+
+
diff --git a/src/components/selection/UserSelectByWorkGroupModal.vue b/src/components/selection/UserSelectByWorkGroupModal.vue
new file mode 100644
index 00000000..c9094a59
--- /dev/null
+++ b/src/components/selection/UserSelectByWorkGroupModal.vue
@@ -0,0 +1,365 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{$t('reset')}}
+ {{$t('query')}}
+
+
+
+
+
+
+
+
+ {{ text || text === 0 ? text : global.emptyLine }}
+ {{ text || text === 0 ? text : global.emptyLine }}
+
+
+
+
+ {{ $t('userSelect.selectedPersonnel') }}
+
+
+ {{ item.realname + '(' + item.username + ')' }}
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/system/contactManage/ContactManageList.vue b/src/views/system/contactManage/ContactManageList.vue
new file mode 100644
index 00000000..9a0e508c
--- /dev/null
+++ b/src/views/system/contactManage/ContactManageList.vue
@@ -0,0 +1,121 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
{{ $t('query') }}
+
{{ $t('reset') }}
+
+
+
+
+
+
+
+
+
+
+ {{ $t('newlyAdded') }}
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/system/contactManage/modules/ContactManageModal.vue b/src/views/system/contactManage/modules/ContactManageModal.vue
new file mode 100644
index 00000000..85a173c0
--- /dev/null
+++ b/src/views/system/contactManage/modules/ContactManageModal.vue
@@ -0,0 +1,171 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/workCenter/enterpriseStandardInitChange/flow/PlanApprovalChangeFlow.vue b/src/views/workCenter/enterpriseStandardInitChange/flow/PlanApprovalChangeFlow.vue
index 31c2979f..7b61ccfa 100644
--- a/src/views/workCenter/enterpriseStandardInitChange/flow/PlanApprovalChangeFlow.vue
+++ b/src/views/workCenter/enterpriseStandardInitChange/flow/PlanApprovalChangeFlow.vue
@@ -11,6 +11,7 @@
+
{{ $t('processInformation') }}
@@ -36,14 +37,16 @@
v-decorator="['expirationDate']" />
-
-
-
-
+
+
+
+
+
+
@@ -90,7 +93,6 @@
{{ $t('workCenter.enterpriseInitChangePlan.completionTimeChange') }}
{{ $t('workCenter.enterpriseInitChangePlan.terminationOfWork') }}
@@ -107,6 +109,7 @@
v-if="formInline.applicationType === 1"
ref="approvalBaseInfo"
:disabled="disabled"
+ :currentNode="currentNode"
:itemCategory="formInline.itemCategory">
@@ -114,9 +117,34 @@
v-else-if="formInline.applicationType === 2"
ref="changeBaseInfo"
:disabled="disabled"
+ :currentNode="currentNode"
>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
{{ $t('processApprovalInformation') }}
@@ -133,18 +161,33 @@
+
+
{{ $t('preservation') }}
{{ $t('agree') }}
-
+
+
+
+ {{ $t('turnTo') }}
+
+ {{ $t('preservation') }}
+
+ {{ $t('agree') }}
+
+
+
+ {{ $t('determine') }}
+
+
{{ $t('turnTo') }}
@@ -165,14 +208,133 @@
import InternalDetailPage from '@/components/InternalDetailPage'
import PersonnelInfo from '@/components/PersonnelInfo'
import UserSelectModal from '@/components/selection/UserSelectModal'
+import UserSelection from '@/components/selection/UserSelection'
import {
enterprisePlanApprovalTurnTo,
enterprisePlanApprovalAgree,
- enterprisePlanApprovalReject
+ enterprisePlanApprovalReject,
+ enterprisePlanApprovalDetermine
} from '@/api/workCenter'
import ApprovalBaseInfo from './modules/ApprovalBaseInfo'
import ChangeBaseInfo from './modules/ChangeBaseInfo'
+// 标准立项的人员信息
+const approvalPersonalInfo = [ // 人员信息的数据
+ {
+ id: 1,
+ nodeName: '主起草人发起',
+ nodeRoleName: '发起人',
+ canChoose: false
+ },
+ {
+ id: 2,
+ nodeName: '部所联络人校对',
+ nodeRoleName: '部所联络人',
+ canChoose: true,
+ chooseType: 'radio',
+ chooseSource: 'contactManage'
+ },
+ {
+ id: 3,
+ nodeName: '专家审批',
+ nodeRoleName: '专家',
+ canChoose: true,
+ chooseType: 'checkbox',
+ chooseSource: 'workGroup'
+ },
+ {
+ id: 4,
+ nodeName: '发起人主管级领导审批',
+ nodeRoleName: '发起人主管级领导',
+ canChoose: true,
+ chooseType: 'radio'
+ },
+ {
+ id: 5,
+ nodeName: '发起人主管级上级领导审批',
+ nodeRoleName: '发起人主管级上级领导',
+ canChoose: true,
+ chooseType: 'radio'
+ },
+ {
+ id: 6,
+ nodeName: '标准化审批',
+ nodeRoleName: '标准化',
+ canChoose: true,
+ chooseType: 'radio'
+ }
+]
+// 变更的人员信息
+const changePersonalInfo = [
+ {
+ id: 1,
+ nodeName: '主起草人发起',
+ nodeRoleName: '发起人',
+ canChoose: false
+ },
+ {
+ id: 2,
+ nodeName: '部所联络人校对',
+ nodeRoleName: '部所联络人',
+ canChoose: true,
+ chooseType: 'radio',
+ chooseSource: 'contactManage'
+ },
+ {
+ id: 3,
+ nodeName: '主起草人主管级领导审批',
+ nodeRoleName: '主起草人主管级领导',
+ canChoose: true,
+ chooseType: 'radio'
+ },
+ {
+ id: 4,
+ nodeName: '主起草人主管级上一级领导审批',
+ nodeRoleName: '主起草人主管级上一级领导',
+ canChoose: true,
+ chooseType: 'radio'
+ },
+ {
+ id: 5,
+ nodeName: '标准化审批',
+ nodeRoleName: '标准化',
+ canChoose: true,
+ chooseType: 'radio'
+ },
+ {
+ id: 6,
+ nodeName: '新起草部门主管级上一级领导下发',
+ nodeRoleName: '新起草部门主管级上一级领导',
+ canChoose: true,
+ chooseType: 'radio',
+ disabled: true
+ },
+ {
+ id: 7,
+ nodeName: '新起草部门主管级领导确认',
+ nodeRoleName: '新起草部门主管级领导',
+ canChoose: true,
+ chooseType: 'radio',
+ disabled: true
+ },
+ {
+ id: 8,
+ nodeName: '相关人员会签',
+ nodeRoleName: '相关人员',
+ canChoose: true,
+ chooseType: 'checkbox',
+ disabled: true
+ },
+ {
+ id: 9,
+ nodeName: '抄送主起草人',
+ nodeRoleName: '主起草人',
+ canChoose: true,
+ chooseType: 'checkbox',
+ disabled: true
+ },
+]
+
export default {
name: 'PlanApprovalFlow',
components: {
@@ -180,19 +342,37 @@ export default {
ApprovalBaseInfo,
UserSelectModal,
PersonnelInfo,
- InternalDetailPage
+ InternalDetailPage,
+ UserSelection
},
computed: {
pageTitle () {
return this.$t('flowCenter') + this.$route.meta.title
}
},
+ watch: {
+ 'formInline.applicationType' (value) {
+ if (value) {
+ if (this.formInline.applicationType === 1) {
+ this.personnelInfoData = approvalPersonalInfo
+ } else {
+ this.personnelInfoData = changePersonalInfo
+ }
+ }
+ if (this.formInline.itemCategory) {
+ this.formInline.itemCategory = undefined
+ }
+ }
+ },
+ mounted () {
+ this.personnelInfoData = approvalPersonalInfo
+ },
data () {
return {
loading: false,
switchValue: 'base', // 头部tab选中值
disabled: false,
- currentNode: 2, // 当前节点
+ currentNode: 1, // 当前节点
model: {},
processInfoForm: this.$form.createForm(this),
labelCol: {
@@ -224,6 +404,20 @@ export default {
{ required: false, message: this.$t('pleaseEnter') + this.$t('remarks') }
],
validateTrigger: 'blur'
+ },
+ // 所长
+ superintendent: {
+ rules: [
+ { required: true, message: this.$t('pleaseSelect') + this.$t('workCenter.enterpriseInitChangePlan.superintendent') }
+ ],
+ validateTrigger: 'change'
+ },
+ // 相关人员
+ relatedPersonnel: {
+ rules: [
+ { required: true, message: this.$t('pleaseSelect') + this.$t('workCenter.enterpriseInitChangePlan.relatedPersonnel') }
+ ],
+ validateTrigger: 'change'
}
},
formInline: {},
@@ -245,7 +439,9 @@ export default {
}
]
},
- approvalInfoForm: this.$form.createForm(this) // 审批信息表单
+ userForm: this.$form.createForm(this), // 部分节点需要选人的表单
+ approvalInfoForm: this.$form.createForm(this), // 审批信息表单
+ personnelInfoData: []
}
},
methods: {
@@ -255,6 +451,7 @@ export default {
},
// 项目类别改变
itemCategoryChange (value) {
+ console.log(value)
if (value === 1) {
this.$refs.approvalBaseInfo.rules.enterpriseStandardName[0].required = true
} else {
@@ -270,14 +467,27 @@ export default {
if (this.loading) return
this.processInfoForm.validateFields((err, values) => {
this.$refs.ruleForm.validate(valid => {
- this.$refs.approvalBaseInfo.$refs.ruleForm.validate(approvalBaseValid => {
- this.approvalInfoForm.validateFields((approvalErr, approvalValues) => {
- if (valid && approvalBaseValid && !err && !approvalErr) {
- this.loading = true
- const param = Object.assign({}, this.$refs.approvalBaseInfo.formInline)
- console.log(param)
- }
- })
+ this.approvalInfoForm.validateFields((approvalErr, approvalValues) => {
+ // 立项和变更的数据不一样,分开判断
+ if (this.formInline.applicationType === 1) {
+ // 是立项
+ this.$refs.approvalBaseInfo.$refs.ruleForm.validate(approvalBaseValid => {
+ if (valid && approvalBaseValid && !err && !approvalErr) {
+ this.loading = true
+ const param = Object.assign({}, this.$refs.approvalBaseInfo.formInline)
+ console.log(param)
+ }
+ })
+ } else {
+ // 是变更
+ this.userForm.validateFields((userErr, userValues) => {
+ if (valid && !err && !approvalErr && !userErr) {
+ this.loading = true
+ const param = this.$refs.changeBaseInfo.dataSource
+ console.log(param)
+ }
+ })
+ }
})
})
})
@@ -352,6 +562,28 @@ export default {
})
}
})
+ },
+ // 确定
+ handleDetermine () {
+ if (this.loading) return
+ this.approvalInfoForm.validateFields((err, values) => {
+ if (!err) {
+ this.loading = true
+ let param = {}
+ param = Object.assign({}, values)
+ param.processId = this.model.id
+ enterprisePlanApprovalDetermine(param).then(res => {
+ if (res.success) {
+ this.$message.success(res.message)
+ } else {
+ this.$message.warning(res.message)
+ }
+ }).finally(() => {
+ this.loading = false
+ this.validatorRules.remarks.rules[0].required = false
+ })
+ }
+ })
}
}
}
@@ -441,4 +673,11 @@ export default {
overflow: auto;
padding: 32px;
}
+
+.user-form {
+ margin-top: 24px;
+ /deep/ .ant-form-item {
+ margin-bottom: 0;
+ }
+}
diff --git a/src/views/workCenter/enterpriseStandardInitChange/flow/modules/ChangeBaseInfo.vue b/src/views/workCenter/enterpriseStandardInitChange/flow/modules/ChangeBaseInfo.vue
index dda439a1..6d36b81c 100644
--- a/src/views/workCenter/enterpriseStandardInitChange/flow/modules/ChangeBaseInfo.vue
+++ b/src/views/workCenter/enterpriseStandardInitChange/flow/modules/ChangeBaseInfo.vue
@@ -17,7 +17,7 @@
:can-drag="true"
:scroll="{x: '100%'}"
ref="table"
- rowKey="id"
+ rowKey="enterpriseStandardPlanId"
:columns="columns"
:dataSource="dataSource"
:pagination="false"
@@ -34,32 +34,35 @@
-
-
+