aiccs/src/views/expelled/除名修复管理/index.vue

469 lines
14 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 m20">
<!--头部-查询-->
<div class="content-header">
<div class="body search-body">
<el-row>
<el-col :span="12">
<el-row class="mb10">
<label class="label-name_1">统一社会信用代码/注册号</label>
<div class="search-input-box_1">
<el-input v-model="searchForm.searchUscc" clearable size="mini" type="text" class="search-input" placeholder="请输入统一社会信用代码/注册号" @keyup.enter.native="search" />
</div>
</el-row>
</el-col>
<el-col :span="12">
<el-row>
<label class="label-name_2">除名原因:</label> <!-- clearable 可以清空选项 -->
<el-select
v-model="searchForm.specause"
clearable
size="mini"
placeholder="请选择列入原因"
class="custom"
>
<el-option
v-for="item in reasonList"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-row>
</el-col>
</el-row>
<el-row>
<el-col :span="12" class="mb10">
<label class="label-name">主体名称(模糊)</label>
<div class="search-input-box">
<el-input v-model="searchForm.searchName" clearable size="mini" type="text" class="search-input" placeholder="请输入主体名称(模糊)" @keyup.enter.native="search" />
</div>
</el-col>
<el-col :span="12">
<el-row class="mb10">
<label class="label-name">除名日期:</label> <!-- value-format="yyyy-MM-dd" 指定日期发送格式 -->
<el-date-picker
v-model="searchForm.searchDate"
size="mini"
value-format="yyyy-MM-dd"
type="daterange"
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"
/>
</el-row>
</el-col>
</el-row>
<el-row>
<el-col :span="11" :offset="1">
<div class="btn-box">
<el-button size="mini" type="primary" @click="search">查询</el-button>
<el-button size="mini" @click="searchForm.searchUscc = '';searchForm.searchName='';searchForm.reportYear='';searchForm.searchDate='';searchForm.specause=''">重置</el-button>
</div>
</el-col>
</el-row>
</div>
</div>
<!--body-查询结果-->
<div class="content-body">
<div class="body">
<el-table
ref="multipleTable"
v-loading="loading"
size="mini"
:data="tableData"
tooltip-effect="dark"
style="width: 95%;margin:0 auto"
:fit="true"
:row-class-name="tableRowClassName"
:header-cell-style="{background:'#8cc3fb',color:'#fff'}"
@selection-change="handleSelectionChange"
>
<el-table-column prop="index" label="序号" min-width="30" align="center" />
<el-table-column label="统一社会信用代码/注册号" min-width="100" align="left">
<template slot-scope="scope">
{{ scope.row.uniscid ||scope.row.regno }}
</template>
</el-table-column>
<el-table-column prop="entname" :show-overflow-tooltip="true" label="主体名称" min-width="150" align="left" />
<el-table-column prop="enttypeName" :show-overflow-tooltip="true" label="主体类型" min-width="60" align="left" />
<el-table-column prop="abntime" label="除名日期" min-width="50" align="left" />
<el-table-column prop="specause" :show-overflow-tooltip="true" label="除名原因" min-width="150" align="left" :formatter="reasonFormat" />
<el-table-column label="操作" min-width="60" align="center">
<template slot-scope="scope">
<el-button type="primary" size="mini" @click="check(scope.row.abnlistid,scope.row.specause,scope.row.pripid,scope.row.abntime)">办理</el-button>
</template>
</el-table-column>
</el-table>
<div class="page-box">
<el-row class="bl0">
<el-col :span="24">
<el-pagination
:disabled="loading"
:page-size="pageParam.pageSize"
:total="pageParam.total"
:page-sizes="[10, 20, 30, 40,50,100,200]"
layout="slot,total, sizes, prev, pager, next, jumper"
@size-change="pageSizeChange"
@current-change="pageIndexChange"
>
<span>
第 {{ pageParam.curPage }} 页 /
共 {{ (pageParam.total !== 0 ? parseInt((pageParam.total + pageParam.pageSize - 1)/pageParam.pageSize) : 1) }} 页
</span>
</el-pagination>
</el-col>
</el-row>
</div>
</div>
</div>
<el-dialog
title="提示"
:visible.sync="templateDialog1"
width="30%"
>
<span>{{ prompt }}</span>
<span slot="footer" class="dialog-footer">
<el-button v-if="details.length>0" type="primary" @click="showDetails = true">查看详情</el-button>
<el-button type="primary" :loading="subloading" @click="startTask(abnlistidParam)">确定</el-button>
</span>
</el-dialog>
<el-dialog :visible.sync="showDetails" title="市场主体一年内因实地查无的除名记录">
<el-table :data="details" tooltip-effect="dark" size="mini" style="width: 100%; min-height: 380px" :fit="true">
<el-table-column prop="entname" :show-overflow-tooltip="true" label="主体名称" min-width="150" align="left" />
<el-table-column prop="specause" :show-overflow-tooltip="true" label="除名原因" min-width="180" align="left" :formatter="reasonFormat" />
<el-table-column prop="remdate" :show-overflow-tooltip="true" label="除名日期" min-width="80" align="left" />
</el-table>
</el-dialog>
</div>
</template>
<script>
import { commonPage, bizRemListValidateBiz } from '@/api/abnormal'
import { startBizRemove } from '@/api/abnormal'
import { getConstant } from '@/api/system'
export default {
components: {
},
data() {
return {
subloading: false,
abnlistidParam: '',
templateDialog1: false,
showDetails: false,
prompt: '',
details: [],
selection: [],
searchForm: {
entertype: 'individual'
},
reasonList: [], // 几种列入原因
reason: '',
loading: false,
showMore: false,
showFixed: false,
tableData: [],
pageParam: {
customParamMap: { entertype: 'individual' },
curPage: 1,
total: 0,
pageSize: 10
}
}
},
watch: {
},
mounted() {
// 加载个体户列入原因
getConstant('CD75').then(res => {
if (res.code === 0) {
const list = []
res.data.forEach(each => {
list.push({
value: each.code,
label: each.name
})
})
this.reasonList = list
}
})
// this.loadPage()
window.addEventListener('scroll', this.handleScroll, true)
},
methods: {
showMoreCriteria() {
this.showMore = !this.showMore
},
tableRowClassName({ row, rowIndex }) {
if (rowIndex % 2 === 1) {
return 'warning-row'
}
},
handleScroll() {
var scrollTop =
window.pageYOffset ||
document.documentElement.scrollTop ||
document.body.scrollTop
if (scrollTop > 80) {
this.showFixed = true
} else {
this.showFixed = false
}
},
// 列入原因
reasonFormat(row) {
let name = ''
this.reasonList.forEach(each => {
if (each.value === row.specause) {
name = each.label
}
})
return name
},
check(abnlistid, specause, pripid, abntime) {
return bizRemListValidateBiz(abnlistid).then(({ code, data }) => {
if (data.length > 0) {
this.$message.error(data[0].reason)
} else {
this.abnlistidParam = abnlistid
this.templateDialog1 = true
this.prompt = '是否确认启动待办'
}
})
},
// 启动待办
startTask(abnlistid) {
this.subloading = true
startBizRemove('', abnlistid, 'individual').then(res => {
this.subloading = false
if (res.code === 0) {
this.$router.push({ path: '/credit/company/removeaccept', query: { tasklistid: res.data.tasklistid, bizseq: res.data.bizseq, type: 'individual' }})
} else if (res.code === 3002) {
this.subloading = false
this.prompt = res.msg
this.templateDialog1 = true
} else {
this.subloading = false
this.$message.error(res.msg)
}
})
},
// 搜索
search() {
this.pageParam.customParamMap = this.searchForm
this.pageParam.curPage = 1
this.loadPage()
},
// 分页多选插件回调
removeCallback(index, row) {
this.$refs.multipleTable.toggleRowSelection(row, false)
},
// 全选按钮事件
selectAll() {
const table = this.$refs.multipleTable
for (const i in table.data) {
const each = table.data[i]
table.toggleRowSelection(each, true)
}
},
// 选项变更事件
handleSelectionChange(selectData) {
const cancel = []
if (selectData.length !== this.tableData.length) {
// 找出没有选中的内容
this.tableData.forEach(each => {
for (const i in selectData) {
const atom = selectData[i]
if (atom.pripid === each.pripid) {
return
}
}
cancel.push(each)
})
}
// 取消选中的内容
for (const i in cancel) {
const each = cancel[i]
let index
for (const j in this.selection) {
const select = this.selection[j]
if (select.pripid === each.pripid) {
index = parseInt(j)
break
}
}
if (index !== undefined) {
this.selection.splice(index, 1)
}
}
// 增加选中内容
for (const i in selectData) {
const each = selectData[i]
let exist = false
for (const j in this.selection) {
const select = this.selection[j]
if (select.pripid === each.pripid) {
exist = true
break
}
}
if (!exist) {
this.selection.push(each)
}
}
},
// 当前分页改变
pageIndexChange(curPage) {
this.pageParam.curPage = curPage
this.loadPage()
},
// 分页大小改变
pageSizeChange(pageSize) {
this.pageParam.pageSize = pageSize
this.loadPage()
},
// 加载分页
loadPage() {
if (this.loading) return
this.loading = true
commonPage(this.pageParam).then(res => {
this.loading = false
const list = []
let i = 1
const pageStart = (this.pageParam.curPage - 1) * this.pageParam.pageSize
res.data.records.forEach(each => {
each.index = pageStart + i++
list.push(each)
})
this.tableData = list
this.pageParam.total = res.data.total
const selection = JSON.parse(JSON.stringify(this.selection))
this.$nextTick(() => {
for (const i in list) {
const each = list[i]
for (const j in selection) {
if (each.pripid === selection[j].pripid) {
this.$refs.multipleTable.toggleRowSelection(each, true)
}
}
}
})
})
}
}
}
</script>
<style lang="scss" scoped>
.main-content{
background: #fff;
padding: 10pt;
.content-header{
background: white;
.search-body{
/deep/ .el-date-editor *{
font-size: 16px!important;
}
/deep/ .el-date-editor .el-range-separator{
width: 8%!important;
}
}
.label-name_1{
text-align: right;
display: inline-block;//转成行内快,才可定义宽度
width: 220px;
font-size: $table-content-font-size;
}
.search-input-box_1{
display: inline-block;
width: calc(100% - 220px);
}
.label-name_2{
text-align: right;
display: inline-block;//转成行内快,才可定义宽度
width: 220px;
font-size: $table-content-font-size;
}
.search-input-box_2{
display: inline-block;
width: calc(100% - 220px);
}
.label-name {
text-align: right;
display: inline-block;//转成行内快,才可定义宽度
width: 220px;
font-size: $table-content-font-size;
}
.search-input-box{
display: inline-block;
width: calc(100% - 220px);
// width: 300px;
}
.custom{
width: 60%
}
.search-input{
cursor: pointer;
}
.body{
padding: 20px 0 ;
border-top:none;
margin-bottom: 20PX;
}
}
.content-body{
background:white;
margin-bottom: 100px;
}
.header{
height:50PX;
padding:15PX 10PX;
.title{
font-weight: 600;
font-size: 1.2rem;
}
}
.page-box{
margin:10PX;
.el-pagination{
text-align: right;
}
}
.mb10{
margin-bottom: 10px;
}
}
.fixed-bottom {
position: fixed;
width: 100%;
bottom: -10px;
right: 0;
z-index: 99;
padding: 10px;
/* background: #8bbef6; */
border-radius: 5px 5px 0 0;
background: linear-gradient(to bottom, #fff 0%,#8bbef6 100%);
box-shadow: 1px -4px 4px rgba(0, 21, 41, 0.08);
}
.content-body{
background: #fff;
/deep/.el-table .warning-row {
background: #eaf4fe!important;
}
}
</style>
<style lang="scss">
.content-body .el-table-column--selection .cell{
padding-right: 0px;
}
.fixed-bottom {
.el-pagination {
text-align: right!important;
}
}
</style>