516 lines
17 KiB
Vue
516 lines
17 KiB
Vue
<template>
|
||
<div class="main-content abnormal">
|
||
<!-- <div class="content-header">
|
||
<span class="title">恢复正常记载状态:审批</span>
|
||
<el-button type="warning" icon="el-icon-caret-left" size="mini" class="back-btn" @click="$router.back()">返回上一层</el-button>
|
||
</div> -->
|
||
<DetailHead />
|
||
<div class="content-body">
|
||
<el-form ref="form" :model="form" label-width="150px" label-position="left" :rules="formRules">
|
||
<div class="form">
|
||
<div class="tab">
|
||
<div class="tab-title"><label>异常信息</label></div>
|
||
</div>
|
||
<div class="form-body">
|
||
<el-row v-if="searchNameP === ''">
|
||
<el-form-item label="移出异常主体信息">
|
||
<el-button type="primary" size="mini" @click="showEntbaseList">查看异常主体名单<i class="el-icon el-icon-s-order" style="margin-left:5px" /></el-button>
|
||
</el-form-item>
|
||
</el-row>
|
||
<el-row v-if="searchNameP !== ''">
|
||
<el-form-item label="移出异常主体名称">
|
||
<span>{{ dataShow[0].entname }}</span>
|
||
</el-form-item>
|
||
</el-row>
|
||
<el-row>
|
||
<el-form-item label="恢复原因" prop="reason" class="bt0">
|
||
<div style="display:inline-block;width: 1000px">
|
||
<el-input v-model="reason" type="textarea" disabled />
|
||
</div>
|
||
</el-form-item>
|
||
</el-row>
|
||
<el-row>
|
||
<el-form-item label="备注" class="bt0">
|
||
<el-input v-model="form.remRemark" type="textarea" style="display:inline-block;width:1000px" :autosize="{ minRows: 3, maxRows: 6 }" disabled />
|
||
</el-form-item>
|
||
</el-row>
|
||
<el-row>
|
||
<el-form-item label="材料列表" class="bt0">
|
||
<ul style="list-style:none;padding:0;margin:5px">
|
||
<li v-for="item in fileList" :key="item.id" style="line-height: 30px">
|
||
<el-link :href="item.url" target="_blank">{{ item.name }}</el-link>
|
||
</li>
|
||
</ul>
|
||
</el-form-item>
|
||
</el-row>
|
||
|
||
</div>
|
||
</div>
|
||
<div class="form">
|
||
<div class="tab">
|
||
<div class="tab-title"><label>历史恢复记录</label></div>
|
||
</div>
|
||
<div class="form-body history content">
|
||
<div v-if="removeRecordList.length == 0" class="none">暂无恢复记录</div>
|
||
<el-table
|
||
v-else
|
||
:row-class-name="tableRowClassName"
|
||
:header-cell-style="{background:'#8cc3fb',color:'#fff'}"
|
||
:data="removeRecordList"
|
||
border
|
||
style="width: 100%"
|
||
>
|
||
<el-table-column type="index" label="序号" width="50" align="center" />
|
||
<el-table-column prop="abntime" label="标记日期" min-width="100" />
|
||
<el-table-column prop="specause" :formatter="intoReasonFormat" :show-overflow-tooltip="true" label="标记原因" min-width="200" />
|
||
<el-table-column prop="intoSponsor" label="标记主办人" min-width="100" />
|
||
<el-table-column prop="remdate" label="恢复日期" min-width="100" />
|
||
<el-table-column prop="remexcpres" :formatter="remReasonFormat" :show-overflow-tooltip="true" label="恢复原因" min-width="200" />
|
||
<el-table-column prop="remSponsor" label="恢复主办人" min-width="100" />
|
||
</el-table>
|
||
</div>
|
||
</div>
|
||
<div class="form">
|
||
<div class="tab">
|
||
<div class="tab-title"><label>处理意见</label></div>
|
||
</div>
|
||
<div class="form-body history">
|
||
<div v-if="historyLog.length == 0" class="none">暂无历史意见</div>
|
||
<el-steps direction="vertical">
|
||
<el-step v-for="(each,index) in historyLog" :key="'historyLog'+index" :title="each.step + '人:' + each.handler + ' ' + each.step +'日期:' + each.handledate " :description=" each.opinioncontent " status="finish" />
|
||
</el-steps>
|
||
</div>
|
||
</div>
|
||
</el-form>
|
||
<div class="submit-box">
|
||
<!-- <el-button type="primary" :loading="submitLoading" @click="submitForm">提交</el-button> -->
|
||
<el-button @click="$router.back()">返回</el-button>
|
||
</div>
|
||
</div>
|
||
<HandleDialog
|
||
:show.sync="showEntbase"
|
||
title="异常主体名单"
|
||
style="width:50vw"
|
||
>
|
||
<el-table
|
||
:data="dataShow"
|
||
tooltip-effect="dark"
|
||
style="width: 1200px"
|
||
:fit="true"
|
||
height="500px"
|
||
:row-class-name="tableRowClassName"
|
||
:header-cell-style="{background:'#8cc3fb',color:'#fff'}"
|
||
>
|
||
<el-table-column prop="index" label="序号" min-width="35" align="center" />
|
||
<el-table-column prop="uscc" label="统一社会信用代码/注册号" min-width="150" align="left" />
|
||
<el-table-column prop="entname" :show-overflow-tooltip="true" label="名称" min-width="150" align="left" />
|
||
<el-table-column prop="estdate" :show-overflow-tooltip="true" label="成立时间" align="left" />
|
||
<el-table-column prop="oploc" :show-overflow-tooltip="true" label="经营地址" min-width="150" align="left" />
|
||
<el-table-column prop="name" label="法定代表人" align="left" />
|
||
<el-table-column prop="enttypeCn" :show-overflow-tooltip="true" label="企业类型" min-width="80" align="left" />
|
||
<el-table-column prop="regstateCn" :show-overflow-tooltip="true" label="企业状态" min-width="100" align="left" />
|
||
</el-table>
|
||
<div>
|
||
<el-row class="bl0">
|
||
<el-col>
|
||
<el-pagination
|
||
:current-page="currentPage"
|
||
small
|
||
layout="prev, pager, next"
|
||
:total="total"
|
||
@size-change="handleSizeChange"
|
||
@current-change="handleCurrentChange"
|
||
/>
|
||
</el-col>
|
||
</el-row>
|
||
<!-- <div class="dialog-box"> -->
|
||
<!-- <el-button type="danger" @click="removeEntbaseItem">剔除</el-button> -->
|
||
<!-- <el-button type="primary" @click="showEntbaseList">确定</el-button> -->
|
||
<!-- </div> -->
|
||
</div>
|
||
</HandleDialog>
|
||
</div>
|
||
</template>
|
||
|
||
<script>
|
||
import DetailHead from '@/components/DetailHead'
|
||
import HandleDialog from '@/components/HandleDialog'
|
||
import { removeAttachementById, listAttachmentByBizseq } from '@/api/attachment'
|
||
import { bizRemoveNext, getBizRemInfo, getBizRemoveRecordList } from '@/api/abnormal'
|
||
import { getUsersWithPermission } from '@/api/user'
|
||
import { getConstant } from '@/api/system'
|
||
import { taskOpinion } from '@/api/task'
|
||
import { isMenHu } from '../../../utils/utils'
|
||
|
||
export default {
|
||
components: {
|
||
HandleDialog: HandleDialog,
|
||
DetailHead
|
||
},
|
||
data() {
|
||
return {
|
||
searchNameP: '',
|
||
submitLoading: false,
|
||
removeRecordList: [],
|
||
bizseq: '',
|
||
workflowId: '',
|
||
uploadPath: `${process.env.VUE_APP_BASE_API}/attachment/uploadAdvance`,
|
||
showEntbase: false,
|
||
batchId: this.$route.query.batch,
|
||
entbase: [],
|
||
// 分页数据,这里用来保存每页切割后的数据
|
||
// 看起来格式是这样的[[{},{},{}],[{},{},{}]]
|
||
// 数组内套数组,每个数组就是一页数据
|
||
totalPageData: [],
|
||
// 共几页
|
||
pageNum: '',
|
||
// 每页显示数量
|
||
pageSize: 10,
|
||
// 当前显示页码
|
||
currentPage: 1,
|
||
// 总共多少条数据
|
||
total: 1,
|
||
// 当前要显示的数据
|
||
dataShow: [],
|
||
form: {
|
||
enterType: 'company',
|
||
nextNodeID: 'endExptlist',
|
||
remreasons: '',
|
||
opinion: ''
|
||
},
|
||
formRules: {
|
||
opinion: [
|
||
{ required: true, message: '请输入审批意见', trigger: 'blur' }
|
||
]
|
||
},
|
||
reason: '',
|
||
reasonOptions: [],
|
||
opinion: '',
|
||
opinionOptions: [],
|
||
historyLog: [],
|
||
exmainerOptions: [],
|
||
fileList: [],
|
||
user: JSON.parse(sessionStorage.getItem('user')),
|
||
reviewer: []
|
||
}
|
||
},
|
||
watch: {
|
||
// 意见渲染
|
||
opinion() {
|
||
let name = ''
|
||
this.opinionOptions.forEach(each => {
|
||
if (this.opinion === each.value) {
|
||
name = each.label
|
||
}
|
||
})
|
||
this.form.opinion = name
|
||
}
|
||
},
|
||
mounted() {
|
||
this.bizseq = this.$route.query.bizseq
|
||
this.workflowId = this.$route.query.workflowId
|
||
this.tasklistid = this.$route.query.tasklistid
|
||
this.searchNameP = this.$route.query.searchName
|
||
if (this.searchNameP === undefined) {
|
||
this.searchNameP = ''
|
||
}
|
||
// 加载常用语
|
||
this.opinionOptions = this.$util.getCommonWords(this.user.primaryKey)
|
||
// 加载个体户移出原因
|
||
getConstant('CD76').then(res => {
|
||
if (res.code === 0) {
|
||
const list = []
|
||
res.data.forEach(each => {
|
||
list.push({
|
||
value: each.code,
|
||
label: each.name
|
||
})
|
||
})
|
||
this.reasonOptions = list
|
||
}
|
||
})
|
||
// 个体工商户标记经营异常状态原因
|
||
getConstant('CD75').then(res => {
|
||
if (res.code === 0) {
|
||
const list = []
|
||
res.data.forEach(each => {
|
||
list.push({
|
||
value: each.code,
|
||
label: each.name
|
||
})
|
||
})
|
||
this.inclueReasonOptions = list
|
||
}
|
||
})
|
||
// 加载待移出主体名单
|
||
getBizRemInfo(this.bizseq).then(res => {
|
||
if (res.code === 0) {
|
||
// 添加分页index
|
||
const list = []
|
||
let i = 1
|
||
const pageStart = (this.currentPage - 1) * this.pageSize
|
||
res.data.bizList.forEach(each => {
|
||
each.index = pageStart + i++
|
||
each.uscc = each.uniscid ? each.uniscid : each.regno // 有统一码显示统一码 没有用注册号
|
||
list.push(each)
|
||
})
|
||
this.entbase = list
|
||
const bizInfo = res.data.bizRemListMOdel
|
||
this.entname = bizInfo.entname
|
||
this.$set(this, 'reason', this.$util.enumFormatter(this.reasonOptions, bizInfo.remexcpres))
|
||
this.form.remRemark = bizInfo.remRemark
|
||
// 分页处理
|
||
this.total = this.entbase.length
|
||
// 计算页数
|
||
this.calcPageData()
|
||
} else {
|
||
this.$message.error('加载异常名录主体信息失败')
|
||
}
|
||
})
|
||
// 获取主体移出记录
|
||
getBizRemoveRecordList(this.bizseq).then(res => {
|
||
if (res.code === 0) {
|
||
this.removeRecordList = res.data
|
||
} else {
|
||
this.$message.error('加载移出记录失败')
|
||
}
|
||
})
|
||
// 加载处办记录
|
||
taskOpinion(this.workflowId).then(res => {
|
||
if (res.code === 0) {
|
||
res.data.forEach(each => {
|
||
switch (each.opiniontype) {
|
||
case '0': each.step = '经办'
|
||
break
|
||
case '1': each.step = '审核'
|
||
break
|
||
case '2': each.step = '审批'
|
||
break
|
||
}
|
||
this.historyLog.push(each)
|
||
})
|
||
} else {
|
||
this.$message.error('加载处办记录失败')
|
||
}
|
||
})
|
||
|
||
// 加载审核人
|
||
// this.loadReviewer()
|
||
|
||
// 加载附件清单
|
||
listAttachmentByBizseq(this.bizseq).then(data => {
|
||
data.forEach(each => {
|
||
each.id = each.attachmentid
|
||
each.name = each.filename
|
||
each.url = `${process.env.VUE_APP_DOWNLOAD_URL}/` + each.temppath
|
||
})
|
||
this.fileList = data
|
||
})
|
||
},
|
||
methods: {
|
||
tableRowClassName({ row, rowIndex }) {
|
||
if (rowIndex % 2 === 1) {
|
||
return 'warning-row'
|
||
}
|
||
},
|
||
// 列入原因格式化
|
||
intoReasonFormat(row) {
|
||
return this.$util.enumFormatter(this.inclueReasonOptions, row.specause)
|
||
},
|
||
// 移出原因格式化
|
||
remReasonFormat(row) {
|
||
return this.$util.enumFormatter(this.reasonOptions, row.remexcpres)
|
||
},
|
||
// 计算页数
|
||
calcPageData() {
|
||
// 计算页数(根据后台数据的条数和每页显示数量算出一共几页,得0时设为1)
|
||
if (this.entbase.length >= 1) {
|
||
this.pageNum = Math.ceil(this.entbase.length / this.pageSize) || 1
|
||
}
|
||
// 数据分组
|
||
for (let i = 0; i < this.pageNum; i++) {
|
||
// 每一页都是一个数组 形如 [['第一页的数据'],['第二页的数据'],['第三页数据']]
|
||
// 根据每页显示数量 将后台的数据分割到 每一页,假设pageSize为5, 则第一页是1-5条,即slice(0,5),第二页是6-10条,即slice(5,10)...
|
||
this.totalPageData[i] = this.entbase.slice(this.pageSize * i, this.pageSize * (i + 1))
|
||
}
|
||
// 获取到数据后显示第一页内容,数组下标是从0开始的,这里一定要减去1,不然会丢失一组数据
|
||
this.dataShow = this.totalPageData[this.currentPage - 1]
|
||
},
|
||
// 每页条数发生变化
|
||
handleSizeChange(newPageSize) {
|
||
this.pageSize = newPageSize
|
||
// 重新计算页数并分组
|
||
this.calcPageData()
|
||
},
|
||
// 当前页码发生变化
|
||
handleCurrentChange(newPageNum) {
|
||
this.currentPage = newPageNum
|
||
// 这里仍然不要忘记减去1
|
||
this.dataShow = this.totalPageData[newPageNum - 1]
|
||
},
|
||
// 上传文件预览
|
||
previewFile(file) {
|
||
window.open(file.url, '_blank')
|
||
},
|
||
// 发送提交
|
||
submitForm() {
|
||
this.$refs.form.validate(valid => {
|
||
if (!valid) {
|
||
console.log('falure')
|
||
}
|
||
this.$confirm('是否确认提交?', '提示').then(() => {
|
||
// 附件id
|
||
// let ids = []
|
||
// this.fileList.forEach(each => {
|
||
// ids.push(each.id)
|
||
// })
|
||
// this.form.fileIds = ids.toString()
|
||
// // 主体id
|
||
// ids = []
|
||
// this.entbase.forEach(each => {
|
||
// ids.push(each.id)
|
||
// })
|
||
// this.form.pripids = ids.toString()
|
||
// createAbnormalTask(this.form).then(res => {
|
||
// if (res.code === 0) {
|
||
// this.$message.success('发送成功')
|
||
// this.$router.back()
|
||
// }
|
||
// })
|
||
this.submitLoading = true
|
||
this.form.bizseq = this.bizseq
|
||
this.form.workflowid = this.workflowId
|
||
this.form.opiniontype = '2'
|
||
this.form.handler = this.user.username
|
||
this.form.handlerid = this.user.primaryKey
|
||
this.form.opinioncontent = this.form.opinion
|
||
this.form.tasklistid = this.tasklistid
|
||
this.form.nextPerformerids = ''
|
||
this.form.nextPerformerNames = this.user.username
|
||
bizRemoveNext(this.form).then(res => {
|
||
this.submitLoading = false
|
||
if (res.code === 0) {
|
||
this.$message.success('审批成功')
|
||
if (isMenHu()) {
|
||
// 信创门户环境跳转回待办
|
||
window.location.href = '/aiccs/#/todo/list'
|
||
} else {
|
||
this.$router.back()
|
||
}
|
||
}
|
||
})
|
||
}).catch(() => {})
|
||
})
|
||
},
|
||
uploadCallback(res, file) {
|
||
if (res.code === 0) {
|
||
file.id = res.data.attachmentid
|
||
}
|
||
},
|
||
// 查看异常主体名单
|
||
showEntbaseList() {
|
||
this.showEntbase = true
|
||
},
|
||
// 移除文件回调
|
||
removeFile(file) {
|
||
removeAttachementById(file.id).then(res => {
|
||
if (res.code === 0) {
|
||
this.$message.success('删除成功')
|
||
} else {
|
||
this.$message.error(res.msg)
|
||
}
|
||
})
|
||
}
|
||
}
|
||
}
|
||
</script>
|
||
|
||
<style lang="scss" scoped>
|
||
.main-content{
|
||
padding: 10pt;
|
||
.back-btn{
|
||
position:absolute;
|
||
right:40pt;
|
||
}
|
||
.content-header,.content-body{
|
||
background: white;
|
||
padding:20PX 10PX;
|
||
border:1PX solid #eee;
|
||
}
|
||
.content-header{
|
||
height:60PX;
|
||
.title{
|
||
font-weight: 700;
|
||
font-size: $font-size-sub-title;
|
||
}
|
||
}
|
||
.content-body{
|
||
padding:20pt;
|
||
.tab{
|
||
.tab-title{
|
||
label{
|
||
display:inline-block;
|
||
}
|
||
}
|
||
}
|
||
.form{
|
||
margin-bottom: 20pt;
|
||
}
|
||
}
|
||
}
|
||
.content-body{
|
||
background: #fff;
|
||
}
|
||
/deep/.el-table .warning-row {
|
||
background: #eaf4fe!important;
|
||
}
|
||
.el-row {
|
||
border-left: 1px solid $color-border;
|
||
}
|
||
.bt0 {
|
||
/deep/.el-form-item__label{
|
||
border-top: 0!important;
|
||
}
|
||
/deep/.el-form-item__content{
|
||
border-top: 0!important;
|
||
}
|
||
}
|
||
</style>
|
||
<style lang="scss">
|
||
.main-content.abnormal{
|
||
font-size: $table-content-font-size;
|
||
.el-form-item{
|
||
margin-bottom:0;
|
||
background: $color-form-label;
|
||
.el-form-item__label{
|
||
padding-left: 10px;
|
||
color: #666!important;
|
||
font-size: $table-content-font-size;
|
||
border-top: 1px solid $color-border;
|
||
}
|
||
.el-form-item__content{
|
||
background: white;
|
||
padding: 10px;
|
||
color: #333!important;
|
||
font-size: $table-content-font-size;
|
||
border-top: 1px solid $color-border;
|
||
border-right: 1px solid $color-border;
|
||
border-left: 1px solid $color-border;
|
||
}
|
||
}
|
||
.el-form-item:last-child{
|
||
border-bottom: 1px solid $color-border;
|
||
}
|
||
.form-body.history{
|
||
padding:15px;
|
||
border:1px solid $color-border;
|
||
}
|
||
.el-form-item.is-error .custom .el-input__inner{
|
||
border-color:$color-border;
|
||
}
|
||
.el-textarea.is-disabled .el-textarea__inner{
|
||
color: #1c1e23;
|
||
}
|
||
}
|
||
</style>
|