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

516 lines
17 KiB
Vue
Raw Normal View History

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