会后流程

This commit is contained in:
shenyanpei
2021-12-05 11:21:27 +08:00
parent aeb1983aec
commit a8f0ed94a7
@@ -0,0 +1,506 @@
<template>
<div class="phoneBzhhStep2 phoneBox">
<ProcessHeaderPhone toggle>
<template slot="proName">标准解读流程</template>
<template slot="proNode">参会人员确认</template>
</ProcessHeaderPhone>
<div class="headerTabs">
<div class="headerTabsItem" :class="active === '1' ? 'active' : ''" @click="handleTabs('1')">基础信息</div>
<div class="headerTabsItem" :class="active === '3' ? 'active' : ''" @click="handleTabs('2')">审批历史</div>
</div>
<div class="content" v-show="active === '1'">
<div style="flex: auto; overflow: auto;">
<ProcessTitle>
<template slot="title">基础信息</template>
</ProcessTitle>
<div class="content_form">
<el-form class="label-input-form" ref="hh_pageData" :model="hh_pageData" :rules="hh_rules" label-width="120px">
<el-row>
<el-col :span="8">
<el-form-item class="add-form-item" label="标委会:">
{{ hh_pageData.associaName || '-' }}
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item class="add-form-item" label="分标委:">
{{ hh_pageData.associaNameOne || '-' }}
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item class="add-form-item" label="工作组:">
{{ hh_pageData.associaNameTwo || '-' }}
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item class="add-form-item" label="参会人:">
{{ hh_pageData.partPeople || '-' }}
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item class="add-form-item" label="参会时间:">
{{ hh_pageData.meetingStartTime || '-' }}
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item class="add-form-item" label="会议名称:">
{{ hh_pageData.meetingName || '-' }}
</el-form-item>
</el-col>
</el-row>
<el-form-item class="add-form-item" style="margin-top: 10px">
<el-table
:data="hh_pageData.standardTable"
border
ref="standardTable"
height="49%"
style="width: 100%"
:header-cell-style="{background: '#e8e8e8', color: '#333333', fontSize: '16px',
fontWeight: 'bold', height: '20px'}">
<el-table-column type="selection" width="55" align="center"/>
<el-table-column type="index" label="序号" align="center" width="50"/>
<el-table-column prop="standardId" label="标准编号" align="center"/>
<el-table-column prop="standardName" label="标准名称" align="center"/>
<el-table-column prop="material" label="资料" align="center">
<template slot-scope="scope">
<el-button size="mini" type="primary" @click="materialBtn(scope.row)">查看</el-button>
</template>
</el-table-column>
</el-table>
</el-form-item>
<el-form-item class="add-form-item" style="margin-top: 10px">
<el-table
:data="hh_pageData.themeTable"
border
ref="themeTable"
height="49%"
style="width: 100%"
:header-cell-style="{background: '#e8e8e8', color: '#333333', fontSize: '16px',
fontWeight: 'bold', height: '20px'}">
<el-table-column type="index" label="序号" align="center" width="50"/>
<el-table-column label="议题" align="center" prop="meetingTheme"></el-table-column>
<el-table-column label="资料" align="center" prop="meetingFile">
<template slot-scope="scope">
<el-button type="primary" size="mini" @click="meetingFileBtn(scope.row)">查看</el-button>
</template>
</el-table-column>
</el-table>
</el-form-item>
<el-form-item class="add-form-item" label="其他资料:" prop="otherFile">
<el-upload
:action="''"
name="name"
:file-list="otherFile"
:on-preview="onPreviewOther"
>
</el-upload>
</el-form-item>
</el-form>
</div>
</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 === '3'">
<div class="flow-list">
<el-table
height="100%"
ref="selection"
:data="detailData"
tooltip-effect="dark"
style="width: 100%"
border
row-key="id"
:no-data-text="listNoDataText"
:header-cell-style="{background: '#f8f8f9', color: '#515a6e'}"
>
<el-table-column
type="selection"
width="55"
align="center">
</el-table-column>
<el-table-column
prop="name"
label="任务步骤"
align="center"
>
</el-table-column>
<el-table-column
prop="assignee"
label="任务受理人"
align="center"
>
</el-table-column>
<el-table-column
prop="createTime"
label="创建时间"
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>
<loading :loading="loading">流程列表加载中</loading>
</div>
</div>
<ProcessFooter
show-back
show-submit
:submitLoading="isSubmit"
:isSubmitBack="isBack"
@back="handleSubmitNo"
@submit="handleSubmit"
/>
<el-dialog
:visible.sync="materialDialog"
width="30%"
:before-close="handleClose">
<el-upload
:action="''"
name="file"
:file-list="fileTextList"
:on-preview="handleOnPreview"
>
</el-upload>
</el-dialog>
<el-dialog
:visible.sync="meetingFileDialog"
width="30%"
:before-close="handleClose">
<el-upload
:action="''"
name="file"
:file-list="themeFileList"
:on-preview="onPreviewTheme"
>
</el-upload>
</el-dialog>
</div>
</template>
<script>
import ProcessHeaderPhone from '../../components/ProcessHeaderPhone'
import ProcessFooter from '../../components/ProcessFooter'
import ProcessTitle from '../../components/ProcessTitle'
import {saveTaskFirst, completeTask, inboundLiaisonDetail} from '@/api/process.js'
export default {
name: "phoneBzhhStep2",
components: {
ProcessHeaderPhone,
ProcessFooter,
ProcessTitle
},
data() {
return {
// 上传地址
actionPath: 'api/att/attFile/upload',
acceptShow: false,
active: '1',
loading: false,
hh_pageData: {
associaName: '',
associaNameOne: '',
associaNameTwo: '',
meetingStartTime: '',
meetingName: '',
partPeople: '',
standardTable: [],
themeTable: [],
},
commentText: '',
fileTextList: [],
themeFileList: [],
otherFile: [],
materialDialog: false,
meetingFileDialog: false,
hh_rules: {},
detailData: [],
isBack: false,
isSubmit: false,
taskIds: this.$route.query.taskIds,
pId: this.$route.query.prcId,
}
},
computed: {
listNoDataText() {
return this.processType === 1 ? "暂无待办流程" : "暂无已办流程";
}
},
created() {
this.processTable()
this.getData()
},
methods: {
// 右上标签页面切换
handleTabs(name) {
this.active = name
},
processTable() {
this.$http.get("lawss/activiti/get_list_by_instance", {
prcNum: this.$route.query.prcNum,
sortWord: this.shunxu ? this.paixu : "",
shunxu: this.shunxu
}, {
loading: "loading",
_this: this
}, res => {
this.detailData = res
}, e => {
})
},
getData() {
const params = {
taskIds: this.taskIds,
pId: this.pId,
}
inboundLiaisonDetail(params).then(res => {
const processForm = JSON.parse(res.mesg)
this.getFormFieldList(processForm)
})
},
getFormFieldList(item) {
this.$nextTick(() => {
this.hh_pageData = JSON.parse(JSON.stringify(item)).hh_pageData
this.otherFile = this.hh_pageData.otherFileList
})
},
/** 标准号列表查看按钮 */
materialBtn(val) {
this.fileTextList = val.material
this.materialDialog = true
},
/** 议题列表查看按钮 */
meetingFileBtn(val) {
this.themeFileList = val.material
this.meetingFileDialog = true
},
handleClose() {
this.materialDialog = false
this.meetingFileDialog = false
},
// 点击上传的文件进行下载
handleOnPreview(file) {
let attId = file.id
if (attId != null && attId !== "") {
window.location.href = "/api/att/attFile/downloadFileForSar?fileId=" + attId;
}
},
// 点击上传的文件进行下载
onPreviewTheme(file) {
let attId = file.id
if (attId != null && attId !== "") {
window.location.href = "/api/att/attFile/downloadFileForSar?fileId=" + attId;
}
},
// 点击上传的文件进行下载
onPreviewOther(file) {
let attId = file.id
if (attId != null && attId !== "") {
window.location.href = "/api/att/attFile/downloadFileForSar?fileId=" + attId;
}
},
// 退回按钮
handleSubmitNo() {
let json = {
passFlag: '0',
commentText: this.commentText,
hh_pageData: this.hh_pageData,
}
this.$refs['hh_pageData'].validate((valid) => {
if (valid) {
this.isBack = true
const params = new FormData();
params.set('json', JSON.stringify(json))
params.set('userId', this.$store.getters.userInfo.userId)
params.set('taskId', this.taskIds)
completeTask(params).then(res => {
if (res.success === true) {
this.$message.success('退回成功')
this.$router.push("/processCenter");
}
this.isBack = false
});
}
})
},
// 提交按钮
handleSubmit() {
let json = {
passFlag: '1',
commentText: this.commentText,
ch_pageData: this.ch_pageData,
}
this.$refs['hh_pageData'].validate((valid) => {
if (valid) {
this.isSubmit = true
const params = new FormData();
params.set('json', JSON.stringify(json))
params.set('userId', this.$store.getters.userInfo.userId)
params.set('taskId', this.taskIds)
completeTask(params).then(res => {
if (res.success === true) {
this.$message.success('提交成功')
this.$router.push("/processCenter");
}
this.isSubmit = false
});
}
})
}
}
}
</script>
<style lang="less" scoped>
@import '~@/assets/styles/phone';
.phoneBzhhStep2 {
.prc-content-border {
overflow: auto;
}
/deep/.prc-content-border .el-form-item__content {
width: 270px;
}
.headerTabs {
height: 52px;
display: flex;
align-items: center;
position: absolute;
top: 52px;
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 {
border-top: 1px solid #DCDFE6;
display: flex;
flex-direction: column;
justify-content: space-between;
margin-top: 52px;
height: calc(~'100% - 155px');
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;
}
}
}
.content-center {
padding: 10px 0px 10px 10px;
}
.content_form {
padding-top: 15px;
padding-left: 30px;
.el-divider--horizontal {
margin-top: 0px;
}
/deep/ .el-input.is-disabled .el-input__inner {
background-color: #fff;
}
/deep/ .el-table__body-wrapper {
height: auto !important;
}
.meeting_table {
/deep/ .el-input__inner {
text-align: center;
}
}
/deep/ .el-textarea__inner {
font-family: inherit;
}
/deep/ .el-upload {
display: unset;
}
/deep/ .el-upload-list__item-status-label {
font-size: 0;
}
/deep/ .el-upload-list__item {
.el-icon-close {
font-size: 0;
}
.el-icon-close-tip {
font-size: 0;
}
}
/deep/ .el-table th {
padding: 0px;
}
}
}
</style>