政策征求意见流程 和 重点认证标准/政策合规性项目审查流程

This commit is contained in:
yanyizhou
2021-11-03 09:57:46 +08:00
parent 37702f435f
commit 5b9848e2bc
31 changed files with 13579 additions and 77 deletions
+2 -2
View File
@@ -30,7 +30,7 @@
highlight-current
check-strictly
@check="drawerCheck"
:expand-on-click-node="false"
:expand-on-click-node="true"
show-checkbox
ref="tree"
:load="loadNode"
@@ -51,7 +51,7 @@
highlight-current
check-strictly
@check="drawerCheck"
:expand-on-click-node="false"
:expand-on-click-node="true"
default-expand-all
show-checkbox
ref="tree">
@@ -44,7 +44,27 @@ export default {
{
label: '项目清单确认流程',
value: "10"
}
},
{
label: "外部署名推荐审批流程",
value: "16"
},
{
label: "加入标准化协会信息提报流程",
value: "15"
},
{
label: "参与外部标准制修订信息提报六合彩能",
value: "14"
},
{
label: "政策征求意见流程",
value: "laws2"
},
{
label: "重点认证标准/政策合规性项目审查流程",
value: "laws3"
},
],
formDisableFlag: false,
pickerOptions: {
@@ -0,0 +1,454 @@
<template>
<div class="zczqyj-step1">
<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 === '2' ? 'active' : ''" @click="handleTabs('2')">人员信息</div>
</div>
<div class="content" v-show="active === '1'">
<div style="flex: auto; overflow: auto;">
<el-form
ref="zczqyjForm"
:model="form"
: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="24">
<el-form-item label="政策号/名称" prop="cid" class="add-form-item form-item-disabled">
<div class="addButton" style="padding-left: 10px">
<el-button size="small" type="primary" @click="">选择征求意见政策</el-button>
</div>
<el-input
v-model="form.cid"
placeholder="请输入政策编号"
clearable
/>
</el-form-item>
<el-form-item label="截止时间" prop="endTime" class="add-form-item form-item-disabled">
<el-date-picker
v-model="form.endTime"
type="date"
placeholder="请选择截止时间">
</el-date-picker>
</el-form-item>
<el-form-item label="政策征求意见周期" prop="cycleTime" class="add-form-item form-item-disabled">
<el-date-picker
v-model="form.cycleTime"
type="daterange"
range-separator=""
start-placeholder="开始日期"
end-placeholder="结束日期">
</el-date-picker>
</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="active === '2'">
<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.startUser ? '#66b1ff' : ''">
<el-card>
<el-form-item prop="startUserName" style="margin-bottom: 0">
<h4>流程发起人</h4>
<div style="margin-top: 10px;width: 300px;">
<el-input v-model="roleForm.startUser" style="display: none;"></el-input>
<el-input v-model="roleForm.startUserName" 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="responseDockerName" style="margin-bottom: 0">
<h4>责任对接人</h4>
<div style="margin-top: 10px;width: 300px;">
<el-input v-model="roleForm.responseDockerId" style="display: none;"></el-input>
<el-input v-model="roleForm.responseDockerName" placeholder="选择责任对接人"
@click.native="choicePeoPle('responseDockerId', '选择责任对接人', roleForm.responseDockerId)"></el-input>
</div>
</el-form-item>
</el-card>
</el-timeline-item>
<el-timeline-item timestamp="法规认证工程师意见汇总并发起会签" placement="top" :color="roleForm.lawsProveEngineerId ? '#66b1ff' : ''">
<el-card>
<el-form-item prop="lawsProveEngineerName" style="margin-bottom: 0">
<h4>法规认证工程师</h4>
<div style="margin-top: 10px;width: 300px;">
<el-input v-model="roleForm.lawsProveEngineerId" style="display: none;"></el-input>
<el-input v-model="roleForm.lawsProveEngineerName" placeholder="选择法规认证工程师"
@click.native="choicePeoPle('lawsProveEngineerId', '选择法规认证工程师', roleForm.lawsProveEngineerId)"></el-input>
</div>
</el-form-item>
</el-card>
</el-timeline-item>
<el-timeline-item timestamp="法规认证部部长审核" placement="top" :color="roleForm.lawsProveMinisterId ? '#66b1ff' : ''">
<el-card>
<el-form-item prop="lawsProveMinisterName" style="margin-bottom: 0">
<h4>法规认证部部长</h4>
<div style="margin-top: 10px;width: 300px;">
<el-input v-model="roleForm.lawsProveMinisterId" style="display: none;"></el-input>
<el-input v-model="roleForm.lawsProveMinisterName" placeholder="选择法规认证部部长"
@click.native="choicePeoPle('lawsProveMinisterId', '选择法规认证部部长', roleForm.lawsProveMinisterId)"></el-input>
</div>
</el-form-item>
</el-card>
</el-timeline-item>
<el-timeline-item timestamp="法规认证部副总监审定" placement="top" :color="roleForm.lawsProveViceChiefId ? '#66b1ff' : ''">
<el-card>
<el-form-item prop="lawsProveViceChiefName" style="margin-bottom: 0">
<h4>法规认证部副总监</h4>
<div style="margin-top: 10px;width: 300px;">
<el-input v-model="roleForm.lawsProveViceChiefId" style="display: none;"></el-input>
<el-input v-model="roleForm.lawsProveViceChiefName" placeholder="选择法规认证部副总监"
@click.native="choicePeoPle('lawsProveViceChiefId', '选择法规认证部副总监', roleForm.lawsProveViceChiefId)"></el-input>
</div>
</el-form-item>
</el-card>
</el-timeline-item>
<el-timeline-item timestamp="法规认证部总监批准" placement="top" :color="roleForm.lawsProveChiefId ? '#66b1ff' : ''">
<el-card>
<el-form-item prop="lawsProveChiefName" style="margin-bottom: 0">
<h4>法规认证部总监</h4>
<div style="margin-top: 10px;width: 300px;">
<el-input v-model="roleForm.lawsProveChiefId" style="display: none;"></el-input>
<el-input v-model="roleForm.lawsProveChiefName" placeholder="选择法规认证部总监"
@click.native="choicePeoPle('lawsProveChiefId', '选择法规认证部总监', roleForm.lawsProveChiefId)"></el-input>
</div>
</el-form-item>
</el-card>
</el-timeline-item>
</el-form>
</el-timeline>
</div>
</div>
<Role-tree
check-box
:is-title="drawerTitle"
:is-visible.sync="modalshowflag"
@checkedRole="checkedRole"
:nodeList="nodeList"
></Role-tree>
<ProcessFooter
show-save
show-submit
:submitLoading="isSubmit"
:saveLoading="saveLoading"
@save="handleSave"
@submit="handleSubmit"
>
</ProcessFooter>
</div>
</template>
<script>
import ProcessHeader from "../../components/ProcessHeader";
import ProcessFooter from "../../components/ProcessFooter";
import ProcessTitle from "../../components/ProcessTitle";
import {saveTaskFirst} from "api/process";
export default {
name: "zczqyjStep1",
components: {
ProcessHeader,
ProcessFooter,
ProcessTitle
},
data() {
return {
isSubmit: false,
active: "1", //默认显示基础信息页面
// 基础信息form表单
form: {
cid: '', // 政策编号
endTime: '', // 责任部门领导审批 截止时间
cycleTime: '',//政策征求意见周期
cname: '', // 名称
standType: '',
standId: '',
fjList: [],
fjListName: '',
fjListId: ''
},
formRules: {
cid: [
{required: true, message: '请输入政策编号', trigger: 'change'},
],
endTime: [
{required: true, message: '请选择截止时间', trigger: 'change'},
],
cycleTime: [
{required: true, message: '请选择政策征求意见周期', trigger: 'change'},
]
},
//基础信息的表单默认数据
infoForm: {
// projectNumber: "",
// projectName: "",
// detailedListName: ""
},
commentText: "",//意见填写
//选人用到的三个东西
modalshowflag: false,
drawerTitle: "",
nodeList: [],
//选人的默认值
roleForm: {
startUserName: this.$store.getters.userInfo.userName,//发起人
startUser: this.$store.getters.userInfo.userId,
responseDockerId:"",//责任对接人
responseDockerName:"",
responseUserId:"",//责任人
responseUserName:"",
lawsProveEngineerId:"",//法规认证工程师
lawsProveEngineerName:"",
lawsProveMinisterId:"",//法规认证部部长
lawsProveMinisterName:"",
lawsProveViceChiefId:"",//法规认证部副总监
lawsProveViceChiefName:"",
lawsProveChiefId:"",//法规认证部总监
lawsProveChiefName:"",
},
// 角色验证
roleFormRules: {
responseDockerName: [
{required: true, message: "请选择责任对接人", trigger: "change"}
],
responseUserName: [
{required: true, message: "请选择责任人", trigger: "change"}
],
lawsProveEngineerName: [
{required: true, message: "请选择法规认证工程师", trigger: "change"}
],
lawsProveMinisterName: [
{required: true, message: "请选择法规认证部部长", trigger: "change"}
],
lawsProveViceChiefName: [
{required: true, message: "请选择法规认证部副总监", trigger: "change"}
],
lawsProveChiefName: [
{required: true, message: "请选择法规认证部总监", trigger: "change"}
],
},
//保存按钮的按钮loading
saveLoading: false,
}
},
methods: {
//基础信息/人员信息
handleTabs(type) {
this.active = type;
},
//选择人
choicePeoPle(type, title, id) {
this.nodeList = [];
this.nodeList.push(id);
this.type = type;
this.drawerTitle = title;
this.modalshowflag = true;
},
//选择人
checkedRole(data) {
if (this.type === "responseDockerId") {
this.roleForm.responseDockerId = data[0].id;
this.roleForm.responseDockerName = data[0].name;
}
else if(this.type === "responseUserId"){
this.roleForm.responseUserId = data[0].id;
this.roleForm.responseUserName = data[0].name;
}
else if(this.type === "lawsProveEngineerId"){
this.roleForm.lawsProveEngineerId = data[0].id;
this.roleForm.lawsProveEngineerName = data[0].name;
}
else if(this.type === "lawsProveMinisterId"){
this.roleForm.lawsProveMinisterId = data[0].id;
this.roleForm.lawsProveMinisterName = data[0].name;
}
else if(this.type === "lawsProveViceChiefId"){
this.roleForm.lawsProveViceChiefId = data[0].id;
this.roleForm.lawsProveViceChiefName = data[0].name;
}
else if(this.type === "lawsProveChiefId"){
this.roleForm.lawsProveChiefId = data[0].id;
this.roleForm.lawsProveChiefName = data[0].name;
}
this.modalshowflag = false;
},
//保存事件
handleSave() {
this.saveLoading = true;
let _formData = new FormData();
_formData.append("id", this.bpnId || "");
_formData.append("createUser", this.$store.getters.userInfo.userId);
_formData.append("createUserName", this.$store.getters.userInfo.userName);
_formData.append("prcType", "12");
_formData.append("json", JSON.stringify({
taskInfo: "人确认",
form: this.infoForm,
roleForm: this.roleForm,
commentText: this.commentText
}));
saveTaskFirst(_formData).then(res => {
this.saveLoading = false;
this.$message.success("保存成功");
this.bpnId = res.result;
}).catch(e => {
this.saveLoading = false;
});
},
//提交事件
handleSubmit() {
this.$refs['zczqyjForm'].validate((valid) => {
if (valid) {
this.$refs['Form'].validate((valid) => {
if (valid) {
this.isSubmit = true
this.$http.get('lawss/activiti/startProcess', {
type: 'laws2'
}, {}, res => {
if (res.ok) {
var json = Object.assign(this.form, this.roleForm)
json.commentText = this.commentText
json.filesId = this.addFjList
json.filesName = this.form.fjListName
this.$http.post('lawss/activiti/completeTask', {
json: JSON.stringify(json),
taskId: res.data,
userId: this.$store.getters.userInfo.userId
}, {}, res => {
if (res.success) {
this.$message.success('流程发起成功')
this.$router.push('/processCenter')
this.isSubmit = false
} else {
this.$message.warning('流程启动失败')
this.isSubmit = false
}
})
} else {
this.$message.warning('流程启动失败')
this.isSubmit = false
}
})
} else {
return this.$message.warning('请完善人员信息')
}
})
} else {
return this.$message.warning('请完善基础信息')
}
})
},
}
}
</script>
<style lang="less" scoped>
@import '~@/assets/styles/style';
.zczqyj-step1 {
.myForm {
/deep/ .el-form-item__content {
line-height: 10px;
}
}
.label-input-form .add-form-item .el-form-item__content .el-date-editor {
width: 30%;
}
position: relative;
height: 100%;
.fileClass {
cursor: pointer;
}
.fileClass:hover {
color: #0c91e5;
}
.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;
.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>
@@ -0,0 +1,396 @@
<template>
<div class="zczqyjStep2">
<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 === '2' ? 'active' : ''" @click="handleTabs('2')">审批历史</div>
</div>
<div class="content" v-show="active === '1'">
<div style="flex: auto; overflow: auto;">
<el-form
ref="zczqyjForm"
:model="form"
: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="24">
<el-form-item label="政策编号/名称" prop="cid" class="add-form-item form-item-disabled">
<el-input
disabled
v-model="form.cid"
placeholder="请输入政策编号"
clearable
></el-input>
</el-form-item>
<el-form-item label="责任人" prop="responUserList" class="add-form-item form-item-disabled">
<el-input
v-model="form.responUserList"
style="display: none;"
clearable
></el-input>
<el-input v-model="form.responUserListName" placeholder="请选择责任人" @click.native="choiceZRR"></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="active === '2'">
<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"
sortable="custom"
>
</el-table-column>
<el-table-column
prop="assignee"
label="任务受理人"
align="center"
sortable="custom"
>
</el-table-column>
<el-table-column
prop="createTime"
label="创建时间"
sortable="custom"
align="center">
<template slot-scope="scope">
<span>{{ scope.row.createTime ? $moment(scope.row.createTime).format("YYYY-MM-DD") : "" }}</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") : "" }}</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 ? "已完成" : "未完成" }}</span>
</template>
</el-table-column>
</el-table>
</div>
<ProcessFooter
show-submit
:submitLoading="isSubmit"
:saveLoading="saveLoading"
@save="handleSave"
@submit="handleSubmit"
show-transfer
@transfer="handleTransfer"
>
</ProcessFooter>
<Role-tree
check-box
is-title="转办处理人"
:is-visible.sync="drawerModal"
@checkedRole="checkedRole"
></Role-tree>
<Role-tree
is-title="选择责任部门对接人"
:is-visible.sync="modalshowflag"
@checkedRole="checkedRole2"
:nodeList="nodeList"
></Role-tree>
</div>
</template>
<script>
import ProcessHeader from "../../components/ProcessHeader";
import ProcessFooter from "../../components/ProcessFooter";
import ProcessTitle from "../../components/ProcessTitle";
import { inboundLiaisonDetail, processCreateStand, saveTaskForPub, changeAssigneeNew} from "api/process";
import axios from "axios";
export default {
name: "zczqyjStep2",
data() {
return {
drawerModal: false,
histortData: [],
commentText: "",
taskIds: this.$route.query.taskIds,
pId: this.$route.query.prcId,
nodeList: [],
type: "",
modalshowflag: false, // drawer开关
drawerTitle: "", //drawer标题
textarea: "", // 意见
ListModel: false, // 新增编辑抽屉开关
active: "1", // 默认显示
isSubmit: false,
saveLoading: false,
form: {
cid: "", // 政策编号
endTime: "", // 责任部门领导审批 截止时间
cname: "", // 名称
fjList: [],
fjListId: '',
responUserList: "",
responUserListName: ""
},
formRules: {
responUserList: [
{ required: true, message: "请选择责任人", trigger: "change" }
]
},
json: {}
};
},
components: {
ProcessHeader,
ProcessFooter,
ProcessTitle
},
methods: {
handleTransfer() {
this.drawerModal = true
},
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.processNum()
this.$router.push({path:'/processCenter?tabsName=ProcessCenter'})
} else {
this.$message.warning(res.message)
}
})
},
// 请求转换流程图
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)
})
},
getHistoryData() {
this.$http.get("lawss/activiti/get_list_by_instance", {
prcNum: this.$route.query.prcNum
}, {}, res => {
this.histortData = res;
}, e => {
});
},
checkedRole2(data) {
var idList = "";
var nameList = "";
data.forEach(item => {
if (nameList.length > 0) {
nameList += ",";
idList += ",";
}
idList += item.id;
nameList += item.name;
});
this.form.responUserList = idList;
this.form.responUserListName = nameList;
},
choiceZRR() {
this.nodeList = [];
if (this.form.responUserList.length > 0) {
this.nodeList = this.form.responUserList.split(",");
}
this.modalshowflag = true;
},
handleTabs(name) {
this.active = name;
},
//保存事件
handleSave() {
this.saveLoading = true;
let _formData = new FormData();
_formData.append("id", this.bpnId || "");
_formData.append("prcType", "3");
_formData.append("taskIds", this.taskIds);
_formData.append("json", JSON.stringify({
form: this.form,
commentText: this.commentText
}));
saveTaskForPub(_formData).then(res => {
this.saveLoading = false;
this.$message.success("保存成功");
this.bpnId = res.result;
}).catch(e => {
this.saveLoading = false;
});
},
handleSubmit() {
this.$refs["zczqyjForm"].validate((valid) => {
if (valid) {
this.isSubmit = true;
var json = this.json;
json.commentText = this.commentText;
json.responUserList = this.form.responUserList;
json.responUserListName = this.form.responUserListName;
json.introduce = false;
this.$http.post("lawss/activiti/completeTask", {
json: JSON.stringify(json),
taskId: this.taskIds,
userId: this.$store.getters.userInfo.userId
}, {}, res => {
if (res.success) {
this.$message.success("提交成功");
this.$router.push("/processCenter");
}
this.isSubmit = false;
});
} else {
return this.$message.warning("请完善基础信息");
}
});
},
getData() {
return new Promise((resolve, reject) => {
inboundLiaisonDetail({
taskIds: this.taskIds,
pId: this.pId
}).then(res => {
let data = JSON.parse(res.mesg)
this.form.cid = data.cid
this.form.endTime = data.endTime
this.form.cname = data.cname
this.form.fjList = data.fjList
this.form.fjListId = data.fjListId
this.json = data
}).catch(e => {
});
});
}
},
mounted() {
this.getHistoryData();
this.getData();
}
};
</script>
<style lang="less" scoped>
@import '~@/assets/styles/style';
.zczqyjStep2 {
/deep/ .el-drawer__container {
.prc-content-border {
border: none;
padding: 0 20px 0;
}
}
.fileClass {
cursor: pointer;
}
.fileClass:hover {
color: #0c91e5;
}
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;
.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>
@@ -0,0 +1,575 @@
<template>
<div class="zczqyjStep3">
<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 === '2' ? 'active' : ''" @click="handleTabs('2')">审批历史</div>
</div>
<div class="content" v-show="active === '1'">
<div style="flex: auto; overflow: auto;">
<el-form
ref="zczqyjForm"
:model="form"
: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="24">
<el-form-item label="政策编号/名称" prop="cid" class="add-form-item form-item-disabled">
<el-input
disabled
v-model="form.cid"
placeholder="请输入政策编号"
clearable
></el-input>
</el-form-item>
</el-col>
</el-row>
</div>
</el-form>
<ProcessTitle>
<template slot="title">征求意见列表</template>
</ProcessTitle>
<div class="button-list">
<el-button type="primary"
class="common-button-primary add-button"
:disabled="acceptShow"
@click="addModal"
size="mini">新增
</el-button>
<el-button type="primary"
class="common-button-primary add-button"
:disabled="acceptShow"
@click="addDelete"
size="mini">删除
</el-button>
</div>
<el-table
ref="multipleTable"
:data="data"
tooltip-effect="dark"
border
style="width: 100%; flex: auto;"
class="drag-table"
:header-cell-style="{background: '#E8E8E8', color: '#333333', fontSize: '16px',
fontWeight: 'bold', height: '48px'}"
@selection-change="handleSelectionChange">
<el-table-column
type="selection"
width="55"
align="center">
</el-table-column>
<el-table-column
type="index"
label="序号"
width="55"
align="center">
</el-table-column>
<el-table-column
prop="chapterNumber"
align="center"
sortable
label="章条编号"
width="101px">
<template slot-scope="scope">
<el-input style="margin: 10px 0;" v-model="scope.row.chapterNumber"></el-input>
</template>
</el-table-column>
<el-table-column
prop="chapterName"
align="center"
label="章节名称"
width="200px">
<template slot-scope="scope">
<el-input style="margin: 10px 0;" v-model="scope.row.chapterName"></el-input>
</template>
</el-table-column>
<el-table-column
prop="commentText"
align="center"
label="修改意见内容(包括理由或依据)">
<el-table-column
prop="oldText"
align="center"
label="修改前">
<template slot-scope="scope">
<el-input style="margin: 10px 0;" v-model="scope.row.oldText"></el-input>
</template>
</el-table-column>
<el-table-column
prop="newText"
align="center"
label="修改后">
<template slot-scope="scope">
<el-input style="margin: 10px 0;" v-model="scope.row.newText"></el-input>
</template>
</el-table-column>
<el-table-column
prop="updateReason"
align="center"
label="修改理由">
<template slot-scope="scope">
<el-input style="margin: 10px 0;" v-model="scope.row.reason"></el-input>
</template>
</el-table-column>
</el-table-column>
<el-table-column
prop="reason"
align="center"
label="原因"
width="200px">
<template slot-scope="scope">
<el-input style="margin: 10px 0;" v-model="scope.row.reason"></el-input>
</template>
</el-table-column>
</el-table>
</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="active === '2'">
<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"
sortable="custom"
>
</el-table-column>
<el-table-column
prop="assignee"
label="任务受理人"
align="center"
sortable="custom"
>
</el-table-column>
<el-table-column
prop="createTime"
label="创建时间"
sortable="custom"
align="center">
<template slot-scope="scope">
<span>{{ scope.row.createTime ? $moment(scope.row.createTime).format('YYYY-MM-DD') : '' }}</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') : '' }}</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 ? '已完成' : '未完成' }}</span>
</template>
</el-table-column>
</el-table>
</div>
<ProcessFooter
:show-submit="submitShow"
:show-confirm="acceptShow"
:submitLoading="isSubmit"
:saveLoading="saveLoading"
:show-save="submitShow"
:show-transfer="submitShow"
@save="handleSave"
@submit="handleSubmit"
@accept="handleAccept"
@transfer="handleTransfer"
>
</ProcessFooter>
<Role-tree
check-box
is-title="转办处理人"
:is-visible.sync="drawerModal"
@checkedRole="checkedRole"
></Role-tree>
</div>
</template>
<script>
import ProcessHeader from '../../components/ProcessHeader'
import ProcessFooter from '../../components/ProcessFooter'
import ProcessTitle from '../../components/ProcessTitle'
import {inboundLiaisonDetail, processCreateStand, saveTaskForPub, changeAssigneeNew, execTask} from 'api/process'
import axios from "axios";
export default {
name: "zczqyjStep3",
data() {
return {
drawerModal: false,
todoId: '',
histortData: [],
idList: [],
data: [],
commentText: '',
taskIds: this.$route.query.taskIds,
pId: this.$route.query.prcId,
roleRow: {},
nodeList: [],
type: '',
defaultProps: {
children: 'children',
label: 'name'
},
treeData: [], // 人员数据
modalshowflag: false, // drawer开关
drawerTitle: '', //drawer标题
textarea: '', // 意见
ListModel: false, // 新增编辑抽屉开关
active: '1', // 默认显示
isSubmit: false,
submitShow: false,
acceptShow: false,
saveLoading: false,
form: {
cid: '', // 编号
endTime: '', // 结束日期
cname: '', // 名称
fjList: [],
fjListId: '',
},
formRules: {
responUserList: [
{required: true, message: '请选择责任人', trigger: 'change'},
]
},
json: {}
}
},
components: {
ProcessHeader,
ProcessFooter,
ProcessTitle
},
methods: {
handleTransfer() {
this.drawerModal = true
},
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.processNum()
this.$router.push({path: '/processCenter?tabsName=ProcessCenter'})
} else {
this.$message.warning(res.message)
}
})
},
// 请求转换流程图
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)
})
},
getHistoryData() {
this.$http.get('lawss/activiti/get_list_by_instance', {
prcNum: this.$route.query.prcNum,
}, {}, res => {
this.histortData = res
}, e => {
})
},
handleSelectionChange(val) {
this.idList = []
val.forEach(item => {
this.idList.push(item.id)
})
},
addDelete() {
if (this.idList.length > 0) {
this.$confirm('删除选中数据, 是否继续?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
for (let a = 0; a < this.data.length; a++) {
this.idList.forEach(item => {
if (this.data[a].id === item) {
this.data.splice(a, 1)
}
})
}
}).catch(() => {
this.$message({
type: 'info',
message: '已取消删除'
});
});
} else {
this.$message.warning('请选择要删除的数据')
}
},
addModal() {
var id = Number(Math.random().toString().substr(3, 3) + Date.now()).toString(36);
var json = {
chapterNumber: '',
chapterName: '',
commentText: '',
oldText: '',
newText: '',
reason: '',
id: id,
responUserName: this.$store.getters.userInfo.userName,
responUser: this.$store.getters.userInfo.userId,
department: this.$store.getters.userInfo.orgName
}
this.data.push(json)
},
handleTabs(name) {
this.active = name
},
handleSave() {
this.saveLoading = true;
let _formData = new FormData();
let json = this.form
json.data = this.data
_formData.append("id", this.bpnId || "");
_formData.append("prcType", "3");
_formData.append("taskIds", this.taskIds);
_formData.append("json", JSON.stringify({
form: json,
commentText: this.commentText
}));
saveTaskForPub(_formData).then(res => {
this.saveLoading = false;
this.$message.success("保存成功");
this.bpnId = res.result;
}).catch(e => {
this.saveLoading = false;
});
},
handleAccept() {
this.isSubmit = true
execTask({
todoId: this.todoId // 当前节点ID
}).then(res => {
if (res.sign && res.sign === '0') {
this.$message.success('接收成功')
this.$router.push('/processCenter')
}
this.isSubmit = false
})
},
handleSubmit() {
if (this.data.length < 1) {
this.$message.warning('请输入征求意见')
} else {
var a = 0
var b = 0
// var c = 0
for (let s1 = 0; s1 < this.data.length; s1++) {
if (!this.data[s1].chapterNumber) {
a++
}
if (!this.data[s1].chapterName) {
b++
}
// if (!this.data[s1].commentText) {
// c++
// }
}
if (a > 0) {
this.$message.warning('请输入章节编号')
} else if (b > 0) {
this.$message.warning('请输入章节名称')
}
// else if (c > 0) {
// this.$message.warning('请输入意见内容')
// }
else {
this.isSubmit = true
var json = this.json
json.commentText = this.commentText
json.info = this.data
json.form = this.form
json.department = this.$store.getters.userInfo.orgName
this.$http.post('lawss/activiti/completeTask', {
json: JSON.stringify(json),
taskId: this.taskIds,
userId: this.$store.getters.userInfo.userId
}, {}, res => {
if (res.success) {
this.$message.success('提交成功')
this.$router.push('/processCenter')
}
this.isSubmit = false
})
}
}
},
getData() {
return new Promise((resolve, reject) => {
inboundLiaisonDetail({
taskIds: this.taskIds,
pId: this.pId
}).then(res => {
if (res) {
const processForm = JSON.parse(res.mesg)
this.getFormFieldList(processForm)
}
let data = JSON.parse(res.mesg)
let commitStatus = res.commitStatus
if (commitStatus && commitStatus > 0) {
this.acceptShow = true
this.submitShow = false
} else {
this.acceptShow = false
this.submitShow = true
}
this.form.fjList = data.fjList || data.form.fjList
this.form.fjListId = data.fjListId || data.form.fjListId
this.form.cid = data.cid || data.form.cid
this.form.endTime = data.endTime || data.form.endTime
this.todoId = res.id
this.json = data
this.data = data.info || data.data || data.form.data || []
}).catch(e => {
})
})
},
/**
* @description: 动态表单读取
*/
getFormFieldList(item) {
this.$nextTick(() => {
this.form = JSON.parse(JSON.stringify(item));
});
},
},
mounted() {
this.getHistoryData()
this.getData()
}
}
</script>
<style lang="less" scoped>
@import '~@/assets/styles/style';
.zczqyjStep3 {
/deep/ .el-drawer__container {
.prc-content-border {
border: none;
padding: 0 20px 0;
}
}
.fileClass {
cursor: pointer;
}
.fileClass:hover {
color: #0c91e5;
}
.el-input__icon {
width: 15px;
}
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;
.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>
@@ -0,0 +1,452 @@
<template>
<div class="zczqyjStep4">
<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 === '2' ? 'active' : ''" @click="handleTabs('2')">审批历史</div>
</div>
<div class="content" v-show="active === '1'">
<div style="flex: auto; overflow: auto;">
<el-form
ref="zczqyjForm"
:model="form"
: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="24">
<el-form-item label="政策编号/名称" prop="cid" class="add-form-item form-item-disabled">
<el-input
disabled
v-model="form.cid"
placeholder="请输入政策编号"
clearable
></el-input>
</el-form-item>
</el-col>
</el-row>
</div>
</el-form>
<ProcessTitle>
<template slot="title">征求意见列表</template>
</ProcessTitle>
<el-table
ref="multipleTable"
:data="data"
tooltip-effect="dark"
border
style="width: 100%; flex: auto;"
class="drag-table"
:default-sort = "{prop: 'chapterNumber', order: 'ascending'}"
:header-cell-style="{background: '#E8E8E8', color: '#333333', fontSize: '16px',
fontWeight: 'bold', height: '48px'}">
<el-table-column
type="index"
label="序号"
width="55"
align="center">
</el-table-column>
<el-table-column
prop="chapterNumber"
align="center"
sortable
label="章条编号"
width="101px">
</el-table-column>
<el-table-column
prop="chapterName"
align="center"
label="章节名称"
width="200px">
</el-table-column>
<el-table-column
align="center"
prop="commentText"
label="修改意见内容(包括理由或依据)">
<el-table-column
prop="oldText"
align="center"
label="修改前">
</el-table-column>
<el-table-column
prop="newText"
align="center"
label="修改后">
</el-table-column>
<el-table-column
prop="updateReason"
align="center"
label="修改理由">
</el-table-column>
</el-table-column>
<el-table-column
prop="reason"
align="center"
label="原因"
width="200px">
<!-- <template slot-scope="scope">-->
<!-- <el-input style="margin: 10px 0;" v-model="scope.row.chapterName"></el-input>-->
<!-- </template>-->
</el-table-column>
<el-table-column
prop="department"
align="center"
label="提出部门">
</el-table-column>
<el-table-column
prop="responUserName"
align="center"
label="提出人">
</el-table-column>
</el-table>
</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="active === '2'">
<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"
sortable="custom"
>
</el-table-column>
<el-table-column
prop="assignee"
label="任务受理人"
align="center"
sortable="custom"
>
</el-table-column>
<el-table-column
prop="createTime"
label="创建时间"
sortable="custom"
align="center">
<template slot-scope="scope">
<span>{{ scope.row.createTime ? $moment(scope.row.createTime).format('YYYY-MM-DD') : '' }}</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') : '' }}</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 ? '已完成' : '未完成' }}</span>
</template>
</el-table-column>
</el-table>
</div>
<ProcessFooter
show-submit
:submitLoading="isSubmit"
:saveLoading="saveLoading"
show-transfer
@transfer="handleTransfer"
@save="handleSave"
@submit="handleSubmit"
show-back
@back="handleSubmitNo"
approval
submitBTNText="同意"
>
</ProcessFooter>
<Role-tree
check-box
is-title="转办处理人"
:is-visible.sync="drawerModal"
@checkedRole="checkedRole"
></Role-tree>
</div>
</template>
<script>
import ProcessHeader from '../../components/ProcessHeader'
import ProcessFooter from '../../components/ProcessFooter'
import ProcessTitle from '../../components/ProcessTitle'
import {inboundLiaisonDetail, processCreateStand,changeAssigneeNew} from 'api/process'
import axios from "axios";
export default {
name: "zczqyjStep4",
data() {
return {
drawerModal: false,
histortData: [],
data: [],
commentText: '',
taskIds: this.$route.query.taskIds,
pId: this.$route.query.prcId,
roleRow: {},
nodeList: [],
type: '',
defaultProps: {
children: 'children',
label: 'name'
},
treeData: [], // 人员数据
modalshowflag: false, // drawer开关
drawerTitle: '', //drawer标题
textarea: '', // 意见
ListModel: false, // 新增编辑抽屉开关
active: '1', // 默认显示
isSubmit: false,
saveLoading: false,
form: {
cid: '', // 编号
endTime: '', // 结束日期
cname: '', // 名称
fjList: [],
fjListId: '',
},
formRules: {
responUserList: [
{required: true, message: '请选择责任人', trigger: 'change'},
]
},
json: {}
}
},
components: {
ProcessHeader,
ProcessFooter,
ProcessTitle
},
methods: {
handleTransfer() {
this.drawerModal = true
},
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.processNum()
this.$router.push({path:'/processCenter?tabsName=ProcessCenter'})
} else {
this.$message.warning(res.message)
}
})
},
// 请求转换流程图
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)
})
},
getHistoryData() {
this.$http.get('lawss/activiti/get_list_by_instance', {
prcNum: this.$route.query.prcNum,
}, {}, res => {
this.histortData = res
}, e => {
})
},
handleTabs(name) {
this.active = name
},
handleSave() {
},
handleSubmit() {
this.isSubmit = true
var json = this.json
//这个就是原来的actionFlag,用来表示流程是驳回还是同意
json.actionFlag = 0
json.commentText = this.commentText
this.$http.post('lawss/activiti/completeTask', {
json: JSON.stringify(json),
taskId: this.taskIds,
userId: this.$store.getters.userInfo.userId
}, {}, res => {
if (res.success) {
this.$message.success('提交成功')
this.$router.push('/processCenter')
}
this.isSubmit = false
})
},
handleSubmitNo() {
if (this.commentText) {
var json = this.json
//这个就是原来的actionFlag,用来表示流程是驳回还是同意
json.actionFlag = 1
json.commentText = this.commentText
this.$http.post('lawss/activiti/completeTask', {
json: JSON.stringify(json),
taskId: this.taskIds,
userId: this.$store.getters.userInfo.userId
}, {}, res => {
if (res.success) {
this.$message.success('提交成功')
this.$router.push('/processCenter')
}
})
} else {
this.$message.warning('请输入反馈意见')
}
},
getData() {
return new Promise((resolve, reject) => {
inboundLiaisonDetail({
taskIds: this.taskIds,
pId: this.pId
}).then(res => {
if (res) {
const processForm = JSON.parse(res.mesg)
this.getFormFieldList(processForm)
}
let data = JSON.parse(res.mesg)
this.form.fjList = data.fjList || data.form.fjList
this.form.fjListId = data.fjListId || data.form.fjListId
this.form.cid = data.cid || data.form.cid
this.form.endTime = data.endTime || data.form.endTime
this.form.cname = data.cname || data.form.cname
this.json = data
this.data = data.info || data.data
}).catch(e => {
})
})
},
/**
* @description: 动态表单读取
*/
getFormFieldList(item) {
this.$nextTick(() => {
this.form = JSON.parse(JSON.stringify(item));
this.form.cid = item.form.cid
});
},
},
mounted() {
this.getHistoryData()
this.getData()
}
}
</script>
<style lang="less" scoped>
@import '~@/assets/styles/style';
.zczqyjStep4 {
/deep/ .el-drawer__container {
.prc-content-border {
border: none;
padding: 0 20px 0;
}
}
.fileClass {
cursor: pointer;
}
.fileClass:hover {
color: #0c91e5;
}
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;
.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>
@@ -0,0 +1,561 @@
<template>
<div class="zczqyjStep5">
<!-- 标准调研流程-->
<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 === '2' ? 'active' : ''" @click="handleTabs('2')">审批历史</div>
</div>
<div class="content" v-show="active === '1'">
<div style="flex: auto; overflow: auto;">
<el-form
ref="zczqyjForm"
:model="form"
: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="24">
<el-form-item label="政策编号/名称" prop="cid" class="add-form-item form-item-disabled">
<el-input
disabled
v-model="form.cid"
placeholder="请输入政策编号"
clearable
></el-input>
</el-form-item>
</el-col>
</el-row>
</div>
</el-form>
<ProcessTitle>
<template slot="title">征求意见列表</template>
</ProcessTitle>
<!-- <div class="button-list">-->
<!-- <el-button type="primary"-->
<!-- class="common-button-primary add-button"-->
<!-- @click="upload(data, '汇总单.xls')"-->
<!-- size="mini">生成汇总单-->
<!-- </el-button>-->
<!-- <el-button type="primary"-->
<!-- class="common-button-primary add-button"-->
<!-- @click="upload(oldData, '上报意见.xls')"-->
<!-- size="mini">生成上报意见-->
<!-- </el-button>-->
<!-- </div>-->
<div class="button-list">
<el-button type="primary"
class="common-button-primary add-button"
:disabled="acceptShow"
@click="addModal"
size="mini">新增
</el-button>
<!-- <el-button type="primary"-->
<!-- class="common-button-primary add-button"-->
<!-- :disabled="acceptShow"-->
<!-- @click="addDelete"-->
<!-- size="mini">删除-->
<!-- </el-button>-->
<el-button type="primary"
class="common-button-primary add-button"
@click="upload(data, '汇总单.xls')"
size="mini">生成汇总单
</el-button>
<el-button type="primary"
class="common-button-primary add-button"
@click="upload(oldData, '上报意见.xls')"
size="mini">生成上报意见
</el-button>
</div>
<el-table
ref="multipleTable"
:data="data"
tooltip-effect="dark"
border
style="width: 100%; flex: auto;"
class="drag-table"
:default-sort = "{prop: 'chapterNumber', order: 'ascending'}"
:header-cell-style="{background: '#E8E8E8', color: '#333333', fontSize: '16px',
fontWeight: 'bold', height: '48px'}">
<el-table-column
type="index"
label="序号"
width="55"
align="center">
</el-table-column>
<el-table-column
prop="chapterNumber"
align="center"
sortable
label="章条编号"
width="101px">
</el-table-column>
<el-table-column
prop="chapterName"
align="center"
width="200px"
label="章节名称">
</el-table-column>
<el-table-column
prop="commentText"
align="center"
label="修改意见内容(包括理由或依据)">
<el-table-column
prop="oldText"
align="center"
label="修改前">
</el-table-column>
<el-table-column
prop="newText"
align="center"
label="修改后">
</el-table-column>
<el-table-column
prop="updateReason"
align="center"
label="修改理由">
</el-table-column>
</el-table-column>
<el-table-column
prop="reason"
align="center"
label="原因"
width="200px">
<template slot-scope="scope">
<el-input style="margin: 10px 0;" v-model="scope.row.chapterName"></el-input>
</template>
</el-table-column>
<el-table-column
prop="department"
align="center"
label="提出部门">
</el-table-column>
<el-table-column
prop="responUserName"
align="center"
label="提出人">
</el-table-column>
<el-table-column
prop="operation"
align="center"
label="操作">
<template slot-scope="scope">
<el-button type="primary"
class="common-button-primary add-button"
size="mini">修订</el-button>
<el-button type="primary"
class="common-button-primary add-button"
@click="addDelete"
size="mini">删除</el-button>
<div>{{ stateText(scope.row.state) }}</div>
</template>
</el-table-column>
</el-table>
</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="active === '2'">
<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"
sortable="custom"
>
</el-table-column>
<el-table-column
prop="assignee"
label="任务受理人"
align="center"
sortable="custom"
>
</el-table-column>
<el-table-column
prop="createTime"
label="创建时间"
sortable="custom"
align="center">
<template slot-scope="scope">
<span>{{ scope.row.createTime ? $moment(scope.row.createTime).format("YYYY-MM-DD") : "" }}</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") : "" }}</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 ? "已完成" : "未完成" }}</span>
</template>
</el-table-column>
</el-table>
</div>
<ProcessFooter
show-submit
:submitLoading="isSubmit"
:saveLoading="saveLoading"
@save="handleSave"
@submit="handleSubmit"
show-back
@back="handleSubmitNo"
show-transfer
@transfer="handleTransfer"
approval
submitBTNText="同意"
>
</ProcessFooter>
<Role-tree
check-box
is-title="转办处理人"
:is-visible.sync="drawerModal"
@checkedRole="checkedRole"
></Role-tree>
</div>
</template>
<script>
import ProcessHeader from "../../components/ProcessHeader";
import ProcessFooter from "../../components/ProcessFooter";
import ProcessTitle from "../../components/ProcessTitle";
import { inboundLiaisonDetail, processCreateStand, changeAssigneeNew } from "api/process";
import axios from "axios";
export default {
name: "zczqyjStep5",
data() {
return {
acceptShow: false,
drawerModal: false,
histortData: [],
oldData: [],
data: [],
commentText: "",
oldText: "",
newText: "",
reason: "",
taskIds: this.$route.query.taskIds,
pId: this.$route.query.prcId,
roleRow: {},
nodeList: [],
type: "",
defaultProps: {
children: "children",
label: "name"
},
treeData: [], // 人员数据
modalshowflag: false, // drawer开关
drawerTitle: "", //drawer标题
textarea: "", // 意见
ListModel: false, // 新增编辑抽屉开关
active: "1", // 默认显示
isSubmit: false,
saveLoading: false,
form: {
cid: "", // 编号
endTime: "", // 结束日期
cname: "", // 名称
fjList: [],
fjListId: '',
},
formRules: {
responUserList: [
{required: true, message: "请选择责任人", trigger: "change"}
]
},
json: {}
};
},
components: {
ProcessHeader,
ProcessFooter,
ProcessTitle
},
methods: {
addDelete() {
this.data.splice(1, 1)
},
addModal() {
var id = Number(Math.random().toString().substr(3, 3) + Date.now()).toString(36);
var json = {
chapterNumber: '',
chapterName: '',
commentText: '',
oldText: '',
newText: '',
reason: '',
id: id,
responUserName: this.$store.getters.userInfo.userName,
responUser: this.$store.getters.userInfo.userId,
department: this.$store.getters.userInfo.orgName
}
this.data.push(json)
},
handleTransfer() {
this.drawerModal = true
},
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.processNum()
this.$router.push({path:'/processCenter?tabsName=ProcessCenter'})
} else {
this.$message.warning(res.message)
}
})
},
// 请求转换流程图
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)
})
},
getHistoryData() {
this.$http.get("lawss/activiti/get_list_by_instance", {
prcNum: this.$route.query.prcNum
}, {}, res => {
this.histortData = res;
}, e => {
});
},
stateText(row) {
if (row === "1") {
return "上报";
} else if (row === "2") {
return "处理后上报";
}
},
upload(row, title) {
var params = {
columnName: {
chapterNumber: "章条编号",
chapterName: "章节名称",
commentText: "修改意见内容(包括理由或依据)",
oldText: "修改前",
newText: "修改后",
reason: "修改理由",
department: "提出部门",
responUserName: "提出人",
stateText: "处理意见"
},
dataList: []
};
params.dataList = JSON.parse(JSON.stringify(row));
params.dataList.forEach(item => {
if (item.state === "1") {
item.stateText = "上报";
} else if (item.state === "2") {
item.stateText = "处理后上报";
} else {
item.stateText = "不上报";
}
});
this.$http.downloadFile("/api/lawss/activiti/export_excel", params, title, res => {
});
},
handleTabs(name) {
this.active = name;
},
handleSave() {
},
handleSubmit() {
if (this.data.length < 1) {
this.$message.warning("请输入征求意见搞");
} else {
this.isSubmit = true;
var json = this.json;
json.actionFlag = 0;
json.commentText = this.commentText;
this.$http.post("lawss/activiti/completeTask", {
json: JSON.stringify(json),
taskId: this.taskIds,
userId: this.$store.getters.userInfo.userId
}, {}, res => {
if (res.success) {
this.$message.success("提交成功");
this.$router.push("/processCenter");
}
this.isSubmit = false;
});
}
},
handleSubmitNo() {
if (this.commentText) {
this.isSubmit = true;
var json = this.json;
json.actionFlag = 1;
json.commentText = this.commentText;
this.$http.post("lawss/activiti/completeTask", {
json: JSON.stringify(json),
taskIds: this.taskIds,
userId: this.$store.getters.userInfo.userId
}, {}, res => {
if (res.success) {
this.$message.success("驳回成功");
this.$router.push("/processCenter");
}
this.isSubmit = false;
});
} else {
this.$message.warning("请输入反馈意见");
}
},
getData() {
return new Promise((resolve, reject) => {
inboundLiaisonDetail({
taskIds: this.taskIds,
pId: this.pId
}).then(res => {
let data = JSON.parse(res.mesg);
this.form.fjList = data.fjList || data.form.fjList
this.form.fjListId = data.fjListId || data.form.fjListId
this.form.cid = data.cid || data.form.cid;
this.form.endTime = data.endTime || data.form.endTime;
this.form.cname = data.cname || data.form.cname;
this.oldData = JSON.parse(JSON.stringify(data.info))
var arr = []
data.info.forEach(item => {
if (item.state != '3') {
arr.push(item)
}
})
this.json = data
this.data = arr
this.oldData = data.oldinfo
}).catch(e => {
});
});
}
},
mounted() {
this.getHistoryData();
this.getData();
}
};
</script>
<style lang="less" scoped>
@import '~@/assets/styles/style';
.zczqyjStep5 {
/deep/ .el-drawer__container {
.prc-content-border {
border: none;
padding: 0 20px 0;
}
}
.fileClass {
cursor: pointer;
}
.fileClass:hover {
color: #0c91e5;
}
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;
.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>
@@ -0,0 +1,491 @@
<template>
<div class="zczqyjStep6">
<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 === '2' ? 'active' : ''" @click="handleTabs('2')">审批历史</div>
</div>
<div class="content" v-show="active === '1'">
<div style="flex: auto; overflow: auto;">
<el-form
ref="zczqyjForm"
:model="form"
: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="24">
<el-form-item label="标准编号/名称" prop="cid" class="add-form-item form-item-disabled">
<el-input
disabled
v-model="form.cid"
placeholder="请输入标准编号"
clearable
></el-input>
</el-form-item>
</el-col>
</el-row>
</div>
</el-form>
<ProcessTitle>
<template slot="title">征求意见列表</template>
</ProcessTitle>
<el-table
ref="multipleTable"
:data="data"
tooltip-effect="dark"
border
style="width: 100%; flex: auto;"
class="drag-table"
:default-sort = "{prop: 'chapterNumber', order: 'ascending'}"
:header-cell-style="{background: '#E8E8E8', color: '#333333', fontSize: '16px',
fontWeight: 'bold', height: '48px'}">
<el-table-column
type="index"
label="序号"
width="55"
align="center">
</el-table-column>
<el-table-column
prop="chapterNumber"
align="center"
sortable
label="章条编号"
width="101px">
</el-table-column>
<el-table-column
prop="chapterName"
align="center"
width="200px"
label="章节名称">
</el-table-column>
<el-table-column
align="center"
prop="commentText"
label="修改意见内容(包括理由或依据)">
<el-table-column
prop="oldText"
align="center"
label="修改前">
</el-table-column>
<el-table-column
prop="newText"
align="center"
label="修改后">
</el-table-column>
<el-table-column
prop="updateReason"
align="center"
label="修改理由">
</el-table-column>
</el-table-column>
<el-table-column
prop="reason"
align="center"
label="原因"
width="200px">
<template slot-scope="scope">
<el-input style="margin: 10px 0;" v-model="scope.row.chapterName"></el-input>
</template>
</el-table-column>
<el-table-column
prop="department"
align="center"
label="提出部门">
</el-table-column>
<el-table-column
prop="responUserName"
align="center"
label="提出人">
</el-table-column>
<el-table-column
prop="dealComment"
align="center"
label="处理意见">
<template slot-scope="scope">
<div>{{ stateText(scope.row.state) }}</div>
</template>
</el-table-column>
</el-table>
</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="active === '2'">
<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"
sortable="custom"
>
</el-table-column>
<el-table-column
prop="assignee"
label="任务受理人"
align="center"
sortable="custom"
>
</el-table-column>
<el-table-column
prop="createTime"
label="创建时间"
sortable="custom"
align="center">
<template slot-scope="scope">
<span>{{ scope.row.createTime ? $moment(scope.row.createTime).format("YYYY-MM-DD") : "" }}</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") : "" }}</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 ? "已完成" : "未完成" }}</span>
</template>
</el-table-column>
</el-table>
</div>
<ProcessFooter
show-submit
:submitLoading="isSubmit"
:saveLoading="saveLoading"
@save="handleSave"
@submit="handleSubmit"
show-back
@back="handleSubmitNo"
approval
submitBTNText="同意"
show-transfer
@transfer="handleTransfer"
>
</ProcessFooter>
<Role-tree
check-box
is-title="转办处理人"
:is-visible.sync="drawerModal"
@checkedRole="checkedRole"
></Role-tree>
</div>
</template>
<script>
import ProcessHeader from "../../components/ProcessHeader";
import ProcessFooter from "../../components/ProcessFooter";
import ProcessTitle from "../../components/ProcessTitle";
import { inboundLiaisonDetail, processCreateStand, changeAssigneeNew } from "api/process";
import axios from "axios";
export default {
name: "zczqyjStep6",
data() {
return {
drawerModal: false,
histortData: [],
oldData: [],
data: [],
commentText: "",
taskIds: this.$route.query.taskIds,
pId: this.$route.query.prcId,
roleRow: {},
nodeList: [],
type: "",
defaultProps: {
children: "children",
label: "name"
},
treeData: [], // 人员数据
modalshowflag: false, // drawer开关
drawerTitle: "", //drawer标题
textarea: "", // 意见
ListModel: false, // 新增编辑抽屉开关
active: "1", // 默认显示
isSubmit: false,
saveLoading: false,
form: {
cid: "", // 编号
endTime: "", // 结束日期
cname: "", // 名称
fjList: [],
fjListId: '',
},
formRules: {
responUserList: [
{required: true, message: "请选择责任人", trigger: "change"}
]
},
json: {}
};
},
components: {
ProcessHeader,
ProcessFooter,
ProcessTitle
},
methods: {
handleTransfer() {
this.drawerModal = true
},
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.processNum()
this.$router.push({path:'/processCenter?tabsName=ProcessCenter'})
} else {
this.$message.warning(res.message)
}
})
},
// 请求转换流程图
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)
})
},
getHistoryData() {
this.$http.get("lawss/activiti/get_list_by_instance", {
prcNum: this.$route.query.prcNum
}, {}, res => {
this.histortData = res;
}, e => {
});
},
upload(row, title) {
var params = {
columnName: {
chapterNumber: "章条编号",
chapterName: "章节名称",
commentText: "修改意见内容(包括理由或依据)",
department: "提出部门",
responUserName: "提出人",
stateText: "处理意见"
},
dataList: []
};
params.dataList = JSON.parse(JSON.stringify(row));
params.dataList.forEach(item => {
if (item.state === "1") {
item.stateText = "上报";
} else if (item.state === "2") {
item.stateText = "处理后上报";
} else {
item.stateText = "不上报";
}
});
this.$http.downloadFile("/api/lawss/activiti/export_excel", params, title, res => {
});
},
stateText(row) {
if (row === "1") {
return "上报";
} else if (row === "2") {
return "处理后上报";
}
},
handleTabs(name) {
this.active = name;
},
handleSave() {
},
handleSubmit() {
if (this.data.length < 1) {
this.$message.warning("请输入征求意见搞");
} else {
this.isSubmit = true;
var json = this.json;
json.actionFlag = 0;
json.commentText = this.commentText;
this.$http.post("lawss/activiti/completeTask", {
json: JSON.stringify(json),
taskId: this.taskIds,
userId: this.$store.getters.userInfo.userId
}, {}, res => {
if (res.success) {
this.$message.success("提交成功");
this.$router.push("/processCenter");
}
this.isSubmit = false;
});
}
},
handleSubmitNo() {
if (this.commentText) {
this.isSubmit = true;
var json = this.json;
json.actionFlag = 1;
json.commentText = this.commentText;
this.$http.post("lawss/activiti/completeTask", {
json: JSON.stringify(json),
taskIds: this.taskIds,
userId: this.$store.getters.userInfo.userId
}, {}, res => {
if (res.success) {
this.$message.success("驳回成功");
this.$router.push("/processCenter");
}
this.isSubmit = false;
});
} else {
this.$message.warning("请输入反馈意见");
}
},
getData() {
return new Promise((resolve, reject) => {
inboundLiaisonDetail({
taskIds: this.taskIds,
pId: this.pId
}).then(res => {
let data = JSON.parse(res.mesg)
this.form.fjList = data.fjList || data.form.fjList
this.form.fjListId = data.fjListId || data.form.fjListId
this.form.cid = data.cid || data.form.cid;
this.form.endTime = data.endTime || data.form.endTime;
this.form.cname = data.cname || data.form.cname;
this.oldData = JSON.parse(JSON.stringify(data.info))
var arr = []
data.info.forEach(item => {
if (item.state != '3') {
arr.push(item)
}
})
this.json = data
this.data = arr
this.oldData = data.oldinfo
}).catch(e => {
});
});
}
},
mounted() {
this.getHistoryData();
this.getData();
}
};
</script>
<style lang="less" scoped>
@import '~@/assets/styles/style';
.zczqyjStep6 {
/deep/ .el-drawer__container {
.prc-content-border {
border: none;
padding: 0 20px 0;
}
}
.fileClass {
cursor: pointer;
}
.fileClass:hover {
color: #0c91e5;
}
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;
.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>
@@ -0,0 +1,491 @@
<template>
<div class="zczqyjStep6">
<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 === '2' ? 'active' : ''" @click="handleTabs('2')">审批历史</div>
</div>
<div class="content" v-show="active === '1'">
<div style="flex: auto; overflow: auto;">
<el-form
ref="zczqyjForm"
:model="form"
: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="24">
<el-form-item label="标准编号/名称" prop="cid" class="add-form-item form-item-disabled">
<el-input
disabled
v-model="form.cid"
placeholder="请输入标准编号"
clearable
></el-input>
</el-form-item>
</el-col>
</el-row>
</div>
</el-form>
<ProcessTitle>
<template slot="title">征求意见列表</template>
</ProcessTitle>
<el-table
ref="multipleTable"
:data="data"
tooltip-effect="dark"
border
style="width: 100%; flex: auto;"
class="drag-table"
:default-sort = "{prop: 'chapterNumber', order: 'ascending'}"
:header-cell-style="{background: '#E8E8E8', color: '#333333', fontSize: '16px',
fontWeight: 'bold', height: '48px'}">
<el-table-column
type="index"
label="序号"
width="55"
align="center">
</el-table-column>
<el-table-column
prop="chapterNumber"
align="center"
sortable
label="章条编号"
width="101px">
</el-table-column>
<el-table-column
prop="chapterName"
align="center"
width="200px"
label="章节名称">
</el-table-column>
<el-table-column
align="center"
prop="commentText"
label="修改意见内容(包括理由或依据)">
<el-table-column
prop="oldText"
align="center"
label="修改前">
</el-table-column>
<el-table-column
prop="newText"
align="center"
label="修改后">
</el-table-column>
<el-table-column
prop="updateReason"
align="center"
label="修改理由">
</el-table-column>
</el-table-column>
<el-table-column
prop="reason"
align="center"
label="原因"
width="200px">
<template slot-scope="scope">
<el-input style="margin: 10px 0;" v-model="scope.row.chapterName"></el-input>
</template>
</el-table-column>
<el-table-column
prop="department"
align="center"
label="提出部门">
</el-table-column>
<el-table-column
prop="responUserName"
align="center"
label="提出人">
</el-table-column>
<el-table-column
prop="dealComment"
align="center"
label="处理意见">
<template slot-scope="scope">
<div>{{ stateText(scope.row.state) }}</div>
</template>
</el-table-column>
</el-table>
</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="active === '2'">
<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"
sortable="custom"
>
</el-table-column>
<el-table-column
prop="assignee"
label="任务受理人"
align="center"
sortable="custom"
>
</el-table-column>
<el-table-column
prop="createTime"
label="创建时间"
sortable="custom"
align="center">
<template slot-scope="scope">
<span>{{ scope.row.createTime ? $moment(scope.row.createTime).format("YYYY-MM-DD") : "" }}</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") : "" }}</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 ? "已完成" : "未完成" }}</span>
</template>
</el-table-column>
</el-table>
</div>
<ProcessFooter
show-submit
:submitLoading="isSubmit"
:saveLoading="saveLoading"
@save="handleSave"
@submit="handleSubmit"
show-back
@back="handleSubmitNo"
approval
submitBTNText="同意"
show-transfer
@transfer="handleTransfer"
>
</ProcessFooter>
<Role-tree
check-box
is-title="转办处理人"
:is-visible.sync="drawerModal"
@checkedRole="checkedRole"
></Role-tree>
</div>
</template>
<script>
import ProcessHeader from "../../components/ProcessHeader";
import ProcessFooter from "../../components/ProcessFooter";
import ProcessTitle from "../../components/ProcessTitle";
import { inboundLiaisonDetail, processCreateStand, changeAssigneeNew } from "api/process";
import axios from "axios";
export default {
name: "zczqyjStep6",
data() {
return {
drawerModal: false,
histortData: [],
oldData: [],
data: [],
commentText: "",
taskIds: this.$route.query.taskIds,
pId: this.$route.query.prcId,
roleRow: {},
nodeList: [],
type: "",
defaultProps: {
children: "children",
label: "name"
},
treeData: [], // 人员数据
modalshowflag: false, // drawer开关
drawerTitle: "", //drawer标题
textarea: "", // 意见
ListModel: false, // 新增编辑抽屉开关
active: "1", // 默认显示
isSubmit: false,
saveLoading: false,
form: {
cid: "", // 编号
endTime: "", // 结束日期
cname: "", // 名称
fjList: [],
fjListId: '',
},
formRules: {
responUserList: [
{required: true, message: "请选择责任人", trigger: "change"}
]
},
json: {}
};
},
components: {
ProcessHeader,
ProcessFooter,
ProcessTitle
},
methods: {
handleTransfer() {
this.drawerModal = true
},
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.processNum()
this.$router.push({path:'/processCenter?tabsName=ProcessCenter'})
} else {
this.$message.warning(res.message)
}
})
},
// 请求转换流程图
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)
})
},
getHistoryData() {
this.$http.get("lawss/activiti/get_list_by_instance", {
prcNum: this.$route.query.prcNum
}, {}, res => {
this.histortData = res;
}, e => {
});
},
upload(row, title) {
var params = {
columnName: {
chapterNumber: "章条编号",
chapterName: "章节名称",
commentText: "修改意见内容(包括理由或依据)",
department: "提出部门",
responUserName: "提出人",
stateText: "处理意见"
},
dataList: []
};
params.dataList = JSON.parse(JSON.stringify(row));
params.dataList.forEach(item => {
if (item.state === "1") {
item.stateText = "上报";
} else if (item.state === "2") {
item.stateText = "处理后上报";
} else {
item.stateText = "不上报";
}
});
this.$http.downloadFile("/api/lawss/activiti/export_excel", params, title, res => {
});
},
stateText(row) {
if (row === "1") {
return "上报";
} else if (row === "2") {
return "处理后上报";
}
},
handleTabs(name) {
this.active = name;
},
handleSave() {
},
handleSubmit() {
if (this.data.length < 1) {
this.$message.warning("请输入征求意见搞");
} else {
this.isSubmit = true;
var json = this.json;
json.actionFlag = 0;
json.commentText = this.commentText;
this.$http.post("lawss/activiti/completeTask", {
json: JSON.stringify(json),
taskId: this.taskIds,
userId: this.$store.getters.userInfo.userId
}, {}, res => {
if (res.success) {
this.$message.success("提交成功");
this.$router.push("/processCenter");
}
this.isSubmit = false;
});
}
},
handleSubmitNo() {
if (this.commentText) {
this.isSubmit = true;
var json = this.json;
json.actionFlag = 1;
json.commentText = this.commentText;
this.$http.post("lawss/activiti/completeTask", {
json: JSON.stringify(json),
taskIds: this.taskIds,
userId: this.$store.getters.userInfo.userId
}, {}, res => {
if (res.success) {
this.$message.success("驳回成功");
this.$router.push("/processCenter");
}
this.isSubmit = false;
});
} else {
this.$message.warning("请输入反馈意见");
}
},
getData() {
return new Promise((resolve, reject) => {
inboundLiaisonDetail({
taskIds: this.taskIds,
pId: this.pId
}).then(res => {
let data = JSON.parse(res.mesg)
this.form.fjList = data.fjList || data.form.fjList
this.form.fjListId = data.fjListId || data.form.fjListId
this.form.cid = data.cid || data.form.cid;
this.form.endTime = data.endTime || data.form.endTime;
this.form.cname = data.cname || data.form.cname;
this.oldData = JSON.parse(JSON.stringify(data.info))
var arr = []
data.info.forEach(item => {
if (item.state != '3') {
arr.push(item)
}
})
this.json = data
this.data = arr
this.oldData = data.oldinfo
}).catch(e => {
});
});
}
},
mounted() {
this.getHistoryData();
this.getData();
}
};
</script>
<style lang="less" scoped>
@import '~@/assets/styles/style';
.zczqyjStep6 {
/deep/ .el-drawer__container {
.prc-content-border {
border: none;
padding: 0 20px 0;
}
}
.fileClass {
cursor: pointer;
}
.fileClass:hover {
color: #0c91e5;
}
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;
.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>
@@ -0,0 +1,491 @@
<template>
<div class="zczqyjStep6">
<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 === '2' ? 'active' : ''" @click="handleTabs('2')">审批历史</div>
</div>
<div class="content" v-show="active === '1'">
<div style="flex: auto; overflow: auto;">
<el-form
ref="zczqyjForm"
:model="form"
: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="24">
<el-form-item label="标准编号/名称" prop="cid" class="add-form-item form-item-disabled">
<el-input
disabled
v-model="form.cid"
placeholder="请输入标准编号"
clearable
></el-input>
</el-form-item>
</el-col>
</el-row>
</div>
</el-form>
<ProcessTitle>
<template slot="title">征求意见列表</template>
</ProcessTitle>
<el-table
ref="multipleTable"
:data="data"
tooltip-effect="dark"
border
style="width: 100%; flex: auto;"
class="drag-table"
:default-sort = "{prop: 'chapterNumber', order: 'ascending'}"
:header-cell-style="{background: '#E8E8E8', color: '#333333', fontSize: '16px',
fontWeight: 'bold', height: '48px'}">
<el-table-column
type="index"
label="序号"
width="55"
align="center">
</el-table-column>
<el-table-column
prop="chapterNumber"
align="center"
sortable
label="章条编号"
width="101px">
</el-table-column>
<el-table-column
prop="chapterName"
align="center"
width="200px"
label="章节名称">
</el-table-column>
<el-table-column
align="center"
prop="commentText"
label="修改意见内容(包括理由或依据)">
<el-table-column
prop="oldText"
align="center"
label="修改前">
</el-table-column>
<el-table-column
prop="newText"
align="center"
label="修改后">
</el-table-column>
<el-table-column
prop="updateReason"
align="center"
label="修改理由">
</el-table-column>
</el-table-column>
<el-table-column
prop="reason"
align="center"
label="原因"
width="200px">
<template slot-scope="scope">
<el-input style="margin: 10px 0;" v-model="scope.row.chapterName"></el-input>
</template>
</el-table-column>
<el-table-column
prop="department"
align="center"
label="提出部门">
</el-table-column>
<el-table-column
prop="responUserName"
align="center"
label="提出人">
</el-table-column>
<el-table-column
prop="dealComment"
align="center"
label="处理意见">
<template slot-scope="scope">
<div>{{ stateText(scope.row.state) }}</div>
</template>
</el-table-column>
</el-table>
</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="active === '2'">
<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"
sortable="custom"
>
</el-table-column>
<el-table-column
prop="assignee"
label="任务受理人"
align="center"
sortable="custom"
>
</el-table-column>
<el-table-column
prop="createTime"
label="创建时间"
sortable="custom"
align="center">
<template slot-scope="scope">
<span>{{ scope.row.createTime ? $moment(scope.row.createTime).format("YYYY-MM-DD") : "" }}</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") : "" }}</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 ? "已完成" : "未完成" }}</span>
</template>
</el-table-column>
</el-table>
</div>
<ProcessFooter
show-submit
:submitLoading="isSubmit"
:saveLoading="saveLoading"
@save="handleSave"
@submit="handleSubmit"
show-back
@back="handleSubmitNo"
approval
submitBTNText="同意"
show-transfer
@transfer="handleTransfer"
>
</ProcessFooter>
<Role-tree
check-box
is-title="转办处理人"
:is-visible.sync="drawerModal"
@checkedRole="checkedRole"
></Role-tree>
</div>
</template>
<script>
import ProcessHeader from "../../components/ProcessHeader";
import ProcessFooter from "../../components/ProcessFooter";
import ProcessTitle from "../../components/ProcessTitle";
import { inboundLiaisonDetail, processCreateStand, changeAssigneeNew } from "api/process";
import axios from "axios";
export default {
name: "zczqyjStep6",
data() {
return {
drawerModal: false,
histortData: [],
oldData: [],
data: [],
commentText: "",
taskIds: this.$route.query.taskIds,
pId: this.$route.query.prcId,
roleRow: {},
nodeList: [],
type: "",
defaultProps: {
children: "children",
label: "name"
},
treeData: [], // 人员数据
modalshowflag: false, // drawer开关
drawerTitle: "", //drawer标题
textarea: "", // 意见
ListModel: false, // 新增编辑抽屉开关
active: "1", // 默认显示
isSubmit: false,
saveLoading: false,
form: {
cid: "", // 编号
endTime: "", // 结束日期
cname: "", // 名称
fjList: [],
fjListId: '',
},
formRules: {
responUserList: [
{required: true, message: "请选择责任人", trigger: "change"}
]
},
json: {}
};
},
components: {
ProcessHeader,
ProcessFooter,
ProcessTitle
},
methods: {
handleTransfer() {
this.drawerModal = true
},
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.processNum()
this.$router.push({path:'/processCenter?tabsName=ProcessCenter'})
} else {
this.$message.warning(res.message)
}
})
},
// 请求转换流程图
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)
})
},
getHistoryData() {
this.$http.get("lawss/activiti/get_list_by_instance", {
prcNum: this.$route.query.prcNum
}, {}, res => {
this.histortData = res;
}, e => {
});
},
upload(row, title) {
var params = {
columnName: {
chapterNumber: "章条编号",
chapterName: "章节名称",
commentText: "修改意见内容(包括理由或依据)",
department: "提出部门",
responUserName: "提出人",
stateText: "处理意见"
},
dataList: []
};
params.dataList = JSON.parse(JSON.stringify(row));
params.dataList.forEach(item => {
if (item.state === "1") {
item.stateText = "上报";
} else if (item.state === "2") {
item.stateText = "处理后上报";
} else {
item.stateText = "不上报";
}
});
this.$http.downloadFile("/api/lawss/activiti/export_excel", params, title, res => {
});
},
stateText(row) {
if (row === "1") {
return "上报";
} else if (row === "2") {
return "处理后上报";
}
},
handleTabs(name) {
this.active = name;
},
handleSave() {
},
handleSubmit() {
if (this.data.length < 1) {
this.$message.warning("请输入征求意见搞");
} else {
this.isSubmit = true;
var json = this.json;
json.actionFlag = 0;
json.commentText = this.commentText;
this.$http.post("lawss/activiti/completeTask", {
json: JSON.stringify(json),
taskId: this.taskIds,
userId: this.$store.getters.userInfo.userId
}, {}, res => {
if (res.success) {
this.$message.success("提交成功");
this.$router.push("/processCenter");
}
this.isSubmit = false;
});
}
},
handleSubmitNo() {
if (this.commentText) {
this.isSubmit = true;
var json = this.json;
json.actionFlag = 1;
json.commentText = this.commentText;
this.$http.post("lawss/activiti/completeTask", {
json: JSON.stringify(json),
taskIds: this.taskIds,
userId: this.$store.getters.userInfo.userId
}, {}, res => {
if (res.success) {
this.$message.success("驳回成功");
this.$router.push("/processCenter");
}
this.isSubmit = false;
});
} else {
this.$message.warning("请输入反馈意见");
}
},
getData() {
return new Promise((resolve, reject) => {
inboundLiaisonDetail({
taskIds: this.taskIds,
pId: this.pId
}).then(res => {
let data = JSON.parse(res.mesg)
this.form.fjList = data.fjList || data.form.fjList
this.form.fjListId = data.fjListId || data.form.fjListId
this.form.cid = data.cid || data.form.cid;
this.form.endTime = data.endTime || data.form.endTime;
this.form.cname = data.cname || data.form.cname;
this.oldData = JSON.parse(JSON.stringify(data.info))
var arr = []
data.info.forEach(item => {
if (item.state != '3') {
arr.push(item)
}
})
this.json = data
this.data = arr
this.oldData = data.oldinfo
}).catch(e => {
});
});
}
},
mounted() {
this.getHistoryData();
this.getData();
}
};
</script>
<style lang="less" scoped>
@import '~@/assets/styles/style';
.zczqyjStep6 {
/deep/ .el-drawer__container {
.prc-content-border {
border: none;
padding: 0 20px 0;
}
}
.fileClass {
cursor: pointer;
}
.fileClass:hover {
color: #0c91e5;
}
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;
.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>
@@ -0,0 +1,491 @@
<template>
<div class="zczqyjStep6">
<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 === '2' ? 'active' : ''" @click="handleTabs('2')">审批历史</div>
</div>
<div class="content" v-show="active === '1'">
<div style="flex: auto; overflow: auto;">
<el-form
ref="zczqyjForm"
:model="form"
: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="24">
<el-form-item label="标准编号/名称" prop="cid" class="add-form-item form-item-disabled">
<el-input
disabled
v-model="form.cid"
placeholder="请输入标准编号"
clearable
></el-input>
</el-form-item>
</el-col>
</el-row>
</div>
</el-form>
<ProcessTitle>
<template slot="title">征求意见列表</template>
</ProcessTitle>
<el-table
ref="multipleTable"
:data="data"
tooltip-effect="dark"
border
style="width: 100%; flex: auto;"
class="drag-table"
:default-sort = "{prop: 'chapterNumber', order: 'ascending'}"
:header-cell-style="{background: '#E8E8E8', color: '#333333', fontSize: '16px',
fontWeight: 'bold', height: '48px'}">
<el-table-column
type="index"
label="序号"
width="55"
align="center">
</el-table-column>
<el-table-column
prop="chapterNumber"
align="center"
sortable
label="章条编号"
width="101px">
</el-table-column>
<el-table-column
prop="chapterName"
align="center"
width="200px"
label="章节名称">
</el-table-column>
<el-table-column
align="center"
prop="commentText"
label="修改意见内容(包括理由或依据)">
<el-table-column
prop="oldText"
align="center"
label="修改前">
</el-table-column>
<el-table-column
prop="newText"
align="center"
label="修改后">
</el-table-column>
<el-table-column
prop="updateReason"
align="center"
label="修改理由">
</el-table-column>
</el-table-column>
<el-table-column
prop="reason"
align="center"
label="原因"
width="200px">
<template slot-scope="scope">
<el-input style="margin: 10px 0;" v-model="scope.row.chapterName"></el-input>
</template>
</el-table-column>
<el-table-column
prop="department"
align="center"
label="提出部门">
</el-table-column>
<el-table-column
prop="responUserName"
align="center"
label="提出人">
</el-table-column>
<el-table-column
prop="dealComment"
align="center"
label="处理意见">
<template slot-scope="scope">
<div>{{ stateText(scope.row.state) }}</div>
</template>
</el-table-column>
</el-table>
</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="active === '2'">
<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"
sortable="custom"
>
</el-table-column>
<el-table-column
prop="assignee"
label="任务受理人"
align="center"
sortable="custom"
>
</el-table-column>
<el-table-column
prop="createTime"
label="创建时间"
sortable="custom"
align="center">
<template slot-scope="scope">
<span>{{ scope.row.createTime ? $moment(scope.row.createTime).format("YYYY-MM-DD") : "" }}</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") : "" }}</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 ? "已完成" : "未完成" }}</span>
</template>
</el-table-column>
</el-table>
</div>
<ProcessFooter
show-submit
:submitLoading="isSubmit"
:saveLoading="saveLoading"
@save="handleSave"
@submit="handleSubmit"
show-back
@back="handleSubmitNo"
approval
submitBTNText="同意"
show-transfer
@transfer="handleTransfer"
>
</ProcessFooter>
<Role-tree
check-box
is-title="转办处理人"
:is-visible.sync="drawerModal"
@checkedRole="checkedRole"
></Role-tree>
</div>
</template>
<script>
import ProcessHeader from "../../components/ProcessHeader";
import ProcessFooter from "../../components/ProcessFooter";
import ProcessTitle from "../../components/ProcessTitle";
import { inboundLiaisonDetail, processCreateStand, changeAssigneeNew } from "api/process";
import axios from "axios";
export default {
name: "zczqyjStep6",
data() {
return {
drawerModal: false,
histortData: [],
oldData: [],
data: [],
commentText: "",
taskIds: this.$route.query.taskIds,
pId: this.$route.query.prcId,
roleRow: {},
nodeList: [],
type: "",
defaultProps: {
children: "children",
label: "name"
},
treeData: [], // 人员数据
modalshowflag: false, // drawer开关
drawerTitle: "", //drawer标题
textarea: "", // 意见
ListModel: false, // 新增编辑抽屉开关
active: "1", // 默认显示
isSubmit: false,
saveLoading: false,
form: {
cid: "", // 编号
endTime: "", // 结束日期
cname: "", // 名称
fjList: [],
fjListId: '',
},
formRules: {
responUserList: [
{required: true, message: "请选择责任人", trigger: "change"}
]
},
json: {}
};
},
components: {
ProcessHeader,
ProcessFooter,
ProcessTitle
},
methods: {
handleTransfer() {
this.drawerModal = true
},
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.processNum()
this.$router.push({path:'/processCenter?tabsName=ProcessCenter'})
} else {
this.$message.warning(res.message)
}
})
},
// 请求转换流程图
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)
})
},
getHistoryData() {
this.$http.get("lawss/activiti/get_list_by_instance", {
prcNum: this.$route.query.prcNum
}, {}, res => {
this.histortData = res;
}, e => {
});
},
upload(row, title) {
var params = {
columnName: {
chapterNumber: "章条编号",
chapterName: "章节名称",
commentText: "修改意见内容(包括理由或依据)",
department: "提出部门",
responUserName: "提出人",
stateText: "处理意见"
},
dataList: []
};
params.dataList = JSON.parse(JSON.stringify(row));
params.dataList.forEach(item => {
if (item.state === "1") {
item.stateText = "上报";
} else if (item.state === "2") {
item.stateText = "处理后上报";
} else {
item.stateText = "不上报";
}
});
this.$http.downloadFile("/api/lawss/activiti/export_excel", params, title, res => {
});
},
stateText(row) {
if (row === "1") {
return "上报";
} else if (row === "2") {
return "处理后上报";
}
},
handleTabs(name) {
this.active = name;
},
handleSave() {
},
handleSubmit() {
if (this.data.length < 1) {
this.$message.warning("请输入征求意见搞");
} else {
this.isSubmit = true;
var json = this.json;
json.actionFlag = 0;
json.commentText = this.commentText;
this.$http.post("lawss/activiti/completeTask", {
json: JSON.stringify(json),
taskId: this.taskIds,
userId: this.$store.getters.userInfo.userId
}, {}, res => {
if (res.success) {
this.$message.success("提交成功");
this.$router.push("/processCenter");
}
this.isSubmit = false;
});
}
},
handleSubmitNo() {
if (this.commentText) {
this.isSubmit = true;
var json = this.json;
json.actionFlag = 1;
json.commentText = this.commentText;
this.$http.post("lawss/activiti/completeTask", {
json: JSON.stringify(json),
taskIds: this.taskIds,
userId: this.$store.getters.userInfo.userId
}, {}, res => {
if (res.success) {
this.$message.success("驳回成功");
this.$router.push("/processCenter");
}
this.isSubmit = false;
});
} else {
this.$message.warning("请输入反馈意见");
}
},
getData() {
return new Promise((resolve, reject) => {
inboundLiaisonDetail({
taskIds: this.taskIds,
pId: this.pId
}).then(res => {
let data = JSON.parse(res.mesg)
this.form.fjList = data.fjList || data.form.fjList
this.form.fjListId = data.fjListId || data.form.fjListId
this.form.cid = data.cid || data.form.cid;
this.form.endTime = data.endTime || data.form.endTime;
this.form.cname = data.cname || data.form.cname;
this.oldData = JSON.parse(JSON.stringify(data.info))
var arr = []
data.info.forEach(item => {
if (item.state != '3') {
arr.push(item)
}
})
this.json = data
this.data = arr
this.oldData = data.oldinfo
}).catch(e => {
});
});
}
},
mounted() {
this.getHistoryData();
this.getData();
}
};
</script>
<style lang="less" scoped>
@import '~@/assets/styles/style';
.zczqyjStep6 {
/deep/ .el-drawer__container {
.prc-content-border {
border: none;
padding: 0 20px 0;
}
}
.fileClass {
cursor: pointer;
}
.fileClass:hover {
color: #0c91e5;
}
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;
.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>
@@ -0,0 +1,517 @@
<template>
<div class="zdrzbzORzchgxxmsc-step1">
<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 === '2' ? 'active' : ''" @click="handleTabs('2')">人员信息</div>
</div>
<div class="content" v-show="active === '1'">
<div style="flex: auto; overflow: auto;">
<el-form
ref="zdrzbzORzchgxxmscForm"
:model="form"
:rules="formRules"
class="label-input-form"
label-width="210px"
>
<ProcessTitle>
<template slot="title">基础信息</template>
</ProcessTitle>
<div class="tableTitle">
<div class="tableButton">
<el-button plain class="common-button-primary" size="mini" @click="">调取</el-button>
<el-button plain class="common-button-primary" size="mini" @click="">删除</el-button>
</div>
</div>
<div class="content">
<div class="table-wrap">
<el-table
ref="multipleTable"
tooltip-effect="dark"
border
style="width: 100%; flex: auto;"
class="drag-table"
height="400px"
:header-cell-style="{background: '#E8E8E8', color: '#333333', fontSize: '16px',
fontWeight: 'bold', height: '48px'}">
<el-table-column
type="selection"
width="55"
align="center">
</el-table-column>
<el-table-column
label="序号"
type="index"
align="center"
width="100">
</el-table-column>
<el-table-column
label="标准编号/政策编号"
align="center"
width="300"
>
</el-table-column>
<el-table-column
show-overflow-tooltip
prop="standName"
label="标准名称/政策名称"
align="center"
>
</el-table-column>
<el-table-column
prop="issueTime"
sortable="custom"
width="200px"
align="center"
label="产品类型">
</el-table-column>
<el-table-column
prop="SSRQ"
sortable="custom"
align="center"
width="200px"
label="实施日期">
</el-table-column>
<el-table-column
prop="SSRQ"
sortable="custom"
align="center"
width="200px"
label="实施要求">
</el-table-column>
</el-table>
</div>
</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="active === '2'">
<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.startUser ? '#66b1ff' : ''">
<el-card>
<el-form-item prop="startUserName" style="margin-bottom: 0">
<h4>流程发起人</h4>
<div style="margin-top: 10px;width: 300px;">
<el-input v-model="roleForm.startUser" style="display: none;"></el-input>
<el-input v-model="roleForm.startUserName" placeholder="法规管理员" disabled></el-input>
</div>
</el-form-item>
</el-card>
</el-timeline-item>
<el-timeline-item timestamp="法规认证部部长审批" placement="top"
:color="roleForm.lawsProveMinisterId ? '#66b1ff' : ''">
<el-card>
<el-form-item prop="lawsProveMinisterName" style="margin-bottom: 0">
<h4>法规认证部部长</h4>
<div style="margin-top: 10px;width: 300px;">
<el-input v-model="roleForm.lawsProveMinisterId" style="display: none;"></el-input>
<el-input v-model="roleForm.lawsProveMinisterName" placeholder="选择法规认证部部长"
@click.native="choicePeoPle('lawsProveMinisterId', '选择法规认证部部长', roleForm.lawsProveMinisterId)"></el-input>
</div>
</el-form-item>
</el-card>
</el-timeline-item>
<el-timeline-item timestamp="法规认证部副总监审批" placement="top"
:color="roleForm.lawsProveViceChiefId ? '#66b1ff' : ''">
<el-card>
<el-form-item prop="lawsProveViceChiefName" style="margin-bottom: 0">
<h4>法规认证部副总监</h4>
<div style="margin-top: 10px;width: 300px;">
<el-input v-model="roleForm.lawsProveViceChiefId" style="display: none;"></el-input>
<el-input v-model="roleForm.lawsProveViceChiefName" placeholder="选择法规认证部副总监"
@click.native="choicePeoPle('lawsProveViceChiefId', '选择法规认证部副总监', roleForm.lawsProveViceChiefId)"></el-input>
</div>
</el-form-item>
</el-card>
</el-timeline-item>
<el-timeline-item timestamp="责任部门领导任务下发" placement="top"
:color="roleForm.responseDeptLeaderId ? '#66b1ff' : ''">
<el-card>
<el-form-item prop="responseDeptLeaderName" style="margin-bottom: 0">
<h4>责任部门领导</h4>
<div style="margin-top: 10px;width: 300px;">
<el-input v-model="roleForm.responseDeptLeaderId" style="display: none;"></el-input>
<el-input v-model="roleForm.responseDeptLeaderName" placeholder="选择责任部门领导"
@click.native="choicePeoPle('responseDeptLeaderId', '选择责任部门领导', roleForm.responseDeptLeaderId)"></el-input>
</div>
</el-form-item>
</el-card>
</el-timeline-item>
<el-timeline-item timestamp="责任人反馈情况" placement="top"
:color="roleForm.responseUserId ? '#66b1ff' : ''">
<el-card>
<el-form-item prop="responseUserName" style="margin-bottom: 0">
<h4>责任人</h4>
<div style="margin-top: 10px;width: 300px;">
<el-input v-model="roleForm.responseUserId" style="display: none;"></el-input>
<el-input v-model="roleForm.responseUserName" placeholder="选择责任人"
@click.native="choicePeoPle('responseUserId', '选择责任人', roleForm.responseUserId)"></el-input>
</div>
</el-form-item>
</el-card>
</el-timeline-item>
<el-timeline-item timestamp="法规与认证部总监" placement="top"
:color="roleForm.lawsProveChiefId ? '#66b1ff' : ''">
<el-card>
<el-form-item prop="lawsProveChiefName" style="margin-bottom: 0">
<h4>法规与认证部总监批准</h4>
<div style="margin-top: 10px;width: 300px;">
<el-input v-model="roleForm.lawsProveChiefId" style="display: none;"></el-input>
<el-input v-model="roleForm.lawsProveChiefName" placeholder="选择法规与认证部总监"
@click.native="choicePeoPle('lawsProveChiefId', '选择法规与认证部总监', roleForm.lawsProveChiefId)"></el-input>
</div>
</el-form-item>
</el-card>
</el-timeline-item>
</el-form>
</el-timeline>
</div>
</div>
<Role-tree
check-box
:is-title="drawerTitle"
:is-visible.sync="modalshowflag"
@checkedRole="checkedRole"
:nodeList="nodeList"
></Role-tree>
<ProcessFooter
show-save
show-submit
:submitLoading="isSubmit"
:saveLoading="saveLoading"
@save="handleSave"
@submit="handleSubmit"
>
</ProcessFooter>
</div>
</template>
<script>
import ProcessHeader from "../../components/ProcessHeader";
import ProcessFooter from "../../components/ProcessFooter";
import ProcessTitle from "../../components/ProcessTitle";
import {saveTaskFirst} from "api/process";
export default {
name: "zdrzbzORzchgxxmscStep1",
components: {
ProcessHeader,
ProcessFooter,
ProcessTitle
},
data() {
return {
isSubmit: false,
active: "1", //默认显示基础信息页面
// 基础信息form表单
form: {
cid: '', // 政策编号
endTime: '', // 责任部门领导审批 截止时间
cycleTime: '',//政策征求意见周期
cname: '', // 名称
standType: '',
standId: '',
fjList: [],
fjListName: '',
fjListId: ''
},
formRules: {
cid: [
{required: true, message: '请输入政策编号', trigger: 'change'},
],
endTime: [
{required: true, message: '请选择截止时间', trigger: 'change'},
],
cycleTime: [
{required: true, message: '请选择政策征求意见周期', trigger: 'change'},
]
},
//基础信息的表单默认数据
infoForm: {
// projectNumber: "",
// projectName: "",
// detailedListName: ""
},
commentText: "",//意见填写
//选人用到的三个东西
modalshowflag: false,
drawerTitle: "",
nodeList: [],
//选人的默认值
roleForm: {
startUserName: this.$store.getters.userInfo.userName,//发起人
startUser: this.$store.getters.userInfo.userId,
responseDockerId: "",//责任对接人
responseDockerName: "",
responseUserId: "",//责任人
responseUserName: "",
responseDeptLeaderId: "",//责任部门领导
responseDeptLeaderName: "",
lawsProveEngineerId: "",//法规认证工程师
lawsProveEngineerName: "",
lawsProveMinisterId: "",//法规认证部部长
lawsProveMinisterName: "",
lawsProveViceChiefId: "",//法规认证部副总监
lawsProveViceChiefName: "",
lawsProveChiefId: "",//法规认证部总监
lawsProveChiefName: "",
},
// 角色验证
roleFormRules: {
responseDockerName: [
{required: true, message: "请选择责任对接人", trigger: "change"}
],
responseUserName: [
{required: true, message: "请选择责任人", trigger: "change"}
],
lawsProveEngineerName: [
{required: true, message: "请选择法规认证工程师", trigger: "change"}
],
lawsProveMinisterName: [
{required: true, message: "请选择法规认证部部长", trigger: "change"}
],
lawsProveViceChiefName: [
{required: true, message: "请选择法规认证部副总监", trigger: "change"}
],
lawsProveChiefName: [
{required: true, message: "请选择法规认证部总监", trigger: "change"}
],
responseDeptLeaderName: [
{required: true, message: "请选择责任部门领导", trigger: "change"}
],
},
//保存按钮的按钮loading
saveLoading: false,
}
},
methods: {
//基础信息/人员信息
handleTabs(type) {
this.active = type;
},
//选择人
choicePeoPle(type, title, id) {
this.nodeList = [];
this.nodeList.push(id);
this.type = type;
this.drawerTitle = title;
this.modalshowflag = true;
},
//选择人
checkedRole(data) {
if (this.type === "someBodyId") {
this.roleForm.someBodyId = data[0].id;
this.roleForm.someBodyName = data[0].name;
}
else if(this.type === "lawsProveMinisterId"){
this.roleForm.lawsProveMinisterId = data[0].id;
this.roleForm.lawsProveMinisterName = data[0].name;
}
else if(this.type === "lawsProveViceChiefId"){
this.roleForm.lawsProveViceChiefId = data[0].id;
this.roleForm.lawsProveViceChiefName = data[0].name;
}
else if(this.type === "responseDeptLeaderId"){
this.roleForm.responseDeptLeaderId = data[0].id;
this.roleForm.responseDeptLeaderName = data[0].name;
}
else if(this.type === "responseUserId"){
this.roleForm.responseUserId = data[0].id;
this.roleForm.responseUserName = data[0].name;
}
else if(this.type === "lawsProveChiefId"){
this.roleForm.lawsProveChiefId = data[0].id;
this.roleForm.lawsProveChiefName = data[0].name;
}
this.modalshowflag = false;
},
//保存事件
handleSave() {
this.saveLoading = true;
let _formData = new FormData();
_formData.append("id", this.bpnId || "");
_formData.append("createUser", this.$store.getters.userInfo.userId);
_formData.append("createUserName", this.$store.getters.userInfo.userName);
_formData.append("prcType", "12");
_formData.append("json", JSON.stringify({
taskInfo: "人确认",
form: this.infoForm,
roleForm: this.roleForm,
commentText: this.commentText
}));
saveTaskFirst(_formData).then(res => {
this.saveLoading = false;
this.$message.success("保存成功");
this.bpnId = res.result;
}).catch(e => {
this.saveLoading = false;
});
},
//提交事件
handleSubmit() {
this.$refs['zdrzbzORzchgxxmscForm'].validate((valid) => {
if (valid) {
this.$refs['Form'].validate((valid) => {
if (valid) {
this.isSubmit = true
this.$http.get('lawss/activiti/startProcess', {
type: 'laws3'
}, {_this: this}, res => {
if (res.ok) {
var json = Object.assign(this.form, this.roleForm)
json.commentText = this.commentText
json.filesId = this.addFjList
json.filesName = this.form.fjListName
this.$http.post('lawss/activiti/completeTask', {
json: JSON.stringify(json),
taskId: res.data,
userId: this.$store.getters.userInfo.userId
}, {_this: this}, res => {
if (res.success) {
this.$message.success('流程发起成功')
this.$router.push('/processCenter')
this.isSubmit = false
} else {
this.$message.warning('流程启动失败')
this.isSubmit = false
}
})
} else {
this.$message.warning('流程启动失败')
this.isSubmit = false
}
})
} else {
return this.$message.warning('请完善人员信息')
}
})
} else {
return this.$message.warning('请完善基础信息')
}
})
},
}
}
</script>
<style lang="less" scoped>
@import '~@/assets/styles/style';
.zdrzbzORzchgxxmsc-step1 {
.myForm {
/deep/ .el-form-item__content {
line-height: 10px;
}
}
/deep/ .el-drawer__container {
.prc-content-border {
border: none;
padding: 0 20px 0;
}
}
position: relative;
height: 100%;
.fileClass {
cursor: pointer;
}
.fileClass:hover {
color: #0c91e5;
}
.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;
.content {
display: flex;
flex-direction: column;
position: relative;
flex: auto;
.table-wrap {
flex: auto;
overflow: hidden;
display: flex;
flex-direction: column;
}
}
.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>
@@ -0,0 +1,484 @@
<template>
<div class="zdrzbzORzchgxxmsc-step2">
<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 === '2' ? 'active' : ''" @click="handleTabs('2')">审批历史</div>
</div>
<div class="content" v-show="active === '1'">
<div style="flex: auto; overflow: auto;">
<el-form
ref="zdrzbzORzchgxxmscForm"
:model="form"
:rules="formRules"
class="label-input-form"
label-width="210px"
>
<ProcessTitle>
<template slot="title">基础信息</template>
</ProcessTitle>
<div class="content">
<div class="table-wrap">
<el-table
ref="multipleTable"
tooltip-effect="dark"
border
style="width: 100%; flex: auto;"
class="drag-table"
height="430px"
:header-cell-style="{background: '#E8E8E8', color: '#333333', fontSize: '16px',
fontWeight: 'bold', height: '48px'}">
<el-table-column
type="selection"
width="55"
align="center">
</el-table-column>
<el-table-column
label="序号"
type="index"
align="center"
width="100">
</el-table-column>
<el-table-column
label="标准编号/政策编号"
align="center"
width="300"
>
</el-table-column>
<el-table-column
show-overflow-tooltip
prop="standName"
label="标准名称/政策名称"
align="center"
>
</el-table-column>
<el-table-column
prop="issueTime"
sortable="custom"
width="200px"
align="center"
label="产品类型">
</el-table-column>
<el-table-column
prop="SSRQ"
sortable="custom"
align="center"
width="200px"
label="实施日期">
</el-table-column>
<el-table-column
prop="SSRQ"
sortable="custom"
align="center"
width="200px"
label="实施要求">
</el-table-column>
</el-table>
</div>
</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="active === '2'">
<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"
sortable="custom"
>
</el-table-column>
<el-table-column
prop="assignee"
label="任务受理人"
align="center"
sortable="custom"
>
</el-table-column>
<el-table-column
prop="createTime"
label="创建时间"
sortable="custom"
align="center">
<template slot-scope="scope">
<span>{{ scope.row.createTime ? $moment(scope.row.createTime).format("YYYY-MM-DD") : "" }}</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") : "" }}</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 ? "已完成" : "未完成" }}</span>
</template>
</el-table-column>
</el-table>
</div>
<ProcessFooter
show-submit
:submitLoading="isSubmit"
:saveLoading="saveLoading"
show-transfer
@transfer="handleTransfer"
@save="handleSave"
@submit="handleSubmit"
show-back
@back="handleSubmitNo"
approval
submitBTNText="同意"
>
</ProcessFooter>
<Role-tree
check-box
is-title="转办处理人"
:is-visible.sync="drawerModal"
@checkedRole="checkedRole"
></Role-tree>
</div>
</template>
<script>
import ProcessHeader from "../../components/ProcessHeader";
import ProcessFooter from "../../components/ProcessFooter";
import ProcessTitle from "../../components/ProcessTitle";
import {inboundLiaisonDetail, processCreateStand, saveTaskForPub, changeAssigneeNew} from "api/process";
import axios from "axios";
export default {
name: "zdrzbzORzchgxxmscStep2",
data() {
return {
drawerModal: false,
data: [],
histortData: [],
commentText: "",
taskIds: this.$route.query.taskIds,
pId: this.$route.query.prcId,
nodeList: [],
type: "",
modalshowflag: false, // drawer开关
drawerTitle: "", //drawer标题
textarea: "", // 意见
ListModel: false, // 新增编辑抽屉开关
active: "1", // 默认显示
isSubmit: false,
saveLoading: false,
form: {
cid: "", // 政策编号
endTime: "", // 责任部门领导审批 截止时间
cname: "", // 名称
fjList: [],
fjListId: '',
responUserList: "",
responUserListName: ""
},
formRules: {
responUserList: [
{required: true, message: "请选择责任人", trigger: "change"}
]
},
json: {}
};
},
components: {
ProcessHeader,
ProcessFooter,
ProcessTitle
},
methods: {
handleTransfer() {
this.drawerModal = true
},
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.processNum()
this.$router.push({path: '/processCenter?tabsName=ProcessCenter'})
} else {
this.$message.warning(res.message)
}
})
},
// 请求转换流程图
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)
})
},
getHistoryData() {
this.$http.get("lawss/activiti/get_list_by_instance", {
prcNum: this.$route.query.prcNum
}, {}, res => {
this.histortData = res;
}, e => {
});
},
checkedRole2(data) {
var idList = "";
var nameList = "";
data.forEach(item => {
if (nameList.length > 0) {
nameList += ",";
idList += ",";
}
idList += item.id;
nameList += item.name;
});
this.form.responUserList = idList;
this.form.responUserListName = nameList;
},
choiceZRR() {
this.nodeList = [];
if (this.form.responUserList.length > 0) {
this.nodeList = this.form.responUserList.split(",");
}
this.modalshowflag = true;
},
handleTabs(name) {
this.active = name;
},
//保存事件
handleSave() {
this.saveLoading = true;
let _formData = new FormData();
_formData.append("id", this.bpnId || "");
_formData.append("prcType", "3");
_formData.append("taskIds", this.taskIds);
_formData.append("json", JSON.stringify({
form: this.form,
commentText: this.commentText
}));
saveTaskForPub(_formData).then(res => {
this.saveLoading = false;
this.$message.success("保存成功");
this.bpnId = res.result;
}).catch(e => {
this.saveLoading = false;
});
},
handleSubmit() {
this.$refs["zdrzbzORzchgxxmscForm"].validate((valid) => {
if (valid) {
this.isSubmit = true;
var json = this.json;
//这个就是原来的actionFlag,用来表示流程是驳回还是同意
json.actionFlag = 0
json.commentText = this.commentText;
json.responUserList = this.form.responUserList;
json.responUserListName = this.form.responUserListName;
json.introduce = false;
this.$http.post("lawss/activiti/completeTask", {
json: JSON.stringify(json),
taskId: this.taskIds,
userId: this.$store.getters.userInfo.userId
}, {}, res => {
if (res.success) {
this.$message.success("提交成功");
this.$router.push("/processCenter");
}
this.isSubmit = false;
});
} else {
return this.$message.warning("请完善基础信息");
}
});
},
handleSubmitNo() {
if (this.commentText) {
var json = this.json
json.actionFlag = 1
json.commentText = this.commentText
this.$http.post('lawss/activiti/completeTask', {
json: JSON.stringify(json),
taskId: this.taskIds,
userId: this.$store.getters.userInfo.userId
}, {}, res => {
if (res.success) {
this.$message.success('提交成功')
this.$router.push('/processCenter')
}
})
} else {
this.$message.warning('请输入反馈意见')
}
},
getData() {
return new Promise((resolve, reject) => {
inboundLiaisonDetail({
taskIds: this.taskIds,
pId: this.pId
}).then(res => {
//用来传第一步选人的json
if (res) {
const processForm = JSON.parse(res.mesg)
this.getFormFieldList(processForm)
}
let data = JSON.parse(res.mesg)
this.form.cid = data.cid
this.form.endTime = data.endTime
this.form.cname = data.cname
this.form.fjList = data.fjList
this.form.fjListId = data.fjListId
this.json = data
this.data = data.info || data.data
}).catch(e => {
});
});
},
/**
* @description: 动态表单读取
*/
//用来传第一步选人的json
getFormFieldList(item) {
this.$nextTick(() => {
this.form = JSON.parse(JSON.stringify(item));
this.form.cid = item.form.cid
});
},
},
mounted() {
this.getHistoryData();
this.getData();
}
};
</script>
<style lang="less" scoped>
@import '~@/assets/styles/style';
.zdrzbzORzchgxxmsc-step2 {
/deep/ .el-drawer__container {
.prc-content-border {
border: none;
padding: 0 20px 0;
}
}
.fileClass {
cursor: pointer;
}
.fileClass:hover {
color: #0c91e5;
}
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;
.content {
display: flex;
flex-direction: column;
position: relative;
flex: auto;
.table-wrap {
flex: auto;
overflow: hidden;
display: flex;
flex-direction: column;
}
}
.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>
@@ -0,0 +1,465 @@
<template>
<div class="zdrzbzORzchgxxmsc-step3">
<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 === '2' ? 'active' : ''" @click="handleTabs('2')">审批历史</div>
</div>
<div class="content" v-show="active === '1'">
<div style="flex: auto; overflow: auto;">
<el-form
ref="zdrzbzORzchgxxmscForm"
:model="form"
:rules="formRules"
class="label-input-form"
label-width="210px"
>
<ProcessTitle>
<template slot="title">基础信息</template>
</ProcessTitle>
<div class="content">
<div class="table-wrap">
<el-table
ref="multipleTable"
tooltip-effect="dark"
border
style="width: 100%; flex: auto;"
class="drag-table"
height="430px"
:header-cell-style="{background: '#E8E8E8', color: '#333333', fontSize: '16px',
fontWeight: 'bold', height: '48px'}">
<el-table-column
type="selection"
width="55"
align="center">
</el-table-column>
<el-table-column
label="序号"
type="index"
align="center"
width="100">
</el-table-column>
<el-table-column
label="标准编号/政策编号"
align="center"
width="300"
>
</el-table-column>
<el-table-column
show-overflow-tooltip
prop="standName"
label="标准名称/政策名称"
align="center"
>
</el-table-column>
<el-table-column
prop="issueTime"
sortable="custom"
width="200px"
align="center"
label="产品类型">
</el-table-column>
<el-table-column
prop="SSRQ"
sortable="custom"
align="center"
width="200px"
label="实施日期">
</el-table-column>
<el-table-column
prop="SSRQ"
sortable="custom"
align="center"
width="200px"
label="实施要求">
</el-table-column>
</el-table>
</div>
</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="active === '2'">
<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"
sortable="custom"
>
</el-table-column>
<el-table-column
prop="assignee"
label="任务受理人"
align="center"
sortable="custom"
>
</el-table-column>
<el-table-column
prop="createTime"
label="创建时间"
sortable="custom"
align="center">
<template slot-scope="scope">
<span>{{ scope.row.createTime ? $moment(scope.row.createTime).format("YYYY-MM-DD") : "" }}</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") : "" }}</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 ? "已完成" : "未完成" }}</span>
</template>
</el-table-column>
</el-table>
</div>
<ProcessFooter
show-submit
:submitLoading="isSubmit"
:saveLoading="saveLoading"
show-transfer
@transfer="handleTransfer"
@save="handleSave"
@submit="handleSubmit"
show-back
@back="handleSubmitNo"
approval
submitBTNText="同意"
>
</ProcessFooter>
<Role-tree
check-box
is-title="转办处理人"
:is-visible.sync="drawerModal"
@checkedRole="checkedRole"
></Role-tree>
</div>
</template>
<script>
import ProcessHeader from "../../components/ProcessHeader";
import ProcessFooter from "../../components/ProcessFooter";
import ProcessTitle from "../../components/ProcessTitle";
import {inboundLiaisonDetail, processCreateStand, saveTaskForPub, changeAssigneeNew} from "api/process";
import axios from "axios";
export default {
name: "zdrzbzORzchgxxmscStep3",
data() {
return {
drawerModal: false,
histortData: [],
commentText: "",
taskIds: this.$route.query.taskIds,
pId: this.$route.query.prcId,
nodeList: [],
type: "",
modalshowflag: false, // drawer开关
drawerTitle: "", //drawer标题
textarea: "", // 意见
ListModel: false, // 新增编辑抽屉开关
active: "1", // 默认显示
isSubmit: false,
saveLoading: false,
form: {
cid: "", // 政策编号
endTime: "", // 责任部门领导审批 截止时间
cname: "", // 名称
fjList: [],
fjListId: '',
responUserList: "",
responUserListName: ""
},
formRules: {
responUserList: [
{required: true, message: "请选择责任人", trigger: "change"}
]
},
json: {}
};
},
components: {
ProcessHeader,
ProcessFooter,
ProcessTitle
},
methods: {
handleTransfer() {
this.drawerModal = true
},
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.processNum()
this.$router.push({path: '/processCenter?tabsName=ProcessCenter'})
} else {
this.$message.warning(res.message)
}
})
},
// 请求转换流程图
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)
})
},
getHistoryData() {
this.$http.get("lawss/activiti/get_list_by_instance", {
prcNum: this.$route.query.prcNum
}, {}, res => {
this.histortData = res;
}, e => {
});
},
checkedRole2(data) {
var idList = "";
var nameList = "";
data.forEach(item => {
if (nameList.length > 0) {
nameList += ",";
idList += ",";
}
idList += item.id;
nameList += item.name;
});
this.form.responUserList = idList;
this.form.responUserListName = nameList;
},
choiceZRR() {
this.nodeList = [];
if (this.form.responUserList.length > 0) {
this.nodeList = this.form.responUserList.split(",");
}
this.modalshowflag = true;
},
handleTabs(name) {
this.active = name;
},
//保存事件
handleSave() {
this.saveLoading = true;
let _formData = new FormData();
_formData.append("id", this.bpnId || "");
_formData.append("prcType", "3");
_formData.append("taskIds", this.taskIds);
_formData.append("json", JSON.stringify({
form: this.form,
commentText: this.commentText
}));
saveTaskForPub(_formData).then(res => {
this.saveLoading = false;
this.$message.success("保存成功");
this.bpnId = res.result;
}).catch(e => {
this.saveLoading = false;
});
},
handleSubmit() {
this.$refs["zdrzbzORzchgxxmscForm"].validate((valid) => {
if (valid) {
this.isSubmit = true;
var json = this.json;
json.commentText = this.commentText;
json.responUserList = this.form.responUserList;
json.responUserListName = this.form.responUserListName;
json.introduce = false;
this.$http.post("lawss/activiti/completeTask", {
json: JSON.stringify(json),
taskId: this.taskIds,
userId: this.$store.getters.userInfo.userId
}, {}, res => {
if (res.success) {
this.$message.success("提交成功");
this.$router.push("/processCenter");
}
this.isSubmit = false;
});
} else {
return this.$message.warning("请完善基础信息");
}
});
},
handleSubmitNo() {
if (this.commentText) {
var json = this.json
json.actionFlag = 1
json.commentText = this.commentText
this.$http.post('lawss/activiti/completeTask', {
json: JSON.stringify(json),
taskId: this.taskIds,
userId: this.$store.getters.userInfo.userId
}, {}, res => {
if (res.success) {
this.$message.success('提交成功')
this.$router.push('/processCenter')
}
})
} else {
this.$message.warning('请输入反馈意见')
}
},
getData() {
return new Promise((resolve, reject) => {
inboundLiaisonDetail({
taskIds: this.taskIds,
pId: this.pId
}).then(res => {
let data = JSON.parse(res.mesg)
this.form.cid = data.cid
this.form.endTime = data.endTime
this.form.cname = data.cname
this.form.fjList = data.fjList
this.form.fjListId = data.fjListId
this.json = data
}).catch(e => {
});
});
}
},
mounted() {
this.getHistoryData();
this.getData();
}
};
</script>
<style lang="less" scoped>
@import '~@/assets/styles/style';
.zdrzbzORzchgxxmsc-step3 {
/deep/ .el-drawer__container {
.prc-content-border {
border: none;
padding: 0 20px 0;
}
}
.fileClass {
cursor: pointer;
}
.fileClass:hover {
color: #0c91e5;
}
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;
.content {
display: flex;
flex-direction: column;
position: relative;
flex: auto;
.table-wrap {
flex: auto;
overflow: hidden;
display: flex;
flex-direction: column;
}
}
.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>
@@ -0,0 +1,534 @@
<template>
<div class="zdrzbzORzchgxxmsc-step4">
<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 === '2' ? 'active' : ''" @click="handleTabs('2')">审批历史</div>
</div>
<div class="content" v-show="active === '1'">
<div style="flex: auto; overflow: auto;">
<el-form
ref="zdrzbzORzchgxxmscForm"
:model="form"
: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="24">
<el-form-item label="责任人" prop="responUserList" class="add-form-item form-item-disabled">
<el-input
v-model="form.responUserList"
style="display: none;"
clearable
></el-input>
<el-input v-model="form.responUserListName" placeholder="请选择责任人" @click.native="choiceZRR"></el-input>
</el-form-item>
</el-col>
</el-row>
</div>
<ProcessTitle>
<template slot="title">标准信息</template>
</ProcessTitle>
<el-table
ref="multipleTable"
tooltip-effect="dark"
border
style="width: 100%;"
height="350px"
:header-cell-style="{background: '#E8E8E8', color: '#333333', fontSize: '16px',
fontWeight: 'bold', height: '48px'}">
<el-table-column
type="selection"
width="55"
align="center">
</el-table-column>
<el-table-column
label="序号"
type="index"
align="center"
width="100">
</el-table-column>
<el-table-column
label="标准编号/政策编号"
align="center"
width="300"
>
</el-table-column>
<el-table-column
show-overflow-tooltip
prop="standName"
label="标准名称/政策名称"
align="center"
>
</el-table-column>
<el-table-column
prop="issueTime"
sortable="custom"
width="200px"
align="center"
label="产品类型">
</el-table-column>
<el-table-column
prop="SSRQ"
sortable="custom"
align="center"
width="200px"
label="实施日期">
</el-table-column>
<el-table-column
prop="SSYQ"
sortable="custom"
align="center"
width="200px"
label="实施要求">
</el-table-column>
</el-table>
</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="active === '2'">
<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"
sortable="custom"
>
</el-table-column>
<el-table-column
prop="assignee"
label="任务受理人"
align="center"
sortable="custom"
>
</el-table-column>
<el-table-column
prop="createTime"
label="创建时间"
sortable="custom"
align="center">
<template slot-scope="scope">
<span>{{ scope.row.createTime ? $moment(scope.row.createTime).format("YYYY-MM-DD") : "" }}</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") : "" }}</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 ? "已完成" : "未完成" }}</span>
</template>
</el-table-column>
</el-table>
</div>
<ProcessFooter
show-submit
show-save
:submitLoading="isSubmit"
:saveLoading="saveLoading"
show-transfer
@transfer="handleTransfer"
@save="handleSave"
@submit="handleSubmit"
>
</ProcessFooter>
<Role-tree
check-box
is-title="转办处理人"
:is-visible.sync="drawerModal"
@checkedRole="checkedRole"
></Role-tree>
<Role-tree
is-title="选择责任部门对接人"
:is-visible.sync="modalshowflag"
@checkedRole="checkedRole2"
:nodeList="nodeList"
></Role-tree>
</div>
</template>
<script>
import ProcessHeader from "../../components/ProcessHeader";
import ProcessFooter from "../../components/ProcessFooter";
import ProcessTitle from "../../components/ProcessTitle";
import {inboundLiaisonDetail, processCreateStand, saveTaskForPub, changeAssigneeNew} from "api/process";
import axios from "axios";
export default {
name: "zdrzbzORzchgxxmscStep4",
data() {
return {
institutionNameValidFlag: true,
drawerModal: false,
histortData: [],
commentText: "",
taskIds: this.$route.query.taskIds,
pId: this.$route.query.prcId,
nodeList: [],
type: "",
modalshowflag: false, // drawer开关
drawerTitle: "", //drawer标题
textarea: "", // 意见
ListModel: false, // 新增编辑抽屉开关
active: "1", // 默认显示
isSubmit: false,
saveLoading: false,
form: {
cid: "", // 政策编号
endTime: "", // 责任部门领导审批 截止时间
cname: "", // 名称
fjList: [],
fjListId: '',
responUserList: "",
responUserListName: "",
//所选责任人所在的部门id和名称
responUserListInstitutionId: "",
responUserListInstitutionName: "",
responUserAndInstitutionNameMap: "",
institutionNameValid: ""
},
formRules: {
responUserList: [
{required: true, message: "请选择责任人", trigger: "change"}
]
},
json: {}
};
},
components: {
ProcessHeader,
ProcessFooter,
ProcessTitle
},
methods: {
handleTransfer() {
this.drawerModal = true
},
//选择人
choicePeoPle(type, title, id) {
this.nodeList = [];
this.nodeList.push(id);
this.type = type;
this.drawerTitle = title;
this.modalshowflag = true;
},
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.processNum()
this.$router.push({path: '/processCenter?tabsName=ProcessCenter'})
} else {
this.$message.warning(res.message)
}
})
},
// 请求转换流程图
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)
})
},
getHistoryData() {
this.$http.get("lawss/activiti/get_list_by_instance", {
prcNum: this.$route.query.prcNum
}, {}, res => {
this.histortData = res;
}, e => {
});
},
checkedRole2(data) {
var idList = "";
var nameList = "";
var institutionIdList = "";
var institutionNameList = "";
var responUserAndInstitutionNameMap = "";
console.log('304', data);
data.forEach(item => {
if (nameList.length > 0) {
nameList += ",";
idList += ",";
}
idList += item.id;
nameList += item.name;
});
data.forEach(item => {
if (institutionIdList.length > 0) {
institutionIdList += ",";
institutionNameList += ",";
}
institutionIdList += item.institutionId;
institutionNameList += item.institutionName;
});
//蛀掉的
data.forEach(item => {
responUserAndInstitutionNameMap += "{\"" + item.id + "\":\"" + item.institutionName + "\"}" + ",";
});
responUserAndInstitutionNameMap = "[" + responUserAndInstitutionNameMap;
responUserAndInstitutionNameMap = responUserAndInstitutionNameMap.substring(0, responUserAndInstitutionNameMap.length - 1)
responUserAndInstitutionNameMap = responUserAndInstitutionNameMap + "]";
this.form.responUserAndInstitutionNameMap = responUserAndInstitutionNameMap;
//主调的
this.form.responUserListInstitutionId = institutionIdList;
this.form.responUserListInstitutionName = institutionNameList;
this.form.responUserList = idList;
this.form.responUserListName = nameList;
this.form.institutionNameValid = institutionNameList.split(',');
},
choiceZRR() {
this.nodeList = [];
if (this.form.responUserList.length > 0) {
this.nodeList = this.form.responUserList.split(",");
}
this.modalshowflag = true;
},
handleTabs(name) {
this.active = name;
},
//保存事件
handleSave() {
this.saveLoading = true;
let _formData = new FormData();
_formData.append("id", this.bpnId || "");
_formData.append("prcType", "3");
_formData.append("taskIds", this.taskIds);
_formData.append("json", JSON.stringify({
form: this.form,
commentText: this.commentText
}));
saveTaskForPub(_formData).then(res => {
this.saveLoading = false;
this.$message.success("保存成功");
this.bpnId = res.result;
}).catch(e => {
this.saveLoading = false;
});
},
handleSubmit() {
this.$refs["zdrzbzORzchgxxmscForm"].validate((valid) => {
if (valid) {
this.isSubmit = true;
var json = this.json;
json.commentText = this.commentText;
json.responUserList = this.form.responUserList;
json.responUserListName = this.form.responUserListName;
json.responUserListInstitutionId = this.form.responUserListInstitutionId;
json.responUserListInstitutionName = this.form.responUserListInstitutionName;
//给后端用来判断人的map
json.responUserAndInstitutionNameMap = this.form.responUserAndInstitutionNameMap;
//前端用来判断人的值
json.institutionNameValid = this.form.institutionNameValid;
console.log('395',json.institutionNameValid);
//institutionNameValid用来判断选择的责任人是否只是属于事业部人员和产品规划部人员
for (let i = 0; i < json.institutionNameValid.length; i++) {
if (json.institutionNameValid[i].indexOf("事业") === -1 && json.institutionNameValid[i].indexOf("产品规划") === -1) {
// this.$message.warning("只能选择事业部人员或产品规划部人员");
this.institutionNameValidFlag = false
this.isSubmit = false;
}else {
this.institutionNameValidFlag = true
this.isSubmit = true;
}
}
json.introduce = false;
if ( this.institutionNameValidFlag === true){
this.$http.post("lawss/activiti/completeTask", {
json: JSON.stringify(json),
taskId: this.taskIds,
userId: this.$store.getters.userInfo.userId
}, {}, res => {
if (res.success) {
this.$message.success("提交成功");
this.$router.push("/processCenter");
}
this.isSubmit = false;
});
}else {
this.$message.warning("只能选择事业部人员或产品规划部人员");
}
} else {
return this.$message.warning("请完善基础信息");
}
});
},
handleSubmitNo() {
if (this.commentText) {
var json = this.json
json.actionFlag = 1
json.commentText = this.commentText
this.$http.post('lawss/activiti/completeTask', {
json: JSON.stringify(json),
taskId: this.taskIds,
userId: this.$store.getters.userInfo.userId
}, {}, res => {
if (res.success) {
this.$message.success('提交成功')
this.$router.push('/processCenter')
}
})
} else {
this.$message.warning('请输入反馈意见')
}
},
getData() {
return new Promise((resolve, reject) => {
inboundLiaisonDetail({
taskIds: this.taskIds,
pId: this.pId
}).then(res => {
let data = JSON.parse(res.mesg)
this.form.cid = data.cid
this.form.endTime = data.endTime
this.form.cname = data.cname
this.form.fjList = data.fjList
this.form.fjListId = data.fjListId
this.json = data
}).catch(e => {
});
});
}
},
mounted() {
this.getHistoryData();
this.getData();
}
};
</script>
<style lang="less" scoped>
@import '~@/assets/styles/style';
.zdrzbzORzchgxxmsc-step4 {
/deep/ .el-drawer__container {
.prc-content-border {
border: none;
padding: 0 20px 0;
}
}
.fileClass {
cursor: pointer;
}
.fileClass:hover {
color: #0c91e5;
}
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;
.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>
@@ -0,0 +1,580 @@
<template>
<div class="zdrzbzORzchgxxmsc-step5-1">
<ProcessHeader toggle>
<template slot="proName">重点认证标准/政策合规性项目审查流程</template>
<template slot="proNode">责任人反馈{{ feedbackDept==='1'?'事业部':'产品规划部' }}情况</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" v-show="active === '1'">
<div style="flex: auto; overflow: auto;">
<el-form
ref="zdrzbzORzchgxxmscForm"
:model="form"
:rules="formRules"
class="label-input-form"
label-width="210px"
>
<ProcessTitle>
<template slot="title">基础信息</template>
</ProcessTitle>
<!--这个div是事业部信息-->
<div style="height: 430px" v-if="feedbackDept === '1'">
<el-table
ref="multipleTable"
tooltip-effect="dark"
border
style="width: 100%;"
height="100%"
:header-cell-style="{background: '#E8E8E8', color: '#333333', fontSize: '16px',
fontWeight: 'bold', height: '48px'}">
<el-table-column
type="selection"
width="55"
align="center">
</el-table-column>
<el-table-column
label="标准编号/政策编号"
align="center"
width="150"
>
</el-table-column>
<el-table-column
show-overflow-tooltip
prop="standName"
label="标准名称/政策名称"
min-width="150"
align="center"
>
</el-table-column>
<el-table-column
prop="issueTime"
sortable="custom"
width="120"
align="center"
label="产品类型">
</el-table-column>
<el-table-column
prop="SSRQ"
sortable="custom"
align="center"
width="120"
label="实施日期">
</el-table-column>
<el-table-column
prop="SSRQ"
sortable="custom"
align="center"
width="120"
label="实施要求">
</el-table-column>
<el-table-column
prop="SSRQ"
sortable="custom"
align="center"
width="130"
label="资源符合情况">
</el-table-column>
<el-table-column
prop="SSRQ"
sortable="custom"
align="center"
width="120"
label="开发计划">
</el-table-column>
<el-table-column
prop="SSRQ"
sortable="custom"
align="center"
width="120"
label="SOP时间">
</el-table-column>
<el-table-column
prop="SSRQ"
sortable="custom"
align="center"
width="120"
label="完成情况">
</el-table-column>
<el-table-column
prop="SSRQ"
sortable="custom"
align="center"
width="400"
label="SOP时间超过法规时限的空档期的业务应对方案">
</el-table-column>
</el-table>
</div>
<!--这个div是产品规划部信息-->
<div style="height: 430px" v-else-if="feedbackDept === '2'">
<el-table
ref="multipleTable"
tooltip-effect="dark"
border
style="width: 100%;"
height="100%"
:header-cell-style="{background: '#E8E8E8', color: '#333333', fontSize: '16px',
fontWeight: 'bold', height: '48px'}">
<el-table-column
type="selection"
width="55"
align="center">
</el-table-column>
<el-table-column
type="index"
label="序号"
width="55"
align="center">
</el-table-column>
<el-table-column
label="业务"
align="center"
width="150"
>
</el-table-column>
<el-table-column
show-overflow-tooltip
prop="standName"
label="平台"
min-width="150"
align="center"
>
</el-table-column>
<el-table-column
show-overflow-tooltip
prop="standName"
label="项目"
min-width="150"
align="center"
>
</el-table-column>
<el-table-column
show-overflow-tooltip
prop="standName"
label="项目描述"
min-width="150"
align="center"
>
</el-table-column>
<el-table-column
show-overflow-tooltip
prop="standName"
label="当前节点"
min-width="150"
align="center"
>
</el-table-column>
<el-table-column
show-overflow-tooltip
prop="standName"
label="概念状态"
min-width="150"
align="center"
>
</el-table-column>
<el-table-column
prop="SSRQ"
align="center"
width="150"
label="概念计划下发时间">
</el-table-column>
<el-table-column
prop="SSRQ"
align="center"
width="120"
label="概念修订计划">
</el-table-column>
<el-table-column
prop="SSRQ"
align="center"
width="400"
label="其他说明">
</el-table-column>
</el-table>
</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="active === '2'">
<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"
sortable="custom"
>
</el-table-column>
<el-table-column
prop="assignee"
label="任务受理人"
align="center"
sortable="custom"
>
</el-table-column>
<el-table-column
prop="createTime"
label="创建时间"
sortable="custom"
align="center">
<template slot-scope="scope">
<span>{{ scope.row.createTime ? $moment(scope.row.createTime).format("YYYY-MM-DD") : "" }}</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") : "" }}</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 ? "已完成" : "未完成" }}</span>
</template>
</el-table-column>
</el-table>
</div>
<ProcessFooter
show-submit
show-save
:submitLoading="isSubmit"
:saveLoading="saveLoading"
show-transfer
@transfer="handleTransfer"
@save="handleSave"
@submit="handleSubmit"
>
</ProcessFooter>
<Role-tree
check-box
is-title="转办处理人"
:is-visible.sync="drawerModal"
@checkedRole="checkedRole"
></Role-tree>
</div>
</template>
<script>
import ProcessHeader from "../../components/ProcessHeader";
import ProcessFooter from "../../components/ProcessFooter";
import ProcessTitle from "../../components/ProcessTitle";
import {inboundLiaisonDetail, processCreateStand, saveTaskForPub, changeAssigneeNew} from "api/process";
import axios from "axios";
export default {
name: "zdrzbzORzchgxxmscStep5-1",
data() {
return {
//用来判断反馈情况的是哪个部门,1代表各事业部,2代表产品规划部,0代表其他部门
feedbackDept: "",
drawerModal: false,
histortData: [],
commentText: "",
taskIds: this.$route.query.taskIds,
pId: this.$route.query.prcId,
nodeList: [],
type: "",
modalshowflag: false, // drawer开关
drawerTitle: "", //drawer标题
textarea: "", // 意见
ListModel: false, // 新增编辑抽屉开关
active: "1", // 默认显示
isSubmit: false,
saveLoading: false,
form: {
cid: "", // 政策编号
endTime: "", // 责任部门领导审批 截止时间
cname: "", // 名称
fjList: [],
fjListId: '',
responUserList: "",
responUserListName: ""
},
formRules: {
responUserList: [
{required: true, message: "请选择责任人", trigger: "change"}
]
},
json: {}
};
},
components: {
ProcessHeader,
ProcessFooter,
ProcessTitle
},
methods: {
handleTransfer() {
this.drawerModal = true
},
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.processNum()
this.$router.push({path: '/processCenter?tabsName=ProcessCenter'})
} else {
this.$message.warning(res.message)
}
})
},
// 请求转换流程图
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)
})
},
getHistoryData() {
this.$http.get("lawss/activiti/get_list_by_instance", {
prcNum: this.$route.query.prcNum
}, {}, res => {
this.histortData = res;
}, e => {
});
},
checkedRole2(data) {
var idList = "";
var nameList = "";
data.forEach(item => {
if (nameList.length > 0) {
nameList += ",";
idList += ",";
}
idList += item.id;
nameList += item.name;
});
this.form.responUserList = idList;
this.form.responUserListName = nameList;
},
choiceZRR() {
this.nodeList = [];
if (this.form.responUserList.length > 0) {
this.nodeList = this.form.responUserList.split(",");
}
this.modalshowflag = true;
},
handleTabs(name) {
this.active = name;
},
//保存事件
handleSave() {
this.saveLoading = true;
let _formData = new FormData();
_formData.append("id", this.bpnId || "");
_formData.append("prcType", "3");
_formData.append("taskIds", this.taskIds);
_formData.append("json", JSON.stringify({
form: this.form,
commentText: this.commentText
}));
saveTaskForPub(_formData).then(res => {
this.saveLoading = false;
this.$message.success("保存成功");
this.bpnId = res.result;
}).catch(e => {
this.saveLoading = false;
});
},
handleSubmit() {
this.$refs["zdrzbzORzchgxxmscForm"].validate((valid) => {
if (valid) {
this.isSubmit = true;
var json = this.json;
json.commentText = this.commentText;
json.responUserList = this.form.responUserList;
json.responUserListName = this.form.responUserListName;
json.introduce = false;
this.$http.post("lawss/activiti/completeTask", {
json: JSON.stringify(json),
taskId: this.taskIds,
userId: this.$store.getters.userInfo.userId
}, {}, res => {
if (res.success) {
this.$message.success("提交成功");
this.$router.push("/processCenter");
}
this.isSubmit = false;
});
} else {
return this.$message.warning("请完善基础信息");
}
});
},
handleSubmitNo() {
if (this.commentText) {
var json = this.json
json.actionFlag = 1
json.commentText = this.commentText
this.$http.post('lawss/activiti/completeTask', {
json: JSON.stringify(json),
taskId: this.taskIds,
userId: this.$store.getters.userInfo.userId
}, {}, res => {
if (res.success) {
this.$message.success('提交成功')
this.$router.push('/processCenter')
}
})
} else {
this.$message.warning('请输入反馈意见')
}
},
getData() {
return new Promise((resolve, reject) => {
inboundLiaisonDetail({
taskIds: this.taskIds,
pId: this.pId
}).then(res => {
if (res) {
const processForm = JSON.parse(res.mesg)
this.getFormFieldList(processForm)
}
let data = JSON.parse(res.mesg)
this.form.cid = data.cid
this.form.endTime = data.endTime
this.form.cname = data.cname
this.form.fjList = data.fjList
this.form.fjListId = data.fjListId
this.json = data
this.feedbackDept = this.json.feedbackDept
console.log('485',this.feedbackDept)
}).catch(e => {
});
});
},
/**
* @description: 动态表单读取
*/
getFormFieldList(item) {
this.$nextTick(() => {
this.form = JSON.parse(JSON.stringify(item));
this.form.cid = item.form.cid
});
},
},
mounted() {
this.getHistoryData();
this.getData();
}
};
</script>
<style lang="less" scoped>
@import '~@/assets/styles/style';
.zdrzbzORzchgxxmsc-step5-1 {
/deep/ .el-drawer__container {
.prc-content-border {
border: none;
padding: 0 20px 0;
}
}
.fileClass {
cursor: pointer;
}
.fileClass:hover {
color: #0c91e5;
}
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;
.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>
@@ -0,0 +1,475 @@
<template>
<div class="zdrzbzORzchgxxmsc-step5-2">
<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 === '2' ? 'active' : ''" @click="handleTabs('2')">审批历史</div>
</div>
<div class="content" v-show="active === '1'">
<div style="flex: auto; overflow: auto;">
<el-form
ref="bzzqyjForm"
:model="form"
:rules="formRules"
class="label-input-form"
label-width="210px"
>
<ProcessTitle>
<template slot="title">基础信息</template>
</ProcessTitle>
<div style="height: 450px">
<el-table
ref="multipleTable"
tooltip-effect="dark"
border
style="width: 100%;"
height="100%"
:header-cell-style="{background: '#E8E8E8', color: '#333333', fontSize: '16px',
fontWeight: 'bold', height: '48px'}">
<el-table-column
type="selection"
width="55"
align="center">
</el-table-column>
<el-table-column
type="index"
label="序号"
width="55"
align="center">
</el-table-column>
<el-table-column
label="业务"
align="center"
width="150"
>
</el-table-column>
<el-table-column
show-overflow-tooltip
prop="standName"
label="平台"
min-width="150"
align="center"
>
</el-table-column>
<el-table-column
show-overflow-tooltip
prop="standName"
label="项目"
min-width="150"
align="center"
>
</el-table-column>
<el-table-column
show-overflow-tooltip
prop="standName"
label="项目描述"
min-width="150"
align="center"
>
</el-table-column>
<el-table-column
show-overflow-tooltip
prop="standName"
label="当前节点"
min-width="150"
align="center"
>
</el-table-column>
<el-table-column
show-overflow-tooltip
prop="standName"
label="概念状态"
min-width="150"
align="center"
>
</el-table-column>
<el-table-column
prop="SSRQ"
align="center"
width="150"
label="概念计划下发时间">
</el-table-column>
<el-table-column
prop="SSRQ"
align="center"
width="120"
label="概念修订计划">
</el-table-column>
<el-table-column
prop="SSRQ"
align="center"
width="400"
label="其他说明">
</el-table-column>
</el-table>
</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="active === '2'">
<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"
sortable="custom"
>
</el-table-column>
<el-table-column
prop="assignee"
label="任务受理人"
align="center"
sortable="custom"
>
</el-table-column>
<el-table-column
prop="createTime"
label="创建时间"
sortable="custom"
align="center">
<template slot-scope="scope">
<span>{{ scope.row.createTime ? $moment(scope.row.createTime).format("YYYY-MM-DD") : "" }}</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") : "" }}</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 ? "已完成" : "未完成" }}</span>
</template>
</el-table-column>
</el-table>
</div>
<ProcessFooter
show-submit
show-save
:submitLoading="isSubmit"
:saveLoading="saveLoading"
show-transfer
@transfer="handleTransfer"
@save="handleSave"
@submit="handleSubmit"
>
</ProcessFooter>
<Role-tree
check-box
is-title="转办处理人"
:is-visible.sync="drawerModal"
@checkedRole="checkedRole"
></Role-tree>
</div>
</template>
<script>
import ProcessHeader from "../../components/ProcessHeader";
import ProcessFooter from "../../components/ProcessFooter";
import ProcessTitle from "../../components/ProcessTitle";
import {inboundLiaisonDetail, processCreateStand, saveTaskForPub, changeAssigneeNew} from "api/process";
import axios from "axios";
export default {
name: "zdrzbzORzchgxxmscStep5-2",
data() {
return {
drawerModal: false,
histortData: [],
commentText: "",
taskIds: this.$route.query.taskIds,
pId: this.$route.query.prcId,
nodeList: [],
type: "",
modalshowflag: false, // drawer开关
drawerTitle: "", //drawer标题
textarea: "", // 意见
ListModel: false, // 新增编辑抽屉开关
active: "1", // 默认显示
isSubmit: false,
saveLoading: false,
form: {
cid: "", // 政策编号
endTime: "", // 责任部门领导审批 截止时间
cname: "", // 名称
fjList: [],
fjListId: '',
responUserList: "",
responUserListName: ""
},
formRules: {
responUserList: [
{required: true, message: "请选择责任人", trigger: "change"}
]
},
json: {}
};
},
components: {
ProcessHeader,
ProcessFooter,
ProcessTitle
},
methods: {
handleTransfer() {
this.drawerModal = true
},
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.processNum()
this.$router.push({path: '/processCenter?tabsName=ProcessCenter'})
} else {
this.$message.warning(res.message)
}
})
},
// 请求转换流程图
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)
})
},
getHistoryData() {
this.$http.get("lawss/activiti/get_list_by_instance", {
prcNum: this.$route.query.prcNum
}, {}, res => {
this.histortData = res;
}, e => {
});
},
checkedRole2(data) {
var idList = "";
var nameList = "";
data.forEach(item => {
if (nameList.length > 0) {
nameList += ",";
idList += ",";
}
idList += item.id;
nameList += item.name;
});
this.form.responUserList = idList;
this.form.responUserListName = nameList;
},
choiceZRR() {
this.nodeList = [];
if (this.form.responUserList.length > 0) {
this.nodeList = this.form.responUserList.split(",");
}
this.modalshowflag = true;
},
handleTabs(name) {
this.active = name;
},
//保存事件
handleSave() {
this.saveLoading = true;
let _formData = new FormData();
_formData.append("id", this.bpnId || "");
_formData.append("prcType", "3");
_formData.append("taskIds", this.taskIds);
_formData.append("json", JSON.stringify({
form: this.form,
commentText: this.commentText
}));
saveTaskForPub(_formData).then(res => {
this.saveLoading = false;
this.$message.success("保存成功");
this.bpnId = res.result;
}).catch(e => {
this.saveLoading = false;
});
},
handleSubmit() {
this.$refs["bzzqyjForm"].validate((valid) => {
if (valid) {
this.isSubmit = true;
var json = this.json;
json.commentText = this.commentText;
json.responUserList = this.form.responUserList;
json.responUserListName = this.form.responUserListName;
json.introduce = false;
this.$http.post("lawss/activiti/completeTask", {
json: JSON.stringify(json),
taskId: this.taskIds,
userId: this.$store.getters.userInfo.userId
}, {}, res => {
if (res.success) {
this.$message.success("提交成功");
this.$router.push("/processCenter");
}
this.isSubmit = false;
});
} else {
return this.$message.warning("请完善基础信息");
}
});
},
handleSubmitNo() {
if (this.commentText) {
var json = this.json
json.actionFlag = 1
json.commentText = this.commentText
this.$http.post('lawss/activiti/completeTask', {
json: JSON.stringify(json),
taskId: this.taskIds,
userId: this.$store.getters.userInfo.userId
}, {}, res => {
if (res.success) {
this.$message.success('提交成功')
this.$router.push('/processCenter')
}
})
} else {
this.$message.warning('请输入反馈意见')
}
},
getData() {
return new Promise((resolve, reject) => {
inboundLiaisonDetail({
taskIds: this.taskIds,
pId: this.pId
}).then(res => {
let data = JSON.parse(res.mesg)
this.form.cid = data.cid
this.form.endTime = data.endTime
this.form.cname = data.cname
this.form.fjList = data.fjList
this.form.fjListId = data.fjListId
this.json = data
}).catch(e => {
});
});
}
},
mounted() {
this.getHistoryData();
this.getData();
}
};
</script>
<style lang="less" scoped>
@import '~@/assets/styles/style';
.zdrzbzORzchgxxmsc-step5-2 {
/deep/ .el-drawer__container {
.prc-content-border {
border: none;
padding: 0 20px 0;
}
}
.fileClass {
cursor: pointer;
}
.fileClass:hover {
color: #0c91e5;
}
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;
.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>
@@ -0,0 +1,594 @@
<template>
<div class="zdrzbzORzchgxxmsc-step6-1">
<ProcessHeader toggle>
<template slot="proName">重点认证标准/政策合规性项目审查流程</template>
<template slot="proNode">{{ feedbackDept === '1' ? '事业部' : '产品规划部' }}责任部门领导批准</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" v-show="active === '1'">
<div style="flex: auto; overflow: auto;">
<el-form
ref="zdrzbzORzchgxxmscForm"
:model="form"
:rules="formRules"
class="label-input-form"
label-width="210px"
>
<ProcessTitle>
<template slot="title">基础信息</template>
</ProcessTitle>
<!--这个div是事业部信息-->
<div style="height: 450px" v-if="feedbackDept === '1'">
<el-table
ref="multipleTable"
:data="data"
tooltip-effect="dark"
border
style="width: 100%; flex: auto;"
height="100%"
class="drag-table"
:default-sort="{prop: 'chapterNumber', order: 'ascending'}"
:header-cell-style="{background: '#E8E8E8', color: '#333333', fontSize: '16px',
fontWeight: 'bold', height: '48px'}">
<el-table-column
label="标准编号/政策编号"
align="center"
width="150"
>
</el-table-column>
<el-table-column
show-overflow-tooltip
prop="standName"
label="标准名称/政策名称"
min-width="150"
align="center"
>
</el-table-column>
<el-table-column
prop="issueTime"
sortable="custom"
width="120"
align="center"
label="产品类型">
</el-table-column>
<el-table-column
prop="SSRQ"
sortable="custom"
align="center"
width="120"
label="实施日期">
</el-table-column>
<el-table-column
prop="SSRQ"
sortable="custom"
align="center"
width="120"
label="实施要求">
</el-table-column>
<el-table-column
prop="SSRQ"
sortable="custom"
align="center"
width="130"
label="资源符合情况">
</el-table-column>
<el-table-column
prop="SSRQ"
sortable="custom"
align="center"
width="120"
label="开发计划">
</el-table-column>
<el-table-column
prop="SSRQ"
sortable="custom"
align="center"
width="120"
label="SOP时间">
</el-table-column>
<el-table-column
prop="SSRQ"
sortable="custom"
align="center"
width="120"
label="完成情况">
</el-table-column>
<el-table-column
prop="SSRQ"
sortable="custom"
align="center"
width="400"
label="SOP时间超过法规时限的空档期的业务应对方案">
</el-table-column>
</el-table>
</div>
<!--这个div是产品规划部信息-->
<div style="height: 450px" v-else-if="feedbackDept === '2'">
<el-table
ref="multipleTable"
:data="data"
tooltip-effect="dark"
border
style="width: 100%; flex: auto;"
height="100%"
class="drag-table"
:default-sort="{prop: 'chapterNumber', order: 'ascending'}"
:header-cell-style="{background: '#E8E8E8', color: '#333333', fontSize: '16px',
fontWeight: 'bold', height: '48px'}">
<el-table-column
type="selection"
width="55"
align="center">
</el-table-column>
<el-table-column
type="index"
label="序号"
width="55"
align="center">
</el-table-column>
<el-table-column
label="业务"
align="center"
width="150"
>
</el-table-column>
<el-table-column
show-overflow-tooltip
prop="standName"
label="平台"
min-width="150"
align="center"
>
</el-table-column>
<el-table-column
show-overflow-tooltip
prop="standName"
label="项目"
min-width="150"
align="center"
>
</el-table-column>
<el-table-column
show-overflow-tooltip
prop="standName"
label="项目描述"
min-width="150"
align="center"
>
</el-table-column>
<el-table-column
show-overflow-tooltip
prop="standName"
label="当前节点"
min-width="150"
align="center"
>
</el-table-column>
<el-table-column
show-overflow-tooltip
prop="standName"
label="概念状态"
min-width="150"
align="center"
>
</el-table-column>
<el-table-column
prop="SSRQ"
align="center"
width="150"
label="概念计划下发时间">
</el-table-column>
<el-table-column
prop="SSRQ"
align="center"
width="120"
label="概念修订计划">
</el-table-column>
<el-table-column
prop="SSRQ"
align="center"
width="400"
label="其他说明">
</el-table-column>
</el-table>
</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="active === '2'">
<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"
sortable="custom"
>
</el-table-column>
<el-table-column
prop="assignee"
label="任务受理人"
align="center"
sortable="custom"
>
</el-table-column>
<el-table-column
prop="createTime"
label="创建时间"
sortable="custom"
align="center">
<template slot-scope="scope">
<span>{{ scope.row.createTime ? $moment(scope.row.createTime).format('YYYY-MM-DD') : '' }}</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') : '' }}</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 ? '已完成' : '未完成' }}</span>
</template>
</el-table-column>
</el-table>
</div>
<ProcessFooter
show-submit
:submitLoading="isSubmit"
:saveLoading="saveLoading"
show-transfer
@transfer="handleTransfer"
@save="handleSave"
@submit="handleSubmit"
show-back
@back="handleSubmitNo"
approval
submitBTNText="同意"
>
</ProcessFooter>
<Role-tree
check-box
is-title="转办处理人"
:is-visible.sync="drawerModal"
@checkedRole="checkedRole"
></Role-tree>
</div>
</template>
<script>
import ProcessHeader from '../../components/ProcessHeader'
import ProcessFooter from '../../components/ProcessFooter'
import ProcessTitle from '../../components/ProcessTitle'
import {inboundLiaisonDetail, processCreateStand, changeAssigneeNew, saveTaskForPub} from 'api/process'
import axios from "axios";
export default {
name: "zdrzbzORzchgxxmscStep6-1",
data() {
return {
//用来判断反馈情况的是哪个部门,1代表各事业部,2代表产品规划部,0代表其他部门
feedbackDept: "",
drawerModal: false,
histortData: [],
data: [],
commentText: '',
taskIds: this.$route.query.taskIds,
pId: this.$route.query.prcId,
roleRow: {},
nodeList: [],
type: '',
defaultProps: {
children: 'children',
label: 'name'
},
treeData: [], // 人员数据
modalshowflag: false, // drawer开关
drawerTitle: '', //drawer标题
textarea: '', // 意见
ListModel: false, // 新增编辑抽屉开关
active: '1', // 默认显示
isSubmit: false,
saveLoading: false,
form: {
cid: '', // 编号
endTime: '', // 结束日期
cname: '', // 名称
fjList: [],
fjListId: '',
responUserList: "",
responUserListName: ""
},
formRules: {
responUserList: [
{required: true, message: '请选择责任人', trigger: 'change'},
]
},
json: {}
}
},
components: {
ProcessHeader,
ProcessFooter,
ProcessTitle
},
methods: {
handleTransfer() {
this.drawerModal = true
},
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.processNum()
this.$router.push({path: '/processCenter?tabsName=ProcessCenter'})
} else {
this.$message.warning(res.message)
}
})
},
// 请求转换流程图
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)
})
},
getHistoryData() {
this.$http.get('lawss/activiti/get_list_by_instance', {
prcNum: this.$route.query.prcNum,
}, {}, res => {
this.histortData = res
}, e => {
})
},
checkedRole2(data) {
console.log('395', data)
var idList = "";
var nameList = "";
data.forEach(item => {
if (nameList.length > 0) {
nameList += ",";
idList += ",";
}
idList += item.id;
nameList += item.name;
});
this.form.responUserList = idList;
this.form.responUserListName = nameList;
},
choiceZRR() {
this.nodeList = [];
if (this.form.responUserList.length > 0) {
this.nodeList = this.form.responUserList.split(",");
}
this.modalshowflag = true;
},
handleTabs(name) {
this.active = name
},
handleSave() {
this.saveLoading = true;
let _formData = new FormData();
_formData.append("id", this.bpnId || "");
_formData.append("prcType", "3");
_formData.append("taskIds", this.taskIds);
_formData.append("json", JSON.stringify({
form: this.form,
commentText: this.commentText
}));
saveTaskForPub(_formData).then(res => {
this.saveLoading = false;
this.$message.success("保存成功");
this.bpnId = res.result;
}).catch(e => {
this.saveLoading = false;
});
},
handleSubmit() {
this.$refs["zdrzbzORzchgxxmscForm"].validate((valid) => {
if (valid) {
this.isSubmit = true
var json = this.json
//这个就是原来的actionFlag,用来表示流程是驳回还是同意
json.actionFlag = 0
json.commentText = this.commentText
json.responUserList = this.form.responUserList;
json.responUserListName = this.form.responUserListName;
json.introduce = false;
this.$http.post('lawss/activiti/completeTask', {
json: JSON.stringify(json),
taskId: this.taskIds,
userId: this.$store.getters.userInfo.userId
}, {}, res => {
if (res.success) {
this.$message.success('提交成功')
this.$router.push('/processCenter')
}
this.isSubmit = false
})
} else {
return this.$message.warning("请完善基础信息");
}
});
},
handleSubmitNo() {
if (this.commentText) {
var json = this.json
//这个就是原来的actionFlag,用来表示流程是驳回还是同意
json.actionFlag = 1
json.commentText = this.commentText
this.$http.post('lawss/activiti/completeTask', {
json: JSON.stringify(json),
taskId: this.taskIds,
userId: this.$store.getters.userInfo.userId
}, {}, res => {
if (res.success) {
this.$message.success('提交成功')
this.$router.push('/processCenter')
}
})
} else {
this.$message.warning('请输入反馈意见')
}
},
getData() {
return new Promise((resolve, reject) => {
inboundLiaisonDetail({
taskIds: this.taskIds,
pId: this.pId
}).then(res => {
if (res) {
const processForm = JSON.parse(res.mesg)
this.getFormFieldList(processForm)
}
let data = JSON.parse(res.mesg)
this.feedbackDept = data.feedbackDept
this.form.fjList = data.fjList || data.form.fjList
this.form.fjListId = data.fjListId || data.form.fjListId
this.form.cid = data.cid || data.form.cid
this.form.endTime = data.endTime || data.form.endTime
this.form.cname = data.cname || data.form.cname
this.json = data
this.data = data.info || data.data
}).catch(e => {
})
})
},
/**
* @description: 动态表单读取
*/
getFormFieldList(item) {
this.$nextTick(() => {
this.form = JSON.parse(JSON.stringify(item));
this.form.cid = item.form.cid
});
},
},
mounted() {
this.getHistoryData()
this.getData()
}
}
</script>
<style lang="less" scoped>
@import '~@/assets/styles/style';
.zdrzbzORzchgxxmsc-step6-1 {
/deep/ .el-drawer__container {
.prc-content-border {
border: none;
padding: 0 20px 0;
}
}
.fileClass {
cursor: pointer;
}
.fileClass:hover {
color: #0c91e5;
}
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;
.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>
@@ -0,0 +1,455 @@
<template>
<div class="zdrzbzORzchgxxmsc-step6-2">
<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 === '2' ? 'active' : ''" @click="handleTabs('2')">审批历史</div>
</div>
<div class="content" v-show="active === '1'">
<div style="flex: auto; overflow: auto;">
<el-form
ref="bzzqyjForm"
:model="form"
:rules="formRules"
class="label-input-form"
label-width="210px"
>
<ProcessTitle>
<template slot="title">基础信息</template>
</ProcessTitle>
<el-table
ref="multipleTable"
:data="data"
tooltip-effect="dark"
border
style="width: 100%; flex: auto;"
height="450px"
class="drag-table"
:default-sort="{prop: 'chapterNumber', order: 'ascending'}"
:header-cell-style="{background: '#E8E8E8', color: '#333333', fontSize: '16px',
fontWeight: 'bold', height: '48px'}">
<el-table-column
type="selection"
width="55"
align="center">
</el-table-column>
<el-table-column
type="index"
label="序号"
width="55"
align="center">
</el-table-column>
<el-table-column
label="业务"
align="center"
width="150"
>
</el-table-column>
<el-table-column
show-overflow-tooltip
prop="standName"
label="平台"
min-width="150"
align="center"
>
</el-table-column>
<el-table-column
show-overflow-tooltip
prop="standName"
label="项目"
min-width="150"
align="center"
>
</el-table-column>
<el-table-column
show-overflow-tooltip
prop="standName"
label="项目描述"
min-width="150"
align="center"
>
</el-table-column>
<el-table-column
show-overflow-tooltip
prop="standName"
label="当前节点"
min-width="150"
align="center"
>
</el-table-column>
<el-table-column
show-overflow-tooltip
prop="standName"
label="概念状态"
min-width="150"
align="center"
>
</el-table-column>
<el-table-column
prop="SSRQ"
align="center"
width="150"
label="概念计划下发时间">
</el-table-column>
<el-table-column
prop="SSRQ"
align="center"
width="120"
label="概念修订计划">
</el-table-column>
<el-table-column
prop="SSRQ"
align="center"
width="400"
label="其他说明">
</el-table-column>
</el-table>
</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="active === '2'">
<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"
sortable="custom"
>
</el-table-column>
<el-table-column
prop="assignee"
label="任务受理人"
align="center"
sortable="custom"
>
</el-table-column>
<el-table-column
prop="createTime"
label="创建时间"
sortable="custom"
align="center">
<template slot-scope="scope">
<span>{{ scope.row.createTime ? $moment(scope.row.createTime).format('YYYY-MM-DD') : '' }}</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') : '' }}</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 ? '已完成' : '未完成' }}</span>
</template>
</el-table-column>
</el-table>
</div>
<ProcessFooter
show-submit
:submitLoading="isSubmit"
:saveLoading="saveLoading"
show-transfer
@transfer="handleTransfer"
@save="handleSave"
@submit="handleSubmit"
show-back
@back="handleSubmitNo"
approval
submitBTNText="同意"
>
</ProcessFooter>
<Role-tree
check-box
is-title="转办处理人"
:is-visible.sync="drawerModal"
@checkedRole="checkedRole"
></Role-tree>
</div>
</template>
<script>
import ProcessHeader from '../../components/ProcessHeader'
import ProcessFooter from '../../components/ProcessFooter'
import ProcessTitle from '../../components/ProcessTitle'
import {inboundLiaisonDetail, processCreateStand, changeAssigneeNew} from 'api/process'
import axios from "axios";
export default {
name: "zdrzbzORzchgxxmscStep6-2",
data() {
return {
drawerModal: false,
histortData: [],
data: [],
commentText: '',
taskIds: this.$route.query.taskIds,
pId: this.$route.query.prcId,
roleRow: {},
nodeList: [],
type: '',
defaultProps: {
children: 'children',
label: 'name'
},
treeData: [], // 人员数据
modalshowflag: false, // drawer开关
drawerTitle: '', //drawer标题
textarea: '', // 意见
ListModel: false, // 新增编辑抽屉开关
active: '1', // 默认显示
isSubmit: false,
saveLoading: false,
form: {
cid: '', // 编号
endTime: '', // 结束日期
cname: '', // 名称
fjList: [],
fjListId: '',
},
formRules: {
responUserList: [
{required: true, message: '请选择责任人', trigger: 'change'},
]
},
json: {}
}
},
components: {
ProcessHeader,
ProcessFooter,
ProcessTitle
},
methods: {
handleTransfer() {
this.drawerModal = true
},
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.processNum()
this.$router.push({path: '/processCenter?tabsName=ProcessCenter'})
} else {
this.$message.warning(res.message)
}
})
},
// 请求转换流程图
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)
})
},
getHistoryData() {
this.$http.get('lawss/activiti/get_list_by_instance', {
prcNum: this.$route.query.prcNum,
}, {}, res => {
this.histortData = res
}, e => {
})
},
handleTabs(name) {
this.active = name
},
handleSave() {
},
handleSubmit() {
this.isSubmit = true
var json = this.json
//这个就是原来的actionFlag,用来表示流程是驳回还是同意
json.actionFlag = 0
json.commentText = this.commentText
this.$http.post('lawss/activiti/completeTask', {
json: JSON.stringify(json),
taskId: this.taskIds,
userId: this.$store.getters.userInfo.userId
}, {}, res => {
if (res.success) {
this.$message.success('提交成功')
this.$router.push('/processCenter')
}
this.isSubmit = false
})
},
handleSubmitNo() {
if (this.commentText) {
var json = this.json
//这个就是原来的actionFlag,用来表示流程是驳回还是同意
json.actionFlag = 1
json.commentText = this.commentText
this.$http.post('lawss/activiti/completeTask', {
json: JSON.stringify(json),
taskId: this.taskIds,
userId: this.$store.getters.userInfo.userId
}, {}, res => {
if (res.success) {
this.$message.success('提交成功')
this.$router.push('/processCenter')
}
})
} else {
this.$message.warning('请输入反馈意见')
}
},
getData() {
return new Promise((resolve, reject) => {
inboundLiaisonDetail({
taskIds: this.taskIds,
pId: this.pId
}).then(res => {
if (res) {
const processForm = JSON.parse(res.mesg)
this.getFormFieldList(processForm)
}
let data = JSON.parse(res.mesg)
console.log('355', data.form.cid);
this.form.fjList = data.fjList || data.form.fjList
this.form.fjListId = data.fjListId || data.form.fjListId
this.form.cid = data.cid || data.form.cid
this.form.endTime = data.endTime || data.form.endTime
this.form.cname = data.cname || data.form.cname
this.json = data
this.data = data.info || data.data
console.log('364', this.form.cid);
}).catch(e => {
})
})
},
/**
* @description: 动态表单读取
*/
getFormFieldList(item) {
this.$nextTick(() => {
this.form = JSON.parse(JSON.stringify(item));
this.form.cid = item.form.cid
});
},
},
mounted() {
this.getHistoryData()
this.getData()
}
}
</script>
<style lang="less" scoped>
@import '~@/assets/styles/style';
.zdrzbzORzchgxxmsc-step6-2 {
/deep/ .el-drawer__container {
.prc-content-border {
border: none;
padding: 0 20px 0;
}
}
.fileClass {
cursor: pointer;
}
.fileClass:hover {
color: #0c91e5;
}
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;
.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>
@@ -0,0 +1,583 @@
<template>
<div class="zdrzbzORzchgxxmsc-step6">
<ProcessHeader toggle>
<template slot="proName">重点认证标准/政策合规性项目审查流程</template>
<template slot="proNode">{{ feedbackDept === '1' ? '事业部' : '产品规划部' }}责任部门领导批准</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" v-show="active === '1'">
<div style="flex: auto; overflow: auto;">
<el-form
ref="zdrzbzORzchgxxmscForm"
:model="form"
:rules="formRules"
class="label-input-form"
label-width="210px"
>
<ProcessTitle>
<template slot="title">基础信息</template>
</ProcessTitle>
<!--这个div是事业部信息-->
<div style="height: 430px" v-if="feedbackDept === '1'">
<el-table
ref="multipleTable"
tooltip-effect="dark"
border
style="width: 100%;"
height="100%"
:header-cell-style="{background: '#E8E8E8', color: '#333333', fontSize: '16px',
fontWeight: 'bold', height: '48px'}">
<el-table-column
type="selection"
width="55"
align="center">
</el-table-column>
<el-table-column
label="标准编号/政策编号"
align="center"
width="150"
>
</el-table-column>
<el-table-column
show-overflow-tooltip
prop="standName"
label="标准名称/政策名称"
min-width="150"
align="center"
>
</el-table-column>
<el-table-column
prop="issueTime"
sortable="custom"
width="120"
align="center"
label="产品类型">
</el-table-column>
<el-table-column
prop="SSRQ"
sortable="custom"
align="center"
width="120"
label="实施日期">
</el-table-column>
<el-table-column
prop="SSRQ"
sortable="custom"
align="center"
width="120"
label="实施要求">
</el-table-column>
<el-table-column
prop="SSRQ"
sortable="custom"
align="center"
width="130"
label="资源符合情况">
</el-table-column>
<el-table-column
prop="SSRQ"
sortable="custom"
align="center"
width="120"
label="开发计划">
</el-table-column>
<el-table-column
prop="SSRQ"
sortable="custom"
align="center"
width="120"
label="SOP时间">
</el-table-column>
<el-table-column
prop="SSRQ"
sortable="custom"
align="center"
width="120"
label="完成情况">
</el-table-column>
<el-table-column
prop="SSRQ"
sortable="custom"
align="center"
width="400"
label="SOP时间超过法规时限的空档期的业务应对方案">
</el-table-column>
</el-table>
</div>
<!--这个div是产品规划部信息-->
<div style="height: 430px" v-else-if="feedbackDept === '2'">
<el-table
ref="multipleTable"
tooltip-effect="dark"
border
style="width: 100%;"
height="100%"
:header-cell-style="{background: '#E8E8E8', color: '#333333', fontSize: '16px',
fontWeight: 'bold', height: '48px'}">
<el-table-column
type="selection"
width="55"
align="center">
</el-table-column>
<el-table-column
type="index"
label="序号"
width="55"
align="center">
</el-table-column>
<el-table-column
label="业务"
align="center"
width="150"
>
</el-table-column>
<el-table-column
show-overflow-tooltip
prop="standName"
label="平台"
min-width="150"
align="center"
>
</el-table-column>
<el-table-column
show-overflow-tooltip
prop="standName"
label="项目"
min-width="150"
align="center"
>
</el-table-column>
<el-table-column
show-overflow-tooltip
prop="standName"
label="项目描述"
min-width="150"
align="center"
>
</el-table-column>
<el-table-column
show-overflow-tooltip
prop="standName"
label="当前节点"
min-width="150"
align="center"
>
</el-table-column>
<el-table-column
show-overflow-tooltip
prop="standName"
label="概念状态"
min-width="150"
align="center"
>
</el-table-column>
<el-table-column
prop="SSRQ"
align="center"
width="150"
label="概念计划下发时间">
</el-table-column>
<el-table-column
prop="SSRQ"
align="center"
width="120"
label="概念修订计划">
</el-table-column>
<el-table-column
prop="SSRQ"
align="center"
width="400"
label="其他说明">
</el-table-column>
</el-table>
</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="active === '2'">
<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"
sortable="custom"
>
</el-table-column>
<el-table-column
prop="assignee"
label="任务受理人"
align="center"
sortable="custom"
>
</el-table-column>
<el-table-column
prop="createTime"
label="创建时间"
sortable="custom"
align="center">
<template slot-scope="scope">
<span>{{ scope.row.createTime ? $moment(scope.row.createTime).format("YYYY-MM-DD") : "" }}</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") : "" }}</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 ? "已完成" : "未完成" }}</span>
</template>
</el-table-column>
</el-table>
</div>
<ProcessFooter
show-submit
:submitLoading="isSubmit"
:saveLoading="saveLoading"
show-transfer
@transfer="handleTransfer"
@save="handleSave"
@submit="handleSubmit"
show-back
@back="handleSubmitNo"
approval
submitBTNText="同意"
>
</ProcessFooter>
<Role-tree
check-box
is-title="转办处理人"
:is-visible.sync="drawerModal"
@checkedRole="checkedRole"
></Role-tree>
</div>
</template>
<script>
import ProcessHeader from "../../components/ProcessHeader";
import ProcessFooter from "../../components/ProcessFooter";
import ProcessTitle from "../../components/ProcessTitle";
import {inboundLiaisonDetail, processCreateStand, saveTaskForPub, changeAssigneeNew} from "api/process";
import axios from "axios";
export default {
name: "zdrzbzORzchgxxmscStep6",
data() {
return {
//用来判断反馈情况的是哪个部门,1代表各事业部,2代表产品规划部,0代表其他部门
feedbackDept: "",
drawerModal: false,
histortData: [],
commentText: "",
taskIds: this.$route.query.taskIds,
pId: this.$route.query.prcId,
nodeList: [],
type: "",
modalshowflag: false, // drawer开关
drawerTitle: "", //drawer标题
textarea: "", // 意见
ListModel: false, // 新增编辑抽屉开关
active: "1", // 默认显示
isSubmit: false,
saveLoading: false,
form: {
cid: "", // 政策编号
endTime: "", // 责任部门领导审批 截止时间
cname: "", // 名称
fjList: [],
fjListId: '',
responUserList: "",
responUserListName: ""
},
formRules: {
responUserList: [
{required: true, message: "请选择责任人", trigger: "change"}
]
},
json: {}
};
},
components: {
ProcessHeader,
ProcessFooter,
ProcessTitle
},
methods: {
handleTransfer() {
this.drawerModal = true
},
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.processNum()
this.$router.push({path: '/processCenter?tabsName=ProcessCenter'})
} else {
this.$message.warning(res.message)
}
})
},
// 请求转换流程图
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)
})
},
getHistoryData() {
this.$http.get("lawss/activiti/get_list_by_instance", {
prcNum: this.$route.query.prcNum
}, {}, res => {
this.histortData = res;
}, e => {
});
},
checkedRole2(data) {
var idList = "";
var nameList = "";
data.forEach(item => {
if (nameList.length > 0) {
nameList += ",";
idList += ",";
}
idList += item.id;
nameList += item.name;
});
this.form.responUserList = idList;
this.form.responUserListName = nameList;
},
choiceZRR() {
this.nodeList = [];
if (this.form.responUserList.length > 0) {
this.nodeList = this.form.responUserList.split(",");
}
this.modalshowflag = true;
},
handleTabs(name) {
this.active = name;
},
//保存事件
handleSave() {
this.saveLoading = true;
let _formData = new FormData();
_formData.append("id", this.bpnId || "");
_formData.append("prcType", "3");
_formData.append("taskIds", this.taskIds);
_formData.append("json", JSON.stringify({
form: this.form,
commentText: this.commentText
}));
saveTaskForPub(_formData).then(res => {
this.saveLoading = false;
this.$message.success("保存成功");
this.bpnId = res.result;
}).catch(e => {
this.saveLoading = false;
});
},
handleSubmit() {
this.$refs["zdrzbzORzchgxxmscForm"].validate((valid) => {
if (valid) {
this.isSubmit = true;
var json = this.json;
json.commentText = this.commentText;
json.responUserList = this.form.responUserList;
json.responUserListName = this.form.responUserListName;
json.introduce = false;
this.$http.post("lawss/activiti/completeTask", {
json: JSON.stringify(json),
taskId: this.taskIds,
userId: this.$store.getters.userInfo.userId
}, {}, res => {
if (res.success) {
this.$message.success("提交成功");
this.$router.push("/processCenter");
}
this.isSubmit = false;
});
} else {
return this.$message.warning("请完善基础信息");
}
});
},
handleSubmitNo() {
if (this.commentText) {
var json = this.json
json.actionFlag = 1
json.commentText = this.commentText
this.$http.post('lawss/activiti/completeTask', {
json: JSON.stringify(json),
taskId: this.taskIds,
userId: this.$store.getters.userInfo.userId
}, {}, res => {
if (res.success) {
this.$message.success('提交成功')
this.$router.push('/processCenter')
}
})
} else {
this.$message.warning('请输入反馈意见')
}
},
getData() {
return new Promise((resolve, reject) => {
inboundLiaisonDetail({
taskIds: this.taskIds,
pId: this.pId
}).then(res => {
if (res) {
const processForm = JSON.parse(res.mesg)
this.getFormFieldList(processForm)
}
let data = JSON.parse(res.mesg)
this.form.cid = data.cid
this.form.endTime = data.endTime
this.form.cname = data.cname
this.form.fjList = data.fjList
this.form.fjListId = data.fjListId
this.json = data
this.feedbackDept = this.json.feedbackDept
console.log('485',this.feedbackDept)
}).catch(e => {
});
});
},
/**
* @description: 动态表单读取
*/
getFormFieldList(item) {
this.$nextTick(() => {
this.form = JSON.parse(JSON.stringify(item));
this.form.cid = item.form.cid
});
},
},
mounted() {
this.getHistoryData();
this.getData();
}
};
</script>
<style lang="less" scoped>
@import '~@/assets/styles/style';
.zdrzbzORzchgxxmsc-step6 {
/deep/ .el-drawer__container {
.prc-content-border {
border: none;
padding: 0 20px 0;
}
}
.fileClass {
cursor: pointer;
}
.fileClass:hover {
color: #0c91e5;
}
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;
.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>
@@ -0,0 +1,567 @@
<template>
<div class="zdrzbzORzchgxxmsc-step7-1">
<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 === '2' ? 'active' : ''" @click="handleTabs('2')">审批历史</div>
</div>
<div class="content" v-show="active === '1'">
<div style="flex: auto; overflow: auto;">
<el-form
ref="zdrzbzORzchgxxmscForm"
:model="form"
:rules="formRules"
class="label-input-form"
label-width="210px"
>
<ProcessTitle>
<template slot="title">基础信息</template>
</ProcessTitle>
<!--这个div是事业部信息-->
<div style="height: 430px" v-if="feedbackDept === '1'">
<el-table
ref="multipleTable"
tooltip-effect="dark"
border
style="width: 100%;"
height="100%"
:header-cell-style="{background: '#E8E8E8', color: '#333333', fontSize: '16px',
fontWeight: 'bold', height: '48px'}">
<el-table-column
type="selection"
width="55"
align="center">
</el-table-column>
<el-table-column
label="标准编号/政策编号"
align="center"
width="150"
>
</el-table-column>
<el-table-column
show-overflow-tooltip
prop="standName"
label="标准名称/政策名称"
min-width="150"
align="center"
>
</el-table-column>
<el-table-column
prop="issueTime"
sortable="custom"
width="120"
align="center"
label="产品类型">
</el-table-column>
<el-table-column
prop="SSRQ"
sortable="custom"
align="center"
width="120"
label="实施日期">
</el-table-column>
<el-table-column
prop="SSRQ"
sortable="custom"
align="center"
width="120"
label="实施要求">
</el-table-column>
<el-table-column
prop="SSRQ"
sortable="custom"
align="center"
width="130"
label="资源符合情况">
</el-table-column>
<el-table-column
prop="SSRQ"
sortable="custom"
align="center"
width="120"
label="开发计划">
</el-table-column>
<el-table-column
prop="SSRQ"
sortable="custom"
align="center"
width="120"
label="SOP时间">
</el-table-column>
<el-table-column
prop="SSRQ"
sortable="custom"
align="center"
width="120"
label="完成情况">
</el-table-column>
<el-table-column
prop="SSRQ"
sortable="custom"
align="center"
width="400"
label="SOP时间超过法规时限的空档期的业务应对方案">
</el-table-column>
</el-table>
</div>
<!--这个div是产品规划部信息-->
<div style="height: 430px" v-else-if="feedbackDept === '2'">
<el-table
ref="multipleTable"
tooltip-effect="dark"
border
style="width: 100%;"
height="100%"
:header-cell-style="{background: '#E8E8E8', color: '#333333', fontSize: '16px',
fontWeight: 'bold', height: '48px'}">
<el-table-column
type="selection"
width="55"
align="center">
</el-table-column>
<el-table-column
type="index"
label="序号"
width="55"
align="center">
</el-table-column>
<el-table-column
label="业务"
align="center"
width="150"
>
</el-table-column>
<el-table-column
show-overflow-tooltip
prop="standName"
label="平台"
min-width="150"
align="center"
>
</el-table-column>
<el-table-column
show-overflow-tooltip
prop="standName"
label="项目"
min-width="150"
align="center"
>
</el-table-column>
<el-table-column
show-overflow-tooltip
prop="standName"
label="项目描述"
min-width="150"
align="center"
>
</el-table-column>
<el-table-column
show-overflow-tooltip
prop="standName"
label="当前节点"
min-width="150"
align="center"
>
</el-table-column>
<el-table-column
show-overflow-tooltip
prop="standName"
label="概念状态"
min-width="150"
align="center"
>
</el-table-column>
<el-table-column
prop="SSRQ"
align="center"
width="150"
label="概念计划下发时间">
</el-table-column>
<el-table-column
prop="SSRQ"
align="center"
width="120"
label="概念修订计划">
</el-table-column>
<el-table-column
prop="SSRQ"
align="center"
width="400"
label="其他说明">
</el-table-column>
</el-table>
</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="active === '2'">
<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"
sortable="custom"
>
</el-table-column>
<el-table-column
prop="assignee"
label="任务受理人"
align="center"
sortable="custom"
>
</el-table-column>
<el-table-column
prop="createTime"
label="创建时间"
sortable="custom"
align="center">
<template slot-scope="scope">
<span>{{ scope.row.createTime ? $moment(scope.row.createTime).format("YYYY-MM-DD") : "" }}</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") : "" }}</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 ? "已完成" : "未完成" }}</span>
</template>
</el-table-column>
</el-table>
</div>
<ProcessFooter
show-submit
show-save
:submitLoading="isSubmit"
:saveLoading="saveLoading"
show-transfer
@transfer="handleTransfer"
@save="handleSave"
@submit="handleSubmit"
@back="handleSubmitNo"
>
</ProcessFooter>
<Role-tree
check-box
is-title="转办处理人"
:is-visible.sync="drawerModal"
@checkedRole="checkedRole"
></Role-tree>
</div>
</template>
<script>
import ProcessHeader from "../../components/ProcessHeader";
import ProcessFooter from "../../components/ProcessFooter";
import ProcessTitle from "../../components/ProcessTitle";
import {inboundLiaisonDetail, processCreateStand, saveTaskForPub, changeAssigneeNew} from "api/process";
import axios from "axios";
export default {
name: "zdrzbzORzchgxxmscStep7-1",
data() {
return {
//用来判断反馈情况的是哪个部门,1代表各事业部,2代表产品规划部,0代表其他部门
feedbackDept: "",
drawerModal: false,
histortData: [],
commentText: "",
taskIds: this.$route.query.taskIds,
pId: this.$route.query.prcId,
nodeList: [],
type: "",
modalshowflag: false, // drawer开关
drawerTitle: "", //drawer标题
textarea: "", // 意见
ListModel: false, // 新增编辑抽屉开关
active: "1", // 默认显示
isSubmit: false,
saveLoading: false,
form: {
cid: "", // 政策编号
endTime: "", // 责任部门领导审批 截止时间
cname: "", // 名称
fjList: [],
fjListId: '',
responUserList: "",
responUserListName: ""
},
formRules: {
responUserList: [
{required: true, message: "请选择责任人", trigger: "change"}
]
},
json: {}
};
},
components: {
ProcessHeader,
ProcessFooter,
ProcessTitle
},
methods: {
handleTransfer() {
this.drawerModal = true
},
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.processNum()
this.$router.push({path: '/processCenter?tabsName=ProcessCenter'})
} else {
this.$message.warning(res.message)
}
})
},
// 请求转换流程图
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)
})
},
getHistoryData() {
this.$http.get("lawss/activiti/get_list_by_instance", {
prcNum: this.$route.query.prcNum
}, {}, res => {
this.histortData = res;
}, e => {
});
},
checkedRole2(data) {
var idList = "";
var nameList = "";
data.forEach(item => {
if (nameList.length > 0) {
nameList += ",";
idList += ",";
}
idList += item.id;
nameList += item.name;
});
this.form.responUserList = idList;
this.form.responUserListName = nameList;
},
choiceZRR() {
this.nodeList = [];
if (this.form.responUserList.length > 0) {
this.nodeList = this.form.responUserList.split(",");
}
this.modalshowflag = true;
},
handleTabs(name) {
this.active = name;
},
//保存事件
handleSave() {
this.saveLoading = true;
let _formData = new FormData();
_formData.append("id", this.bpnId || "");
_formData.append("prcType", "3");
_formData.append("taskIds", this.taskIds);
_formData.append("json", JSON.stringify({
form: this.form,
commentText: this.commentText
}));
saveTaskForPub(_formData).then(res => {
this.saveLoading = false;
this.$message.success("保存成功");
this.bpnId = res.result;
}).catch(e => {
this.saveLoading = false;
});
},
handleSubmit() {
this.$refs["zdrzbzORzchgxxmscForm"].validate((valid) => {
if (valid) {
this.isSubmit = true;
var json = this.json;
json.commentText = this.commentText;
json.responUserList = this.form.responUserList;
json.responUserListName = this.form.responUserListName;
json.introduce = false;
this.$http.post("lawss/activiti/completeTask", {
json: JSON.stringify(json),
taskId: this.taskIds,
userId: this.$store.getters.userInfo.userId
}, {}, res => {
if (res.success) {
this.$message.success("提交成功");
this.$router.push("/processCenter");
}
this.isSubmit = false;
});
} else {
return this.$message.warning("请完善基础信息");
}
});
},
handleSubmitNo() {
if (this.commentText) {
var json = this.json
json.actionFlag = 1
json.commentText = this.commentText
this.$http.post('lawss/activiti/completeTask', {
json: JSON.stringify(json),
taskId: this.taskIds,
userId: this.$store.getters.userInfo.userId
}, {}, res => {
if (res.success) {
this.$message.success('提交成功')
this.$router.push('/processCenter')
}
})
} else {
this.$message.warning('请输入反馈意见')
}
},
getData() {
return new Promise((resolve, reject) => {
inboundLiaisonDetail({
taskIds: this.taskIds,
pId: this.pId
}).then(res => {
let data = JSON.parse(res.mesg)
this.form.cid = data.cid
this.form.endTime = data.endTime
this.form.cname = data.cname
this.form.fjList = data.fjList
this.form.fjListId = data.fjListId
this.json = data
this.feedbackDept = this.json.feedbackDept
}).catch(e => {
});
});
}
},
mounted() {
this.getHistoryData();
this.getData();
}
};
</script>
<style lang="less" scoped>
@import '~@/assets/styles/style';
.zdrzbzORzchgxxmsc-step7-1 {
/deep/ .el-drawer__container {
.prc-content-border {
border: none;
padding: 0 20px 0;
}
}
.fileClass {
cursor: pointer;
}
.fileClass:hover {
color: #0c91e5;
}
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;
.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>
@@ -0,0 +1,485 @@
<template>
<div class="zdrzbzORzchgxxmsc-step7-2">
<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 === '2' ? 'active' : ''" @click="handleTabs('2')">审批历史</div>
</div>
<div class="content" v-show="active === '1'">
<div style="flex: auto; overflow: auto;">
<el-form
ref="bzzqyjForm"
:model="form"
:rules="formRules"
class="label-input-form"
label-width="210px"
>
<ProcessTitle>
<template slot="title">基础信息</template>
</ProcessTitle>
<div style="height: 450px">
<el-table
ref="multipleTable"
tooltip-effect="dark"
border
style="width: 100%;"
height="100%"
:header-cell-style="{background: '#E8E8E8', color: '#333333', fontSize: '16px',
fontWeight: 'bold', height: '48px'}">
<el-table-column
type="selection"
width="55"
align="center">
</el-table-column>
<el-table-column
type="index"
label="序号"
width="55"
align="center">
</el-table-column>
<el-table-column
label="业务"
align="center"
width="150"
>
</el-table-column>
<el-table-column
show-overflow-tooltip
prop="standName"
label="平台"
min-width="150"
align="center"
>
</el-table-column>
<el-table-column
show-overflow-tooltip
prop="standName"
label="项目"
min-width="150"
align="center"
>
</el-table-column>
<el-table-column
show-overflow-tooltip
prop="standName"
label="项目描述"
min-width="150"
align="center"
>
</el-table-column>
<el-table-column
show-overflow-tooltip
prop="standName"
label="当前节点"
min-width="150"
align="center"
>
</el-table-column>
<el-table-column
show-overflow-tooltip
prop="standName"
label="概念状态"
min-width="150"
align="center"
>
</el-table-column>
<el-table-column
prop="SSRQ"
align="center"
width="150"
label="概念计划下发时间">
</el-table-column>
<el-table-column
prop="SSRQ"
align="center"
width="120"
label="概念修订计划">
</el-table-column>
<el-table-column
prop="SSRQ"
align="center"
width="400"
label="其他说明">
</el-table-column>
<el-table-column
prop="SSRQ"
fixed="right"
align="center"
width="200"
label="是否风险项">
</el-table-column>
</el-table>
</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="active === '2'">
<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"
sortable="custom"
>
</el-table-column>
<el-table-column
prop="assignee"
label="任务受理人"
align="center"
sortable="custom"
>
</el-table-column>
<el-table-column
prop="createTime"
label="创建时间"
sortable="custom"
align="center">
<template slot-scope="scope">
<span>{{ scope.row.createTime ? $moment(scope.row.createTime).format("YYYY-MM-DD") : "" }}</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") : "" }}</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 ? "已完成" : "未完成" }}</span>
</template>
</el-table-column>
</el-table>
</div>
<ProcessFooter
show-submit
:submitLoading="isSubmit"
:saveLoading="saveLoading"
show-transfer
@transfer="handleTransfer"
@save="handleSave"
@submit="handleSubmit"
show-back
@back="handleSubmitNo"
approval
submitBTNText="同意"
>
</ProcessFooter>
<Role-tree
check-box
is-title="转办处理人"
:is-visible.sync="drawerModal"
@checkedRole="checkedRole"
></Role-tree>
</div>
</template>
<script>
import ProcessHeader from "../../components/ProcessHeader";
import ProcessFooter from "../../components/ProcessFooter";
import ProcessTitle from "../../components/ProcessTitle";
import {inboundLiaisonDetail, processCreateStand, saveTaskForPub, changeAssigneeNew} from "api/process";
import axios from "axios";
export default {
name: "zdrzbzORzchgxxmscStep7-2",
data() {
return {
drawerModal: false,
histortData: [],
commentText: "",
taskIds: this.$route.query.taskIds,
pId: this.$route.query.prcId,
nodeList: [],
type: "",
modalshowflag: false, // drawer开关
drawerTitle: "", //drawer标题
textarea: "", // 意见
ListModel: false, // 新增编辑抽屉开关
active: "1", // 默认显示
isSubmit: false,
saveLoading: false,
form: {
cid: "", // 政策编号
endTime: "", // 责任部门领导审批 截止时间
cname: "", // 名称
fjList: [],
fjListId: '',
responUserList: "",
responUserListName: ""
},
formRules: {
responUserList: [
{required: true, message: "请选择责任人", trigger: "change"}
]
},
json: {}
};
},
components: {
ProcessHeader,
ProcessFooter,
ProcessTitle
},
methods: {
handleTransfer() {
this.drawerModal = true
},
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.processNum()
this.$router.push({path: '/processCenter?tabsName=ProcessCenter'})
} else {
this.$message.warning(res.message)
}
})
},
// 请求转换流程图
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)
})
},
getHistoryData() {
this.$http.get("lawss/activiti/get_list_by_instance", {
prcNum: this.$route.query.prcNum
}, {}, res => {
this.histortData = res;
}, e => {
});
},
checkedRole2(data) {
var idList = "";
var nameList = "";
data.forEach(item => {
if (nameList.length > 0) {
nameList += ",";
idList += ",";
}
idList += item.id;
nameList += item.name;
});
this.form.responUserList = idList;
this.form.responUserListName = nameList;
},
choiceZRR() {
this.nodeList = [];
if (this.form.responUserList.length > 0) {
this.nodeList = this.form.responUserList.split(",");
}
this.modalshowflag = true;
},
handleTabs(name) {
this.active = name;
},
//保存事件
handleSave() {
this.saveLoading = true;
let _formData = new FormData();
_formData.append("id", this.bpnId || "");
_formData.append("prcType", "3");
_formData.append("taskIds", this.taskIds);
_formData.append("json", JSON.stringify({
form: this.form,
commentText: this.commentText
}));
saveTaskForPub(_formData).then(res => {
this.saveLoading = false;
this.$message.success("保存成功");
this.bpnId = res.result;
}).catch(e => {
this.saveLoading = false;
});
},
handleSubmit() {
this.$refs["bzzqyjForm"].validate((valid) => {
if (valid) {
this.isSubmit = true;
var json = this.json;
json.commentText = this.commentText;
json.responUserList = this.form.responUserList;
json.responUserListName = this.form.responUserListName;
json.introduce = false;
this.$http.post("lawss/activiti/completeTask", {
json: JSON.stringify(json),
taskId: this.taskIds,
userId: this.$store.getters.userInfo.userId
}, {}, res => {
if (res.success) {
this.$message.success("提交成功");
this.$router.push("/processCenter");
}
this.isSubmit = false;
});
} else {
return this.$message.warning("请完善基础信息");
}
});
},
handleSubmitNo() {
if (this.commentText) {
var json = this.json
json.actionFlag = 1
json.commentText = this.commentText
this.$http.post('lawss/activiti/completeTask', {
json: JSON.stringify(json),
taskId: this.taskIds,
userId: this.$store.getters.userInfo.userId
}, {}, res => {
if (res.success) {
this.$message.success('提交成功')
this.$router.push('/processCenter')
}
})
} else {
this.$message.warning('请输入反馈意见')
}
},
getData() {
return new Promise((resolve, reject) => {
inboundLiaisonDetail({
taskIds: this.taskIds,
pId: this.pId
}).then(res => {
let data = JSON.parse(res.mesg)
this.form.cid = data.cid
this.form.endTime = data.endTime
this.form.cname = data.cname
this.form.fjList = data.fjList
this.form.fjListId = data.fjListId
this.json = data
}).catch(e => {
});
});
}
},
mounted() {
this.getHistoryData();
this.getData();
}
};
</script>
<style lang="less" scoped>
@import '~@/assets/styles/style';
.zdrzbzORzchgxxmsc-step7-2 {
/deep/ .el-drawer__container {
.prc-content-border {
border: none;
padding: 0 20px 0;
}
}
.fileClass {
cursor: pointer;
}
.fileClass:hover {
color: #0c91e5;
}
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;
.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>
@@ -0,0 +1,460 @@
<template>
<div class="zdrzbzORzchgxxmsc-step8-1">
<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 === '2' ? 'active' : ''" @click="handleTabs('2')">审批历史</div>
</div>
<div class="content" v-show="active === '1'">
<div style="flex: auto; overflow: auto;">
<el-form
ref="bzzqyjForm"
:model="form"
:rules="formRules"
class="label-input-form"
label-width="210px"
>
<ProcessTitle>
<template slot="title">基础信息</template>
</ProcessTitle>
<el-table
ref="multipleTable"
:data="data"
tooltip-effect="dark"
border
style="width: 100%; flex: auto;"
height="450px"
class="drag-table"
:default-sort="{prop: 'chapterNumber', order: 'ascending'}"
:header-cell-style="{background: '#E8E8E8', color: '#333333', fontSize: '16px',
fontWeight: 'bold', height: '48px'}">
<el-table-column
label="标准编号/政策编号"
align="center"
width="150"
>
</el-table-column>
<el-table-column
show-overflow-tooltip
prop="standName"
label="标准名称/政策名称"
min-width="150"
align="center"
>
</el-table-column>
<el-table-column
prop="issueTime"
sortable="custom"
width="120"
align="center"
label="产品类型">
</el-table-column>
<el-table-column
prop="SSRQ"
sortable="custom"
align="center"
width="120"
label="实施日期">
</el-table-column>
<el-table-column
prop="SSRQ"
sortable="custom"
align="center"
width="120"
label="实施要求">
</el-table-column>
<el-table-column
prop="SSRQ"
sortable="custom"
align="center"
width="130"
label="资源符合情况">
</el-table-column>
<el-table-column
prop="SSRQ"
sortable="custom"
align="center"
width="120"
label="开发计划">
</el-table-column>
<el-table-column
prop="SSRQ"
sortable="custom"
align="center"
width="120"
label="SOP时间">
</el-table-column>
<el-table-column
prop="SSRQ"
sortable="custom"
align="center"
width="120"
label="完成情况">
</el-table-column>
<el-table-column
prop="SSRQ"
sortable="custom"
align="center"
width="400"
label="SOP时间超过法规时限的空档期的业务应对方案">
</el-table-column>
<el-table-column
prop="SSRQ"
fixed="right"
align="center"
width="200"
label="是否风险项">
</el-table-column>
</el-table>
</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="active === '2'">
<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"
sortable="custom"
>
</el-table-column>
<el-table-column
prop="assignee"
label="任务受理人"
align="center"
sortable="custom"
>
</el-table-column>
<el-table-column
prop="createTime"
label="创建时间"
sortable="custom"
align="center">
<template slot-scope="scope">
<span>{{ scope.row.createTime ? $moment(scope.row.createTime).format('YYYY-MM-DD') : '' }}</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') : '' }}</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 ? '已完成' : '未完成' }}</span>
</template>
</el-table-column>
</el-table>
</div>
<ProcessFooter
show-submit
:submitLoading="isSubmit"
:saveLoading="saveLoading"
show-transfer
@transfer="handleTransfer"
@save="handleSave"
@submit="handleSubmit"
show-back
@back="handleSubmitNo"
approval
submitBTNText="同意"
>
</ProcessFooter>
<Role-tree
check-box
is-title="转办处理人"
:is-visible.sync="drawerModal"
@checkedRole="checkedRole"
></Role-tree>
</div>
</template>
<script>
import ProcessHeader from '../../components/ProcessHeader'
import ProcessFooter from '../../components/ProcessFooter'
import ProcessTitle from '../../components/ProcessTitle'
import {inboundLiaisonDetail, processCreateStand, changeAssigneeNew} from 'api/process'
import axios from "axios";
export default {
name: "zdrzbzORzchgxxmscStep8-1",
data() {
return {
drawerModal: false,
histortData: [],
data: [],
commentText: '',
taskIds: this.$route.query.taskIds,
pId: this.$route.query.prcId,
roleRow: {},
nodeList: [],
type: '',
defaultProps: {
children: 'children',
label: 'name'
},
treeData: [], // 人员数据
modalshowflag: false, // drawer开关
drawerTitle: '', //drawer标题
textarea: '', // 意见
ListModel: false, // 新增编辑抽屉开关
active: '1', // 默认显示
isSubmit: false,
saveLoading: false,
form: {
cid: '', // 编号
endTime: '', // 结束日期
cname: '', // 名称
fjList: [],
fjListId: '',
},
formRules: {
responUserList: [
{required: true, message: '请选择责任人', trigger: 'change'},
]
},
json: {}
}
},
components: {
ProcessHeader,
ProcessFooter,
ProcessTitle
},
methods: {
handleTransfer() {
this.drawerModal = true
},
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.processNum()
this.$router.push({path: '/processCenter?tabsName=ProcessCenter'})
} else {
this.$message.warning(res.message)
}
})
},
// 请求转换流程图
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)
})
},
getHistoryData() {
this.$http.get('lawss/activiti/get_list_by_instance', {
prcNum: this.$route.query.prcNum,
}, {}, res => {
this.histortData = res
}, e => {
})
},
handleTabs(name) {
this.active = name
},
handleSave() {
},
handleSubmit() {
this.isSubmit = true
var json = this.json
//这个就是原来的actionFlag,用来表示流程是驳回还是同意
json.actionFlag = 0
json.commentText = this.commentText
json.responUserList = this.form.responUserList;
json.responUserListName = this.form.responUserListName;
json.introduce = false;
this.$http.post('lawss/activiti/completeTask', {
json: JSON.stringify(json),
taskId: this.taskIds,
userId: this.$store.getters.userInfo.userId
}, {}, res => {
if (res.success) {
this.$message.success('提交成功')
this.$router.push('/processCenter')
}
this.isSubmit = false
})
},
handleSubmitNo() {
if (this.commentText) {
var json = this.json
//这个就是原来的actionFlag,用来表示流程是驳回还是同意
json.actionFlag = 1
json.commentText = this.commentText
this.$http.post('lawss/activiti/completeTask', {
json: JSON.stringify(json),
taskId: this.taskIds,
userId: this.$store.getters.userInfo.userId
}, {}, res => {
if (res.success) {
this.$message.success('提交成功')
this.$router.push('/processCenter')
}
})
} else {
this.$message.warning('请输入反馈意见')
}
},
getData() {
return new Promise((resolve, reject) => {
inboundLiaisonDetail({
taskIds: this.taskIds,
pId: this.pId
}).then(res => {
if (res) {
const processForm = JSON.parse(res.mesg)
this.getFormFieldList(processForm)
}
let data = JSON.parse(res.mesg)
console.log('355', data.form.cid);
this.form.fjList = data.fjList || data.form.fjList
this.form.fjListId = data.fjListId || data.form.fjListId
this.form.cid = data.cid || data.form.cid
this.form.endTime = data.endTime || data.form.endTime
this.form.cname = data.cname || data.form.cname
this.json = data
this.data = data.info || data.data
console.log('364', this.form.cid);
}).catch(e => {
})
})
},
/**
* @description: 动态表单读取
*/
getFormFieldList(item) {
this.$nextTick(() => {
this.form = JSON.parse(JSON.stringify(item));
this.form.cid = item.form.cid
});
},
},
mounted() {
this.getHistoryData()
this.getData()
}
}
</script>
<style lang="less" scoped>
@import '~@/assets/styles/style';
.zdrzbzORzchgxxmsc-step8-1 {
/deep/ .el-drawer__container {
.prc-content-border {
border: none;
padding: 0 20px 0;
}
}
.fileClass {
cursor: pointer;
}
.fileClass:hover {
color: #0c91e5;
}
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;
.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>
@@ -0,0 +1,462 @@
<template>
<div class="zdrzbzORzchgxxmsc-step8-2">
<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 === '2' ? 'active' : ''" @click="handleTabs('2')">审批历史</div>
</div>
<div class="content" v-show="active === '1'">
<div style="flex: auto; overflow: auto;">
<el-form
ref="bzzqyjForm"
:model="form"
:rules="formRules"
class="label-input-form"
label-width="210px"
>
<ProcessTitle>
<template slot="title">基础信息</template>
</ProcessTitle>
<el-table
ref="multipleTable"
:data="data"
tooltip-effect="dark"
border
style="width: 100%; flex: auto;"
height="450px"
class="drag-table"
:default-sort="{prop: 'chapterNumber', order: 'ascending'}"
:header-cell-style="{background: '#E8E8E8', color: '#333333', fontSize: '16px',
fontWeight: 'bold', height: '48px'}">
<el-table-column
type="selection"
width="55"
align="center">
</el-table-column>
<el-table-column
type="index"
label="序号"
width="55"
align="center">
</el-table-column>
<el-table-column
label="业务"
align="center"
width="150"
>
</el-table-column>
<el-table-column
show-overflow-tooltip
prop="standName"
label="平台"
min-width="150"
align="center"
>
</el-table-column>
<el-table-column
show-overflow-tooltip
prop="standName"
label="项目"
min-width="150"
align="center"
>
</el-table-column>
<el-table-column
show-overflow-tooltip
prop="standName"
label="项目描述"
min-width="150"
align="center"
>
</el-table-column>
<el-table-column
show-overflow-tooltip
prop="standName"
label="当前节点"
min-width="150"
align="center"
>
</el-table-column>
<el-table-column
show-overflow-tooltip
prop="standName"
label="概念状态"
min-width="150"
align="center"
>
</el-table-column>
<el-table-column
prop="SSRQ"
align="center"
width="150"
label="概念计划下发时间">
</el-table-column>
<el-table-column
prop="SSRQ"
align="center"
width="120"
label="概念修订计划">
</el-table-column>
<el-table-column
prop="SSRQ"
align="center"
width="400"
label="其他说明">
</el-table-column>
<el-table-column
prop="SSRQ"
fixed="right"
align="center"
width="200"
label="是否风险项">
</el-table-column>
</el-table>
</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="active === '2'">
<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"
sortable="custom"
>
</el-table-column>
<el-table-column
prop="assignee"
label="任务受理人"
align="center"
sortable="custom"
>
</el-table-column>
<el-table-column
prop="createTime"
label="创建时间"
sortable="custom"
align="center">
<template slot-scope="scope">
<span>{{ scope.row.createTime ? $moment(scope.row.createTime).format('YYYY-MM-DD') : '' }}</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') : '' }}</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 ? '已完成' : '未完成' }}</span>
</template>
</el-table-column>
</el-table>
</div>
<ProcessFooter
show-submit
:submitLoading="isSubmit"
:saveLoading="saveLoading"
show-transfer
@transfer="handleTransfer"
@save="handleSave"
@submit="handleSubmit"
show-back
@back="handleSubmitNo"
approval
submitBTNText="同意"
>
</ProcessFooter>
<Role-tree
check-box
is-title="转办处理人"
:is-visible.sync="drawerModal"
@checkedRole="checkedRole"
></Role-tree>
</div>
</template>
<script>
import ProcessHeader from '../../components/ProcessHeader'
import ProcessFooter from '../../components/ProcessFooter'
import ProcessTitle from '../../components/ProcessTitle'
import {inboundLiaisonDetail, processCreateStand, changeAssigneeNew} from 'api/process'
import axios from "axios";
export default {
name: "zdrzbzORzchgxxmscStep8-2",
data() {
return {
drawerModal: false,
histortData: [],
data: [],
commentText: '',
taskIds: this.$route.query.taskIds,
pId: this.$route.query.prcId,
roleRow: {},
nodeList: [],
type: '',
defaultProps: {
children: 'children',
label: 'name'
},
treeData: [], // 人员数据
modalshowflag: false, // drawer开关
drawerTitle: '', //drawer标题
textarea: '', // 意见
ListModel: false, // 新增编辑抽屉开关
active: '1', // 默认显示
isSubmit: false,
saveLoading: false,
form: {
cid: '', // 编号
endTime: '', // 结束日期
cname: '', // 名称
fjList: [],
fjListId: '',
},
formRules: {
responUserList: [
{required: true, message: '请选择责任人', trigger: 'change'},
]
},
json: {}
}
},
components: {
ProcessHeader,
ProcessFooter,
ProcessTitle
},
methods: {
handleTransfer() {
this.drawerModal = true
},
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.processNum()
this.$router.push({path: '/processCenter?tabsName=ProcessCenter'})
} else {
this.$message.warning(res.message)
}
})
},
// 请求转换流程图
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)
})
},
getHistoryData() {
this.$http.get('lawss/activiti/get_list_by_instance', {
prcNum: this.$route.query.prcNum,
}, {}, res => {
this.histortData = res
}, e => {
})
},
handleTabs(name) {
this.active = name
},
handleSave() {
},
handleSubmit() {
this.isSubmit = true
var json = this.json
//这个就是原来的actionFlag,用来表示流程是驳回还是同意
json.actionFlag = 0
json.commentText = this.commentText
this.$http.post('lawss/activiti/completeTask', {
json: JSON.stringify(json),
taskId: this.taskIds,
userId: this.$store.getters.userInfo.userId
}, {}, res => {
if (res.success) {
this.$message.success('提交成功')
this.$router.push('/processCenter')
}
this.isSubmit = false
})
},
handleSubmitNo() {
if (this.commentText) {
var json = this.json
//这个就是原来的actionFlag,用来表示流程是驳回还是同意
json.actionFlag = 1
json.commentText = this.commentText
this.$http.post('lawss/activiti/completeTask', {
json: JSON.stringify(json),
taskId: this.taskIds,
userId: this.$store.getters.userInfo.userId
}, {}, res => {
if (res.success) {
this.$message.success('提交成功')
this.$router.push('/processCenter')
}
})
} else {
this.$message.warning('请输入反馈意见')
}
},
getData() {
return new Promise((resolve, reject) => {
inboundLiaisonDetail({
taskIds: this.taskIds,
pId: this.pId
}).then(res => {
if (res) {
const processForm = JSON.parse(res.mesg)
this.getFormFieldList(processForm)
}
let data = JSON.parse(res.mesg)
console.log('355', data.form.cid);
this.form.fjList = data.fjList || data.form.fjList
this.form.fjListId = data.fjListId || data.form.fjListId
this.form.cid = data.cid || data.form.cid
this.form.endTime = data.endTime || data.form.endTime
this.form.cname = data.cname || data.form.cname
this.json = data
this.data = data.info || data.data
console.log('364', this.form.cid);
}).catch(e => {
})
})
},
/**
* @description: 动态表单读取
*/
getFormFieldList(item) {
this.$nextTick(() => {
this.form = JSON.parse(JSON.stringify(item));
this.form.cid = item.form.cid
});
},
},
mounted() {
this.getHistoryData()
this.getData()
}
}
</script>
<style lang="less" scoped>
@import '~@/assets/styles/style';
.zdrzbzORzchgxxmsc-step8-2 {
/deep/ .el-drawer__container {
.prc-content-border {
border: none;
padding: 0 20px 0;
}
}
.fileClass {
cursor: pointer;
}
.fileClass:hover {
color: #0c91e5;
}
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;
.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>
@@ -0,0 +1,583 @@
<template>
<div class="zdrzbzORzchgxxmsc-step8">
<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 === '2' ? 'active' : ''" @click="handleTabs('2')">审批历史</div>
</div>
<div class="content" v-show="active === '1'">
<div style="flex: auto; overflow: auto;">
<el-form
ref="zdrzbzORzchgxxmscForm"
:model="form"
:rules="formRules"
class="label-input-form"
label-width="210px"
>
<ProcessTitle>
<template slot="title">基础信息</template>
</ProcessTitle>
<!--这个div是事业部信息-->
<div style="height: 430px" v-if="feedbackDept === '1'">
<el-table
ref="multipleTable"
tooltip-effect="dark"
border
style="width: 100%;"
height="100%"
:header-cell-style="{background: '#E8E8E8', color: '#333333', fontSize: '16px',
fontWeight: 'bold', height: '48px'}">
<el-table-column
type="selection"
width="55"
align="center">
</el-table-column>
<el-table-column
label="标准编号/政策编号"
align="center"
width="150"
>
</el-table-column>
<el-table-column
show-overflow-tooltip
prop="standName"
label="标准名称/政策名称"
min-width="150"
align="center"
>
</el-table-column>
<el-table-column
prop="issueTime"
sortable="custom"
width="120"
align="center"
label="产品类型">
</el-table-column>
<el-table-column
prop="SSRQ"
sortable="custom"
align="center"
width="120"
label="实施日期">
</el-table-column>
<el-table-column
prop="SSRQ"
sortable="custom"
align="center"
width="120"
label="实施要求">
</el-table-column>
<el-table-column
prop="SSRQ"
sortable="custom"
align="center"
width="130"
label="资源符合情况">
</el-table-column>
<el-table-column
prop="SSRQ"
sortable="custom"
align="center"
width="120"
label="开发计划">
</el-table-column>
<el-table-column
prop="SSRQ"
sortable="custom"
align="center"
width="120"
label="SOP时间">
</el-table-column>
<el-table-column
prop="SSRQ"
sortable="custom"
align="center"
width="120"
label="完成情况">
</el-table-column>
<el-table-column
prop="SSRQ"
sortable="custom"
align="center"
width="400"
label="SOP时间超过法规时限的空档期的业务应对方案">
</el-table-column>
</el-table>
</div>
<!--这个div是产品规划部信息-->
<div style="height: 430px" v-else-if="feedbackDept === '2'">
<el-table
ref="multipleTable"
tooltip-effect="dark"
border
style="width: 100%;"
height="100%"
:header-cell-style="{background: '#E8E8E8', color: '#333333', fontSize: '16px',
fontWeight: 'bold', height: '48px'}">
<el-table-column
type="selection"
width="55"
align="center">
</el-table-column>
<el-table-column
type="index"
label="序号"
width="55"
align="center">
</el-table-column>
<el-table-column
label="业务"
align="center"
width="150"
>
</el-table-column>
<el-table-column
show-overflow-tooltip
prop="standName"
label="平台"
min-width="150"
align="center"
>
</el-table-column>
<el-table-column
show-overflow-tooltip
prop="standName"
label="项目"
min-width="150"
align="center"
>
</el-table-column>
<el-table-column
show-overflow-tooltip
prop="standName"
label="项目描述"
min-width="150"
align="center"
>
</el-table-column>
<el-table-column
show-overflow-tooltip
prop="standName"
label="当前节点"
min-width="150"
align="center"
>
</el-table-column>
<el-table-column
show-overflow-tooltip
prop="standName"
label="概念状态"
min-width="150"
align="center"
>
</el-table-column>
<el-table-column
prop="SSRQ"
align="center"
width="150"
label="概念计划下发时间">
</el-table-column>
<el-table-column
prop="SSRQ"
align="center"
width="120"
label="概念修订计划">
</el-table-column>
<el-table-column
prop="SSRQ"
align="center"
width="400"
label="其他说明">
</el-table-column>
</el-table>
</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="active === '2'">
<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"
sortable="custom"
>
</el-table-column>
<el-table-column
prop="assignee"
label="任务受理人"
align="center"
sortable="custom"
>
</el-table-column>
<el-table-column
prop="createTime"
label="创建时间"
sortable="custom"
align="center">
<template slot-scope="scope">
<span>{{ scope.row.createTime ? $moment(scope.row.createTime).format("YYYY-MM-DD") : "" }}</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") : "" }}</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 ? "已完成" : "未完成" }}</span>
</template>
</el-table-column>
</el-table>
</div>
<ProcessFooter
show-submit
:submitLoading="isSubmit"
:saveLoading="saveLoading"
show-transfer
@transfer="handleTransfer"
@save="handleSave"
@submit="handleSubmit"
show-back
@back="handleSubmitNo"
approval
submitBTNText="同意"
>
</ProcessFooter>
<Role-tree
check-box
is-title="转办处理人"
:is-visible.sync="drawerModal"
@checkedRole="checkedRole"
></Role-tree>
</div>
</template>
<script>
import ProcessHeader from "../../components/ProcessHeader";
import ProcessFooter from "../../components/ProcessFooter";
import ProcessTitle from "../../components/ProcessTitle";
import {inboundLiaisonDetail, processCreateStand, saveTaskForPub, changeAssigneeNew} from "api/process";
import axios from "axios";
export default {
name: "zdrzbzORzchgxxmscStep8",
data() {
return {
//用来判断反馈情况的是哪个部门,1代表各事业部,2代表产品规划部,0代表其他部门
feedbackDept: "",
drawerModal: false,
histortData: [],
commentText: "",
taskIds: this.$route.query.taskIds,
pId: this.$route.query.prcId,
nodeList: [],
type: "",
modalshowflag: false, // drawer开关
drawerTitle: "", //drawer标题
textarea: "", // 意见
ListModel: false, // 新增编辑抽屉开关
active: "1", // 默认显示
isSubmit: false,
saveLoading: false,
form: {
cid: "", // 政策编号
endTime: "", // 责任部门领导审批 截止时间
cname: "", // 名称
fjList: [],
fjListId: '',
responUserList: "",
responUserListName: ""
},
formRules: {
responUserList: [
{required: true, message: "请选择责任人", trigger: "change"}
]
},
json: {}
};
},
components: {
ProcessHeader,
ProcessFooter,
ProcessTitle
},
methods: {
handleTransfer() {
this.drawerModal = true
},
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.processNum()
this.$router.push({path: '/processCenter?tabsName=ProcessCenter'})
} else {
this.$message.warning(res.message)
}
})
},
// 请求转换流程图
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)
})
},
getHistoryData() {
this.$http.get("lawss/activiti/get_list_by_instance", {
prcNum: this.$route.query.prcNum
}, {}, res => {
this.histortData = res;
}, e => {
});
},
checkedRole2(data) {
var idList = "";
var nameList = "";
data.forEach(item => {
if (nameList.length > 0) {
nameList += ",";
idList += ",";
}
idList += item.id;
nameList += item.name;
});
this.form.responUserList = idList;
this.form.responUserListName = nameList;
},
choiceZRR() {
this.nodeList = [];
if (this.form.responUserList.length > 0) {
this.nodeList = this.form.responUserList.split(",");
}
this.modalshowflag = true;
},
handleTabs(name) {
this.active = name;
},
//保存事件
handleSave() {
this.saveLoading = true;
let _formData = new FormData();
_formData.append("id", this.bpnId || "");
_formData.append("prcType", "3");
_formData.append("taskIds", this.taskIds);
_formData.append("json", JSON.stringify({
form: this.form,
commentText: this.commentText
}));
saveTaskForPub(_formData).then(res => {
this.saveLoading = false;
this.$message.success("保存成功");
this.bpnId = res.result;
}).catch(e => {
this.saveLoading = false;
});
},
handleSubmit() {
this.$refs["zdrzbzORzchgxxmscForm"].validate((valid) => {
if (valid) {
this.isSubmit = true;
var json = this.json;
json.commentText = this.commentText;
json.responUserList = this.form.responUserList;
json.responUserListName = this.form.responUserListName;
json.introduce = false;
this.$http.post("lawss/activiti/completeTask", {
json: JSON.stringify(json),
taskId: this.taskIds,
userId: this.$store.getters.userInfo.userId
}, {}, res => {
if (res.success) {
this.$message.success("提交成功");
this.$router.push("/processCenter");
}
this.isSubmit = false;
});
} else {
return this.$message.warning("请完善基础信息");
}
});
},
handleSubmitNo() {
if (this.commentText) {
var json = this.json
json.actionFlag = 1
json.commentText = this.commentText
this.$http.post('lawss/activiti/completeTask', {
json: JSON.stringify(json),
taskId: this.taskIds,
userId: this.$store.getters.userInfo.userId
}, {}, res => {
if (res.success) {
this.$message.success('提交成功')
this.$router.push('/processCenter')
}
})
} else {
this.$message.warning('请输入反馈意见')
}
},
getData() {
return new Promise((resolve, reject) => {
inboundLiaisonDetail({
taskIds: this.taskIds,
pId: this.pId
}).then(res => {
if (res) {
const processForm = JSON.parse(res.mesg)
this.getFormFieldList(processForm)
}
let data = JSON.parse(res.mesg)
this.form.cid = data.cid
this.form.endTime = data.endTime
this.form.cname = data.cname
this.form.fjList = data.fjList
this.form.fjListId = data.fjListId
this.json = data
this.feedbackDept = this.json.feedbackDept
console.log('485',this.feedbackDept)
}).catch(e => {
});
});
},
/**
* @description: 动态表单读取
*/
getFormFieldList(item) {
this.$nextTick(() => {
this.form = JSON.parse(JSON.stringify(item));
this.form.cid = item.form.cid
});
},
},
mounted() {
this.getHistoryData();
this.getData();
}
};
</script>
<style lang="less" scoped>
@import '~@/assets/styles/style';
.zdrzbzORzchgxxmsc-step8 {
/deep/ .el-drawer__container {
.prc-content-border {
border: none;
padding: 0 20px 0;
}
}
.fileClass {
cursor: pointer;
}
.fileClass:hover {
color: #0c91e5;
}
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;
.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>
@@ -0,0 +1,460 @@
<template>
<div class="zdrzbzORzchgxxmsc-step9-1">
<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 === '2' ? 'active' : ''" @click="handleTabs('2')">审批历史</div>
</div>
<div class="content" v-show="active === '1'">
<div style="flex: auto; overflow: auto;">
<el-form
ref="bzzqyjForm"
:model="form"
:rules="formRules"
class="label-input-form"
label-width="210px"
>
<ProcessTitle>
<template slot="title">基础信息</template>
</ProcessTitle>
<el-table
ref="multipleTable"
:data="data"
tooltip-effect="dark"
border
style="width: 100%; flex: auto;"
height="450px"
class="drag-table"
:default-sort="{prop: 'chapterNumber', order: 'ascending'}"
:header-cell-style="{background: '#E8E8E8', color: '#333333', fontSize: '16px',
fontWeight: 'bold', height: '48px'}">
<el-table-column
label="标准编号/政策编号"
align="center"
width="150"
>
</el-table-column>
<el-table-column
show-overflow-tooltip
prop="standName"
label="标准名称/政策名称"
min-width="150"
align="center"
>
</el-table-column>
<el-table-column
prop="issueTime"
sortable="custom"
width="120"
align="center"
label="产品类型">
</el-table-column>
<el-table-column
prop="SSRQ"
sortable="custom"
align="center"
width="120"
label="实施日期">
</el-table-column>
<el-table-column
prop="SSRQ"
sortable="custom"
align="center"
width="120"
label="实施要求">
</el-table-column>
<el-table-column
prop="SSRQ"
sortable="custom"
align="center"
width="130"
label="资源符合情况">
</el-table-column>
<el-table-column
prop="SSRQ"
sortable="custom"
align="center"
width="120"
label="开发计划">
</el-table-column>
<el-table-column
prop="SSRQ"
sortable="custom"
align="center"
width="120"
label="SOP时间">
</el-table-column>
<el-table-column
prop="SSRQ"
sortable="custom"
align="center"
width="120"
label="完成情况">
</el-table-column>
<el-table-column
prop="SSRQ"
sortable="custom"
align="center"
width="400"
label="SOP时间超过法规时限的空档期的业务应对方案">
</el-table-column>
<el-table-column
prop="SSRQ"
fixed="right"
align="center"
width="200"
label="是否风险项">
</el-table-column>
</el-table>
</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="active === '2'">
<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"
sortable="custom"
>
</el-table-column>
<el-table-column
prop="assignee"
label="任务受理人"
align="center"
sortable="custom"
>
</el-table-column>
<el-table-column
prop="createTime"
label="创建时间"
sortable="custom"
align="center">
<template slot-scope="scope">
<span>{{ scope.row.createTime ? $moment(scope.row.createTime).format('YYYY-MM-DD') : '' }}</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') : '' }}</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 ? '已完成' : '未完成' }}</span>
</template>
</el-table-column>
</el-table>
</div>
<ProcessFooter
show-submit
:submitLoading="isSubmit"
:saveLoading="saveLoading"
show-transfer
@transfer="handleTransfer"
@save="handleSave"
@submit="handleSubmit"
show-back
@back="handleSubmitNo"
approval
submitBTNText="同意"
>
</ProcessFooter>
<Role-tree
check-box
is-title="转办处理人"
:is-visible.sync="drawerModal"
@checkedRole="checkedRole"
></Role-tree>
</div>
</template>
<script>
import ProcessHeader from '../../components/ProcessHeader'
import ProcessFooter from '../../components/ProcessFooter'
import ProcessTitle from '../../components/ProcessTitle'
import {inboundLiaisonDetail, processCreateStand, changeAssigneeNew} from 'api/process'
import axios from "axios";
export default {
name: "zdrzbzORzchgxxmscStep9-1",
data() {
return {
drawerModal: false,
histortData: [],
data: [],
commentText: '',
taskIds: this.$route.query.taskIds,
pId: this.$route.query.prcId,
roleRow: {},
nodeList: [],
type: '',
defaultProps: {
children: 'children',
label: 'name'
},
treeData: [], // 人员数据
modalshowflag: false, // drawer开关
drawerTitle: '', //drawer标题
textarea: '', // 意见
ListModel: false, // 新增编辑抽屉开关
active: '1', // 默认显示
isSubmit: false,
saveLoading: false,
form: {
cid: '', // 编号
endTime: '', // 结束日期
cname: '', // 名称
fjList: [],
fjListId: '',
},
formRules: {
responUserList: [
{required: true, message: '请选择责任人', trigger: 'change'},
]
},
json: {}
}
},
components: {
ProcessHeader,
ProcessFooter,
ProcessTitle
},
methods: {
handleTransfer() {
this.drawerModal = true
},
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.processNum()
this.$router.push({path: '/processCenter?tabsName=ProcessCenter'})
} else {
this.$message.warning(res.message)
}
})
},
// 请求转换流程图
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)
})
},
getHistoryData() {
this.$http.get('lawss/activiti/get_list_by_instance', {
prcNum: this.$route.query.prcNum,
}, {}, res => {
this.histortData = res
}, e => {
})
},
handleTabs(name) {
this.active = name
},
handleSave() {
},
handleSubmit() {
this.isSubmit = true
var json = this.json
//这个就是原来的actionFlag,用来表示流程是驳回还是同意
json.actionFlag = 0
json.commentText = this.commentText
json.responUserList = this.form.responUserList;
json.responUserListName = this.form.responUserListName;
json.introduce = false;
this.$http.post('lawss/activiti/completeTask', {
json: JSON.stringify(json),
taskId: this.taskIds,
userId: this.$store.getters.userInfo.userId
}, {}, res => {
if (res.success) {
this.$message.success('提交成功')
this.$router.push('/processCenter')
}
this.isSubmit = false
})
},
handleSubmitNo() {
if (this.commentText) {
var json = this.json
//这个就是原来的actionFlag,用来表示流程是驳回还是同意
json.actionFlag = 1
json.commentText = this.commentText
this.$http.post('lawss/activiti/completeTask', {
json: JSON.stringify(json),
taskId: this.taskIds,
userId: this.$store.getters.userInfo.userId
}, {}, res => {
if (res.success) {
this.$message.success('提交成功')
this.$router.push('/processCenter')
}
})
} else {
this.$message.warning('请输入反馈意见')
}
},
getData() {
return new Promise((resolve, reject) => {
inboundLiaisonDetail({
taskIds: this.taskIds,
pId: this.pId
}).then(res => {
if (res) {
const processForm = JSON.parse(res.mesg)
this.getFormFieldList(processForm)
}
let data = JSON.parse(res.mesg)
console.log('355', data.form.cid);
this.form.fjList = data.fjList || data.form.fjList
this.form.fjListId = data.fjListId || data.form.fjListId
this.form.cid = data.cid || data.form.cid
this.form.endTime = data.endTime || data.form.endTime
this.form.cname = data.cname || data.form.cname
this.json = data
this.data = data.info || data.data
console.log('364', this.form.cid);
}).catch(e => {
})
})
},
/**
* @description: 动态表单读取
*/
getFormFieldList(item) {
this.$nextTick(() => {
this.form = JSON.parse(JSON.stringify(item));
this.form.cid = item.form.cid
});
},
},
mounted() {
this.getHistoryData()
this.getData()
}
}
</script>
<style lang="less" scoped>
@import '~@/assets/styles/style';
.zdrzbzORzchgxxmsc-step9-1 {
/deep/ .el-drawer__container {
.prc-content-border {
border: none;
padding: 0 20px 0;
}
}
.fileClass {
cursor: pointer;
}
.fileClass:hover {
color: #0c91e5;
}
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;
.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>
@@ -0,0 +1,462 @@
<template>
<div class="zdrzbzORzchgxxmsc-step9-2">
<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 === '2' ? 'active' : ''" @click="handleTabs('2')">审批历史</div>
</div>
<div class="content" v-show="active === '1'">
<div style="flex: auto; overflow: auto;">
<el-form
ref="bzzqyjForm"
:model="form"
:rules="formRules"
class="label-input-form"
label-width="210px"
>
<ProcessTitle>
<template slot="title">基础信息</template>
</ProcessTitle>
<el-table
ref="multipleTable"
:data="data"
tooltip-effect="dark"
border
style="width: 100%; flex: auto;"
height="450px"
class="drag-table"
:default-sort="{prop: 'chapterNumber', order: 'ascending'}"
:header-cell-style="{background: '#E8E8E8', color: '#333333', fontSize: '16px',
fontWeight: 'bold', height: '48px'}">
<el-table-column
type="selection"
width="55"
align="center">
</el-table-column>
<el-table-column
type="index"
label="序号"
width="55"
align="center">
</el-table-column>
<el-table-column
label="业务"
align="center"
width="150"
>
</el-table-column>
<el-table-column
show-overflow-tooltip
prop="standName"
label="平台"
min-width="150"
align="center"
>
</el-table-column>
<el-table-column
show-overflow-tooltip
prop="standName"
label="项目"
min-width="150"
align="center"
>
</el-table-column>
<el-table-column
show-overflow-tooltip
prop="standName"
label="项目描述"
min-width="150"
align="center"
>
</el-table-column>
<el-table-column
show-overflow-tooltip
prop="standName"
label="当前节点"
min-width="150"
align="center"
>
</el-table-column>
<el-table-column
show-overflow-tooltip
prop="standName"
label="概念状态"
min-width="150"
align="center"
>
</el-table-column>
<el-table-column
prop="SSRQ"
align="center"
width="150"
label="概念计划下发时间">
</el-table-column>
<el-table-column
prop="SSRQ"
align="center"
width="120"
label="概念修订计划">
</el-table-column>
<el-table-column
prop="SSRQ"
align="center"
width="400"
label="其他说明">
</el-table-column>
<el-table-column
prop="SSRQ"
fixed="right"
align="center"
width="200"
label="是否风险项">
</el-table-column>
</el-table>
</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="active === '2'">
<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"
sortable="custom"
>
</el-table-column>
<el-table-column
prop="assignee"
label="任务受理人"
align="center"
sortable="custom"
>
</el-table-column>
<el-table-column
prop="createTime"
label="创建时间"
sortable="custom"
align="center">
<template slot-scope="scope">
<span>{{ scope.row.createTime ? $moment(scope.row.createTime).format('YYYY-MM-DD') : '' }}</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') : '' }}</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 ? '已完成' : '未完成' }}</span>
</template>
</el-table-column>
</el-table>
</div>
<ProcessFooter
show-submit
:submitLoading="isSubmit"
:saveLoading="saveLoading"
show-transfer
@transfer="handleTransfer"
@save="handleSave"
@submit="handleSubmit"
show-back
@back="handleSubmitNo"
approval
submitBTNText="同意"
>
</ProcessFooter>
<Role-tree
check-box
is-title="转办处理人"
:is-visible.sync="drawerModal"
@checkedRole="checkedRole"
></Role-tree>
</div>
</template>
<script>
import ProcessHeader from '../../components/ProcessHeader'
import ProcessFooter from '../../components/ProcessFooter'
import ProcessTitle from '../../components/ProcessTitle'
import {inboundLiaisonDetail, processCreateStand, changeAssigneeNew} from 'api/process'
import axios from "axios";
export default {
name: "zdrzbzORzchgxxmscStep9-2",
data() {
return {
drawerModal: false,
histortData: [],
data: [],
commentText: '',
taskIds: this.$route.query.taskIds,
pId: this.$route.query.prcId,
roleRow: {},
nodeList: [],
type: '',
defaultProps: {
children: 'children',
label: 'name'
},
treeData: [], // 人员数据
modalshowflag: false, // drawer开关
drawerTitle: '', //drawer标题
textarea: '', // 意见
ListModel: false, // 新增编辑抽屉开关
active: '1', // 默认显示
isSubmit: false,
saveLoading: false,
form: {
cid: '', // 编号
endTime: '', // 结束日期
cname: '', // 名称
fjList: [],
fjListId: '',
},
formRules: {
responUserList: [
{required: true, message: '请选择责任人', trigger: 'change'},
]
},
json: {}
}
},
components: {
ProcessHeader,
ProcessFooter,
ProcessTitle
},
methods: {
handleTransfer() {
this.drawerModal = true
},
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.processNum()
this.$router.push({path: '/processCenter?tabsName=ProcessCenter'})
} else {
this.$message.warning(res.message)
}
})
},
// 请求转换流程图
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)
})
},
getHistoryData() {
this.$http.get('lawss/activiti/get_list_by_instance', {
prcNum: this.$route.query.prcNum,
}, {}, res => {
this.histortData = res
}, e => {
})
},
handleTabs(name) {
this.active = name
},
handleSave() {
},
handleSubmit() {
this.isSubmit = true
var json = this.json
//这个就是原来的actionFlag,用来表示流程是驳回还是同意
json.actionFlag = 0
json.commentText = this.commentText
this.$http.post('lawss/activiti/completeTask', {
json: JSON.stringify(json),
taskId: this.taskIds,
userId: this.$store.getters.userInfo.userId
}, {}, res => {
if (res.success) {
this.$message.success('提交成功')
this.$router.push('/processCenter')
}
this.isSubmit = false
})
},
handleSubmitNo() {
if (this.commentText) {
var json = this.json
//这个就是原来的actionFlag,用来表示流程是驳回还是同意
json.actionFlag = 1
json.commentText = this.commentText
this.$http.post('lawss/activiti/completeTask', {
json: JSON.stringify(json),
taskId: this.taskIds,
userId: this.$store.getters.userInfo.userId
}, {}, res => {
if (res.success) {
this.$message.success('提交成功')
this.$router.push('/processCenter')
}
})
} else {
this.$message.warning('请输入反馈意见')
}
},
getData() {
return new Promise((resolve, reject) => {
inboundLiaisonDetail({
taskIds: this.taskIds,
pId: this.pId
}).then(res => {
if (res) {
const processForm = JSON.parse(res.mesg)
this.getFormFieldList(processForm)
}
let data = JSON.parse(res.mesg)
console.log('355', data.form.cid);
this.form.fjList = data.fjList || data.form.fjList
this.form.fjListId = data.fjListId || data.form.fjListId
this.form.cid = data.cid || data.form.cid
this.form.endTime = data.endTime || data.form.endTime
this.form.cname = data.cname || data.form.cname
this.json = data
this.data = data.info || data.data
console.log('364', this.form.cid);
}).catch(e => {
})
})
},
/**
* @description: 动态表单读取
*/
getFormFieldList(item) {
this.$nextTick(() => {
this.form = JSON.parse(JSON.stringify(item));
this.form.cid = item.form.cid
});
},
},
mounted() {
this.getHistoryData()
this.getData()
}
}
</script>
<style lang="less" scoped>
@import '~@/assets/styles/style';
.zdrzbzORzchgxxmsc-step9-2 {
/deep/ .el-drawer__container {
.prc-content-border {
border: none;
padding: 0 20px 0;
}
}
.fileClass {
cursor: pointer;
}
.fileClass:hover {
color: #0c91e5;
}
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;
.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>
@@ -0,0 +1,583 @@
<template>
<div class="zdrzbzORzchgxxmsc-step9">
<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 === '2' ? 'active' : ''" @click="handleTabs('2')">审批历史</div>
</div>
<div class="content" v-show="active === '1'">
<div style="flex: auto; overflow: auto;">
<el-form
ref="zdrzbzORzchgxxmscForm"
:model="form"
:rules="formRules"
class="label-input-form"
label-width="210px"
>
<ProcessTitle>
<template slot="title">基础信息</template>
</ProcessTitle>
<!--这个div是事业部信息-->
<div style="height: 430px" v-if="feedbackDept === '1'">
<el-table
ref="multipleTable"
tooltip-effect="dark"
border
style="width: 100%;"
height="100%"
:header-cell-style="{background: '#E8E8E8', color: '#333333', fontSize: '16px',
fontWeight: 'bold', height: '48px'}">
<el-table-column
type="selection"
width="55"
align="center">
</el-table-column>
<el-table-column
label="标准编号/政策编号"
align="center"
width="150"
>
</el-table-column>
<el-table-column
show-overflow-tooltip
prop="standName"
label="标准名称/政策名称"
min-width="150"
align="center"
>
</el-table-column>
<el-table-column
prop="issueTime"
sortable="custom"
width="120"
align="center"
label="产品类型">
</el-table-column>
<el-table-column
prop="SSRQ"
sortable="custom"
align="center"
width="120"
label="实施日期">
</el-table-column>
<el-table-column
prop="SSRQ"
sortable="custom"
align="center"
width="120"
label="实施要求">
</el-table-column>
<el-table-column
prop="SSRQ"
sortable="custom"
align="center"
width="130"
label="资源符合情况">
</el-table-column>
<el-table-column
prop="SSRQ"
sortable="custom"
align="center"
width="120"
label="开发计划">
</el-table-column>
<el-table-column
prop="SSRQ"
sortable="custom"
align="center"
width="120"
label="SOP时间">
</el-table-column>
<el-table-column
prop="SSRQ"
sortable="custom"
align="center"
width="120"
label="完成情况">
</el-table-column>
<el-table-column
prop="SSRQ"
sortable="custom"
align="center"
width="400"
label="SOP时间超过法规时限的空档期的业务应对方案">
</el-table-column>
</el-table>
</div>
<!--这个div是产品规划部信息-->
<div style="height: 430px" v-else-if="feedbackDept === '2'">
<el-table
ref="multipleTable"
tooltip-effect="dark"
border
style="width: 100%;"
height="100%"
:header-cell-style="{background: '#E8E8E8', color: '#333333', fontSize: '16px',
fontWeight: 'bold', height: '48px'}">
<el-table-column
type="selection"
width="55"
align="center">
</el-table-column>
<el-table-column
type="index"
label="序号"
width="55"
align="center">
</el-table-column>
<el-table-column
label="业务"
align="center"
width="150"
>
</el-table-column>
<el-table-column
show-overflow-tooltip
prop="standName"
label="平台"
min-width="150"
align="center"
>
</el-table-column>
<el-table-column
show-overflow-tooltip
prop="standName"
label="项目"
min-width="150"
align="center"
>
</el-table-column>
<el-table-column
show-overflow-tooltip
prop="standName"
label="项目描述"
min-width="150"
align="center"
>
</el-table-column>
<el-table-column
show-overflow-tooltip
prop="standName"
label="当前节点"
min-width="150"
align="center"
>
</el-table-column>
<el-table-column
show-overflow-tooltip
prop="standName"
label="概念状态"
min-width="150"
align="center"
>
</el-table-column>
<el-table-column
prop="SSRQ"
align="center"
width="150"
label="概念计划下发时间">
</el-table-column>
<el-table-column
prop="SSRQ"
align="center"
width="120"
label="概念修订计划">
</el-table-column>
<el-table-column
prop="SSRQ"
align="center"
width="400"
label="其他说明">
</el-table-column>
</el-table>
</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="active === '2'">
<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"
sortable="custom"
>
</el-table-column>
<el-table-column
prop="assignee"
label="任务受理人"
align="center"
sortable="custom"
>
</el-table-column>
<el-table-column
prop="createTime"
label="创建时间"
sortable="custom"
align="center">
<template slot-scope="scope">
<span>{{ scope.row.createTime ? $moment(scope.row.createTime).format("YYYY-MM-DD") : "" }}</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") : "" }}</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 ? "已完成" : "未完成" }}</span>
</template>
</el-table-column>
</el-table>
</div>
<ProcessFooter
show-submit
:submitLoading="isSubmit"
:saveLoading="saveLoading"
show-transfer
@transfer="handleTransfer"
@save="handleSave"
@submit="handleSubmit"
show-back
@back="handleSubmitNo"
approval
submitBTNText="同意"
>
</ProcessFooter>
<Role-tree
check-box
is-title="转办处理人"
:is-visible.sync="drawerModal"
@checkedRole="checkedRole"
></Role-tree>
</div>
</template>
<script>
import ProcessHeader from "../../components/ProcessHeader";
import ProcessFooter from "../../components/ProcessFooter";
import ProcessTitle from "../../components/ProcessTitle";
import {inboundLiaisonDetail, processCreateStand, saveTaskForPub, changeAssigneeNew} from "api/process";
import axios from "axios";
export default {
name: "zdrzbzORzchgxxmscStep9",
data() {
return {
//用来判断反馈情况的是哪个部门,1代表各事业部,2代表产品规划部,0代表其他部门
feedbackDept: "",
drawerModal: false,
histortData: [],
commentText: "",
taskIds: this.$route.query.taskIds,
pId: this.$route.query.prcId,
nodeList: [],
type: "",
modalshowflag: false, // drawer开关
drawerTitle: "", //drawer标题
textarea: "", // 意见
ListModel: false, // 新增编辑抽屉开关
active: "1", // 默认显示
isSubmit: false,
saveLoading: false,
form: {
cid: "", // 政策编号
endTime: "", // 责任部门领导审批 截止时间
cname: "", // 名称
fjList: [],
fjListId: '',
responUserList: "",
responUserListName: ""
},
formRules: {
responUserList: [
{required: true, message: "请选择责任人", trigger: "change"}
]
},
json: {}
};
},
components: {
ProcessHeader,
ProcessFooter,
ProcessTitle
},
methods: {
handleTransfer() {
this.drawerModal = true
},
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.processNum()
this.$router.push({path: '/processCenter?tabsName=ProcessCenter'})
} else {
this.$message.warning(res.message)
}
})
},
// 请求转换流程图
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)
})
},
getHistoryData() {
this.$http.get("lawss/activiti/get_list_by_instance", {
prcNum: this.$route.query.prcNum
}, {}, res => {
this.histortData = res;
}, e => {
});
},
checkedRole2(data) {
var idList = "";
var nameList = "";
data.forEach(item => {
if (nameList.length > 0) {
nameList += ",";
idList += ",";
}
idList += item.id;
nameList += item.name;
});
this.form.responUserList = idList;
this.form.responUserListName = nameList;
},
choiceZRR() {
this.nodeList = [];
if (this.form.responUserList.length > 0) {
this.nodeList = this.form.responUserList.split(",");
}
this.modalshowflag = true;
},
handleTabs(name) {
this.active = name;
},
//保存事件
handleSave() {
this.saveLoading = true;
let _formData = new FormData();
_formData.append("id", this.bpnId || "");
_formData.append("prcType", "3");
_formData.append("taskIds", this.taskIds);
_formData.append("json", JSON.stringify({
form: this.form,
commentText: this.commentText
}));
saveTaskForPub(_formData).then(res => {
this.saveLoading = false;
this.$message.success("保存成功");
this.bpnId = res.result;
}).catch(e => {
this.saveLoading = false;
});
},
handleSubmit() {
this.$refs["zdrzbzORzchgxxmscForm"].validate((valid) => {
if (valid) {
this.isSubmit = true;
var json = this.json;
json.commentText = this.commentText;
json.responUserList = this.form.responUserList;
json.responUserListName = this.form.responUserListName;
json.introduce = false;
this.$http.post("lawss/activiti/completeTask", {
json: JSON.stringify(json),
taskId: this.taskIds,
userId: this.$store.getters.userInfo.userId
}, {}, res => {
if (res.success) {
this.$message.success("提交成功");
this.$router.push("/processCenter");
}
this.isSubmit = false;
});
} else {
return this.$message.warning("请完善基础信息");
}
});
},
handleSubmitNo() {
if (this.commentText) {
var json = this.json
json.actionFlag = 1
json.commentText = this.commentText
this.$http.post('lawss/activiti/completeTask', {
json: JSON.stringify(json),
taskId: this.taskIds,
userId: this.$store.getters.userInfo.userId
}, {}, res => {
if (res.success) {
this.$message.success('提交成功')
this.$router.push('/processCenter')
}
})
} else {
this.$message.warning('请输入反馈意见')
}
},
getData() {
return new Promise((resolve, reject) => {
inboundLiaisonDetail({
taskIds: this.taskIds,
pId: this.pId
}).then(res => {
if (res) {
const processForm = JSON.parse(res.mesg)
this.getFormFieldList(processForm)
}
let data = JSON.parse(res.mesg)
this.form.cid = data.cid
this.form.endTime = data.endTime
this.form.cname = data.cname
this.form.fjList = data.fjList
this.form.fjListId = data.fjListId
this.json = data
this.feedbackDept = this.json.feedbackDept
console.log('485',this.feedbackDept)
}).catch(e => {
});
});
},
/**
* @description: 动态表单读取
*/
getFormFieldList(item) {
this.$nextTick(() => {
this.form = JSON.parse(JSON.stringify(item));
this.form.cid = item.form.cid
});
},
},
mounted() {
this.getHistoryData();
this.getData();
}
};
</script>
<style lang="less" scoped>
@import '~@/assets/styles/style';
.zdrzbzORzchgxxmsc-step9 {
/deep/ .el-drawer__container {
.prc-content-border {
border: none;
padding: 0 20px 0;
}
}
.fileClass {
cursor: pointer;
}
.fileClass:hover {
color: #0c91e5;
}
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;
.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>
@@ -202,62 +202,42 @@
</div>
</el-card>
</el-col>
<!-- &lt;!&ndash;严逸舟写的分割线&ndash;&gt;-->
<!-- <el-col :span="size ? 6 : 8" v-btn-permission="">-->
<!-- <el-card shadow="hover">-->
<!-- <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>-->
<!-- &lt;!&ndash; <div class="card-bottom">&ndash;&gt;-->
<!-- &lt;!&ndash; 流程简介: 容器默认存在两根轴:水平的主轴(main axis)和垂直的交叉轴(cross axis)。主轴的开始位置(与边框的交叉点)叫做main start,结束位置叫做main end;交叉轴的开始位置叫做cross start,结束位置叫做cross end。&ndash;&gt;-->
<!-- &lt;!&ndash; </div>&ndash;&gt;-->
<!-- </div>-->
<!-- </el-card>-->
<!-- </el-col>-->
<!-- <el-col :span="size ? 6 : 8" v-btn-permission="">-->
<!-- <el-card shadow="hover">-->
<!-- <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>-->
<!-- &lt;!&ndash; <div class="card-bottom">&ndash;&gt;-->
<!-- &lt;!&ndash; 流程简介: 容器默认存在两根轴:水平的主轴(main axis)和垂直的交叉轴(cross axis)。主轴的开始位置(与边框的交叉点)叫做main start,结束位置叫做main end;交叉轴的开始位置叫做cross start,结束位置叫做cross end。&ndash;&gt;-->
<!-- &lt;!&ndash; </div>&ndash;&gt;-->
<!-- </div>-->
<!-- </el-card>-->
<!-- </el-col>-->
<!-- <el-col :span="size ? 6 : 8" v-btn-permission="">-->
<!-- <el-card shadow="hover">-->
<!-- <div class="card-box" @click="handleCreateProcess('14')">-->
<!-- <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>-->
<!-- &lt;!&ndash; <div class="card-bottom">&ndash;&gt;-->
<!-- &lt;!&ndash; 流程简介: 容器默认存在两根轴:水平的主轴(main axis)和垂直的交叉轴(cross axis)。主轴的开始位置(与边框的交叉点)叫做main start,结束位置叫做main end;交叉轴的开始位置叫做cross start,结束位置叫做cross end。&ndash;&gt;-->
<!-- &lt;!&ndash; </div>&ndash;&gt;-->
<!-- </div>-->
<!-- </el-card>-->
<!-- </el-col>-->
<!-- &lt;!&ndash;严逸舟写的分割线&ndash;&gt;-->
<el-col :span="size ? 6 : 8" v-btn-permission="">
<el-card shadow="hover">
<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 class="card-bottom">-->
<!-- 流程简介: 容器默认存在两根轴:水平的主轴(main axis)和垂直的交叉轴(cross axis)。主轴的开始位置(与边框的交叉点)叫做main start,结束位置叫做main end;交叉轴的开始位置叫做cross start,结束位置叫做cross end。-->
<!-- </div>-->
</div>
</el-card>
</el-col>
<el-col :span="size ? 6 : 8" v-btn-permission="">
<el-card shadow="hover">
<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 class="card-bottom">-->
<!-- 流程简介: 容器默认存在两根轴:水平的主轴(main axis)和垂直的交叉轴(cross axis)。主轴的开始位置(与边框的交叉点)叫做main start,结束位置叫做main end;交叉轴的开始位置叫做cross start,结束位置叫做cross end。-->
<!-- </div>-->
</div>
</el-card>
</el-col>
</div>
</div>
</div>
@@ -360,24 +340,18 @@ export default {
name:'xmqdqrStep1'
})
break
case '12':
// 赵开耀的流程
this.$router.push({
name: 'zhaokaiyaoStep1'
})
break
case '13':
// 严逸舟的流程
this.$router.push({
name: 'yanyizhouStep1'
})
break
case '14':
// 张宇欢的流程
this.$router.push({
name: 'zhangyuhuanStep1'
})
break
case '12':
// 政策征求意见流程
this.$router.push({
name: 'zczqyjStep1'
})
break
case '13':
// 重点认证标准/政策合规性项目审查流程
this.$router.push({
name: 'zdrzbzORzchgxxmscStep1'
})
break
case '15':
//政策课题入会流程
this.$router.push({
@@ -283,6 +283,7 @@ export default {
dealWith (row) { // 办理
this.setHandleInfo(JSON.stringify(row))
const prcType = row.prcType
console.log('286',row)
switch(prcType) {
case '1':
if (row.taskInfo === '标准法规业务经理审批') {
@@ -869,6 +870,200 @@ export default {
})
}
break
case 'laws2':
if (row.taskInfo === '责任对接人进行任务下发') {
this.$router.push({
name: 'zczqyjStep2',
query: {
taskIds: row.taskIds,
prcId: row.prcId,
prcNum: row.prcNum,
prcName: row.prcName,
prcType: row.prcType
}
})
} else if(row.taskInfo === '责任人(责任工程师)填写意见'){
this.$router.push({
name: 'zczqyjStep3',
query: {
taskIds: row.taskIds,
prcId: row.prcId,
prcNum: row.prcNum,
prcName: row.prcName,
prcType: row.prcType
}
})
}
else if(row.taskInfo === '责任对接人审核'){
this.$router.push({
name: 'zczqyjStep4',
query: {
taskIds: row.taskIds,
prcId: row.prcId,
prcNum: row.prcNum,
prcName: row.prcName,
prcType: row.prcType
}
})
}
else if(row.taskInfo === '法规工程师单条审核'){
this.$router.push({
name: 'zczqyjStep5',
query: {
taskIds: row.taskIds,
prcId: row.prcId,
prcNum: row.prcNum,
prcName: row.prcName,
prcType: row.prcType
}
})
}
else if(row.taskInfo === '法规工程师修订'){
this.$router.push({
name: 'zczqyjStep6',
query: {
taskIds: row.taskIds,
prcId: row.prcId,
prcNum: row.prcNum,
prcName: row.prcName,
prcType: row.prcType
}
})
}
else if(row.taskInfo === '法规认证部长审核'){
this.$router.push({
name: 'zczqyjStep7',
query: {
taskIds: row.taskIds,
prcId: row.prcId,
prcNum: row.prcNum,
prcName: row.prcName,
prcType: row.prcType
}
})
}
else if(row.taskInfo === '法规认证部副总监审核'){
this.$router.push({
name: 'zczqyjStep8',
query: {
taskIds: row.taskIds,
prcId: row.prcId,
prcNum: row.prcNum,
prcName: row.prcName,
prcType: row.prcType
}
})
}
else if(row.taskInfo === '法规认证部总监批准'){
this.$router.push({
name: 'zczqyjStep9',
query: {
taskIds: row.taskIds,
prcId: row.prcId,
prcNum: row.prcNum,
prcName: row.prcName,
prcType: row.prcType
}
})
}
break
case 'laws3':
if (row.taskInfo === '法规认证部长批准') {
this.$router.push({
name: 'zdrzbzORzchgxxmscStep2',
query: {
taskIds: row.taskIds,
prcId: row.prcId,
prcNum: row.prcNum,
prcName: row.prcName,
prcType: row.prcType
}
})
} else if(row.taskInfo === '法规认证部副总监批准'){
this.$router.push({
name: 'zdrzbzORzchgxxmscStep3',
query: {
taskIds: row.taskIds,
prcId: row.prcId,
prcNum: row.prcNum,
prcName: row.prcName,
prcType: row.prcType
}
})
}
else if(row.taskInfo === '责任部门领导任务下发'){
this.$router.push({
name: 'zdrzbzORzchgxxmscStep4',
query: {
taskIds: row.taskIds,
prcId: row.prcId,
prcNum: row.prcNum,
prcName: row.prcName,
prcType: row.prcType
}
})
}
else if(row.taskInfo === '责任人反馈情况'){
this.$router.push({
name: 'zdrzbzORzchgxxmscStep5-1',
query: {
taskIds: row.taskIds,
prcId: row.prcId,
prcNum: row.prcNum,
prcName: row.prcName,
prcType: row.prcType
}
})
}
else if(row.taskInfo === '责任部门领导批准'){
this.$router.push({
name: 'zdrzbzORzchgxxmscStep6',
query: {
taskIds: row.taskIds,
prcId: row.prcId,
prcNum: row.prcNum,
prcName: row.prcName,
prcType: row.prcType
}
})
}
else if(row.taskInfo === '法规管理员审核'){
this.$router.push({
name: 'zdrzbzORzchgxxmscStep7-1',
query: {
taskIds: row.taskIds,
prcId: row.prcId,
prcNum: row.prcNum,
prcName: row.prcName,
prcType: row.prcType
}
})
}
else if(row.taskInfo === '法规认证部长审定'){
this.$router.push({
name: 'zdrzbzORzchgxxmscStep8',
query: {
taskIds: row.taskIds,
prcId: row.prcId,
prcNum: row.prcNum,
prcName: row.prcName,
prcType: row.prcType
}
})
}
else if(row.taskInfo === '法规认证部副总监批准'){
this.$router.push({
name: 'zdrzbzORzchgxxmscStep9',
query: {
taskIds: row.taskIds,
prcId: row.prcId,
prcNum: row.prcNum,
prcName: row.prcName,
prcType: row.prcType
}
})
}
break
}
},
...mapMutations(['setProcess', 'setHandleInfo']),
+162
View File
@@ -330,6 +330,168 @@ const routes = [
title: '标准清单发布/更新流程'
}
},
{
path: '/zczqyjStep1',
name: 'zczqyjStep1',
component: () => import('@/pages/processCenter/pages/creatProcess/zczqyj/step1.vue'),
meta: {
requireAuth: true,
title: '政策征求意见流程'
}
},
{
path: '/zczqyjStep2',
name: 'zczqyjStep2',
component: () => import('@/pages/processCenter/pages/creatProcess/zczqyj/step2.vue'),
meta: {
requireAuth: true,
title: '政策征求意见流程'
}
},
{
path: '/zczqyjStep3',
name: 'zczqyjStep3',
component: () => import('@/pages/processCenter/pages/creatProcess/zczqyj/step3.vue'),
meta: {
requireAuth: true,
title: '政策征求意见流程'
}
},
{
path: '/zczqyjStep4',
name: 'zczqyjStep4',
component: () => import('@/pages/processCenter/pages/creatProcess/zczqyj/step4.vue'),
meta: {
requireAuth: true,
title: '政策征求意见流程'
}
},
{
path: '/zczqyjStep5',
name: 'zczqyjStep5',
component: () => import('@/pages/processCenter/pages/creatProcess/zczqyj/step5.vue'),
meta: {
requireAuth: true,
title: '政策征求意见流程'
}
},
{
path: '/zczqyjStep6',
name: 'zczqyjStep6',
component: () => import('@/pages/processCenter/pages/creatProcess/zczqyj/step6.vue'),
meta: {
requireAuth: true,
title: '政策征求意见流程'
}
},
{
path: '/zczqyjStep7',
name: 'zczqyjStep7',
component: () => import('@/pages/processCenter/pages/creatProcess/zczqyj/step7.vue'),
meta: {
requireAuth: true,
title: '政策征求意见流程'
}
},
{
path: '/zczqyjStep8',
name: 'zczqyjStep8',
component: () => import('@/pages/processCenter/pages/creatProcess/zczqyj/step8.vue'),
meta: {
requireAuth: true,
title: '政策征求意见流程'
}
},{
path: '/zczqyjStep9',
name: 'zczqyjStep9',
component: () => import('@/pages/processCenter/pages/creatProcess/zczqyj/step9.vue'),
meta: {
requireAuth: true,
title: '政策征求意见流程'
}
},
{
path: '/zdrzbzORzchgxxmscStep1',
name: 'zdrzbzORzchgxxmscStep1',
component: () => import('@/pages/processCenter/pages/creatProcess/zdrzbzORzchgxxmsc/step1.vue'),
meta: {
requireAuth: true,
title: '重点认证标准/政策合规性项目审查流程'
}
},
{
path: '/zdrzbzORzchgxxmscStep2',
name: 'zdrzbzORzchgxxmscStep2',
component: () => import('@/pages/processCenter/pages/creatProcess/zdrzbzORzchgxxmsc/step2.vue'),
meta: {
requireAuth: true,
title: '重点认证标准/政策合规性项目审查流程'
}
},
{
path: '/zdrzbzORzchgxxmscStep3',
name: 'zdrzbzORzchgxxmscStep3',
component: () => import('process/creatProcess/zdrzbzORzchgxxmsc/step3.vue'),
meta: {
requireAuth: true,
title: '重点认证标准/政策合规性项目审查流程'
}
},
{
path: '/zdrzbzORzchgxxmscStep4',
name: 'zdrzbzORzchgxxmscStep4',
component: () => import('process/creatProcess/zdrzbzORzchgxxmsc/step4.vue'),
meta: {
requireAuth: true,
title: '重点认证标准/政策合规性项目审查流程'
}
},
{
path: '/zdrzbzORzchgxxmscStep5-1',
name: 'zdrzbzORzchgxxmscStep5-1',
//1代表各事业部,2代表产品规划部
component: () => import('process/creatProcess/zdrzbzORzchgxxmsc/step5-1.vue'),
meta: {
requireAuth: true,
title: '重点认证标准/政策合规性项目审查流程'
}
},
{
path: '/zdrzbzORzchgxxmscStep6',
name: 'zdrzbzORzchgxxmscStep6',
component: () => import('process/creatProcess/zdrzbzORzchgxxmsc/step6.vue'),
meta: {
requireAuth: true,
title: '重点认证标准/政策合规性项目审查流程'
}
},
{
path: '/zdrzbzORzchgxxmscStep7-1',
name: 'zdrzbzORzchgxxmscStep7-1',
component: () => import('process/creatProcess/zdrzbzORzchgxxmsc/step7-1.vue'),
meta: {
requireAuth: true,
title: '重点认证标准/政策合规性项目审查流程'
}
},
{
path: '/zdrzbzORzchgxxmscStep8',
name: 'zdrzbzORzchgxxmscStep8',
component: () => import('process/creatProcess/zdrzbzORzchgxxmsc/step8.vue'),
meta: {
requireAuth: true,
title: '重点认证标准/政策合规性项目审查流程'
}
},
{
path: '/zdrzbzORzchgxxmscStep9',
name: 'zdrzbzORzchgxxmscStep9',
component: () => import('process/creatProcess/zdrzbzORzchgxxmsc/step9.vue'),
meta: {
requireAuth: true,
title: '重点认证标准/政策合规性项目审查流程'
}
},
{
path: '/xmpgStep1',
name: 'xmpgStep1',