布局政策合规性项目审查流程

This commit is contained in:
范强强
2023-10-19 16:34:13 +08:00
parent 69250ecd9c
commit 315ba95075
5 changed files with 1113 additions and 4 deletions
@@ -0,0 +1,86 @@
<template>
<el-table
height="100%"
ref="selection"
:data="histortData"
tooltip-effect="dark"
style="width: 100%"
border
row-key="id"
:header-cell-style="{background: '#f8f8f9', color: '#515a6e'}">
<el-table-column
prop="name"
label="任务步骤"
align="center"
>
</el-table-column>
<el-table-column
prop="assignee"
label="任务受理人"
align="center"
>
</el-table-column>
<el-table-column
prop="createTime"
label="创建时间"
align="center">
<template slot-scope="scope">
<span>{{ scope.row.createTime ? $moment(scope.row.createTime).format('YYYY-MM-DD HH:mm:ss') : '' }}</span>
</template>
</el-table-column>
<el-table-column
prop="endTime"
label="完成时间"
align="center">
<template slot-scope="scope">
<span>{{ scope.row.endTime ? $moment(scope.row.endTime).format('YYYY-MM-DD HH:mm:ss') : '' }}</span>
</template>
</el-table-column>
<el-table-column
prop="comment"
label="流程信息"
align="center">
<template slot-scope="scope">
<span>{{ scope.row.commentText }}</span>
</template>
</el-table-column>
<el-table-column
prop="completeFlag"
label="状态"
align="center">
<template slot-scope="scope">
<span>{{ scope.row.endTime ? '已完成' : scope.row.receiveStatus ? '已接收' : '未完成' }}</span>
</template>
</el-table-column>
</el-table>
</template>
<script>
export default {
name: "approvalHistory",
data() {
return {
histortData: [],
}
},
mounted() {
if (this.$route.query.prcNum) {
this.getHistoryData()
}
},
methods: {
getHistoryData() {
this.$http.get('lawss/activiti/get_list_by_instance', {
prcNum: this.$route.query.prcNum,
}, {}, res => {
this.histortData = res || []
}, e => {
})
},
},
}
</script>
<style scoped>
</style>
@@ -0,0 +1,329 @@
<template>
<div class="block" style="padding-top: 20px;">
<el-timeline>
<el-form
ref="Form"
:model="roleForm"
:rules="roleFormRules"
class="label-input-form myForm">
<el-timeline-item timestamp="发起流程" placement="top" :color="roleForm.prcCreateUser ? '#66b1ff' : ''">
<el-card>
<el-form-item prop="prcCreateUserName" style="margin-bottom: 0">
<h4>起草</h4>
<div style="margin-top: 10px;width: 300px;">
<el-input :disabled="disabledXX" v-model="roleForm.prcCreateUser"
style="display: none;"></el-input>
<el-input :disabled="disabledXX" v-model="roleForm.prcCreateUserName" placeholder="流程发起人"
disabled></el-input>
</div>
</el-form-item>
</el-card>
</el-timeline-item>
<el-timeline-item timestamp="审核" placement="top"
:color="roleForm.responseDockerId ? '#66b1ff' : ''">
<el-card>
<el-form-item prop="shr1UserNames" style="margin-bottom: 0">
<h4>审核</h4>
<div style="margin-top: 10px;width: 300px;">
<el-input :disabled="disabledXX" v-model="roleForm.shr1UserIds"
style="display: none;"></el-input>
<el-input :disabled="disabledXX" v-model="roleForm.shr1UserNames" readonly
placeholder="选择审核人"
@click.native="choicePeoPle('shr1UserIds', '选择审核人', roleForm.shr1UserIds,false)"></el-input>
</div>
</el-form-item>
</el-card>
</el-timeline-item>
<el-timeline-item timestamp="审定" placement="top"
:color="roleForm.sdr1UserIds ? '#66b1ff' : ''">
<el-card>
<el-form-item prop="sdr1UserNames" style="margin-bottom: 0">
<h4>审定</h4>
<div style="margin-top: 10px;width: 300px;">
<el-input :disabled="disabledXX" v-model="roleForm.sdr1UserIds"
style="display: none;"></el-input>
<el-input :disabled="disabledXX" v-model="roleForm.sdr1UserNames" readonly
placeholder="选择审定人"
@click.native="choicePeoPle('sdr1UserIds', '选择审定人', roleForm.sdr1UserIds,false)"></el-input>
</div>
</el-form-item>
</el-card>
</el-timeline-item>
<el-timeline-item timestamp="批准" placement="top"
:color="roleForm.pzr1UserId ? '#66b1ff' : ''">
<el-card>
<el-form-item prop="pzr1UserName" style="margin-bottom: 0">
<h4>批准</h4>
<div style="margin-top: 10px;width: 300px;">
<el-input :disabled="disabledXX" v-model="roleForm.pzr1UserId"
style="display: none;"></el-input>
<el-input :disabled="disabledXX" v-model="roleForm.pzr1UserName" readonly
placeholder="选择批准人"
@click.native="choicePeoPle('pzr1UserId', '选择批准人', roleForm.pzr1UserId,true)"></el-input>
</div>
</el-form-item>
</el-card>
</el-timeline-item>
<el-timeline-item timestamp="责任对接人分配任务" placement="top"
:color="roleForm.djrUserIds ? '#66b1ff' : ''">
<el-card>
<el-form-item prop="djrUserNames" style="margin-bottom: 0">
<h4>责任对接人分配任务</h4>
<div style="margin-top: 10px;width: 300px;">
<el-input :disabled="disabledXX" v-model="roleForm.djrUserIds"
style="display: none;"></el-input>
<el-input :disabled="disabledXX" v-model="roleForm.djrUserNames" readonly
placeholder="责任对接人分配任务"
@click.native="choicePeoPle('djrUserIds', '责任对接人分配任务', roleForm.djrUserIds,false)"></el-input>
</div>
</el-form-item>
</el-card>
</el-timeline-item>
<el-timeline-item timestamp="管理员" placement="top"
:color="roleForm.glyUserId ? '#66b1ff' : ''">
<el-card>
<el-form-item prop="glyUserName" style="margin-bottom: 0">
<h4>管理员</h4>
<div style="margin-top: 10px;width: 300px;">
<el-input :disabled="disabledXX" v-model="roleForm.glyUserId"
style="display: none;"></el-input>
<el-input :disabled="disabledXX" v-model="roleForm.glyUserName" readonly
placeholder="管理员"
@click.native="choicePeoPle('glyUserId', '管理员', roleForm.glyUserId,true)"></el-input>
</div>
</el-form-item>
</el-card>
</el-timeline-item>
<el-timeline-item timestamp="审核" placement="top"
:color="roleForm.shr2UserIds ? '#66b1ff' : ''">
<el-card>
<el-form-item prop="shr2UserNames" style="margin-bottom: 0">
<h4>审核</h4>
<div style="margin-top: 10px;width: 300px;">
<el-input :disabled="disabledXX" v-model="roleForm.shr2UserIds"
style="display: none;"></el-input>
<el-input :disabled="disabledXX" v-model="roleForm.shr2UserNames" readonly
placeholder="审核"
@click.native="choicePeoPle('shr2UserIds', '审核', roleForm.shr2UserIds,false)"></el-input>
</div>
</el-form-item>
</el-card>
</el-timeline-item>
<el-timeline-item timestamp="审定" placement="top"
:color="roleForm.sdr2UserIds ? '#66b1ff' : ''">
<el-card>
<el-form-item prop="sdr2UserNames" style="margin-bottom: 0">
<h4>审定</h4>
<div style="margin-top: 10px;width: 300px;">
<el-input :disabled="disabledXX" v-model="roleForm.sdr2UserIds"
style="display: none;"></el-input>
<el-input :disabled="disabledXX" v-model="roleForm.sdr2UserNames" readonly
placeholder="审定"
@click.native="choicePeoPle('sdr2UserIds', '审定', roleForm.sdr2UserIds,false)"></el-input>
</div>
</el-form-item>
</el-card>
</el-timeline-item>
<el-timeline-item timestamp="批准" placement="top"
:color="roleForm.pzr2UserId ? '#66b1ff' : ''">
<el-card>
<el-form-item prop="pzr2UserName" style="margin-bottom: 0">
<h4>批准</h4>
<div style="margin-top: 10px;width: 300px;">
<el-input :disabled="disabledXX" v-model="roleForm.pzr2UserId"
style="display: none;"></el-input>
<el-input :disabled="disabledXX" v-model="roleForm.pzr2UserName" readonly
placeholder="批准"
@click.native="choicePeoPle('pzr2UserId', '批准', roleForm.pzr2UserId,true)"></el-input>
</div>
</el-form-item>
</el-card>
</el-timeline-item>
<el-timeline-item timestamp="抄送" placement="top"
:color="roleForm.csrUserIds ? '#66b1ff' : ''">
<el-card>
<el-form-item prop="csrUserNames" style="margin-bottom: 0">
<h4>抄送</h4>
<div style="margin-top: 10px;width: 300px;">
<el-input :disabled="disabledXX" v-model="roleForm.csrUserIds"
style="display: none;"></el-input>
<el-input :disabled="disabledXX" v-model="roleForm.csrUserNames" readonly
placeholder="抄送"
@click.native="choicePeoPle('csrUserIds', '抄送', roleForm.csrUserIds,false)"></el-input>
</div>
</el-form-item>
</el-card>
</el-timeline-item>
</el-form>
</el-timeline>
<Role-tree :is-title="drawerTitle"
:is-visible.sync="modalshowflag"
@checkedRole="checkedRole"
:nodeList="nodeList"
:checkBox="checkBox"
></Role-tree>
</div>
</template>
<script>
export default {
name: "personnelInformation",
data() {
return {
roleForm: {},
// 角色验证
roleFormRules: {
shr1UserNames: [
{required: true, message: "请选择审核人", trigger: "change"}
],
sdr1UserNames: [
{required: true, message: "请选择审定人", trigger: "change"}
],
pzr1UserName: [
{required: true, message: "请选择批准人", trigger: "change"}
],
djrUserNames: [
{required: true, message: "请选择责任对接人分配任务", trigger: "change"}
],
glyUserName: [
{required: true, message: "请选择管理员", trigger: "change"}
],
shr2UserNames: [
{required: true, message: "请选择审核人", trigger: "change"}
],
sdr2UserNames: [
{required: true, message: "请选择审定人", trigger: "change"}
],
pzr2UserName: [
{required: true, message: "请选择批准人", trigger: "change"}
],
csrUserNames: [
{required: true, message: "请选择抄送人", trigger: "change"}
],
},
disabledXX: false,
drawerTitle: '',
nodeList: [],
modalshowflag: false,
checkBox: false,
}
},
mounted() {
this.roleForm.prcCreateUser = this.$store.getters.userInfo.userId
this.roleForm.prcCreateUserName = this.$store.getters.userInfo.userName
this.roleForm = {...this.roleForm}
},
methods: {
//选择人
choicePeoPle(type, title, id, isTrue) {
this.nodeList = [];
let ids = id ? id.split(',') : []
this.nodeList = ids;
this.type = type;
this.drawerTitle = title;
this.checkBox = isTrue
console.log(this.nodeList);
this.modalshowflag = true;
},
//选择人
checkedRole(data) {
console.log(data);
let ids = []
let names = []
if (data && data.length > 0) {
for (let i = 0; i < data.length; i++) {
ids.push(data[i].id)
names.push(data[i].name)
}
}
if (this.type === "shr1UserIds") {
this.roleForm.shr1UserIds = ids.join(',')
this.roleForm.shr1UserNames = names.join(',');
} else if (this.type === "sdr1UserIds") {
this.roleForm.sdr1UserIds = ids.join(',');
this.roleForm.sdr1UserNames = names.join(',');
} else if (this.type === "pzr1UserId") {
this.roleForm.pzr1UserId = ids.join(',');
this.roleForm.pzr1UserName = names.join(',');
} else if (this.type === "djrUserIds") {
this.roleForm.djrUserIds = ids.join(',');
this.roleForm.djrUserNames = names.join(',');
} else if (this.type === "glyUserId") {
this.roleForm.glyUserId = ids.join(',');
this.roleForm.glyUserName = names.join(',');
} else if (this.type === "shr2UserIds") {
this.roleForm.shr2UserIds = ids.join(',');
this.roleForm.shr2UserNames = names.join(',');
} else if (this.type === "sdr2UserIds") {
this.roleForm.sdr2UserIds = ids.join(',');
this.roleForm.sdr2UserNames = names.join(',');
} else if (this.type === "pzr2UserId") {
this.roleForm.pzr2UserId = ids.join(',');
this.roleForm.pzr2UserName = names.join(',');
} else if (this.type === "csrUserIds") {
this.roleForm.csrUserIds = ids.join(',');
this.roleForm.csrUserNames = names.join(',');
}
this.roleForm = {...this.roleForm}
this.modalshowflag = false;
},
submit(callback) {
this.$refs['Form'].validate((valid) => {
if (valid) {
callback && callback(this.roleForm)
} else {
return this.$message.warning('请完善人员信息')
}
})
},
getData(item) {
let row = item ? JSON.parse(JSON.stringify(item)) : {}
this.roleForm = {
djrUserIds: row.djrUserIds,
djrUserNames: row.djrUserNames,
glyUserId: row.glyUserId,
glyUserName: row.glyUserName,
pzr1UserId: row.pzr1UserId,
pzr1UserName: row.pzr1UserName,
pzr2UserId: row.pzr2UserId,
pzr2UserName: row.pzr2UserName,
sdr1UserIds: row.sdr1UserIds,
sdr1UserNames: row.sdr1UserNames,
sdr2UserIds: row.sdr2UserIds,
sdr2UserNames: row.sdr2UserNames,
shr1UserIds: row.shr1UserIds,
shr1UserNames: row.shr1UserNames,
shr2UserIds: row.shr2UserIds,
shr2UserNames: row.shr2UserNames,
prcCreateUser: row.prcCreateUser,
prcCreateUserName: row.prcCreateUserName,
csrUserIds:row.csrUserIds,
csrUserNames:row.csrUserNames
}
this.roleForm = {...this.roleForm}
},
}
}
</script>
<style scoped>
</style>
@@ -13,6 +13,202 @@
:class="active === '3' ? 'active' : ''" @click="handleTabs('3')">审批历史
</div>
</div>
<div class="content" v-show="active === '1'">
<div style="flex: auto; overflow: auto;">
<el-form
ref="zczqyjForm"
:model="dataForm"
:rules="formRules"
class="label-input-form"
label-width="210px"
>
<ProcessTitle>
<template slot="title">基础信息</template>
</ProcessTitle>
<div class="prc-content-border">
<el-row :gutter="24">
<el-col :span="12">
<el-form-item label="截止时间"
:prop="!disabledXX ? 'endTime':''"
class="add-form-item form-item-disabled">
<el-date-picker :disabled="disabledXX"
v-model="dataForm.endTime"
type="date"
style="width: 100%"
placeholder="请选择截止时间">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="责任单位截止时间"
:prop="!disabledXX ? 'responsibleUnitDeadline':''"
class="add-form-item form-item-disabled">
<el-date-picker :disabled="disabledXX"
v-model="dataForm.responsibleUnitDeadline"
type="date"
style="width: 100%"
placeholder="请选择责任单位截止时间">
</el-date-picker>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="24">
<el-col :span="12">
<el-form-item label="模板"
class="add-form-item form-item-disabled">
<el-input
disabled
style="display: none;"
v-model="dataForm.templateFileId"
clearable
></el-input>
<div v-if="dataForm.templateFileList && dataForm.templateFileList.length > 0">
<div v-for="(item, index) in dataForm.templateFileList" :key="index"
style="margin-right: 5px;padding-left: 10px">
<div class="fileClass">
<span @click="handlePreview(item)">{{ item.name }}</span>
<el-button size="small"
@click="clickButtonToUpload(item)"
icon="el-icon-download"
style="height: 32px; margin-left: 5px;"
></el-button>
</div>
</div>
</div>
<div>
<el-button v-if="!disabledXX"
type="primary"
class="common-button-primary"
@click="fileUpload('templateFileList','templateFileId','.zip,.docx,.doc,.xls,.xlsx',200)"
size="mini">
点击上传
</el-button>
</div>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="24" v-if="taskKey == 'PolicySolicitOpinionProcessKey7'">
<el-col :span="12">
<el-form-item label="责任人" prop="zrrUserNames"
class="add-form-item form-item-disabled">
<el-input @click.native="selectOperation('责任人',dataForm.zrrUserIds,false)"
v-model="dataForm.zrrUserNames"
readonly
placeholder="请选择责任人"
clearable
></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="24" v-if="taskKey == 'PolicySolicitOpinionProcessKey9'">
<el-col :span="12">
<el-form-item label="内部评审" prop="internalReviewFlag"
class="add-form-item form-item-disabled">
<el-select v-model="dataForm.internalReviewFlag"
@change="internalReviewFlagChange"
placeholder="请选择内部评审" clearable>
<el-option :value="'0'"
label="是">
</el-option>
<el-option :value="'1'"
label="否">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="本单位审批人" prop="zrdwUserName"
v-if="dataForm.internalReviewFlag == '0'"
class="add-form-item form-item-disabled">
<el-input @click.native="selectOperation('审批人',dataForm.zrdwUserId,true)"
v-model="dataForm.zrdwUserName"
readonly
placeholder="请选择本单位审批人"
clearable
></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="24" v-if="taskKey == 'PolicySolicitOpinionProcessKey12'">
<el-col :span="12">
<el-form-item label="会签人" prop="hqrUserNames"
class="add-form-item form-item-disabled">
<el-input @click.native="selectOperation('会签人',dataForm.hqrUserIds,false)"
v-model="dataForm.hqrUserNames"
readonly
placeholder="请选择会签人"
clearable
></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="24" v-if="taskKey == 'PolicySolicitOpinionProcessKey16'">
<el-col :span="12">
<el-form-item label="抄送人" prop="csr2UserNames"
class="add-form-item form-item-disabled">
<el-input @click.native="selectOperation('抄送人',dataForm.csr2UserIds,false)"
v-model="dataForm.csr2UserNames"
readonly
placeholder="请选择抄送人"
clearable
></el-input>
</el-form-item>
</el-col>
</el-row>
</div>
</el-form>
</div>
<el-collapse accordion>
<el-collapse-item title="意见填写">
<div style="margin: 10px 0;">
<el-input type="textarea"
:rows="3"
resize="none"
placeholder="请输入意见"
v-model="commentText">
</el-input>
</div>
</el-collapse-item>
</el-collapse>
</div>
<div class="content" v-show="showPersonnel && active === '2'">
<personnelInformation ref="personnelInformationRef"/>
</div>
<div class="content" v-show="showApprovalHistory && active === '3'"
style="padding-top: 20px">
<approvalHistory/>
</div>
<ProcessFooter show-submit
:show-save="showSave"
:submitLoading="isSubmit"
:rejectLoading="isReject"
:saveLoading="saveLoading"
:show-transfer="showTransfer"
:showReject="showReject"
@save="handleSave"
@transfer="handleTransfer"
@submit="handleSubmit"
@reject="handleReject"
>
</ProcessFooter>
<Role-tree
:check-box="checkBox"
:is-title="title"
:is-visible.sync="drawerModal"
:nodeList="nodeList"
@checkedRole="checkedRole"
></Role-tree>
<processFile
ref="processFileRef"
:accept="accept"
:fileMax_M="fileMax_M"
@uploadSuccess="uploadSuccess"/>
<loading :loading="dataLoading">正在加载数据</loading>
</div>
</template>
@@ -21,6 +217,17 @@
import ProcessTitle from "../../components/ProcessTitle";
import ProcessFooter from "../../components/ProcessFooter";
import processFile from "../../components/processFile";
import approvalHistory from "./components/approvalHistory";//审批历史
import personnelInformation from "./components/personnelInformation";//人员信息
import {
queryTaskFirst,
saveTaskFirst,
taskDel,
changeAssigneeNew,
inboundLiaisonDetail,
saveTaskForPub,
} from "api/process";
import axios from "axios";
export default {
name: "index",
@@ -28,11 +235,51 @@
ProcessHeader,
ProcessTitle,
ProcessFooter,
processFile
processFile,
approvalHistory,
personnelInformation
},
data() {
return {
active: '1'
active: '1',
dataForm: {},
formRules: {
endTime: [
{required: true, message: '请选择截止时间', trigger: 'change'},
],
responsibleUnitDeadline: [
{required: true, message: '请选择责任单位截止时间', trigger: 'change'},
],
zrrUserNames: [
{required: true, message: '请选择责任人', trigger: 'change'},
],
internalReviewFlag: [
{required: true, message: '请选择内部评审', trigger: 'change'},
],
zrdwUserName: [
{required: true, message: '请选择本单位审批人', trigger: 'change'},
],
hqrUserNames: [
{required: true, message: '请选择会签人', trigger: 'change'},
],
csr2UserNames: [
{required: true, message: '请选择抄送人', trigger: 'change'},
],
},
dataLoading: false,
accept: '',
fileMax_M: 0,
commentText: '',
taskKey: this.$route.query.taskDefinitionKey,
bpnId: this.$route.query.bpnId,
checkBox: false,
title: '',
drawerModal: false,
nodeList: [],
saveLoading: false,
isSubmit: false,
isReject: false,
roleForm: {},
}
},
computed: {
@@ -42,12 +289,460 @@
showApprovalHistory() {
return true
},
disabledXX() {
return false
},
taskKeyName() {
if (!this.taskKey || this.taskKey == 'PolicySolicitOpinionProcessKey1') {
return '起草'
} else if (this.taskKey == 'PolicySolicitOpinionProcessKey2') {
return '审核'
} else if (this.taskKey == 'PolicySolicitOpinionProcessKey3') {
return '起草修改'
} else if (this.taskKey == 'PolicySolicitOpinionProcessKey4') {
return '审定'
} else if (this.taskKey == 'PolicySolicitOpinionProcessKey5') {
return '批准'
} else if (this.taskKey == 'PolicySolicitOpinionProcessKey7') {
return '责任对接人分配任务'
} else if (this.taskKey == 'PolicySolicitOpinionProcessKey8') {
return '责任人任务处理'
} else if (this.taskKey == 'PolicySolicitOpinionProcessKey9') {
return '责任对接人汇总'
} else if (this.taskKey == 'PolicySolicitOpinionProcessKey10') {
return '责任单位审批'
} else if (this.taskKey == 'PolicySolicitOpinionProcessKey11') {
return '管理员'
} else if (this.taskKey == 'PolicySolicitOpinionProcessKey12') {
return '审核'
} else if (this.taskKey == 'PolicySolicitOpinionProcessKey13') {
return '会签'
} else if (this.taskKey == 'PolicySolicitOpinionProcessKey14') {
return '审定'
} else if (this.taskKey == 'PolicySolicitOpinionProcessKey15') {
return '批准'
} else if (this.taskKey == 'PolicySolicitOpinionProcessKey16') {
return '抄送'
}
},
showSave() { //是否展示保存
if (!this.taskKey || this.taskKey == 'PolicySolicitOpinionProcessKey1' ||
this.taskKey == 'PolicySolicitOpinionProcessKey3' || this.taskKey == 'PolicySolicitOpinionProcessKey7' ||
this.taskKey == 'PolicySolicitOpinionProcessKey8' || this.taskKey == 'PolicySolicitOpinionProcessKey9' ||
this.taskKey == 'PolicySolicitOpinionProcessKey12') {
return true
}
return false
},
showTransfer() {//是否展示转办
if (!this.taskKey) {
return false
}
return true
},
showReject() {//是否展示驳回
if (this.taskKey == 'PolicySolicitOpinionProcessKey2' ||
this.taskKey == 'PolicySolicitOpinionProcessKey4' ||
this.taskKey == 'PolicySolicitOpinionProcessKey5' ||
this.taskKey == 'PolicySolicitOpinionProcessKey9' ||
this.taskKey == 'PolicySolicitOpinionProcessKey10' ||
this.taskKey == 'PolicySolicitOpinionProcessKey11' ||
this.taskKey == 'PolicySolicitOpinionProcessKey12' ||
this.taskKey == 'PolicySolicitOpinionProcessKey13' ||
this.taskKey == 'PolicySolicitOpinionProcessKey14' ||
this.taskKey == 'PolicySolicitOpinionProcessKey15') {
return true
}
return false
},
showSolicitation() { //是否展示征求意见列表
if (this.taskKey == 'PolicySolicitOpinionProcessKey8' ||
this.taskKey == 'PolicySolicitOpinionProcessKey9' ||
this.taskKey == 'PolicySolicitOpinionProcessKey10' ||
this.taskKey == 'PolicySolicitOpinionProcessKey11' ||
this.taskKey == 'PolicySolicitOpinionProcessKey12' ||
this.taskKey == 'PolicySolicitOpinionProcessKey13' ||
this.taskKey == 'PolicySolicitOpinionProcessKey14' ||
this.taskKey == 'PolicySolicitOpinionProcessKey15' ||
this.taskKey == 'PolicySolicitOpinionProcessKey16') {
return true
}
return false
},
},
mounted() {
//获取草稿的数据进行展示
if (this.bpnId) {
this.getTaskDraftData()
}
//获取流程中数据进行展示
if (this.taskKey) {
this.getData()
}
},
methods: {
handlePreview(file) {
let attId = ""
if (file && file.id) {
attId = file.id
} else {
attId = file.response.data.id
}
this.$preview(attId)
},
//基础信息/人员信息
handleTabs(type) {
this.active = type;
},
fileUpload(fileListName, fileName, accept, fileMax_M) {
this.fileListName = fileListName
this.fileName = fileName
this.accept = accept
this.fileMax_M = fileMax_M
this.$refs.processFileRef.getFile(this.dataForm[this.fileListName])
},
uploadSuccess(fileList, fileId) {
this.dataForm[this.fileListName] = fileList
this.dataForm[this.fileName] = fileId
this.dataForm = {...this.dataForm}
},
clickButtonToUpload(file) {
const attId = file.attId
if (attId) {
window.location.href = '/api/att/attFile/downloadFileForSarNew?fileId=' + attId
} else {
this.$message.warning('文件不存在,下载失败')
}
},
//保存事件
handleSave() {
this.openButtonLoading()
if (!this.taskKey || this.taskKey == 'PolicySolicitOpinionProcessKey1') {
this.draftSaving()
} else if (this.taskKey == 'PolicySolicitOpinionProcessKey8' ||
this.taskKey == 'PolicySolicitOpinionProcessKey9' ||
this.taskKey == 'PolicySolicitOpinionProcessKey12') {
let _formData = new FormData();
this.$refs.solicitationListRef.save((row, ids) => {
_formData.append("taskIds", this.$route.query.taskIds);
_formData.append("json", JSON.stringify({
form: this.dataForm,
commentText: this.commentText,
policySolicitOpinionEOList: row,
removeIds: ids,
currentUserId: this.$store.getters.userInfo.userId
}));
saveTaskForPub(_formData).then(res => {
this.closeButtonLoading()
this.$message.success("保存成功");
this.$refs.solicitationListRef.getData()
}).catch(e => {
this.closeButtonLoading()
});
})
}
},
//草稿保存
draftSaving() {
let _formData = new FormData();
let json = this.dataForm
json.commentText = this.commentText
_formData.append('id', this.bpnId || '')
_formData.append("createUser", this.$store.getters.userInfo.userId);
_formData.append("createUserName", this.$store.getters.userInfo.userName);
_formData.append("prcType", "29");
_formData.append("json", JSON.stringify({
form: json,
roleForm: this.$refs.personnelInformationRef.roleForm,
commentText: this.commentText
}));
saveTaskFirst(_formData).then(res => {
this.closeButtonLoading()
this.$message.success("保存成功");
this.bpnId = res.result
}).catch(e => {
this.saveLoading = false;
});
},
//提交事件
handleSubmit() {
this.$refs['zczqyjForm'].validate((valid) => {
if (valid) {
this.openButtonLoading()
if (!this.taskKey || this.taskKey == 'PolicySolicitOpinionProcessKey1') {//起草
this.closeButtonLoading()
this.$refs.personnelInformationRef.submit((row) => {
this.openButtonLoading()
this.startProcessRollBack(row)
})
} else if (this.taskKey == 'PolicySolicitOpinionProcessKey2' ||
this.taskKey == 'PolicySolicitOpinionProcessKey4' ||
this.taskKey == 'PolicySolicitOpinionProcessKey5' ||
this.taskKey == 'PolicySolicitOpinionProcessKey7') { //审核、审定、批准、责任人分配任务
const json = Object.assign(this.dataForm);
json.commentText = this.commentText
json.approvalFlag = 0
let query = {
form: json,
commentText: this.commentText
}
this.completeTask(this.$route.query.taskIds, query)
} else if (this.taskKey == 'PolicySolicitOpinionProcessKey3') {//起草修改
this.closeButtonLoading()
this.$refs.personnelInformationRef.submit((row) => {
const json = Object.assign(this.dataForm, row);
json.commentText = this.commentText
json.approvalFlag = 0
let query = {
form: json,
commentText: this.commentText
}
this.openButtonLoading()
this.completeTask(this.$route.query.taskIds, query)
})
} else if (this.taskKey == 'PolicySolicitOpinionProcessKey8' ||
this.taskKey == 'PolicySolicitOpinionProcessKey9' ||
this.taskKey == 'PolicySolicitOpinionProcessKey10' ||
this.taskKey == 'PolicySolicitOpinionProcessKey11' ||
this.taskKey == 'PolicySolicitOpinionProcessKey12' ||
this.taskKey == 'PolicySolicitOpinionProcessKey13' ||
this.taskKey == 'PolicySolicitOpinionProcessKey14' ||
this.taskKey == 'PolicySolicitOpinionProcessKey15' ||
this.taskKey == 'PolicySolicitOpinionProcessKey16') {//责任人任务处理
this.closeButtonLoading()
this.$refs.solicitationListRef.submit((row, ids) => {
const json = Object.assign(this.dataForm);
json.commentText = this.commentText
json.approvalFlag = 0
let query = {
form: json,
policySolicitOpinionEOList: row,
removeIds: ids,
commentText: this.commentText
}
this.openButtonLoading()
this.completeTask(this.$route.query.taskIds, query)
})
}
} else {
return this.$message.warning('请完善基础信息')
}
})
},
openButtonLoading() {
this.isReject = true
this.isSubmit = true
this.saveLoading = true;
},
closeButtonLoading() {
this.isReject = false
this.isSubmit = false
this.saveLoading = false;
},
handleReject() {
// approvalFlag value0通过 1驳回
this.openButtonLoading()
if (this.taskKey == 'PolicySolicitOpinionProcessKey9' ||
this.taskKey == 'PolicySolicitOpinionProcessKey10' ||
this.taskKey == 'PolicySolicitOpinionProcessKey11' ||
this.taskKey == 'PolicySolicitOpinionProcessKey12' ||
this.taskKey == 'PolicySolicitOpinionProcessKey13' ||
this.taskKey == 'PolicySolicitOpinionProcessKey14' ||
this.taskKey == 'PolicySolicitOpinionProcessKey15') {
this.$refs.solicitationListRef.submit((row, ids) => {
const json = Object.assign(this.dataForm);
json.commentText = this.commentText
json.approvalFlag = 1
let query = {
form: json,
policySolicitOpinionEOList: row,
removeIds: ids,
commentText: this.commentText
}
this.completeTask(this.$route.query.taskIds, query)
})
} else {
const json = Object.assign(this.dataForm);
json.commentText = this.commentText
json.approvalFlag = 1
let query = {
form: json,
commentText: this.commentText
}
this.completeTask(this.$route.query.taskIds, query)
}
},
//启动流程
startProcessRollBack(roleForm) {
const json = Object.assign(this.dataForm, roleForm);
json.commentText = this.commentText
let query = {
form: json,
commentText: this.commentText
}
this.$http.post('lawss/activiti/startProcessRollBack', {
createUser: this.$store.getters.userInfo.userId,
createUserName: this.$store.getters.userInfo.userName,
type: '29',
json: JSON.stringify(query)
}, {_this: this}, res => {
if (res.ok) {
this.completeTask(res.data, query)
} else {
this.$message.warning('流程启动失败')
this.closeButtonLoading()
}
})
},
//提交流程
completeTask(taskId, query) {
this.$http.post('lawss/activiti/completeTask', {
json: JSON.stringify(query),
taskId: taskId || this.taskId,
userId: this.$store.getters.userInfo.userId
}, {_this: this}, res => {
if (res.success) {
this.$message.success(res.message);
if (this.bpnId) {
this.taskDel()
}
this.$router.push("/processCenter");
}
this.closeButtonLoading()
})
},
//删除草稿
taskDel() {
let taskId = {
id: this.bpnId
}
taskDel(taskId).then(res => {
return res
})
},
handleTransfer() {
this.title = '转办处理人'
this.checkBox = true
this.selectType = '转办处理人'
this.nodeList = []
this.drawerModal = true
},
checkedRole(data) {
let ids = []
let names = []
if (data && data.length > 0) {
for (let i = 0; i < data.length; i++) {
ids.push(data[i].id)
names.push(data[i].name)
}
}
if (this.selectType == '转办处理人') {
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.processNum()
this.$router.push({path: '/processCenter?tabsName=ProcessCenter'})
} else {
this.$message.warning(res.message)
}
})
} else if (this.selectType == '责任人') {
this.dataForm.zrrUserIds = ids.join(',')
this.dataForm.zrrUserNames = names.join(',')
this.dataForm = {...this.dataForm}
} else if (this.selectType == '审批人') {
this.dataForm.zrdwUserId = ids.join(',')
this.dataForm.zrdwUserName = names.join(',')
this.dataForm = {...this.dataForm}
} else if (this.selectType == '会签人') {
this.dataForm.hqrUserIds = ids.join(',')
this.dataForm.hqrUserNames = names.join(',')
this.dataForm = {...this.dataForm}
} else if (this.selectType == '抄送人') {
this.dataForm.csr2UserIds = ids.join(',')
this.dataForm.csr2UserNames = names.join(',')
this.dataForm = {...this.dataForm}
}
},
// 请求转换流程图
processNum(row) {
axios.request({
url: '/api/lawss/activiti/getImg?_t=' + new Date().getTime(),
responseType: 'blob',
method: 'get',
params: {
prcNum: this.$route.query.prcNum
}
}).then(res => {
this.processStep = window.URL.createObjectURL(res.data)
})
},
//选择人员
selectOperation(title, id, isTrue) {
this.title = title
this.checkBox = isTrue
this.selectType = title
let ids = id && id.length > 0 ? id.split(',') : []
this.nodeList = ids
this.drawerModal = true
},
internalReviewFlagChange() {
this.dataForm.zrdwUserId = ''
this.dataForm.zrdwUserName = ''
this.dataForm = {...this.dataForm}
},
getData() {
this.dataLoading = true
return new Promise((resolve, reject) => {
inboundLiaisonDetail({
taskIds: this.$route.query.taskIds,
pId: this.$route.query.prcId
}).then(res => {
if (res) {
const processForm = JSON.parse(res.mesg)
this.formProcessing(processForm)
}
this.dataLoading = false
}).catch(e => {
this.dataLoading = false
});
});
},
formProcessing(row) {
this.dataForm = row.form
this.dataForm = {...this.dataForm}
if (this.showPersonnel) {
this.$refs.personnelInformationRef.getData(row.form)
}
},
getTaskDraftData() {
this.dataLoading = true
queryTaskFirst({
bpnId: this.bpnId
}).then(res => {
let mes = JSON.parse(res.mes);
this.dataForm = mes.form
this.$refs.personnelInformationRef.getData(mes.roleForm)
this.commentText = mes.commentText
this.dataLoading = false
});
},
}
}
</script>
@@ -5,7 +5,7 @@
<div v-for="(item, index) in fileList" :key="index"
style="margin-right: 5px;padding-left: 10px;margin-bottom: 6px">
<div class="fileClass">
<span @click="handlePreview(item)">{{ item.name }}</span>
<span @click="handlePreview(item)">{{ item.name || item.oldFileName }}</span>
<el-button size="small"
@click="clickButtonToUpload(item)"
icon="el-icon-download"
@@ -805,7 +805,6 @@
formProcessing(row) {
this.dataForm = row.form
this.dataForm = {...this.dataForm}
console.log(this.dataForm);
if (this.showPersonnel) {
this.$refs.personnelInformationRef.getData(row.form)
}