内外部会议入库流程
This commit is contained in:
@@ -1074,3 +1074,12 @@ export function productDeptIssue(params) {
|
||||
params
|
||||
})
|
||||
}
|
||||
|
||||
// 内外部会议入库
|
||||
export function processCreateMeeting (data) {
|
||||
return axios({
|
||||
url: '/api/lawss/meeting/processCreateMeeting',
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<template>
|
||||
<div class="wrapper">
|
||||
<el-form-item :label="label" :prop="prop" class="add-form-item form-item-disabled">
|
||||
<el-form-item :label="label" :prop="prop" :rules="rules" class="add-form-item form-item-disabled">
|
||||
<el-input
|
||||
:value="value"
|
||||
:placeholder="placeholder"
|
||||
@@ -34,6 +34,9 @@ export default {
|
||||
type: Boolean,
|
||||
default: true
|
||||
},
|
||||
rules: {
|
||||
type: Array
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
placeholder () {
|
||||
|
||||
@@ -0,0 +1,51 @@
|
||||
<template>
|
||||
<el-form-item :label="label" :prop="prop" :rules="rules" class="add-form-item form-item-disabled">
|
||||
<el-input
|
||||
type="textarea"
|
||||
:value="value"
|
||||
:placeholder="placeholder"
|
||||
:disabled="disabled"
|
||||
show-word-limit
|
||||
:autosize="{minRows: 1,maxRows: 4}"
|
||||
@input="handleChange"
|
||||
></el-input>
|
||||
</el-form-item>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
name: "TextareaFormItem",
|
||||
props: {
|
||||
value: {
|
||||
required: true
|
||||
},
|
||||
prop: {
|
||||
type: String
|
||||
},
|
||||
label: {
|
||||
type: String,
|
||||
},
|
||||
disabled: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
},
|
||||
rules: {
|
||||
type: Array
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
placeholder () {
|
||||
return `请输入${this.label}`
|
||||
},
|
||||
},
|
||||
methods: {
|
||||
handleChange (event) {
|
||||
this.$emit('input', event)
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped lang="less">
|
||||
|
||||
</style>
|
||||
@@ -115,7 +115,11 @@ export default {
|
||||
{
|
||||
label: "问答流程",
|
||||
value: "27"
|
||||
}
|
||||
},
|
||||
{
|
||||
label: "内外部会议入库流程",
|
||||
value: "28"
|
||||
}
|
||||
],
|
||||
formDisableFlag: false,
|
||||
pickerOptions: {
|
||||
|
||||
@@ -0,0 +1,83 @@
|
||||
<template>
|
||||
<div class="prc-content-border">
|
||||
<el-row :gutter="24">
|
||||
<el-col :span="12">
|
||||
<InputFormItem label="会议名称"
|
||||
prop="meetingName"
|
||||
v-model="form.meetingName"
|
||||
:disabled="disabled">
|
||||
</InputFormItem>
|
||||
<DatePickerFormItem label="会议时间"
|
||||
prop="meetingTime"
|
||||
v-model="form.meetingTime"
|
||||
:disabled="disabled">
|
||||
</DatePickerFormItem>
|
||||
<InputFormItem label="参会人员"
|
||||
prop="participants"
|
||||
v-model="form.participants"
|
||||
:disabled="disabled">
|
||||
</InputFormItem>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<InputFormItem label="会议主办单位"
|
||||
prop="meetingOrganizer"
|
||||
v-model="form.meetingOrganizer"
|
||||
:disabled="disabled">
|
||||
</InputFormItem>
|
||||
<InputFormItem label="会议地点"
|
||||
prop="meetingAddress"
|
||||
v-model="form.meetingAddress"
|
||||
:disabled="disabled">
|
||||
</InputFormItem>
|
||||
<UploadFormItem
|
||||
label="会议纪要"
|
||||
prop="meetingMinutes"
|
||||
:ids.sync="form.meetingMinutes"
|
||||
:names.sync="form.meetingMinutesName"
|
||||
:disabled="disabled">
|
||||
</UploadFormItem>
|
||||
</el-col>
|
||||
<el-col :span="24">
|
||||
<TextareaFormItem label="会议主要内容"
|
||||
prop="meetingContent"
|
||||
v-model="form.meetingContent"
|
||||
:disabled="disabled">
|
||||
</TextareaFormItem>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import InputFormItem from '@/components/hzwlComponents/InputFormItem'
|
||||
import DatePickerFormItem from '@/components/hzwlComponents/DatePickerFormItem'
|
||||
import UploadFormItem from "@/components/hzwlComponents/UploadFormItem";
|
||||
import TextareaFormItem from "@/components/hzwlComponents/TextareaFormItem";
|
||||
export default {
|
||||
name: "Basic",
|
||||
components: {
|
||||
InputFormItem,
|
||||
DatePickerFormItem,
|
||||
UploadFormItem,
|
||||
TextareaFormItem
|
||||
},
|
||||
props: {
|
||||
form: {
|
||||
type: Object,
|
||||
required: true
|
||||
},
|
||||
disabled: {
|
||||
type: Boolean,
|
||||
default: () => false
|
||||
},
|
||||
dict: {
|
||||
type: Object,
|
||||
required: true
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
|
||||
</style>
|
||||
@@ -0,0 +1,50 @@
|
||||
<template>
|
||||
<div class="prc-content-border">
|
||||
<el-row :gutter="24">
|
||||
<el-col :span="12">
|
||||
<SelectFormItem label="1级会议分类"
|
||||
prop="firstMeetingType"
|
||||
v-model="form.firstMeetingType"
|
||||
:disabled="disabled"
|
||||
:options="dict.firstMeetingType || []">
|
||||
</SelectFormItem>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<SelectFormItem label="2级会议分类"
|
||||
prop="secondMeetingType"
|
||||
v-model="form.secondMeetingType"
|
||||
:disabled="disabled"
|
||||
:options="dict.secondMeetingType || []">
|
||||
</SelectFormItem>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import SelectFormItem from '@/components/hzwlComponents/SelectFormItem'
|
||||
export default {
|
||||
name: "Classification",
|
||||
components: {
|
||||
SelectFormItem
|
||||
},
|
||||
props: {
|
||||
form: {
|
||||
type: Object,
|
||||
required: true
|
||||
},
|
||||
disabled: {
|
||||
type: Boolean,
|
||||
default: () => false
|
||||
},
|
||||
dict: {
|
||||
type: Object,
|
||||
required: true
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
|
||||
</style>
|
||||
@@ -0,0 +1,51 @@
|
||||
<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="jlUserName"
|
||||
timestamp="批准"
|
||||
title="审批人"
|
||||
:id.sync="roleForm.jlUserId"
|
||||
:name.sync="roleForm.jlUserName"
|
||||
: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: Object,
|
||||
default: false
|
||||
}
|
||||
},
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
|
||||
</style>
|
||||
@@ -0,0 +1,79 @@
|
||||
<template>
|
||||
<div class="prc-content-border">
|
||||
<el-row :gutter="24">
|
||||
<el-col :span="12">
|
||||
<InputFormItem label="议题名称"
|
||||
:prop="'meetingTopicList.' + index + '.agendaName'"
|
||||
:rules="rules.agendaName"
|
||||
v-model="item.agendaName"
|
||||
:disabled="disabled">
|
||||
</InputFormItem>
|
||||
<InputFormItem label="汇报人"
|
||||
:prop="'meetingTopicList.' + index + '.reporter'"
|
||||
:rules="rules.agendaName"
|
||||
v-model="item.reporter"
|
||||
:disabled="disabled">
|
||||
</InputFormItem>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<UploadFormItem
|
||||
label="议题材料"
|
||||
:prop="'meetingTopicList.' + index + '.agendaMaterials'"
|
||||
:ids.sync="item.agendaMaterials"
|
||||
:names.sync="item.agendaMaterialsName"
|
||||
:disabled="disabled">
|
||||
</UploadFormItem>
|
||||
<InputFormItem label="汇报人单位"
|
||||
:prop="'meetingTopicList.' + index + '.reportingUnit'"
|
||||
:rules="rules.agendaName"
|
||||
v-model="item.reportingUnit"
|
||||
:disabled="disabled">
|
||||
</InputFormItem>
|
||||
</el-col>
|
||||
<el-col :span="24">
|
||||
<TextareaFormItem label="议题主要内容"
|
||||
:prop="'meetingTopicList.' + index + '.agendaContent'"
|
||||
:rules="rules.agendaName"
|
||||
v-model="item.agendaContent"
|
||||
:disabled="disabled">
|
||||
</TextareaFormItem>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import InputFormItem from '@/components/hzwlComponents/InputFormItem'
|
||||
import TextareaFormItem from "@/components/hzwlComponents/TextareaFormItem";
|
||||
import UploadFormItem from "@/components/hzwlComponents/UploadFormItem";
|
||||
|
||||
export default {
|
||||
name: "Topics",
|
||||
components: {
|
||||
InputFormItem,
|
||||
TextareaFormItem,
|
||||
UploadFormItem
|
||||
},
|
||||
props: {
|
||||
item: {
|
||||
type: Object,
|
||||
required: true
|
||||
},
|
||||
index: {
|
||||
type: Number,
|
||||
required: true
|
||||
},
|
||||
rules: {
|
||||
type: Array
|
||||
},
|
||||
disabled: {
|
||||
type: Boolean,
|
||||
default: () => false
|
||||
},
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
|
||||
</style>
|
||||
@@ -0,0 +1,376 @@
|
||||
<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 class="headerTabsItem" :class="active === '2' ? 'active' : ''" @click="handleTabs('2')">人员信息</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" :dict="dict" :disabled="disabled"></Basic>
|
||||
<ProcessTitle>
|
||||
<template slot="title">会议分类</template>
|
||||
</ProcessTitle>
|
||||
<Classification :form="form" :dict="dict" :disabled="disabled"></Classification>
|
||||
<div v-for="(item, index) in form.meetingTopicList">
|
||||
<ProcessTitle>
|
||||
<template slot="title">
|
||||
会议议题
|
||||
<el-button type="primary" size="mini" icon="el-icon-plus" @click="addMeetingTopic" :disabled="disabled"
|
||||
:style="{visibility: (index === form.meetingTopicList.length - 1) ? 'visible' : 'collapse'}"></el-button>
|
||||
<el-button type="primary" size="mini" icon="el-icon-minus" @click="removeMeetingTopic(index)" :disabled="disabled"
|
||||
:style="{visibility: (form.meetingTopicList.length < 2 && index === 0) ? 'collapse' : 'visible'}"></el-button>
|
||||
</template>
|
||||
</ProcessTitle>
|
||||
<Topics :item="item" :index="index" :rules="rules" :disabled="disabled"></Topics>
|
||||
</div>
|
||||
</div>
|
||||
<div class="block" style="padding-top: 20px;" v-show="active === '2'">
|
||||
<PersonInfo ref="roleForm" :roleForm="roleForm" :roleRules="roleRules" :disabled="disabled"></PersonInfo>
|
||||
</div>
|
||||
</el-form>
|
||||
</div>
|
||||
<ProcessFooter
|
||||
v-show="!disabled"
|
||||
show-save
|
||||
show-submit
|
||||
:submitLoading="footerLoading"
|
||||
:saveLoading="footerLoading"
|
||||
@save="handleSave"
|
||||
@submit="handleSubmit"
|
||||
>
|
||||
</ProcessFooter>
|
||||
</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 Classification from "./components/Classification";
|
||||
import Topics from "./components/Topics";
|
||||
import PersonInfo from "./components/PersonInfo";
|
||||
|
||||
import { getDicTypeListCode, saveTaskFirst, queryTaskFirst, inboundLiaisonDetail, taskDel } from 'api/process'
|
||||
|
||||
export default {
|
||||
name: "hyrk1",
|
||||
components: {
|
||||
ProcessTitle,
|
||||
ProcessHeader,
|
||||
ProcessFooter,
|
||||
Basic,
|
||||
Classification,
|
||||
Topics,
|
||||
PersonInfo
|
||||
},
|
||||
data () {
|
||||
const form = {
|
||||
meetingName: '',
|
||||
meetingOrganizer: '',
|
||||
meetingTime: '',
|
||||
meetingAddress: '',
|
||||
participants: '',
|
||||
meetingMinutes: '',
|
||||
meetingMinutesName: '',
|
||||
meetingContent: '',
|
||||
firstMeetingType: '',
|
||||
secondMeetingType: '',
|
||||
meetingTopicList: [
|
||||
{
|
||||
agendaName: '',
|
||||
agendaMaterials: '',
|
||||
agendaMaterialsName: '',
|
||||
reporter: '',
|
||||
reportingUnit: '',
|
||||
agendaContent: ''
|
||||
}
|
||||
]
|
||||
}
|
||||
const rules = {
|
||||
meetingName: [
|
||||
{required: true, type: 'string', message: '会议名称不能为空', trigger: 'change'},
|
||||
{type: 'string', max: 500, message: '会议名称不能超过500个字符', trigger: 'change'}
|
||||
],
|
||||
meetingOrganizer: [
|
||||
{required: true, type: 'string', message: '会议主办单位不能为空', trigger: 'change'},
|
||||
{type: 'string', max: 500, message: '会议主办单位不能超过500个字符', trigger: 'change'}
|
||||
],
|
||||
meetingTime: [
|
||||
{required: true, message: '会议时间不能为空', trigger: 'change'}
|
||||
],
|
||||
meetingAddress: [
|
||||
{required: true, type: 'string', message: '会议地点不能为空', trigger: 'change'},
|
||||
{type: 'string', max: 500, message: '会议地点不能超过500个字符', trigger: 'change'}
|
||||
],
|
||||
participants: [
|
||||
{required: true, type: 'string', message: '参会人员不能为空', trigger: 'change'},
|
||||
{type: 'string', max: 500, message: '参会人员不能超过500个字符', trigger: 'change'}
|
||||
],
|
||||
meetingContent: [
|
||||
{required: true, type: 'string', message: '会议主要内容不能为空', trigger: 'change'},
|
||||
{type: 'string', max: 500, message: '会议主要内容不能超过500个字符', trigger: 'change'}
|
||||
],
|
||||
firstMeetingType: [
|
||||
{required: true, message: '1级会议类别不能为空', trigger: 'change'}
|
||||
],
|
||||
secondMeetingType: [
|
||||
{required: true, message: '2级会议类别不能为空', trigger: 'change'}
|
||||
],
|
||||
agendaName: [
|
||||
{required: true, type: 'string', message: '议题名称不能为空', trigger: 'change'},
|
||||
{type: 'string', max: 500, message: '议题名称不能超过500个字符', trigger: 'change'}
|
||||
],
|
||||
reporter: [
|
||||
{required: true, type: 'string', message: '汇报人不能为空', trigger: 'change'},
|
||||
{type: 'string', max: 500, message: '汇报人不能超过500个字符', trigger: 'change'}
|
||||
],
|
||||
reportingUnit: [
|
||||
{required: true, type: 'string', message: '汇报人单位不能为空', trigger: 'change'},
|
||||
{type: 'string', max: 500, message: '汇报人单位不能超过500个字符', trigger: 'change'}
|
||||
],
|
||||
agendaContent: [
|
||||
{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,
|
||||
jlUserId: '',
|
||||
jlUserName: '',
|
||||
}
|
||||
const roleRules = {
|
||||
applyUserName: [
|
||||
{required: true, message: '流程发起人不能为空', trigger: ['blur', 'change']}
|
||||
],
|
||||
jlUserName: [
|
||||
{required: true, message: '审批人不能为空', trigger: ['blur', 'change']}
|
||||
]
|
||||
}
|
||||
return {
|
||||
title: '起草',
|
||||
active: '1',
|
||||
disabled: false,
|
||||
footerLoading: false,
|
||||
reloadForm: true,
|
||||
form,
|
||||
rules,
|
||||
roleForm,
|
||||
roleRules,
|
||||
dict: {}
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.getDicTypeListCode()
|
||||
this.getData()
|
||||
},
|
||||
methods: {
|
||||
handleTabs(tab) {
|
||||
this.active = tab
|
||||
},
|
||||
addMeetingTopic () {
|
||||
const meetingTopicItem = {
|
||||
agendaName: '',
|
||||
agendaMaterials: '',
|
||||
agendaMaterialsName: '',
|
||||
reporter: '',
|
||||
reportingUnit: '',
|
||||
agendaContent: ''
|
||||
}
|
||||
this.form.meetingTopicList = [...this.form.meetingTopicList, meetingTopicItem]
|
||||
},
|
||||
removeMeetingTopic (index) {
|
||||
let res = []
|
||||
this.form.meetingTopicList.forEach((item, i) => {
|
||||
if (i !== index) {
|
||||
res.push(item)
|
||||
}
|
||||
})
|
||||
this.form.meetingTopicList = [ ...res ]
|
||||
},
|
||||
getData () {
|
||||
const { bpnId, taskIds, prcId, disabled } = this.$route.query
|
||||
// 1. 根据草稿查询流程详情 2.已办、已发、监控:查看流程数据
|
||||
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
|
||||
})
|
||||
})
|
||||
}
|
||||
if (disabled) {
|
||||
this.disabled = disabled
|
||||
}
|
||||
// 重新起草
|
||||
if (taskIds) {
|
||||
this.title = '重新起草'
|
||||
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
|
||||
})
|
||||
}
|
||||
})
|
||||
}
|
||||
},
|
||||
//保存
|
||||
handleSave() {
|
||||
this.footerLoading = true
|
||||
let _formData = new FormData()
|
||||
_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('prcType', '28')
|
||||
_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: '28',
|
||||
processName: '申请人发起流程',
|
||||
bpnId: res.result
|
||||
}
|
||||
})
|
||||
}).finally(e => {
|
||||
this.footerLoading = false
|
||||
})
|
||||
},
|
||||
async submit () {
|
||||
this.footerLoading = true
|
||||
|
||||
const json = Object.assign(this.form, this.roleForm);
|
||||
let completeTaskQuery = {}
|
||||
if (this.$route.query.taskIds) {
|
||||
// 重新起草
|
||||
completeTaskQuery = {
|
||||
taskIds: this.$route.query.taskIds,
|
||||
userId : this.$store.getters.userInfo.userId,
|
||||
json: JSON.stringify(json)
|
||||
}
|
||||
} else {
|
||||
// 起草
|
||||
const startProcessRollBackQuery = {
|
||||
createUser: this.$store.getters.userInfo.userId,
|
||||
createUserName: this.$store.getters.userInfo.userName,
|
||||
type: '28',
|
||||
json: JSON.stringify(json)
|
||||
}
|
||||
const res = await this.$http._post('lawss/activiti/startProcessRollBack', startProcessRollBackQuery)
|
||||
if(!res.ok) return;
|
||||
|
||||
completeTaskQuery = {
|
||||
taskIds: res.data,
|
||||
userId : this.$store.getters.userInfo.userId,
|
||||
json: JSON.stringify(json)
|
||||
}
|
||||
}
|
||||
const completeTaskRef = await this.$http._post('lawss/activiti/completeTask', completeTaskQuery)
|
||||
if (!completeTaskRef.success) return;
|
||||
this.$message.success(completeTaskRef.message)
|
||||
|
||||
this.footerLoading = false
|
||||
|
||||
if (this.$route.query.bpnId !== '') {
|
||||
// 删除草稿
|
||||
taskDel({ id: this.$route.query.bpnId })
|
||||
}
|
||||
// 流程提交之后,应该流转至待办任务页面
|
||||
await this.$router.push({path:'/processCenter?tabsName=ProcessCenter'})
|
||||
},
|
||||
handleSubmit() {
|
||||
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('请检查基础信息表单是否填写完整')
|
||||
}
|
||||
})
|
||||
},
|
||||
async getDicTypeListCode () {
|
||||
const res = await getDicTypeListCode()
|
||||
if (res.ok) {
|
||||
this.dict = res.data
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</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>
|
||||
@@ -0,0 +1,375 @@
|
||||
<template>
|
||||
<div class="wrapper">
|
||||
<ProcessHeader toggle>
|
||||
<template slot="proName">政策入库流程</template>
|
||||
<template slot="proNode">批准</template>
|
||||
</ProcessHeader>
|
||||
<div class="headerTabs">
|
||||
<div class="headerTabsItem" :class="active === '1' ? 'active' : ''" @click="handleTabs('1')">基础信息</div>
|
||||
<div 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" :dict="dict" :disabled="disabled"></Basic>
|
||||
<ProcessTitle>
|
||||
<template slot="title">会议分类</template>
|
||||
</ProcessTitle>
|
||||
<Classification :form="form" :dict="dict" :disabled="disabled"></Classification>
|
||||
<div v-for="(item, index) in form.meetingTopicList">
|
||||
<ProcessTitle>
|
||||
<template slot="title">
|
||||
会议议题
|
||||
<el-button type="primary" size="mini" icon="el-icon-plus" @click="addMeetingTopic" :disabled="disabled"
|
||||
:style="{visibility: (index === form.meetingTopicList.length - 1) ? 'visible' : 'collapse'}"></el-button>
|
||||
<el-button type="primary" size="mini" icon="el-icon-minus" @click="removeMeetingTopic(index)" :disabled="disabled"
|
||||
:style="{visibility: (form.meetingTopicList.length < 2 && index === 0) ? 'collapse' : 'visible'}"></el-button>
|
||||
</template>
|
||||
</ProcessTitle>
|
||||
<Topics :item="item" :index="index" :rules="rules" :disabled="disabled"></Topics>
|
||||
</div>
|
||||
</div>
|
||||
<div class="block" style="padding-top: 20px;" v-show="active === '3'">
|
||||
<ApprovalHistory :data="processData" :loading="processLoading"></ApprovalHistory>
|
||||
</div>
|
||||
</el-form>
|
||||
</div>
|
||||
<ProcessFooter
|
||||
show-submit
|
||||
show-over2
|
||||
show-transfer
|
||||
:submitLoading="footerLoading"
|
||||
:saveLoading="footerLoading"
|
||||
@transfer="handleTransfer"
|
||||
@submit="handleApprove"
|
||||
@over2="handleOver"
|
||||
></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 Classification from "./components/Classification";
|
||||
import Topics from "./components/Topics";
|
||||
import PersonInfo from "./components/PersonInfo";
|
||||
import ApprovalHistory from "@/components/hzwlComponents/ApprovalHistory";
|
||||
|
||||
import { getDicTypeListCode, inboundLiaisonDetail, changeAssigneeNew, processCreateMeeting } from 'api/process'
|
||||
export default {
|
||||
name: "step2",
|
||||
components: {
|
||||
ProcessTitle,
|
||||
ProcessHeader,
|
||||
ProcessFooter,
|
||||
Basic,
|
||||
Classification,
|
||||
Topics,
|
||||
PersonInfo,
|
||||
ApprovalHistory
|
||||
},
|
||||
data () {
|
||||
const form = {
|
||||
meetingName: '',
|
||||
meetingOrganizer: '',
|
||||
meetingTime: '',
|
||||
meetingAddress: '',
|
||||
participants: '',
|
||||
meetingMinutes: '',
|
||||
meetingMinutesName: '',
|
||||
meetingContent: '',
|
||||
firstMeetingType: '',
|
||||
secondMeetingType: '',
|
||||
meetingTopicList: [
|
||||
{
|
||||
agendaName: '',
|
||||
agendaMaterials: '',
|
||||
agendaMaterialsName: '',
|
||||
reporter: '',
|
||||
reportingUnit: '',
|
||||
agendaContent: ''
|
||||
}
|
||||
]
|
||||
}
|
||||
const rules = {
|
||||
meetingName: [
|
||||
{required: true, type: 'string', message: '会议名称不能为空', trigger: 'change'},
|
||||
{type: 'string', max: 500, message: '会议名称不能超过500个字符', trigger: 'change'}
|
||||
],
|
||||
meetingOrganizer: [
|
||||
{required: true, type: 'string', message: '会议主办单位不能为空', trigger: 'change'},
|
||||
{type: 'string', max: 500, message: '会议主办单位不能超过500个字符', trigger: 'change'}
|
||||
],
|
||||
meetingTime: [
|
||||
{required: true, message: '会议时间不能为空', trigger: 'change'}
|
||||
],
|
||||
meetingAddress: [
|
||||
{required: true, type: 'string', message: '会议地点不能为空', trigger: 'change'},
|
||||
{type: 'string', max: 500, message: '会议地点不能超过500个字符', trigger: 'change'}
|
||||
],
|
||||
participants: [
|
||||
{required: true, type: 'string', message: '参会人员不能为空', trigger: 'change'},
|
||||
{type: 'string', max: 500, message: '参会人员不能超过500个字符', trigger: 'change'}
|
||||
],
|
||||
meetingContent: [
|
||||
{required: true, type: 'string', message: '会议主要内容不能为空', trigger: 'change'},
|
||||
{type: 'string', max: 500, message: '会议主要内容不能超过500个字符', trigger: 'change'}
|
||||
],
|
||||
firstMeetingType: [
|
||||
{required: true, message: '1级会议类别不能为空', trigger: 'change'}
|
||||
],
|
||||
secondMeetingType: [
|
||||
{required: true, message: '2级会议类别不能为空', trigger: 'change'}
|
||||
],
|
||||
agendaName: [
|
||||
{required: true, type: 'string', message: '议题名称不能为空', trigger: 'change'},
|
||||
{type: 'string', max: 500, message: '议题名称不能超过500个字符', trigger: 'change'}
|
||||
],
|
||||
reporter: [
|
||||
{required: true, type: 'string', message: '汇报人不能为空', trigger: 'change'},
|
||||
{type: 'string', max: 500, message: '汇报人不能超过500个字符', trigger: 'change'}
|
||||
],
|
||||
reportingUnit: [
|
||||
{required: true, type: 'string', message: '汇报人单位不能为空', trigger: 'change'},
|
||||
{type: 'string', max: 500, message: '汇报人单位不能超过500个字符', trigger: 'change'}
|
||||
],
|
||||
agendaContent: [
|
||||
{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,
|
||||
jlUserId: '',
|
||||
jlUserName: '',
|
||||
}
|
||||
const roleRules = {
|
||||
applyUserName: [
|
||||
{required: true, message: '流程发起人不能为空', trigger: ['blur', 'change']}
|
||||
],
|
||||
jlUserName: [
|
||||
{required: true, message: '审批人不能为空', trigger: ['blur', 'change']}
|
||||
]
|
||||
}
|
||||
return {
|
||||
active: '1',
|
||||
disabled: false,
|
||||
footerLoading: false,
|
||||
reloadForm: true,
|
||||
form,
|
||||
rules,
|
||||
roleForm,
|
||||
roleRules,
|
||||
dict: {},
|
||||
|
||||
// 审批历史
|
||||
processData: [],
|
||||
processLoading: false,
|
||||
|
||||
// 选人抽屉
|
||||
drawerModal: false,
|
||||
drawerTitle: '',
|
||||
nodeList: [],
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.getDicTypeListCode()
|
||||
this.getData()
|
||||
this.processTable()
|
||||
},
|
||||
methods: {
|
||||
handleTabs(tab) {
|
||||
this.active = tab
|
||||
},
|
||||
addMeetingTopic () {
|
||||
const meetingTopicItem = {
|
||||
agendaName: '',
|
||||
agendaMaterials: '',
|
||||
agendaMaterialsName: '',
|
||||
reporter: '',
|
||||
reportingUnit: '',
|
||||
agendaContent: ''
|
||||
}
|
||||
this.form.meetingTopicList = [...this.form.meetingTopicList, meetingTopicItem]
|
||||
},
|
||||
removeMeetingTopic (index) {
|
||||
let res = []
|
||||
this.form.meetingTopicList.forEach((item, i) => {
|
||||
if (i !== index) {
|
||||
res.push(item)
|
||||
}
|
||||
})
|
||||
this.form.meetingTopicList = [ ...res ]
|
||||
},
|
||||
getData() {
|
||||
return new Promise((resolve, reject) => {
|
||||
inboundLiaisonDetail({
|
||||
taskIds: this.taskIds,
|
||||
pId: this.pId
|
||||
}).then(res => {
|
||||
if (res) {
|
||||
this.reloadForm = false
|
||||
const processForm = JSON.parse(res.mesg)
|
||||
this.form = JSON.parse(JSON.stringify(processForm))
|
||||
this.form.commentText = '' // 置空意见
|
||||
this.$nextTick(() => {
|
||||
this.reloadForm = true
|
||||
})
|
||||
}
|
||||
}).catch(e => {
|
||||
})
|
||||
})
|
||||
},
|
||||
// 审批历史
|
||||
processTable () {
|
||||
this.$http._getData('lawss/activiti/get_list_by_instance',{
|
||||
prcNum: this.$route.query.prcNum
|
||||
},{
|
||||
loading: 'processLoading',
|
||||
_this: this
|
||||
}).then(res => {
|
||||
this.$set(this, 'processData', res)
|
||||
})
|
||||
},
|
||||
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)
|
||||
}
|
||||
})
|
||||
},
|
||||
handleOver(){
|
||||
// 驳回
|
||||
this.form.approvalOpinion = 1
|
||||
this.handleSubmit()
|
||||
},
|
||||
handleApprove(){
|
||||
// 通过
|
||||
this.form.approvalOpinion = 0
|
||||
this.handleSubmit()
|
||||
},
|
||||
// 提交
|
||||
handleSubmit() {
|
||||
this.$refs['form'].validate((valid) => {
|
||||
if (valid) {
|
||||
this.footerLoading = true
|
||||
const json = JSON.stringify(this.form);
|
||||
this.$http.post('lawss/activiti/completeTask', {
|
||||
userId:this.$store.getters.userInfo.userId,
|
||||
taskIds: this.$route.query.taskIds,
|
||||
json
|
||||
}, {
|
||||
_this: this
|
||||
}, res => {
|
||||
if (res.success) {
|
||||
if(this.form.approvalOpinion === 1){
|
||||
this.$message.warning("驳回成功")
|
||||
this.footerLoading = false
|
||||
// 流程提交之后,应该流转至待办任务页面
|
||||
this.$router.push({path:'/processCenter?tabsName=ProcessCenter'})
|
||||
}else{
|
||||
this.processCreate(json)
|
||||
}
|
||||
}
|
||||
})
|
||||
} else {
|
||||
this.$message.warning('请检查基础信息表单是否填写完整')
|
||||
}})
|
||||
},
|
||||
// 流程入库
|
||||
processCreate (json) {
|
||||
const _formData = new FormData()
|
||||
_formData.append('infoJson', json)
|
||||
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
|
||||
})
|
||||
},
|
||||
|
||||
async getDicTypeListCode () {
|
||||
const res = await getDicTypeListCode()
|
||||
if (res.ok) {
|
||||
this.dict = res.data
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</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>
|
||||
@@ -14,7 +14,7 @@
|
||||
disabled />
|
||||
<TimeLineFormItem
|
||||
prop="jlUserName"
|
||||
timestamp="选择政策业务经理"
|
||||
timestamp="批准"
|
||||
title="政策业务经理"
|
||||
:id.sync="roleForm.jlUserId"
|
||||
:name.sync="roleForm.jlUserName"
|
||||
|
||||
@@ -43,8 +43,8 @@
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import ProcessHeader from '@/pages/processCenter/pages/components//ProcessHeader'
|
||||
import ProcessFooter from '@/pages/processCenter/pages/components//ProcessFooter'
|
||||
import ProcessHeader from '@/pages/processCenter/pages/components/ProcessHeader'
|
||||
import ProcessFooter from '@/pages/processCenter/pages/components/ProcessFooter'
|
||||
|
||||
import Basic from "./components/Basic";
|
||||
import EffectiveDate from "./components/EffectiveDate";
|
||||
@@ -223,7 +223,7 @@ export default {
|
||||
}
|
||||
const roleRules = {
|
||||
prcCreateUserName: [
|
||||
{required: true, message: '政策业务经理不能为空', trigger: ['blur', 'change']}
|
||||
{required: true, message: '流程发起人不能为空', trigger: ['blur', 'change']}
|
||||
],
|
||||
jlUserName: [
|
||||
{required: true, message: '政策业务经理不能为空', trigger: ['blur', 'change']}
|
||||
@@ -276,7 +276,7 @@ export default {
|
||||
})
|
||||
},
|
||||
getData () {
|
||||
const {taskInfo, taskIds, prcId, disabledXX } = this.$route.query
|
||||
const { taskIds, prcId, disabledXX } = this.$route.query
|
||||
|
||||
// 1. 根据草稿查询流程详情 2.已办、已发、监控:查看流程数据
|
||||
if(this.$route.query.bpnId){
|
||||
@@ -296,7 +296,7 @@ export default {
|
||||
this.disabled = disabledXX
|
||||
}
|
||||
// 重新起草
|
||||
if (taskInfo === '重新发起入库流程') {
|
||||
if (taskIds) {
|
||||
this.title = '重新起草'
|
||||
inboundLiaisonDetail({
|
||||
taskIds,
|
||||
@@ -363,23 +363,31 @@ export default {
|
||||
async submit () {
|
||||
this.footerLoading = true
|
||||
|
||||
const startProcessRollBackQuery = {
|
||||
createUser: this.$store.getters.userInfo.userId,
|
||||
createUserName: this.$store.getters.userInfo.userName,
|
||||
type: 'laws1',
|
||||
json: JSON.stringify({
|
||||
form: this.form,
|
||||
roleForm: this.roleForm
|
||||
})
|
||||
}
|
||||
const res = await this.$http._post('lawss/activiti/startProcessRollBack', startProcessRollBackQuery)
|
||||
if(!res.ok) return;
|
||||
|
||||
const json = Object.assign(this.form, this.roleForm);
|
||||
const completeTaskQuery = {
|
||||
taskIds: res.data,
|
||||
userId : this.$store.getters.userInfo.userId,
|
||||
json: JSON.stringify(json)
|
||||
let completeTaskQuery = {}
|
||||
if (this.$route.query.taskIds) {
|
||||
// 重新起草
|
||||
completeTaskQuery = {
|
||||
taskIds: this.$route.query.taskIds,
|
||||
userId : this.$store.getters.userInfo.userId,
|
||||
json: JSON.stringify(json)
|
||||
}
|
||||
} else {
|
||||
// 起草
|
||||
const startProcessRollBackQuery = {
|
||||
createUser: this.$store.getters.userInfo.userId,
|
||||
createUserName: this.$store.getters.userInfo.userName,
|
||||
type: 'laws1',
|
||||
json: JSON.stringify(json)
|
||||
}
|
||||
const res = await this.$http._post('lawss/activiti/startProcessRollBack', startProcessRollBackQuery)
|
||||
if(!res.ok) return;
|
||||
|
||||
completeTaskQuery = {
|
||||
taskIds: res.data,
|
||||
userId : this.$store.getters.userInfo.userId,
|
||||
json: JSON.stringify(json)
|
||||
}
|
||||
}
|
||||
const completeTaskRef = await this.$http._post('lawss/activiti/completeTask', completeTaskQuery)
|
||||
if (!completeTaskRef.success) return;
|
||||
@@ -514,18 +522,18 @@ export default {
|
||||
justify-content: space-between;
|
||||
height: calc(~'100% - 103px');
|
||||
overflow: auto;
|
||||
.tableTitle {
|
||||
margin-bottom: 10px;
|
||||
height: 30px;
|
||||
line-height: 30px;
|
||||
position: relative;
|
||||
font-size: 13px;
|
||||
font-weight: bold;
|
||||
.tableButton {
|
||||
position: absolute;
|
||||
right: 0;
|
||||
top: 0;
|
||||
}
|
||||
}
|
||||
//.tableTitle {
|
||||
// margin-bottom: 10px;
|
||||
// height: 30px;
|
||||
// line-height: 30px;
|
||||
// position: relative;
|
||||
// font-size: 13px;
|
||||
// font-weight: bold;
|
||||
// .tableButton {
|
||||
// position: absolute;
|
||||
// right: 0;
|
||||
// top: 0;
|
||||
// }
|
||||
//}
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -391,6 +391,9 @@ export default {
|
||||
}else if(prcType === '12'){
|
||||
//政策课题参会发起流程
|
||||
this.toProcessDetail('zdrzbzORzchgxxmscStep1',row)
|
||||
}else if(prcType === '28'){
|
||||
//内外部会议入库
|
||||
this.toProcessDetail('hyrk1',row)
|
||||
}
|
||||
} else {
|
||||
this.$message.warning('当前流程未全部办理完成,无法查看')
|
||||
|
||||
@@ -79,21 +79,6 @@
|
||||
</div>
|
||||
</el-card>
|
||||
</div>
|
||||
<div class="process-name">
|
||||
<el-card shadow="hover" v-btn-permission="'344c9c97b581400718451e8b8a319382'">
|
||||
<div class="card-box" @click="handleCreateProcess('12')">
|
||||
<div class="card-top">
|
||||
<div class="card-top-left">
|
||||
<img :src="getImg(Math.floor(Math.random() * 6))">
|
||||
</div>
|
||||
<div class="card-top-right">
|
||||
<div class="card-top-right-text">政策征求意见流程</div>
|
||||
<div class="card-top-right-line"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</el-card>
|
||||
</div>
|
||||
<div class="process-name">
|
||||
<el-card shadow="hover" v-btn-permission="'90c7bae6308595f053c6f6f90167e493'">
|
||||
<div class="card-box" @click="handleCreateProcess('7')">
|
||||
@@ -124,21 +109,6 @@
|
||||
</div>
|
||||
</el-card>
|
||||
</div>
|
||||
<div class="process-name">
|
||||
<el-card shadow="hover" v-btn-permission="'f01a55435ba41dfe0a4bf99428b9e5c2'">
|
||||
<div class="card-box" @click="handleCreateProcess('13')">
|
||||
<div class="card-top">
|
||||
<div class="card-top-left">
|
||||
<img :src="getImg(Math.floor(Math.random() * 6))">
|
||||
</div>
|
||||
<div class="card-top-right">
|
||||
<div class="card-top-right-text">重点认证标准/政策合规性项目审查流程</div>
|
||||
<div class="card-top-right-line"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</el-card>
|
||||
</div>
|
||||
<div class="process-name">
|
||||
<el-card shadow="hover" v-btn-permission="'14f54ef4475d9210b1ee7872ab69eca8'">
|
||||
<div class="card-box" @click="handleCreateProcess('11')">
|
||||
@@ -155,7 +125,22 @@
|
||||
</el-card>
|
||||
</div>
|
||||
<div class="process-name">
|
||||
<el-card shadow="hover" v-btn-permission="''">
|
||||
<el-card shadow="hover" v-btn-permission="'a151f5e2ee44f8df81e201b8696fca31'">
|
||||
<div class="card-box" @click="handleCreateProcess('8')">
|
||||
<div class="card-top">
|
||||
<div class="card-top-left">
|
||||
<img :src="getImg(Math.floor(Math.random() * 6))">
|
||||
</div>
|
||||
<div class="card-top-right">
|
||||
<div class="card-top-right-text">未符合项整改流程</div>
|
||||
<div class="card-top-right-line"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</el-card>
|
||||
</div>
|
||||
<div class="process-name">
|
||||
<el-card shadow="hover" v-btn-permission="'9c8cc1b74b1caa16f34a47895b489833'">
|
||||
<div class="card-box" @click="handleCreateProcess('laws1')">
|
||||
<div class="card-top">
|
||||
<div class="card-top-left">
|
||||
@@ -170,14 +155,44 @@
|
||||
</el-card>
|
||||
</div>
|
||||
<div class="process-name">
|
||||
<el-card shadow="hover" v-btn-permission="'a151f5e2ee44f8df81e201b8696fca31'">
|
||||
<div class="card-box" @click="handleCreateProcess('8')">
|
||||
<el-card shadow="hover" v-btn-permission="'42c7b2e5011900a6eb0c09c5355f8128'">
|
||||
<div class="card-box" @click="handleCreateProcess('28')">
|
||||
<div class="card-top">
|
||||
<div class="card-top-left">
|
||||
<img :src="getImg(Math.floor(Math.random() * 6))">
|
||||
</div>
|
||||
<div class="card-top-right">
|
||||
<div class="card-top-right-text">未符合项整改流程</div>
|
||||
<div class="card-top-right-text">内外部会议入库流程</div>
|
||||
<div class="card-top-right-line"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</el-card>
|
||||
</div>
|
||||
<div class="process-name">
|
||||
<el-card shadow="hover" v-btn-permission="'344c9c97b581400718451e8b8a319382'">
|
||||
<div class="card-box" @click="handleCreateProcess('12')">
|
||||
<div class="card-top">
|
||||
<div class="card-top-left">
|
||||
<img :src="getImg(Math.floor(Math.random() * 6))">
|
||||
</div>
|
||||
<div class="card-top-right">
|
||||
<div class="card-top-right-text">政策征求意见流程</div>
|
||||
<div class="card-top-right-line"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</el-card>
|
||||
</div>
|
||||
<div class="process-name">
|
||||
<el-card shadow="hover" v-btn-permission="'f01a55435ba41dfe0a4bf99428b9e5c2'">
|
||||
<div class="card-box" @click="handleCreateProcess('13')">
|
||||
<div class="card-top">
|
||||
<div class="card-top-left">
|
||||
<img :src="getImg(Math.floor(Math.random() * 6))">
|
||||
</div>
|
||||
<div class="card-top-right">
|
||||
<div class="card-top-right-text">重点认证标准/政策合规性项目审查流程</div>
|
||||
<div class="card-top-right-line"></div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -598,6 +613,12 @@ export default {
|
||||
name: 'qbzxdlxStep1'
|
||||
})
|
||||
break
|
||||
// 内外部会议入库流程
|
||||
case '28':
|
||||
this.$router.push({
|
||||
name: 'hyrk1'
|
||||
})
|
||||
break
|
||||
}
|
||||
},
|
||||
checkPermission(permissionIdArray) {
|
||||
|
||||
@@ -2259,6 +2259,30 @@ export default {
|
||||
|
||||
}
|
||||
})
|
||||
break
|
||||
case '28': {
|
||||
let routeName = ''
|
||||
switch (row.taskInfo) {
|
||||
case '内外部会议入库审批':
|
||||
routeName = 'zcrk2'
|
||||
break
|
||||
case '重新发起内外部会议入库流程':
|
||||
routeName = 'zcrk1'
|
||||
break
|
||||
}
|
||||
this.$router.push({
|
||||
name: routeName,
|
||||
query: {
|
||||
taskIds: row.taskIds,
|
||||
prcId: row.prcId,
|
||||
prcNum: row.prcNum,
|
||||
prcName: row.prcName,
|
||||
prcType: row.prcType
|
||||
}
|
||||
})
|
||||
}
|
||||
break
|
||||
|
||||
}
|
||||
},
|
||||
...mapMutations(['setProcess', 'setHandleInfo']),
|
||||
|
||||
@@ -963,6 +963,15 @@ export default {
|
||||
}
|
||||
})
|
||||
break
|
||||
case '28':
|
||||
this.$router.push({
|
||||
name: 'hyrk1',
|
||||
query: {
|
||||
prcType: '28',
|
||||
processName: '申请人发起流程',
|
||||
bpnId: id
|
||||
}
|
||||
})
|
||||
}
|
||||
},
|
||||
...mapMutations(['setProcess', 'setHandleInfo']),
|
||||
|
||||
@@ -1160,6 +1160,24 @@ const routes = [
|
||||
title: '政策入库流程'
|
||||
}
|
||||
},
|
||||
{
|
||||
path: '/hyrk1',
|
||||
name: 'hyrk1',
|
||||
component: () => import('@/pages/processCenter/pages/creatProcess/hzwl-hyrk/step1.vue'),
|
||||
meta: {
|
||||
requireAuth: true,
|
||||
title: '会议入库流程'
|
||||
}
|
||||
},
|
||||
{
|
||||
path: '/hyrk2',
|
||||
name: 'hyrk2',
|
||||
component: () => import('@/pages/processCenter/pages/creatProcess/hzwl-hyrk/step2.vue'),
|
||||
meta: {
|
||||
requireAuth: true,
|
||||
title: '会议入库流程'
|
||||
}
|
||||
},
|
||||
{
|
||||
path: '/zcrkStep1',
|
||||
name: 'zcrkStep1',
|
||||
|
||||
Reference in New Issue
Block a user