政策课题参会流程
This commit is contained in:
+4
-3
@@ -14,11 +14,14 @@
|
|||||||
"axios": "^0.21.1",
|
"axios": "^0.21.1",
|
||||||
"babel-polyfill": "^6.26.0",
|
"babel-polyfill": "^6.26.0",
|
||||||
"core-js": "^3.6.5",
|
"core-js": "^3.6.5",
|
||||||
|
"cross-env": "^5.0.5",
|
||||||
"echarts": "^5.0.1",
|
"echarts": "^5.0.1",
|
||||||
"element-ui": "^2.13.2",
|
"element-ui": "^2.13.2",
|
||||||
"es6-promise": "^4.2.8",
|
"es6-promise": "^4.2.8",
|
||||||
|
"increase-memory-limit": "^1.0.3",
|
||||||
"jquery": "^3.5.1",
|
"jquery": "^3.5.1",
|
||||||
"js-base64": "^2.6.2",
|
"js-base64": "^2.6.2",
|
||||||
|
"lodash": "^4.17.21",
|
||||||
"moment": "^2.29.1",
|
"moment": "^2.29.1",
|
||||||
"qs": "latest",
|
"qs": "latest",
|
||||||
"sortablejs": "^1.14.0",
|
"sortablejs": "^1.14.0",
|
||||||
@@ -31,9 +34,7 @@
|
|||||||
"vue-custom-scrollbar": "^1.4.4",
|
"vue-custom-scrollbar": "^1.4.4",
|
||||||
"vue-i18n": "^8.22.4",
|
"vue-i18n": "^8.22.4",
|
||||||
"vue-router": "^3.2.0",
|
"vue-router": "^3.2.0",
|
||||||
"vuex": "^3.4.0",
|
"vuex": "^3.4.0"
|
||||||
"increase-memory-limit": "^1.0.3",
|
|
||||||
"cross-env": "^5.0.5"
|
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@vue/cli-plugin-babel": "~4.5.0",
|
"@vue/cli-plugin-babel": "~4.5.0",
|
||||||
|
|||||||
@@ -165,6 +165,7 @@ export default {
|
|||||||
prcName: row.prcName,
|
prcName: row.prcName,
|
||||||
prcType: row.prcType
|
prcType: row.prcType
|
||||||
}
|
}
|
||||||
|
const params = {}
|
||||||
let name = ''
|
let name = ''
|
||||||
switch(prcType) {
|
switch(prcType) {
|
||||||
case '1':
|
case '1':
|
||||||
@@ -178,9 +179,11 @@ export default {
|
|||||||
break
|
break
|
||||||
case 'laws1':
|
case 'laws1':
|
||||||
if (row.taskInfo === '政策入库审批') {
|
if (row.taskInfo === '政策入库审批') {
|
||||||
name = 'zcrkStep2'
|
// name = 'zcrkStep2'
|
||||||
|
name = 'policyWarehousing2'
|
||||||
}else if (row.taskInfo === '重新发起入库流程'){
|
}else if (row.taskInfo === '重新发起入库流程'){
|
||||||
name = 'zcrkStep3'
|
// name = 'zcrkStep3'
|
||||||
|
name = 'policyWarehousing1'
|
||||||
}
|
}
|
||||||
break
|
break
|
||||||
case 'buss1':
|
case 'buss1':
|
||||||
@@ -606,8 +609,49 @@ export default {
|
|||||||
case '27':
|
case '27':
|
||||||
name = 'MyQuestions2'
|
name = 'MyQuestions2'
|
||||||
break
|
break
|
||||||
|
case '29':
|
||||||
|
if (row.taskInfo === '内外部会议入库审批') {
|
||||||
|
name = 'policyMeetings2'
|
||||||
|
} else if (row.taskInfo === '重新发起内外部会议入库流程') {
|
||||||
|
name = 'policyMeetings1'
|
||||||
|
}
|
||||||
|
break
|
||||||
|
case '30':
|
||||||
|
name = 'policyTopicEnrollment'
|
||||||
|
switch (row.taskInfo) {
|
||||||
|
case '审核':
|
||||||
|
params.type = 'step2'
|
||||||
|
break
|
||||||
|
case '审定':
|
||||||
|
params.type = 'step3'
|
||||||
|
break
|
||||||
|
case '批准':
|
||||||
|
params.type = 'step4'
|
||||||
|
break
|
||||||
|
case '重新起草':
|
||||||
|
params.type = 'step1_1'
|
||||||
|
break
|
||||||
|
}
|
||||||
|
break
|
||||||
|
case '31':
|
||||||
|
name = 'policyTopicParticipation'
|
||||||
|
switch (row.taskInfo) {
|
||||||
|
case '审核':
|
||||||
|
params.type = 'step2'
|
||||||
|
break
|
||||||
|
case '审定':
|
||||||
|
params.type = 'step3'
|
||||||
|
break
|
||||||
|
case '批准':
|
||||||
|
params.type = 'step4'
|
||||||
|
break
|
||||||
|
case '重新起草':
|
||||||
|
params.type = 'step1_1'
|
||||||
|
break
|
||||||
|
}
|
||||||
|
break
|
||||||
}
|
}
|
||||||
this.$router.push({ name, query })
|
this.$router.push({ name, query, params })
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -339,6 +339,7 @@
|
|||||||
import CustomDatePick from '@/components/CustomFormComponents/DatePicker'
|
import CustomDatePick from '@/components/CustomFormComponents/DatePicker'
|
||||||
import CustomFile from '@/components/CustomFormComponents/File'
|
import CustomFile from '@/components/CustomFormComponents/File'
|
||||||
import CustomTextarea from '@/components/CustomFormComponents/Textarea'
|
import CustomTextarea from '@/components/CustomFormComponents/Textarea'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: "editDrawer",
|
name: "editDrawer",
|
||||||
components: {
|
components: {
|
||||||
|
|||||||
@@ -124,6 +124,10 @@ export default {
|
|||||||
label: "政策课题入会流程",
|
label: "政策课题入会流程",
|
||||||
value: "30"
|
value: "30"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
label: "政策课题参会流程",
|
||||||
|
value: "31"
|
||||||
|
},
|
||||||
],
|
],
|
||||||
formDisableFlag: false,
|
formDisableFlag: false,
|
||||||
pickerOptions: {
|
pickerOptions: {
|
||||||
|
|||||||
@@ -0,0 +1,682 @@
|
|||||||
|
<template>
|
||||||
|
<div class="wrapper">
|
||||||
|
<ProcessHeader toggle>
|
||||||
|
<template slot="proName">政策课题入会流程</template>
|
||||||
|
<template slot="proNode">{{ title }}</template>
|
||||||
|
</ProcessHeader>
|
||||||
|
<div class="headerTabs">
|
||||||
|
<div class="headerTabsItem" :class="active === '1' ? 'active' : ''" @click="handleTabs('1')">基础信息</div>
|
||||||
|
<div v-if="!showProcess" class="headerTabsItem" :class="active === '2' ? 'active' : ''" @click="handleTabs('2')">人员信息</div>
|
||||||
|
<div v-else class="headerTabsItem" :class="active === '3' ? 'active' : ''" @click="handleTabs('3')">审批历史</div>
|
||||||
|
</div>
|
||||||
|
<div class="content">
|
||||||
|
<el-form v-if="reloadForm"
|
||||||
|
ref="form"
|
||||||
|
:model="form"
|
||||||
|
:rules="rules"
|
||||||
|
class="label-input-form"
|
||||||
|
label-width="210px"
|
||||||
|
>
|
||||||
|
<div v-show="active === '1'">
|
||||||
|
<ProcessTitle>
|
||||||
|
<template slot="title">基础信息</template>
|
||||||
|
</ProcessTitle>
|
||||||
|
<Basic :form="form" :disabled="disabled"></Basic>
|
||||||
|
<ProcessTitle>
|
||||||
|
<template slot="title">课题组会议</template>
|
||||||
|
</ProcessTitle>
|
||||||
|
<TableFormItem
|
||||||
|
:data="form.meetingList"
|
||||||
|
:options="options.meetingList"
|
||||||
|
parentProp="meetingList"
|
||||||
|
:rules="rules"
|
||||||
|
:disabled="disabled"
|
||||||
|
@add="add('meetingList')"
|
||||||
|
@delete="onDelete('meetingList', $event)"
|
||||||
|
></TableFormItem>
|
||||||
|
<ProcessTitle>
|
||||||
|
<template slot="title">课题组资料</template>
|
||||||
|
</ProcessTitle>
|
||||||
|
<ResearchGroupMaterials :form="form" :disabled="disabled"></ResearchGroupMaterials>
|
||||||
|
<ProcessTitle>
|
||||||
|
<template slot="title">课题组联系方式</template>
|
||||||
|
</ProcessTitle>
|
||||||
|
<TableFormItem
|
||||||
|
:data="form.topicContactInformationList"
|
||||||
|
:options="options.topicContactInformationList"
|
||||||
|
parentProp="topicContactInformationList"
|
||||||
|
:rules="rules"
|
||||||
|
:disabled="disabled"
|
||||||
|
@add="add('topicContactInformationList')"
|
||||||
|
@delete="onDelete('topicContactInformationList', $event)"
|
||||||
|
></TableFormItem>
|
||||||
|
<ProcessTitle>
|
||||||
|
<template slot="title">内部资料</template>
|
||||||
|
</ProcessTitle>
|
||||||
|
<InsideMaterials :form="form" :disabled="disabled"></InsideMaterials>
|
||||||
|
<ProcessTitle>
|
||||||
|
<template slot="title">内部联系方式</template>
|
||||||
|
</ProcessTitle>
|
||||||
|
<TableFormItem
|
||||||
|
:data="form.insideContactInformationList"
|
||||||
|
:options="options.insideContactInformationList"
|
||||||
|
parentProp="insideContactInformationList"
|
||||||
|
:rules="rules"
|
||||||
|
:disabled="disabled"
|
||||||
|
@add="add('insideContactInformationList')"
|
||||||
|
@delete="onDelete('insideContactInformationList', $event)"
|
||||||
|
></TableFormItem>
|
||||||
|
<ReceiptDescription v-model="form.commentText" title="回执说明"></ReceiptDescription>
|
||||||
|
</div>
|
||||||
|
<div class="block" style="padding-top: 20px;" v-show="active === '2'">
|
||||||
|
<PersonInfo ref="roleForm" :roleForm="roleForm" :roleRules="roleRules" :disabled="disabled"></PersonInfo>
|
||||||
|
</div>
|
||||||
|
<div class="block" style="padding-top: 20px;" v-show="active === '3'">
|
||||||
|
<ApprovalHistory :data="processData" :loading="processLoading"></ApprovalHistory>
|
||||||
|
</div>
|
||||||
|
</el-form>
|
||||||
|
</div>
|
||||||
|
<ProcessFooter
|
||||||
|
v-if="showProcessFooter"
|
||||||
|
:show-transfer="showTransfer"
|
||||||
|
:show-over2="showOver2"
|
||||||
|
:show-save="showSave"
|
||||||
|
:show-submit="showSubmit"
|
||||||
|
:approval="approval"
|
||||||
|
:submitLoading="footerLoading"
|
||||||
|
:saveLoading="footerLoading"
|
||||||
|
@over2="handleOver"
|
||||||
|
@transfer="handleTransfer"
|
||||||
|
@save="handleSave"
|
||||||
|
@submit="handleApprove"
|
||||||
|
>
|
||||||
|
</ProcessFooter>
|
||||||
|
<!-- 福田全公司选人解决方案 -->
|
||||||
|
<Role-tree
|
||||||
|
check-box
|
||||||
|
:is-title="drawerTitle"
|
||||||
|
:is-visible.sync="drawerModal"
|
||||||
|
@checkedRole="checkedRole"
|
||||||
|
:nodeList="nodeList"
|
||||||
|
></Role-tree>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import ProcessTitle from '@/pages/processCenter/pages/components/ProcessTitle'
|
||||||
|
import ProcessHeader from '@/pages/processCenter/pages/components/ProcessHeader'
|
||||||
|
import ProcessFooter from '@/pages/processCenter/pages/components/ProcessFooter'
|
||||||
|
|
||||||
|
import Basic from "./components/Basic";
|
||||||
|
import TableFormItem from "@/components/hzwlComponents/TableFormItem";
|
||||||
|
import ResearchGroupMaterials from "./components/ResearchGroupMaterials";
|
||||||
|
import InsideMaterials from "./components/InsideMaterials";
|
||||||
|
import PersonInfo from "./components/PersonInfo";
|
||||||
|
import ReceiptDescription from "@/components/hzwlComponents/ReceiptDescription";
|
||||||
|
import ApprovalHistory from "@/components/hzwlComponents/ApprovalHistory";
|
||||||
|
|
||||||
|
import { saveTaskFirst, queryTaskFirst, inboundLiaisonDetail, taskDel, saveTaskForPub, changeAssigneeNew } from 'api/process'
|
||||||
|
|
||||||
|
export default {
|
||||||
|
name: "policyTopicEnrollment",
|
||||||
|
components: {
|
||||||
|
ProcessTitle,
|
||||||
|
ProcessHeader,
|
||||||
|
ProcessFooter,
|
||||||
|
Basic,
|
||||||
|
TableFormItem,
|
||||||
|
ResearchGroupMaterials,
|
||||||
|
InsideMaterials,
|
||||||
|
PersonInfo,
|
||||||
|
ReceiptDescription,
|
||||||
|
ApprovalHistory
|
||||||
|
},
|
||||||
|
data () {
|
||||||
|
const form = {
|
||||||
|
// 基础信息
|
||||||
|
topicName: '',
|
||||||
|
organizer: '',
|
||||||
|
guidanceUnit: '',
|
||||||
|
participatingUnit: '',
|
||||||
|
startTime: '',
|
||||||
|
closeTime: '',
|
||||||
|
topicStatus: '',
|
||||||
|
topicCost: '',
|
||||||
|
agreement: '',
|
||||||
|
agreementName: '',
|
||||||
|
// 课题组会议
|
||||||
|
meetingList: [
|
||||||
|
{
|
||||||
|
meetingName: '',
|
||||||
|
meetingTime: '',
|
||||||
|
meetingAddress: '',
|
||||||
|
participants: '',
|
||||||
|
meetingContent: '',
|
||||||
|
}
|
||||||
|
],
|
||||||
|
// 课题组资料
|
||||||
|
researchPlan: '',
|
||||||
|
researchPlanName: '',
|
||||||
|
researchFindings: '',
|
||||||
|
researchFindingsName: '',
|
||||||
|
other: '',
|
||||||
|
otherName: '',
|
||||||
|
conferenceMaterials: '',
|
||||||
|
conferenceMaterialsName: '',
|
||||||
|
// 课题组联系方式
|
||||||
|
topicContactInformationList: [
|
||||||
|
{
|
||||||
|
name: '',
|
||||||
|
department: '',
|
||||||
|
phone: '',
|
||||||
|
email: '',
|
||||||
|
identity: ''
|
||||||
|
}
|
||||||
|
],
|
||||||
|
// 内部资料
|
||||||
|
insideProjectProposalReport: '',
|
||||||
|
insideProjectProposalReportName: '',
|
||||||
|
insideResearchPlan: '',
|
||||||
|
insideResearchPlanName: '',
|
||||||
|
insideConferenceMaterials: '',
|
||||||
|
insideConferenceMaterialsName: '',
|
||||||
|
insideResearchFindings: '',
|
||||||
|
insideResearchFindingsName: '',
|
||||||
|
insideOther: '',
|
||||||
|
insideOtherName: '',
|
||||||
|
// 内部联系方式
|
||||||
|
insideContactInformationList: [
|
||||||
|
{
|
||||||
|
name: '',
|
||||||
|
department: '',
|
||||||
|
phone: '',
|
||||||
|
email: '',
|
||||||
|
identity: ''
|
||||||
|
}
|
||||||
|
],
|
||||||
|
commentText: ''
|
||||||
|
}
|
||||||
|
const rules = {
|
||||||
|
topicName: [
|
||||||
|
{required: true, type: 'string', message: '课题名称不能为空', trigger: 'change'},
|
||||||
|
{type: 'string', max: 500, message: '课题名称不能超过500个字符', trigger: 'change'}
|
||||||
|
],
|
||||||
|
organizer: [
|
||||||
|
{required: true, type: 'string', message: '课题承办单位不能为空', trigger: 'change'},
|
||||||
|
{type: 'string', max: 500, message: '课题承办单位不能超过500个字符', trigger: 'change'}
|
||||||
|
],
|
||||||
|
guidanceUnit: [
|
||||||
|
{type: 'string', max: 500, message: '课题指导单位不能超过500个字符', trigger: 'change'}
|
||||||
|
],
|
||||||
|
participatingUnit: [
|
||||||
|
{type: 'string', max: 500, message: '课题参与单位不能超过500个字符', trigger: 'change'}
|
||||||
|
],
|
||||||
|
startTime: [
|
||||||
|
{required: true, message: '启动时间不能为空', trigger: 'change'}
|
||||||
|
],
|
||||||
|
topicStatus: [
|
||||||
|
{required: true, type: 'string', message: '课题状态不能为空', trigger: 'change'},
|
||||||
|
],
|
||||||
|
topicCost: [
|
||||||
|
{type: 'string', max: 500, message: '课题费用(万元)不能超过500个字符', trigger: 'change'}
|
||||||
|
],
|
||||||
|
meetingName: [
|
||||||
|
{type: 'string', max: 500, message: '会议名称不能超过500个字符', trigger: 'change'}
|
||||||
|
],
|
||||||
|
meetingTime: [
|
||||||
|
{type: 'string', max: 500, message: '会议时间不能超过500个字符', trigger: 'change'}
|
||||||
|
],
|
||||||
|
meetingAddress: [
|
||||||
|
{type: 'string', max: 500, message: '会议地点不能超过500个字符', trigger: 'change'}
|
||||||
|
],
|
||||||
|
participants: [
|
||||||
|
{type: 'string', max: 500, message: '参会人员(内部)不能超过500个字符', trigger: 'change'}
|
||||||
|
],
|
||||||
|
meetingContent: [
|
||||||
|
{type: 'string', max: 500, message: '会议主要内容不能超过500个字符', trigger: 'change'}
|
||||||
|
],
|
||||||
|
name: [
|
||||||
|
{type: 'string', max: 500, message: '姓名不能超过500个字符', trigger: 'change'}
|
||||||
|
],
|
||||||
|
department: [
|
||||||
|
{type: 'string', max: 500, message: '单位不能超过500个字符', trigger: 'change'}
|
||||||
|
],
|
||||||
|
phone: [
|
||||||
|
{type: 'string', max: 500, message: '电话不能超过500个字符', trigger: 'change'}
|
||||||
|
],
|
||||||
|
email: [
|
||||||
|
{type: 'string', max: 500, message: '邮箱不能超过500个字符', trigger: 'change'}
|
||||||
|
],
|
||||||
|
identity: [
|
||||||
|
{type: 'string', max: 500, message: '身份不能超过500个字符', trigger: 'change'}
|
||||||
|
],
|
||||||
|
}
|
||||||
|
const roleForm ={
|
||||||
|
applyUserId: this.$store.getters.userInfo.userId,
|
||||||
|
applyUserName: this.$store.getters.userInfo.userName,
|
||||||
|
ministerId: '',
|
||||||
|
ministerIdName: '',
|
||||||
|
inspectorId: '',
|
||||||
|
inspectorIdName: '',
|
||||||
|
presidentId: '',
|
||||||
|
presidentIdName: '',
|
||||||
|
}
|
||||||
|
const roleRules = {
|
||||||
|
ministerIdName: [
|
||||||
|
{required: true, message: '请选择法规认证部部长', trigger: 'change'},
|
||||||
|
],
|
||||||
|
inspectorIdName: [
|
||||||
|
{required: true, message: '请选择法规认证部总监', trigger: 'change'},
|
||||||
|
],
|
||||||
|
presidentIdName: [
|
||||||
|
{required: true, message: '请选择公司副总', trigger: 'change'},
|
||||||
|
]
|
||||||
|
}
|
||||||
|
const options = {
|
||||||
|
meetingList: [
|
||||||
|
{ label: '会议名称', prop: 'meetingName' },
|
||||||
|
{ label: '会议时间', prop: 'meetingTime' },
|
||||||
|
{ label: '会议地点', prop: 'meetingAddress' },
|
||||||
|
{ label: '参会人员(内部)', prop: 'participants' },
|
||||||
|
{ label: '会议主要内容', prop: 'meetingContent' },
|
||||||
|
],
|
||||||
|
topicContactInformationList: [
|
||||||
|
{ label: '姓名', prop: 'name' },
|
||||||
|
{ label: '单位', prop: 'department' },
|
||||||
|
{ label: '电话', prop: 'phone' },
|
||||||
|
{ label: '邮箱', prop: 'email' },
|
||||||
|
{ label: '身份', prop: 'identity' },
|
||||||
|
],
|
||||||
|
insideContactInformationList: [
|
||||||
|
{ label: '姓名', prop: 'name' },
|
||||||
|
{ label: '单位', prop: 'department' },
|
||||||
|
{ label: '电话', prop: 'phone' },
|
||||||
|
{ label: '邮箱', prop: 'email' },
|
||||||
|
{ label: '身份', prop: 'identity' },
|
||||||
|
],
|
||||||
|
}
|
||||||
|
return {
|
||||||
|
title: '起草',
|
||||||
|
active: '1',
|
||||||
|
disabled: false,
|
||||||
|
// 底部按钮
|
||||||
|
footerLoading: false,
|
||||||
|
showProcessFooter: true,
|
||||||
|
showTransfer: true, // 转办
|
||||||
|
showOver2: true, // 驳回
|
||||||
|
showSave: true, // 报错
|
||||||
|
showSubmit: true, // 提交
|
||||||
|
approval: false, // 同意
|
||||||
|
reloadForm: true,
|
||||||
|
form,
|
||||||
|
rules,
|
||||||
|
roleForm,
|
||||||
|
roleRules,
|
||||||
|
options,
|
||||||
|
// 审批历史
|
||||||
|
processData: [],
|
||||||
|
processLoading: false,
|
||||||
|
showProcess: false, // 审批历史
|
||||||
|
|
||||||
|
// 福田全公司选人解决方案
|
||||||
|
drawerModal: false,
|
||||||
|
drawerTitle: '',
|
||||||
|
nodeList: [],
|
||||||
|
}
|
||||||
|
},
|
||||||
|
watch: {
|
||||||
|
'form.startTime' () {
|
||||||
|
this.setTopicStatus()
|
||||||
|
},
|
||||||
|
'form.closeTime' () {
|
||||||
|
this.setTopicStatus()
|
||||||
|
},
|
||||||
|
},
|
||||||
|
created() {
|
||||||
|
this.setAuth()
|
||||||
|
this.getData()
|
||||||
|
this.processTable()
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
handleTabs(tab) {
|
||||||
|
this.active = tab
|
||||||
|
},
|
||||||
|
setTopicStatus () {
|
||||||
|
if (!this.form.startTime) {
|
||||||
|
this.form.topicStatus = ''
|
||||||
|
}
|
||||||
|
if (this.form.startTime && !this.form.closeTime) {
|
||||||
|
this.form.topicStatus = '进行中'
|
||||||
|
}
|
||||||
|
if (this.form.startTime && this.form.closeTime) {
|
||||||
|
this.form.topicStatus = '已结题'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
add (type) {
|
||||||
|
let item = {}
|
||||||
|
switch (type) {
|
||||||
|
case 'meetingList':
|
||||||
|
item = {
|
||||||
|
meetingName: '',
|
||||||
|
meetingTime: '',
|
||||||
|
meetingAddress: '',
|
||||||
|
participants: '',
|
||||||
|
meetingContent: '',
|
||||||
|
}
|
||||||
|
break
|
||||||
|
case 'topicContactInformationList':
|
||||||
|
case 'insideContactInformationList':
|
||||||
|
item = {
|
||||||
|
name: '',
|
||||||
|
department: '',
|
||||||
|
phone: '',
|
||||||
|
email: '',
|
||||||
|
identity: ''
|
||||||
|
}
|
||||||
|
break
|
||||||
|
}
|
||||||
|
this.form[type] = [...this.form[type], item]
|
||||||
|
},
|
||||||
|
onDelete (type, keys) {
|
||||||
|
const list = this.form[type].filter((meeting, index) => !keys.includes(index))
|
||||||
|
this.form[type] = [...list]
|
||||||
|
},
|
||||||
|
|
||||||
|
setAuth () {
|
||||||
|
switch (this.$route.params.type) {
|
||||||
|
case 'step1':
|
||||||
|
this.title = '起草'
|
||||||
|
break
|
||||||
|
case 'step1_1':
|
||||||
|
this.title = '重新起草'
|
||||||
|
break
|
||||||
|
case 'step2':
|
||||||
|
this.title = '审核'
|
||||||
|
break
|
||||||
|
case 'step3':
|
||||||
|
this.title = '审定'
|
||||||
|
break
|
||||||
|
case 'step4':
|
||||||
|
this.title = '批准'
|
||||||
|
break
|
||||||
|
}
|
||||||
|
switch (this.$route.params.type) {
|
||||||
|
case 'step1':
|
||||||
|
this.disabled = false
|
||||||
|
this.showProcessFooter = true // 底部显隐
|
||||||
|
this.showProcess = false // 审批历史
|
||||||
|
this.showTransfer = false // 转办
|
||||||
|
this.showOver2 = false // 驳回
|
||||||
|
this.showSave = true // 报错
|
||||||
|
this.showSubmit = true // 提交
|
||||||
|
this.approval = false // 提交 -> 同意
|
||||||
|
break
|
||||||
|
case 'step1_1':
|
||||||
|
if (this.$route.query.disabledXX) {
|
||||||
|
this.disabled = true
|
||||||
|
this.showProcessFooter = false
|
||||||
|
} else {
|
||||||
|
this.disabled = false
|
||||||
|
this.showProcessFooter = true
|
||||||
|
}
|
||||||
|
this.showProcess = true
|
||||||
|
this.showTransfer = false
|
||||||
|
this.showOver2 = false
|
||||||
|
this.showSave = true
|
||||||
|
this.showSubmit = true
|
||||||
|
this.approval = false
|
||||||
|
break
|
||||||
|
case 'step2':
|
||||||
|
case 'step3':
|
||||||
|
case 'step4':
|
||||||
|
this.disabled = true
|
||||||
|
this.showProcessFooter = true
|
||||||
|
this.showProcess = true
|
||||||
|
this.showTransfer = true
|
||||||
|
this.showOver2 = true
|
||||||
|
this.showSave = false
|
||||||
|
this.showSubmit = true
|
||||||
|
this.approval = true
|
||||||
|
break
|
||||||
|
}
|
||||||
|
},
|
||||||
|
getData () {
|
||||||
|
const { bpnId, taskIds, prcId } = this.$route.query
|
||||||
|
|
||||||
|
if (taskIds) {
|
||||||
|
inboundLiaisonDetail({
|
||||||
|
taskIds,
|
||||||
|
pId: prcId
|
||||||
|
}).then(res => {
|
||||||
|
if (res) {
|
||||||
|
this.reloadForm = false
|
||||||
|
const processForm = JSON.parse(res.mesg)
|
||||||
|
this.form = JSON.parse(JSON.stringify(processForm))
|
||||||
|
this.roleForm = {
|
||||||
|
applyUserId: processForm.applyUserId,
|
||||||
|
applyUserName: processForm.applyUserName,
|
||||||
|
jlUserId: processForm.jlUserId,
|
||||||
|
jlUserName: processForm.jlUserName,
|
||||||
|
}
|
||||||
|
this.$nextTick(() => {
|
||||||
|
this.reloadForm = true
|
||||||
|
})
|
||||||
|
}
|
||||||
|
})
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 根据草稿查询流程详情
|
||||||
|
if(bpnId) {
|
||||||
|
queryTaskFirst({ bpnId }).then(res => {
|
||||||
|
this.reloadForm = false
|
||||||
|
let mes = JSON.parse(res.mes)
|
||||||
|
this.$set(this, 'form', mes.form)
|
||||||
|
this.roleForm = mes.roleForm
|
||||||
|
this.$nextTick(() => {
|
||||||
|
this.reloadForm = true
|
||||||
|
})
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
// 审批历史
|
||||||
|
processTable () {
|
||||||
|
if (this.$route.query.prcNum) {
|
||||||
|
this.$http.get('lawss/activiti/get_list_by_instance', {
|
||||||
|
prcNum: this.$route.query.prcNum
|
||||||
|
}, {
|
||||||
|
loading: 'processLoading',
|
||||||
|
_this: this
|
||||||
|
}, res => {
|
||||||
|
this.$set(this, 'processData', res)
|
||||||
|
}, e => {})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
handleTransfer() {
|
||||||
|
this.drawerModal = true
|
||||||
|
this.drawerTitle = '转办处理人'
|
||||||
|
},
|
||||||
|
// 转办
|
||||||
|
checkedRole (data) {
|
||||||
|
changeAssigneeNew({
|
||||||
|
taskId: this.$route.query.taskIds, // 任务id
|
||||||
|
userId: this.$store.getters.userInfo.userId, // 委托人
|
||||||
|
assignee: data[0].id, // 被委托人
|
||||||
|
pId: this.$route.query.prcId, // 流程实例
|
||||||
|
}).then(res => {
|
||||||
|
if (res.success) {
|
||||||
|
this.drawerModal = false
|
||||||
|
this.$message.success('调整成功')
|
||||||
|
this.$router.push({path:'/processCenter?tabsName=ProcessCenter'})
|
||||||
|
} else {
|
||||||
|
this.$message.warning(res.message)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
//保存
|
||||||
|
handleSave() {
|
||||||
|
this.footerLoading = true
|
||||||
|
let _formData = new FormData()
|
||||||
|
_formData.append('prcType', '30')
|
||||||
|
|
||||||
|
if (this.$route.query.taskIds) {
|
||||||
|
// 流程保存
|
||||||
|
_formData.append('taskIds', this.$route.query.taskIds)
|
||||||
|
_formData.append('json', JSON.stringify(this.form))
|
||||||
|
saveTaskForPub(_formData).then(res => {
|
||||||
|
this.$message.success('保存成功')
|
||||||
|
}).finally(e => {
|
||||||
|
this.footerLoading = false
|
||||||
|
})
|
||||||
|
} else {
|
||||||
|
_formData.append('id', this.$route.query.bpnId || '') // 草稿id
|
||||||
|
_formData.append('createUser', this.$store.getters.userInfo.userId)
|
||||||
|
_formData.append('createUserName', this.$store.getters.userInfo.uName)
|
||||||
|
_formData.append('prcName', '政策课题入会流程')
|
||||||
|
_formData.append('json', JSON.stringify({
|
||||||
|
taskInfo: '起草',
|
||||||
|
form: this.form,
|
||||||
|
roleForm: this.roleForm,
|
||||||
|
}))
|
||||||
|
// 保存草稿
|
||||||
|
saveTaskFirst(_formData).then(res => {
|
||||||
|
this.$message.success('保存成功')
|
||||||
|
this.bpnId = res.result
|
||||||
|
this.$router.replace({
|
||||||
|
path: this.$route.path,
|
||||||
|
query: {
|
||||||
|
prcType: '30',
|
||||||
|
bpnId: res.result
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}).finally(e => {
|
||||||
|
this.footerLoading = false
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
async submit () {
|
||||||
|
this.footerLoading = true
|
||||||
|
const json = Object.assign(this.form, this.roleForm);
|
||||||
|
|
||||||
|
let completeTaskQuery = {
|
||||||
|
taskIds: this.$route.query.taskIds,
|
||||||
|
userId : this.$store.getters.userInfo.userId,
|
||||||
|
json: JSON.stringify(json)
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!this.$route.query.taskIds) {
|
||||||
|
// 起草
|
||||||
|
const startProcessRollBackQuery = {
|
||||||
|
createUser: this.$store.getters.userInfo.userId,
|
||||||
|
createUserName: this.$store.getters.userInfo.userName,
|
||||||
|
type: '30',
|
||||||
|
json: JSON.stringify(json)
|
||||||
|
}
|
||||||
|
const res = await this.$http._post('lawss/activiti/startProcessRollBack', startProcessRollBackQuery)
|
||||||
|
if(!res.ok) {
|
||||||
|
this.$message.error(res.message)
|
||||||
|
this.footerLoading = false
|
||||||
|
return
|
||||||
|
}
|
||||||
|
completeTaskQuery.taskIds = res.data
|
||||||
|
}
|
||||||
|
|
||||||
|
const completeTaskRes = await this.$http._post('lawss/activiti/completeTask', completeTaskQuery)
|
||||||
|
if (!completeTaskRes.success) {
|
||||||
|
this.$message.error(completeTaskRes.message)
|
||||||
|
this.footerLoading = false
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
if (this.$route.query.bpnId !== '') {
|
||||||
|
// 删除草稿
|
||||||
|
taskDel({ id: this.$route.query.bpnId })
|
||||||
|
}
|
||||||
|
|
||||||
|
if(this.form.approvalOpinion === 1){
|
||||||
|
this.$message.warning("驳回成功")
|
||||||
|
this.footerLoading = false
|
||||||
|
await this.$router.push({path:'/processCenter?tabsName=ProcessCenter'})
|
||||||
|
} else {
|
||||||
|
if (this.$route.params.type === 'step4') {
|
||||||
|
this.processCreate()
|
||||||
|
} else {
|
||||||
|
this.$message.success(completeTaskRes.message)
|
||||||
|
this.footerLoading = false
|
||||||
|
await this.$router.push({path:'/processCenter?tabsName=ProcessCenter'})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
// 驳回
|
||||||
|
handleOver(){
|
||||||
|
this.form.approvalOpinion = 1
|
||||||
|
this.handleSubmit()
|
||||||
|
},
|
||||||
|
handleApprove(){
|
||||||
|
// 通过
|
||||||
|
this.form.approvalOpinion = 0
|
||||||
|
this.handleSubmit()
|
||||||
|
},
|
||||||
|
addRule () {
|
||||||
|
if (this.form.approvalOpinion === 0) {
|
||||||
|
this.rules.commentText = [ { required: false } ]
|
||||||
|
this.$refs.form.clearValidate('commentText')
|
||||||
|
}else {
|
||||||
|
this.rules.commentText = [ { required: true, message: '审批意见不能为空' } ]
|
||||||
|
}
|
||||||
|
this.rules = { ...this.rules }
|
||||||
|
},
|
||||||
|
handleSubmit() {
|
||||||
|
this.addRule()
|
||||||
|
this.$refs['form'].validate((valid) => {
|
||||||
|
if (valid) {
|
||||||
|
this.$refs['roleForm'].$refs['userForm'].validate((valid) => {
|
||||||
|
if (valid) {
|
||||||
|
this.submit()
|
||||||
|
}else {
|
||||||
|
this.$message.warning('请检查人员信息表单是否填写完整')
|
||||||
|
}
|
||||||
|
})
|
||||||
|
} else {
|
||||||
|
this.$message.warning('请检查基础信息表单是否填写完整')
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped lang="less">
|
||||||
|
.wrapper{
|
||||||
|
position: relative;
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
.headerTabs {
|
||||||
|
height: 52px;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
right: 10px;
|
||||||
|
.headerTabsItem {
|
||||||
|
border: 1px solid #c1c1c1;
|
||||||
|
padding: 0 5px;
|
||||||
|
height: 30px;
|
||||||
|
line-height: 30px;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
.active {
|
||||||
|
border: 1px solid #E6A23C;
|
||||||
|
color: #fff;
|
||||||
|
background: #E6A23C;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.content {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
justify-content: space-between;
|
||||||
|
height: calc(~'100% - 103px');
|
||||||
|
overflow: auto;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
+69
@@ -0,0 +1,69 @@
|
|||||||
|
<template>
|
||||||
|
<el-timeline>
|
||||||
|
<el-form
|
||||||
|
ref="userForm"
|
||||||
|
:model="roleForm"
|
||||||
|
:rules="roleRules"
|
||||||
|
class="label-input-form">
|
||||||
|
<TimeLineFormItem
|
||||||
|
prop="applyUserName"
|
||||||
|
timestamp="发起流程"
|
||||||
|
title="流程发起人"
|
||||||
|
:id.sync="roleForm.applyUserId"
|
||||||
|
:name.sync="roleForm.applyUserName"
|
||||||
|
disabled />
|
||||||
|
<TimeLineFormItem
|
||||||
|
prop="ministerIdName"
|
||||||
|
timestamp="审核"
|
||||||
|
title="法规认证部部长"
|
||||||
|
multiple
|
||||||
|
:id.sync="roleForm.ministerId"
|
||||||
|
:name.sync="roleForm.ministerIdName"
|
||||||
|
:disabled="disabled"
|
||||||
|
/>
|
||||||
|
<TimeLineFormItem
|
||||||
|
prop="inspectorIdName"
|
||||||
|
timestamp="审定"
|
||||||
|
title="法规认证部副总监"
|
||||||
|
multiple
|
||||||
|
:id.sync="roleForm.inspectorId"
|
||||||
|
:name.sync="roleForm.inspectorIdName"
|
||||||
|
:disabled="disabled"
|
||||||
|
/>
|
||||||
|
<TimeLineFormItem
|
||||||
|
prop="presidentIdName"
|
||||||
|
timestamp="批准"
|
||||||
|
title="公司副总"
|
||||||
|
:id.sync="roleForm.presidentId"
|
||||||
|
:name.sync="roleForm.presidentIdName"
|
||||||
|
:disabled="disabled"
|
||||||
|
/>
|
||||||
|
</el-form>
|
||||||
|
</el-timeline>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import TimeLineFormItem from '@/components/hzwlComponents/TimeLineFormItem'
|
||||||
|
export default {
|
||||||
|
name: "PersonInfo",
|
||||||
|
components: {
|
||||||
|
TimeLineFormItem
|
||||||
|
},
|
||||||
|
props: {
|
||||||
|
roleForm: {
|
||||||
|
type: Object
|
||||||
|
},
|
||||||
|
roleRules: {
|
||||||
|
type: Object
|
||||||
|
},
|
||||||
|
disabled: {
|
||||||
|
type: Boolean,
|
||||||
|
default: false
|
||||||
|
}
|
||||||
|
},
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped>
|
||||||
|
|
||||||
|
</style>
|
||||||
+296
@@ -0,0 +1,296 @@
|
|||||||
|
<template>
|
||||||
|
<el-drawer
|
||||||
|
ref="standard"
|
||||||
|
title="查询结果"
|
||||||
|
size="1300px"
|
||||||
|
:visible.sync="standardDrawer"
|
||||||
|
direction="rtl"
|
||||||
|
:before-close="beforeClose">
|
||||||
|
<div class="standard-content">
|
||||||
|
<div class="content">
|
||||||
|
<div class="standard-table-search">
|
||||||
|
<el-form :model="searchForm" inline class="label-input-form search-area">
|
||||||
|
<el-formItem label="课题名称" prop="topicName" class="search-item">
|
||||||
|
<el-input v-model="searchForm.topicName" clearable placeholder="请输入课题名称" :maxlength="100" @keyup.enter.native="getData"/>
|
||||||
|
</el-formItem>
|
||||||
|
<el-formItem label="课题承办单位" prop="organizer" class="search-item">
|
||||||
|
<el-input v-model="searchForm.organizer" clearable placeholder="请输入课题承办单位" :maxlength="100" @keyup.enter.native="getData"/>
|
||||||
|
</el-formItem>
|
||||||
|
<el-formItem label="启动时间" prop="startTime" class="search-item">
|
||||||
|
<el-date-picker
|
||||||
|
value-format="yyyy-MM-dd"
|
||||||
|
format="yyyy-MM-dd"
|
||||||
|
type="date"
|
||||||
|
clearable
|
||||||
|
:editable="true"
|
||||||
|
placeholder="请选择启动时间"
|
||||||
|
v-model="searchForm.startTime"
|
||||||
|
>
|
||||||
|
</el-date-picker>
|
||||||
|
</el-formItem>
|
||||||
|
<el-formItem label="课题状态" prop="topicStatus" class="search-item">
|
||||||
|
<el-select v-model="searchForm.topicStatus"
|
||||||
|
placeholder="请选择课题状态"
|
||||||
|
clearable>
|
||||||
|
<el-option
|
||||||
|
v-for="opt in topicStatusOptions"
|
||||||
|
:key="opt.value"
|
||||||
|
:value="!opt.value ? '' : opt.value" :label="opt.label"
|
||||||
|
>
|
||||||
|
{{ opt.label }}
|
||||||
|
</el-option>
|
||||||
|
</el-select>
|
||||||
|
</el-formItem>
|
||||||
|
<el-form-item>
|
||||||
|
<el-button :disabled="disabled"
|
||||||
|
type="primary"
|
||||||
|
class="common-button-primary"
|
||||||
|
size="mini"
|
||||||
|
style="margin-left: 5px"
|
||||||
|
@click="getData">
|
||||||
|
查询
|
||||||
|
</el-button>
|
||||||
|
<el-button :disabled="disabled"
|
||||||
|
class="common-button-default"
|
||||||
|
size="mini"
|
||||||
|
@click="resetSearch">
|
||||||
|
清空
|
||||||
|
</el-button>
|
||||||
|
</el-form-item>
|
||||||
|
</el-form>
|
||||||
|
</div>
|
||||||
|
<div class="standard-table-wrap">
|
||||||
|
<el-table
|
||||||
|
ref="reviseDrawerTable"
|
||||||
|
:data="data"
|
||||||
|
tooltip-effect="dark"
|
||||||
|
style="width: 100%;"
|
||||||
|
border
|
||||||
|
class="drag-table"
|
||||||
|
:header-cell-style="{background: '#f8f8f9', color: '#515a6e'}"
|
||||||
|
@sort-change="sortChange"
|
||||||
|
@selection-change="standSelectChange">
|
||||||
|
<el-table-column
|
||||||
|
type="selection"
|
||||||
|
width="55"
|
||||||
|
align="center">
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column
|
||||||
|
prop="topicName"
|
||||||
|
label="课题名称"
|
||||||
|
align="center"
|
||||||
|
sortable="custom"
|
||||||
|
>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column
|
||||||
|
prop="organizer"
|
||||||
|
label="课题承办单位"
|
||||||
|
align="center"
|
||||||
|
sortable="custom"
|
||||||
|
>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column
|
||||||
|
prop="startTime"
|
||||||
|
label="启动时间"
|
||||||
|
align="center"
|
||||||
|
sortable="custom"
|
||||||
|
>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column
|
||||||
|
prop="topicStatus"
|
||||||
|
label="课题状态"
|
||||||
|
align="center"
|
||||||
|
sortable="custom"
|
||||||
|
>
|
||||||
|
</el-table-column>
|
||||||
|
<!--<el-table-column label="操作" align="center" width="80">-->
|
||||||
|
<!-- <template slot-scope="scope">-->
|
||||||
|
<!-- <el-button :disabled="disabled"-->
|
||||||
|
<!-- class="opera-btn"-->
|
||||||
|
<!-- size="mini"-->
|
||||||
|
<!-- type="primary"-->
|
||||||
|
<!-- @click="handlePreview(scope.row)">查看-->
|
||||||
|
<!-- </el-button>-->
|
||||||
|
<!-- </template>-->
|
||||||
|
<!--</el-table-column>-->
|
||||||
|
</el-table>
|
||||||
|
</div>
|
||||||
|
<pagination
|
||||||
|
:page="searchForm.page"
|
||||||
|
:total="total"
|
||||||
|
@pageChange="pageChange"
|
||||||
|
@pageSizeChange="pageSizeChange"></pagination>
|
||||||
|
<loading :loading="loading">数据获取中</loading>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="demo-drawer-footer">
|
||||||
|
<el-button :disabled="disabled"
|
||||||
|
round
|
||||||
|
class="common-button-primary"
|
||||||
|
icon="el-icon-check"
|
||||||
|
type="primary"
|
||||||
|
:loading="buttonLoading"
|
||||||
|
@click="handleNext(2)">带入</el-button>
|
||||||
|
<el-button :disabled="disabled"
|
||||||
|
round
|
||||||
|
class="common-button-default"
|
||||||
|
icon="el-icon-close"
|
||||||
|
:loading="buttonLoading"
|
||||||
|
@click="handleNext(3)">取消</el-button>
|
||||||
|
</div>
|
||||||
|
</el-drawer>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
export default {
|
||||||
|
name: "RetrieveTopics",
|
||||||
|
data () {
|
||||||
|
const topicStatusOptions = [
|
||||||
|
{
|
||||||
|
label: '进行中',
|
||||||
|
value: '进行中'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: '已结题',
|
||||||
|
value: '已结题'
|
||||||
|
},
|
||||||
|
]
|
||||||
|
return {
|
||||||
|
standardDrawer: false,
|
||||||
|
searchForm: {
|
||||||
|
page: 1,
|
||||||
|
pageSize: this.$store.getters.userInfo.configContent,
|
||||||
|
topicName: '',
|
||||||
|
organizer: '',
|
||||||
|
startTime: '',
|
||||||
|
topicStatus: ''
|
||||||
|
},
|
||||||
|
total: 0,
|
||||||
|
loading: false,
|
||||||
|
buttonLoading: false,
|
||||||
|
data: [],
|
||||||
|
|
||||||
|
selectedList: [],
|
||||||
|
topicStatusOptions,
|
||||||
|
api: {
|
||||||
|
page: 'lawss/sarLawsTopic/page',
|
||||||
|
getLawsTopicInfo: '/lawss/sarLawsTopic/getLawsTopicInfo'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
props: {
|
||||||
|
disabled: {
|
||||||
|
type: Boolean,
|
||||||
|
default: false
|
||||||
|
},
|
||||||
|
dict: {
|
||||||
|
type: Object
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
open () {
|
||||||
|
this.standardDrawer = true
|
||||||
|
this.getData()
|
||||||
|
},
|
||||||
|
async getData () {
|
||||||
|
const res = await this.$http._getData(this.api.page, this.searchForm, {_this:this,loading: 'loading'})
|
||||||
|
if (res.ok && res.data) {
|
||||||
|
if (res.data.list && res.data.list.length > 0) {
|
||||||
|
this.data = res.data.list
|
||||||
|
}
|
||||||
|
this.total = res.data.count
|
||||||
|
}
|
||||||
|
},
|
||||||
|
resetSearch() {
|
||||||
|
this.searchForm = {
|
||||||
|
page: 1,
|
||||||
|
pageSize: this.$store.getters.userInfo.configContent,
|
||||||
|
topicName: '',
|
||||||
|
organizer: '',
|
||||||
|
startTime: '',
|
||||||
|
topicStatus: ''
|
||||||
|
}
|
||||||
|
|
||||||
|
this.getData()
|
||||||
|
},
|
||||||
|
standSelectChange (data) {
|
||||||
|
this.selectedList = data
|
||||||
|
},
|
||||||
|
pageChange (page) {
|
||||||
|
this.searchForm.page = page
|
||||||
|
this.getData()
|
||||||
|
},
|
||||||
|
pageSizeChange (pageSize) {
|
||||||
|
this.searchForm.pageSize = pageSize
|
||||||
|
this.getData()
|
||||||
|
},
|
||||||
|
// 点击查看
|
||||||
|
// handlePreview (item) {
|
||||||
|
// let routeUrl = this.$router.resolve({
|
||||||
|
// name: 'OtherLawsStandDetails',
|
||||||
|
// params: {
|
||||||
|
// id: item.id,
|
||||||
|
// pageType: 'LAWS_STAND'
|
||||||
|
// }
|
||||||
|
// })
|
||||||
|
// window.open(routeUrl.href, '_blank')
|
||||||
|
// },
|
||||||
|
async handleNext(status) {
|
||||||
|
switch (status) {
|
||||||
|
case 1:
|
||||||
|
break
|
||||||
|
case 2:
|
||||||
|
if (this.selectedList.length === 1) {
|
||||||
|
const query = {
|
||||||
|
lawsTopicId: this.selectedList[0].id
|
||||||
|
}
|
||||||
|
const res = await this.$http._getData(this.api.getLawsTopicInfo, query, {_this:this,loading: 'buttonLoading'})
|
||||||
|
if (res && res.data) {
|
||||||
|
this.$emit('dragIn', res.data)
|
||||||
|
this.selectedList = []
|
||||||
|
this.standardDrawer = false
|
||||||
|
}
|
||||||
|
} else if (this.selectedList.length > 1) {
|
||||||
|
this.$message.warning('最多可以带入一条会议信息')
|
||||||
|
} else {
|
||||||
|
this.$message.warning('请选择要带入的会议信息')
|
||||||
|
}
|
||||||
|
break
|
||||||
|
case 3:
|
||||||
|
this.selectedList = []
|
||||||
|
this.standardDrawer = false
|
||||||
|
break
|
||||||
|
}
|
||||||
|
},
|
||||||
|
beforeClose (done) {
|
||||||
|
done()
|
||||||
|
},
|
||||||
|
// 表格排序
|
||||||
|
sortChange({ column, prop, order }) {
|
||||||
|
this.searchForm.sortField = prop
|
||||||
|
this.searchForm.sortMode = 'asc'
|
||||||
|
if (order === 'descending') {
|
||||||
|
this.searchForm.sortMode = 'desc'
|
||||||
|
}
|
||||||
|
if (!order) {
|
||||||
|
this.searchForm.sortField = ''
|
||||||
|
this.searchForm.sortMode = ''
|
||||||
|
}
|
||||||
|
this.getData()
|
||||||
|
},
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped lang="less">
|
||||||
|
.standard-content{
|
||||||
|
flex: 1;
|
||||||
|
}
|
||||||
|
.demo-drawer-footer{
|
||||||
|
height: 61px!important;
|
||||||
|
line-height: 60px!important;
|
||||||
|
}
|
||||||
|
.pagination{
|
||||||
|
bottom: 61px;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@@ -0,0 +1,582 @@
|
|||||||
|
<template>
|
||||||
|
<div class="wrapper">
|
||||||
|
<ProcessHeader toggle>
|
||||||
|
<template slot="proName">政策课题参会流程</template>
|
||||||
|
<template slot="proNode">{{ title }}</template>
|
||||||
|
</ProcessHeader>
|
||||||
|
<div class="headerTabs">
|
||||||
|
<div class="headerTabsItem" :class="active === '1' ? 'active' : ''" @click="handleTabs('1')">基础信息</div>
|
||||||
|
<div v-if="!showProcess" class="headerTabsItem" :class="active === '2' ? 'active' : ''" @click="handleTabs('2')">人员信息</div>
|
||||||
|
<div v-else class="headerTabsItem" :class="active === '3' ? 'active' : ''" @click="handleTabs('3')">审批历史</div>
|
||||||
|
</div>
|
||||||
|
<div class="content">
|
||||||
|
<el-form v-if="reloadForm"
|
||||||
|
ref="form"
|
||||||
|
:model="form"
|
||||||
|
:rules="rules"
|
||||||
|
class="label-input-form"
|
||||||
|
label-width="210px"
|
||||||
|
>
|
||||||
|
<div v-show="active === '1'">
|
||||||
|
<ProcessTitle>
|
||||||
|
<template slot="title">基础信息</template>
|
||||||
|
</ProcessTitle>
|
||||||
|
<div class="prc-content-border">
|
||||||
|
<el-row :gutter="24">
|
||||||
|
<el-col :span="12">
|
||||||
|
<InputFormItem label="课题名称"
|
||||||
|
prop="topicName"
|
||||||
|
v-model="form.topicName"
|
||||||
|
:disabled="disabled">
|
||||||
|
</InputFormItem>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="12">
|
||||||
|
<InputFormItem label="课题承办单位"
|
||||||
|
prop="organizer"
|
||||||
|
v-model="form.organizer"
|
||||||
|
:disabled="disabled">
|
||||||
|
<el-button :disabled="disabled"
|
||||||
|
type="primary"
|
||||||
|
style="height: 40px;margin-top: 5px;"
|
||||||
|
@click="retrieveTopics"
|
||||||
|
>调取课题</el-button>
|
||||||
|
</InputFormItem>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
</div>
|
||||||
|
<ProcessTitle>
|
||||||
|
<template slot="title">课题组会议</template>
|
||||||
|
</ProcessTitle>
|
||||||
|
<TableFormItem
|
||||||
|
:data="form.meetingList"
|
||||||
|
:options="options.meetingList"
|
||||||
|
parentProp="meetingList"
|
||||||
|
:rules="rules"
|
||||||
|
:disabled="disabled"
|
||||||
|
@add="add('meetingList')"
|
||||||
|
@delete="onDelete('meetingList', $event)"
|
||||||
|
></TableFormItem>
|
||||||
|
<ProcessTitle>
|
||||||
|
<template slot="title">课题组资料</template>
|
||||||
|
</ProcessTitle>
|
||||||
|
<div class="prc-content-border">
|
||||||
|
<el-row :gutter="24">
|
||||||
|
<el-col :span="12">
|
||||||
|
<UploadFormItem
|
||||||
|
label="会议资料"
|
||||||
|
prop="conferenceMaterials"
|
||||||
|
:ids.sync="form.conferenceMaterials"
|
||||||
|
:names.sync="form.conferenceMaterialsName"
|
||||||
|
accept=".pdf, .PDF, .doc, .DOC, .docx, .DOCX, .ppt, .PPT, .pptx, .PPTX, .xls, .XLS, .xlsx, .XLSX, .pdg, .PDG, .mp3, .MP3, .Ogg, .Wav, .mp4, .MP4, .WebM"
|
||||||
|
:size="2048"
|
||||||
|
:disabled="disabled">
|
||||||
|
</UploadFormItem>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
</div>
|
||||||
|
<ReceiptDescription v-model="form.commentText" title="回执说明"></ReceiptDescription>
|
||||||
|
</div>
|
||||||
|
<div class="block" style="padding-top: 20px;" v-show="active === '2'">
|
||||||
|
<PersonInfo ref="roleForm" :roleForm="roleForm" :roleRules="roleRules" :disabled="disabled"></PersonInfo>
|
||||||
|
</div>
|
||||||
|
<div class="block" style="padding-top: 20px;" v-show="active === '3'">
|
||||||
|
<ApprovalHistory :data="processData" :loading="processLoading"></ApprovalHistory>
|
||||||
|
</div>
|
||||||
|
</el-form>
|
||||||
|
</div>
|
||||||
|
<ProcessFooter
|
||||||
|
v-if="showProcessFooter"
|
||||||
|
:show-transfer="showTransfer"
|
||||||
|
:show-over2="showOver2"
|
||||||
|
:show-save="showSave"
|
||||||
|
:show-submit="showSubmit"
|
||||||
|
:approval="approval"
|
||||||
|
:submitLoading="footerLoading"
|
||||||
|
:saveLoading="footerLoading"
|
||||||
|
@over2="handleOver"
|
||||||
|
@transfer="handleTransfer"
|
||||||
|
@save="handleSave"
|
||||||
|
@submit="handleApprove"
|
||||||
|
>
|
||||||
|
</ProcessFooter>
|
||||||
|
<RetrieveTopics ref="RetrieveTopicsRef" @dragIn="dragIn"></RetrieveTopics>
|
||||||
|
<!-- 福田全公司选人解决方案 -->
|
||||||
|
<Role-tree
|
||||||
|
check-box
|
||||||
|
:is-title="drawerTitle"
|
||||||
|
:is-visible.sync="drawerModal"
|
||||||
|
@checkedRole="checkedRole"
|
||||||
|
:nodeList="nodeList"
|
||||||
|
></Role-tree>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import ProcessTitle from '@/pages/processCenter/pages/components/ProcessTitle'
|
||||||
|
import ProcessHeader from '@/pages/processCenter/pages/components/ProcessHeader'
|
||||||
|
import ProcessFooter from '@/pages/processCenter/pages/components/ProcessFooter'
|
||||||
|
import ReceiptDescription from "@/components/hzwlComponents/ReceiptDescription";
|
||||||
|
import InputFormItem from '@/components/hzwlComponents/InputFormItem'
|
||||||
|
import TableFormItem from "@/components/hzwlComponents/TableFormItem";
|
||||||
|
import UploadFormItem from "@/components/hzwlComponents/UploadFormItem";
|
||||||
|
import PersonInfo from "./components/PersonInfo";
|
||||||
|
import RetrieveTopics from "./components/RetrieveTopics";
|
||||||
|
import ApprovalHistory from "@/components/hzwlComponents/ApprovalHistory";
|
||||||
|
|
||||||
|
import { saveTaskFirst, queryTaskFirst, inboundLiaisonDetail, taskDel, saveTaskForPub, changeAssigneeNew } from 'api/process'
|
||||||
|
import pick from 'lodash/pick'
|
||||||
|
|
||||||
|
export default {
|
||||||
|
name: "policyTopicParticipation",
|
||||||
|
components: {
|
||||||
|
ProcessTitle,
|
||||||
|
ProcessHeader,
|
||||||
|
ProcessFooter,
|
||||||
|
ReceiptDescription,
|
||||||
|
InputFormItem,
|
||||||
|
TableFormItem,
|
||||||
|
UploadFormItem,
|
||||||
|
PersonInfo,
|
||||||
|
RetrieveTopics,
|
||||||
|
ApprovalHistory
|
||||||
|
},
|
||||||
|
data () {
|
||||||
|
const form = {
|
||||||
|
// 基础信息
|
||||||
|
topicName: '',
|
||||||
|
organizer: '',
|
||||||
|
// 课题组会议
|
||||||
|
meetingList: [
|
||||||
|
{
|
||||||
|
meetingName: '',
|
||||||
|
meetingTime: '',
|
||||||
|
meetingAddress: '',
|
||||||
|
participants: ''
|
||||||
|
}
|
||||||
|
],
|
||||||
|
// 课题组资料
|
||||||
|
conferenceMaterials: '',
|
||||||
|
conferenceMaterialsName: '',
|
||||||
|
// 说明
|
||||||
|
commentText: ''
|
||||||
|
}
|
||||||
|
const rules = {
|
||||||
|
topicName: [
|
||||||
|
{required: true, type: 'string', message: '课题名称不能为空', trigger: 'change'},
|
||||||
|
{type: 'string', max: 500, message: '课题名称不能超过500个字符', trigger: 'change'}
|
||||||
|
],
|
||||||
|
organizer: [
|
||||||
|
{required: true, type: 'string', message: '课题承办单位不能为空', trigger: 'change'},
|
||||||
|
{type: 'string', max: 500, message: '课题承办单位不能超过500个字符', trigger: 'change'}
|
||||||
|
],
|
||||||
|
}
|
||||||
|
const roleForm ={
|
||||||
|
applyUserId: this.$store.getters.userInfo.userId,
|
||||||
|
applyUserName: this.$store.getters.userInfo.userName,
|
||||||
|
ministerId: '',
|
||||||
|
ministerIdName: '',
|
||||||
|
inspectorId: '',
|
||||||
|
inspectorIdName: '',
|
||||||
|
presidentId: '',
|
||||||
|
presidentIdName: '',
|
||||||
|
}
|
||||||
|
const roleRules = {
|
||||||
|
ministerIdName: [
|
||||||
|
{required: true, message: '请选择法规认证部部长', trigger: 'change'},
|
||||||
|
],
|
||||||
|
inspectorIdName: [
|
||||||
|
{required: true, message: '请选择法规认证部总监', trigger: 'change'},
|
||||||
|
],
|
||||||
|
presidentIdName: [
|
||||||
|
{required: true, message: '请选择公司副总', trigger: 'change'},
|
||||||
|
]
|
||||||
|
}
|
||||||
|
const options = {
|
||||||
|
meetingList: [
|
||||||
|
{ label: '会议名称', prop: 'meetingName' },
|
||||||
|
{ label: '会议时间', prop: 'meetingTime' },
|
||||||
|
{ label: '会议地点', prop: 'meetingAddress' },
|
||||||
|
{ label: '参会人员(内部)', prop: 'participants' }
|
||||||
|
],
|
||||||
|
}
|
||||||
|
return {
|
||||||
|
title: '起草',
|
||||||
|
active: '1',
|
||||||
|
disabled: false,
|
||||||
|
footerLoading: false,
|
||||||
|
showProcessFooter: true,
|
||||||
|
showTransfer: true, // 转办
|
||||||
|
showOver2: true, // 驳回
|
||||||
|
showSave: true, // 报错
|
||||||
|
showSubmit: true, // 提交
|
||||||
|
approval: false, // 同意
|
||||||
|
reloadForm: true,
|
||||||
|
form,
|
||||||
|
rules,
|
||||||
|
roleForm,
|
||||||
|
roleRules,
|
||||||
|
options,
|
||||||
|
// 审批历史
|
||||||
|
processData: [],
|
||||||
|
processLoading: false,
|
||||||
|
showProcess: false, // 审批历史
|
||||||
|
|
||||||
|
// 福田全公司选人解决方案
|
||||||
|
drawerModal: false,
|
||||||
|
drawerTitle: '',
|
||||||
|
nodeList: [],
|
||||||
|
}
|
||||||
|
},
|
||||||
|
created() {
|
||||||
|
this.setAuth()
|
||||||
|
this.getData()
|
||||||
|
this.processTable()
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
handleTabs(tab) {
|
||||||
|
this.active = tab
|
||||||
|
},
|
||||||
|
add (type) {
|
||||||
|
let item = {}
|
||||||
|
switch (type) {
|
||||||
|
case 'meetingList':
|
||||||
|
item = {
|
||||||
|
meetingName: '',
|
||||||
|
meetingTime: '',
|
||||||
|
meetingAddress: '',
|
||||||
|
participants: ''
|
||||||
|
}
|
||||||
|
break
|
||||||
|
}
|
||||||
|
this.form[type] = [...this.form[type], item]
|
||||||
|
},
|
||||||
|
onDelete (type, keys) {
|
||||||
|
const list = this.form[type].filter((meeting, index) => !keys.includes(index))
|
||||||
|
this.form[type] = [...list]
|
||||||
|
},
|
||||||
|
retrieveTopics () {
|
||||||
|
this.$refs.RetrieveTopicsRef.open()
|
||||||
|
},
|
||||||
|
dragIn (form) {
|
||||||
|
this.form = Object.assign(this.form, pick(form,['topicName', 'organizer', 'meetingList', 'conferenceMaterials', 'conferenceMaterialsName']))
|
||||||
|
},
|
||||||
|
setAuth () {
|
||||||
|
switch (this.$route.params.type) {
|
||||||
|
case 'step1':
|
||||||
|
this.title = '起草'
|
||||||
|
break
|
||||||
|
case 'step1_1':
|
||||||
|
this.title = '重新起草'
|
||||||
|
break
|
||||||
|
case 'step2':
|
||||||
|
this.title = '审核'
|
||||||
|
break
|
||||||
|
case 'step3':
|
||||||
|
this.title = '审定'
|
||||||
|
break
|
||||||
|
case 'step4':
|
||||||
|
this.title = '批准'
|
||||||
|
break
|
||||||
|
}
|
||||||
|
switch (this.$route.params.type) {
|
||||||
|
case 'step1':
|
||||||
|
this.disabled = false
|
||||||
|
this.showProcessFooter = true // 底部显隐
|
||||||
|
this.showProcess = false // 审批历史
|
||||||
|
this.showTransfer = false // 转办
|
||||||
|
this.showOver2 = false // 驳回
|
||||||
|
this.showSave = true // 报错
|
||||||
|
this.showSubmit = true // 提交
|
||||||
|
this.approval = false // 提交 -> 同意
|
||||||
|
break
|
||||||
|
case 'step1_1':
|
||||||
|
if (this.$route.query.disabledXX) {
|
||||||
|
this.disabled = true
|
||||||
|
this.showProcessFooter = false
|
||||||
|
} else {
|
||||||
|
this.disabled = false
|
||||||
|
this.showProcessFooter = true
|
||||||
|
}
|
||||||
|
this.showProcess = true
|
||||||
|
this.showTransfer = false
|
||||||
|
this.showOver2 = false
|
||||||
|
this.showSave = true
|
||||||
|
this.showSubmit = true
|
||||||
|
this.approval = false
|
||||||
|
break
|
||||||
|
case 'step2':
|
||||||
|
case 'step3':
|
||||||
|
case 'step4':
|
||||||
|
this.disabled = true
|
||||||
|
this.showProcessFooter = true
|
||||||
|
this.showProcess = true
|
||||||
|
this.showTransfer = true
|
||||||
|
this.showOver2 = true
|
||||||
|
this.showSave = false
|
||||||
|
this.showSubmit = true
|
||||||
|
this.approval = true
|
||||||
|
break
|
||||||
|
}
|
||||||
|
},
|
||||||
|
getData () {
|
||||||
|
const { bpnId, taskIds, prcId } = this.$route.query
|
||||||
|
|
||||||
|
if (taskIds) {
|
||||||
|
inboundLiaisonDetail({
|
||||||
|
taskIds,
|
||||||
|
pId: prcId
|
||||||
|
}).then(res => {
|
||||||
|
if (res) {
|
||||||
|
this.reloadForm = false
|
||||||
|
const processForm = JSON.parse(res.mesg)
|
||||||
|
this.form = JSON.parse(JSON.stringify(processForm))
|
||||||
|
this.roleForm = {
|
||||||
|
applyUserId: processForm.applyUserId,
|
||||||
|
applyUserName: processForm.applyUserName,
|
||||||
|
ministerId: processForm.ministerId,
|
||||||
|
ministerIdName: processForm.ministerIdName,
|
||||||
|
inspectorId: processForm.inspectorId,
|
||||||
|
inspectorIdName: processForm.inspectorIdName,
|
||||||
|
presidentId: processForm.presidentId,
|
||||||
|
presidentIdName: processForm.presidentIdName,
|
||||||
|
}
|
||||||
|
this.$nextTick(() => {
|
||||||
|
this.reloadForm = true
|
||||||
|
})
|
||||||
|
}
|
||||||
|
})
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 根据草稿查询流程详情
|
||||||
|
if(bpnId) {
|
||||||
|
queryTaskFirst({ bpnId }).then(res => {
|
||||||
|
this.reloadForm = false
|
||||||
|
let mes = JSON.parse(res.mes)
|
||||||
|
this.$set(this, 'form', mes.form)
|
||||||
|
this.roleForm = mes.roleForm
|
||||||
|
this.$nextTick(() => {
|
||||||
|
this.reloadForm = true
|
||||||
|
})
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
// 审批历史
|
||||||
|
processTable () {
|
||||||
|
if (this.$route.query.prcNum) {
|
||||||
|
this.$http.get('lawss/activiti/get_list_by_instance', {
|
||||||
|
prcNum: this.$route.query.prcNum
|
||||||
|
}, {
|
||||||
|
loading: 'processLoading',
|
||||||
|
_this: this
|
||||||
|
}, res => {
|
||||||
|
this.$set(this, 'processData', res)
|
||||||
|
}, e => {})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
handleTransfer() {
|
||||||
|
this.drawerModal = true
|
||||||
|
this.drawerTitle = '转办处理人'
|
||||||
|
},
|
||||||
|
// 转办
|
||||||
|
checkedRole (data) {
|
||||||
|
changeAssigneeNew({
|
||||||
|
taskId: this.$route.query.taskIds, // 任务id
|
||||||
|
userId: this.$store.getters.userInfo.userId, // 委托人
|
||||||
|
assignee: data[0].id, // 被委托人
|
||||||
|
pId: this.$route.query.prcId, // 流程实例
|
||||||
|
}).then(res => {
|
||||||
|
if (res.success) {
|
||||||
|
this.drawerModal = false
|
||||||
|
this.$message.success('调整成功')
|
||||||
|
this.$router.push({path:'/processCenter?tabsName=ProcessCenter'})
|
||||||
|
} else {
|
||||||
|
this.$message.warning(res.message)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
//保存
|
||||||
|
handleSave() {
|
||||||
|
this.footerLoading = true
|
||||||
|
let _formData = new FormData()
|
||||||
|
_formData.append('prcType', '31')
|
||||||
|
|
||||||
|
if (this.$route.query.taskIds) {
|
||||||
|
// 流程保存
|
||||||
|
_formData.append('taskIds', this.$route.query.taskIds)
|
||||||
|
_formData.append('json', JSON.stringify(this.form))
|
||||||
|
saveTaskForPub(_formData).then(res => {
|
||||||
|
this.$message.success('保存成功')
|
||||||
|
}).finally(e => {
|
||||||
|
this.footerLoading = false
|
||||||
|
})
|
||||||
|
} else {
|
||||||
|
_formData.append('id', this.$route.query.bpnId || '') // 草稿id
|
||||||
|
_formData.append('createUser', this.$store.getters.userInfo.userId)
|
||||||
|
_formData.append('createUserName', this.$store.getters.userInfo.uName)
|
||||||
|
_formData.append('prcName', '政策课题参会流程')
|
||||||
|
_formData.append('json', JSON.stringify({
|
||||||
|
taskInfo: '起草',
|
||||||
|
form: this.form,
|
||||||
|
roleForm: this.roleForm,
|
||||||
|
}))
|
||||||
|
// 保存草稿
|
||||||
|
saveTaskFirst(_formData).then(res => {
|
||||||
|
this.$message.success('保存成功')
|
||||||
|
this.$router.replace({
|
||||||
|
path: this.$route.path,
|
||||||
|
query: {
|
||||||
|
prcType: '31',
|
||||||
|
bpnId: res.result
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}).finally(e => {
|
||||||
|
this.footerLoading = false
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
async submit () {
|
||||||
|
this.footerLoading = true
|
||||||
|
const json = Object.assign(this.form, this.roleForm);
|
||||||
|
|
||||||
|
let completeTaskQuery = {
|
||||||
|
taskIds: this.$route.query.taskIds,
|
||||||
|
userId : this.$store.getters.userInfo.userId,
|
||||||
|
json: JSON.stringify(json)
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!this.$route.query.taskIds) {
|
||||||
|
// 起草
|
||||||
|
const startProcessRollBackQuery = {
|
||||||
|
createUser: this.$store.getters.userInfo.userId,
|
||||||
|
createUserName: this.$store.getters.userInfo.userName,
|
||||||
|
type: '31',
|
||||||
|
json: JSON.stringify(json)
|
||||||
|
}
|
||||||
|
const res = await this.$http._post('lawss/activiti/startProcessRollBack', startProcessRollBackQuery)
|
||||||
|
if(!res.ok) {
|
||||||
|
this.$message.error(res.message)
|
||||||
|
this.footerLoading = false
|
||||||
|
return
|
||||||
|
}
|
||||||
|
completeTaskQuery.taskIds = res.data
|
||||||
|
}
|
||||||
|
|
||||||
|
const completeTaskRes = await this.$http._post('lawss/activiti/completeTask', completeTaskQuery)
|
||||||
|
if (!completeTaskRes.success) {
|
||||||
|
this.$message.error(completeTaskRes.message)
|
||||||
|
this.footerLoading = false
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
if (this.$route.query.bpnId !== '') {
|
||||||
|
// 删除草稿
|
||||||
|
taskDel({ id: this.$route.query.bpnId })
|
||||||
|
}
|
||||||
|
|
||||||
|
if(this.form.approvalOpinion === 1){
|
||||||
|
this.$message.warning("驳回成功")
|
||||||
|
this.footerLoading = false
|
||||||
|
await this.$router.push({path:'/processCenter?tabsName=ProcessCenter'})
|
||||||
|
} else {
|
||||||
|
if (this.$route.params.type === 'step4') {
|
||||||
|
this.processCreate()
|
||||||
|
} else {
|
||||||
|
this.$message.success(completeTaskRes.message)
|
||||||
|
this.footerLoading = false
|
||||||
|
await this.$router.push({path:'/processCenter?tabsName=ProcessCenter'})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
// 流程入库
|
||||||
|
processCreate (json) {
|
||||||
|
const _formData = new FormData()
|
||||||
|
_formData.append('infoJson', json)
|
||||||
|
alert('入库')
|
||||||
|
// processCreateMeeting(_formData).then(res => {
|
||||||
|
// if (res.result === '操作成功' || res.data === '入库成功') {
|
||||||
|
// this.$message.success(res.data)
|
||||||
|
// setTimeout(() => {
|
||||||
|
// this.$router.push({ name: 'ProcessCenter' })
|
||||||
|
// }, 100)
|
||||||
|
// } else {
|
||||||
|
// this.$message.warning(res.message)
|
||||||
|
// }
|
||||||
|
// }).finally(() => {
|
||||||
|
// this.footerLoading = false
|
||||||
|
// })
|
||||||
|
},
|
||||||
|
// 驳回
|
||||||
|
handleOver(){
|
||||||
|
this.form.approvalOpinion = 1
|
||||||
|
this.handleSubmit()
|
||||||
|
},
|
||||||
|
handleApprove(){
|
||||||
|
// 通过
|
||||||
|
this.form.approvalOpinion = 0
|
||||||
|
this.handleSubmit()
|
||||||
|
},
|
||||||
|
addRule () {
|
||||||
|
if (this.form.approvalOpinion === 0) {
|
||||||
|
this.rules.commentText = [ { required: false } ]
|
||||||
|
this.$refs.form.clearValidate('commentText')
|
||||||
|
}else {
|
||||||
|
this.rules.commentText = [ { required: true, message: '审批意见不能为空' } ]
|
||||||
|
}
|
||||||
|
this.rules = { ...this.rules }
|
||||||
|
},
|
||||||
|
// 提交
|
||||||
|
handleSubmit() {
|
||||||
|
this.addRule()
|
||||||
|
this.$refs['form'].validate((valid) => {
|
||||||
|
if (valid) {
|
||||||
|
this.$refs['roleForm'].$refs['userForm'].validate((valid) => {
|
||||||
|
if (valid) {
|
||||||
|
this.submit()
|
||||||
|
}else {
|
||||||
|
this.$message.warning('请检查人员信息表单是否填写完整')
|
||||||
|
}
|
||||||
|
})
|
||||||
|
} else {
|
||||||
|
this.$message.warning('请检查基础信息表单是否填写完整')
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped lang="less">
|
||||||
|
.wrapper{
|
||||||
|
position: relative;
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
.headerTabs {
|
||||||
|
height: 52px;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
right: 10px;
|
||||||
|
.headerTabsItem {
|
||||||
|
border: 1px solid #c1c1c1;
|
||||||
|
padding: 0 5px;
|
||||||
|
height: 30px;
|
||||||
|
line-height: 30px;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
.active {
|
||||||
|
border: 1px solid #E6A23C;
|
||||||
|
color: #fff;
|
||||||
|
background: #E6A23C;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.content {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
justify-content: space-between;
|
||||||
|
height: calc(~'100% - 103px');
|
||||||
|
overflow: auto;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@@ -394,11 +394,33 @@ export default {
|
|||||||
}else if(prcType === '29'){
|
}else if(prcType === '29'){
|
||||||
//内外部会议入库
|
//内外部会议入库
|
||||||
this.toProcessDetail('policyMeetings1',row)
|
this.toProcessDetail('policyMeetings1',row)
|
||||||
|
} else if(prcType === '30'){
|
||||||
|
//政策课题入会流程
|
||||||
|
const params = { type: 'step1' }
|
||||||
|
this.toProcessDetailForParams('policyTopicEnrollment',row, params)
|
||||||
|
} else if(prcType === '31'){
|
||||||
|
//政策课题参会流程
|
||||||
|
const params = { type: 'step1' }
|
||||||
|
this.toProcessDetailForParams('policyTopicParticipation', row, params)
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
this.$message.warning('当前流程未全部办理完成,无法查看')
|
this.$message.warning('当前流程未全部办理完成,无法查看')
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
toProcessDetailForParams (componentName,row, params) {
|
||||||
|
this.$router.push({
|
||||||
|
name: componentName,
|
||||||
|
query: {
|
||||||
|
prcType: row.prcType,
|
||||||
|
taskIds: row.id,
|
||||||
|
prcId: row.processInstanceId,
|
||||||
|
prcNum: row.prcNum,
|
||||||
|
prcName: row.prcName,
|
||||||
|
disabledXX: true,
|
||||||
|
},
|
||||||
|
params
|
||||||
|
})
|
||||||
|
},
|
||||||
toProcessDetail(componentName,row,unShowReceipt) {
|
toProcessDetail(componentName,row,unShowReceipt) {
|
||||||
let data = {
|
let data = {
|
||||||
name: componentName,
|
name: componentName,
|
||||||
|
|||||||
@@ -316,7 +316,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="process-name">
|
<div class="process-name">
|
||||||
<el-card shadow="hover" v-btn-permission="'2f2752bc8a37b87d6eaadae3fcfe61c4'">
|
<el-card shadow="hover" v-btn-permission="'2f2752bc8a37b87d6eaadae3fcfe61c4'">
|
||||||
<div class="card-box" @click="handleCreateProcess('18')">
|
<div class="card-box" @click="handleCreateProcess('31')">
|
||||||
<div class="card-top">
|
<div class="card-top">
|
||||||
<div class="card-top-left">
|
<div class="card-top-left">
|
||||||
<img :src="getImg(Math.floor(Math.random() * 6))">
|
<img :src="getImg(Math.floor(Math.random() * 6))">
|
||||||
@@ -622,7 +622,20 @@ export default {
|
|||||||
case '30':
|
case '30':
|
||||||
// 政策课题入会流程
|
// 政策课题入会流程
|
||||||
this.$router.push({
|
this.$router.push({
|
||||||
name: 'policyTopicEnrollmentStep1'
|
// name: 'policyTopicEnrollmentStep1'
|
||||||
|
name: 'policyTopicEnrollment',
|
||||||
|
params: {
|
||||||
|
type: 'step1'
|
||||||
|
}
|
||||||
|
})
|
||||||
|
break
|
||||||
|
case '31':
|
||||||
|
// 政策课题参会流程
|
||||||
|
this.$router.push({
|
||||||
|
name: 'policyTopicParticipation',
|
||||||
|
params: {
|
||||||
|
type: 'step1'
|
||||||
|
}
|
||||||
})
|
})
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2283,30 +2283,60 @@ export default {
|
|||||||
}
|
}
|
||||||
break
|
break
|
||||||
case '30': {
|
case '30': {
|
||||||
let routeName = ''
|
let type = ''
|
||||||
switch (row.taskInfo) {
|
switch (row.taskInfo) {
|
||||||
case '审核':
|
case '审核':
|
||||||
routeName = 'policyTopicEnrollmentStep2'
|
type = 'step2'
|
||||||
break
|
break
|
||||||
case '审定':
|
case '审定':
|
||||||
routeName = 'policyTopicEnrollmentStep3'
|
type = 'step3'
|
||||||
break
|
break
|
||||||
case '批准':
|
case '批准':
|
||||||
routeName = 'policyTopicEnrollmentStep4'
|
type = 'step4'
|
||||||
break
|
break
|
||||||
case '重新起草':
|
case '重新起草':
|
||||||
routeName = 'policyTopicEnrollmentStep1'
|
type = 'step1_1'
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
this.$router.push({
|
this.$router.push({
|
||||||
name: routeName,
|
name: 'policyTopicEnrollment',
|
||||||
query: {
|
query: {
|
||||||
taskIds: row.taskIds,
|
taskIds: row.taskIds,
|
||||||
prcId: row.prcId,
|
prcId: row.prcId,
|
||||||
prcNum: row.prcNum,
|
prcNum: row.prcNum,
|
||||||
prcName: row.prcName,
|
prcName: row.prcName,
|
||||||
prcType: row.prcType
|
prcType: row.prcType
|
||||||
}
|
},
|
||||||
|
params: { type }
|
||||||
|
})
|
||||||
|
}
|
||||||
|
break
|
||||||
|
case '31': {
|
||||||
|
let type = ''
|
||||||
|
switch (row.taskInfo) {
|
||||||
|
case '审核':
|
||||||
|
type = 'step2'
|
||||||
|
break
|
||||||
|
case '审定':
|
||||||
|
type = 'step3'
|
||||||
|
break
|
||||||
|
case '批准':
|
||||||
|
type = 'step4'
|
||||||
|
break
|
||||||
|
case '重新起草':
|
||||||
|
type = 'step1_1'
|
||||||
|
break
|
||||||
|
}
|
||||||
|
this.$router.push({
|
||||||
|
name: 'policyTopicParticipation',
|
||||||
|
query: {
|
||||||
|
taskIds: row.taskIds,
|
||||||
|
prcId: row.prcId,
|
||||||
|
prcNum: row.prcNum,
|
||||||
|
prcName: row.prcName,
|
||||||
|
prcType: row.prcType
|
||||||
|
},
|
||||||
|
params: { type }
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
break
|
break
|
||||||
|
|||||||
@@ -962,17 +962,32 @@ export default {
|
|||||||
})
|
})
|
||||||
break
|
break
|
||||||
// 政策课题入会流程
|
// 政策课题入会流程
|
||||||
case '30': {
|
case '30':
|
||||||
this.$router.push({
|
this.$router.push({
|
||||||
name: 'policyTopicEnrollmentStep1',
|
name: 'policyTopicEnrollment',
|
||||||
query: {
|
query: {
|
||||||
prcType: '30',
|
prcType: '30',
|
||||||
processName: '政策课题入会流程',
|
processName: '政策课题入会流程',
|
||||||
bpnId: id,
|
bpnId: id,
|
||||||
|
},
|
||||||
|
params: {
|
||||||
|
type: 'step1'
|
||||||
|
}
|
||||||
|
})
|
||||||
|
break
|
||||||
|
case '31':
|
||||||
|
this.$router.push({
|
||||||
|
name: 'policyTopicParticipation',
|
||||||
|
query: {
|
||||||
|
prcType: '31',
|
||||||
|
processName: '政策课题参会流程',
|
||||||
|
bpnId: id,
|
||||||
|
},
|
||||||
|
params: {
|
||||||
|
type: 'step1'
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
break
|
break
|
||||||
}
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
...mapMutations(['setProcess', 'setHandleInfo']),
|
...mapMutations(['setProcess', 'setHandleInfo']),
|
||||||
|
|||||||
@@ -2072,6 +2072,24 @@ const routes = [
|
|||||||
title: '政策课题入会流程'
|
title: '政策课题入会流程'
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
path: '/policyTopicEnrollment/:type',
|
||||||
|
name: 'policyTopicEnrollment',
|
||||||
|
component: () => import('@/pages/processCenter/pages/creatProcess/policyTopicEnrollment'),
|
||||||
|
meta: {
|
||||||
|
requireAuth: true,
|
||||||
|
title: '政策课题入会流程'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: '/policyTopicParticipation/:type',
|
||||||
|
name: 'policyTopicParticipation',
|
||||||
|
component: () => import('@/pages/processCenter/pages/creatProcess/policyTopicParticipation'),
|
||||||
|
meta: {
|
||||||
|
requireAuth: true,
|
||||||
|
title: '政策课题参会流程'
|
||||||
|
}
|
||||||
|
},
|
||||||
{
|
{
|
||||||
path: '/zcchStep1',
|
path: '/zcchStep1',
|
||||||
name: 'zcchStep1',
|
name: 'zcchStep1',
|
||||||
|
|||||||
Reference in New Issue
Block a user