aiccs/src/views/expelled/撤销除名管理/审批详情.vue

516 lines
17 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<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>