This commit is contained in:
zhenghl 2026-01-04 15:00:48 +08:00
commit c92734b383
13 changed files with 539 additions and 57 deletions

View File

@ -14,7 +14,7 @@ VUE_APP_BASE_API = '/aiccs-api'
VUE_CLI_BABEL_TRANSPILE_MODULES = true
# file url
VUE_APP_DOWNLOAD_URL = '/aiccs-fileupload'
VUE_APP_DOWNLOAD_URL = '/aiccs/fileupload'
# 双抽地址
VUE_APP_RANDOM_URL = 'http://172.22.80.156:8085/aicods_gz'

View File

@ -4,7 +4,7 @@ ENV=production
# base api
VUE_APP_BASE_API=/aiccs-api
VUE_APP_DOWNLOAD_URL=/aiccs-fileupload
VUE_APP_DOWNLOAD_URL=/aiccs/fileupload
# 双抽地址
VUE_APP_RANDOM_URL=http://10.194.190.15:8081/aicods_gz

View File

@ -6,7 +6,7 @@ ENV = 'staging'
# base api
VUE_APP_BASE_API = '/aiccs-api'
VUE_APP_DOWNLOAD_URL = '/aiccs-fileupload'
VUE_APP_DOWNLOAD_URL = '/aiccs/fileupload'
# 双抽地址
VUE_APP_RANDOM_URL = 'http://172.22.80.156:8085/aicods_gz'

29
src/api/expelled.js Normal file
View File

@ -0,0 +1,29 @@
import request from '@/utils/request'
// 分页查询市场主体拟除名名单信息
export function listExpelled(data) {
return request({
url: '/expelled/list',
method: 'post',
data
})
}
// 新增、更新、删除市场主体拟除名名单信息
export function saveExpelled(data) {
return request({
url: '/expelled/save',
method: 'post',
data
})
}
// 批量导入市场主体拟除名名单信息
export function batchImportExpelled(data) {
return request({
url: '/expelled/batchImport',
method: 'post',
requestType: 'formdata',
data
})
}

View File

@ -2922,6 +2922,46 @@ export const constantRoutes = [{
}
]
},
{
path: '/expelled',
component: Layout,
meta: {
title: '市场主体除名管理',
icon: 'dict'
},
children: [
{
path: 'list',
component: () => import('@/views/expelled/list'),
name: 'list',
meta: { title: '除名名单库管理' }
},
{
path: 'notice',
component: () => import('@/views/expelled/notice'),
name: 'notice',
meta: { title: '除名告知通知书管理' }
},
{
path: 'objection',
component: () => import('@/views/expelled/objection'),
name: 'objection',
meta: { title: '除名异议管理' }
},
{
path: 'announcement',
component: () => import('@/views/expelled/announcement'),
name: 'announcement',
meta: { title: '除名公告管理' }
},
{
path: 'audit',
component: () => import('@/views/expelled/audit'),
name: 'audit',
meta: { title: '执行决定管理' }
}
]
},
{
path: '/',
component: Layout,

View File

@ -13,7 +13,7 @@
<div class="preview-box">
<paper-swiper ref="swiper">
<paper v-for="(item,index) in tableDataList" :key="index" style="width:730px">
<!-- <iframe-pdf src="http://172.22.80.35/aiccs-fileupload/6cf55cba-8140-4efe-a07f-c9bd377b7b71/%E5%88%97%E5%BC%82%E5%86%B3%E5%AE%9A%E4%B9%A6.pdf" /> -->
<!-- <iframe-pdf src="http://172.22.80.35/aiccs/fileupload/6cf55cba-8140-4efe-a07f-c9bd377b7b71/%E5%88%97%E5%BC%82%E5%86%B3%E5%AE%9A%E4%B9%A6.pdf" /> -->
<div class="printPaper">
<div class="paper-header"> <!-- 表头 -->

View File

@ -19,19 +19,19 @@
</div>
</el-row>
</el-col>
<el-col :span="8">
<el-row>
<label class="label-name_1">列入机关</label>
<el-select v-model="searchAbnForm.intoDecorg" clearable size="mini" placeholder="请选择列入机关" class="custom">
<el-option
v-for="item in orgMarketList"
:key="item.orgNumber"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-row>
</el-col>
<!-- <el-col :span="8">-->
<!-- <el-row>-->
<!-- <label class="label-name_1">列入机关</label>-->
<!-- <el-select v-model="searchAbnForm.intoDecorg" clearable size="mini" placeholder="请选择列入机关" class="custom">-->
<!-- <el-option-->
<!-- v-for="item in orgMarketList"-->
<!-- :key="item.orgNumber"-->
<!-- :label="item.label"-->
<!-- :value="item.value"-->
<!-- />-->
<!-- </el-select>-->
<!-- </el-row>-->
<!-- </el-col>-->
</el-row>
<el-row style="margin-bottom:10px">
@ -63,19 +63,19 @@
/>
</el-row>
</el-col>
<el-col :span="8">
<el-row>
<label class="label-name_1">移出机关</label>
<el-select v-model="searchAbnForm.redecorg" clearable size="mini" placeholder="请选择移出机关" class="custom">
<el-option
v-for="item in orgMarketList"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-row>
</el-col>
<!-- <el-col :span="8">-->
<!-- <el-row>-->
<!-- <label class="label-name_1">移出机关</label>-->
<!-- <el-select v-model="searchAbnForm.redecorg" clearable size="mini" placeholder="请选择移出机关" class="custom">-->
<!-- <el-option-->
<!-- v-for="item in orgMarketList"-->
<!-- :key="item.value"-->
<!-- :label="item.label"-->
<!-- :value="item.value"-->
<!-- />-->
<!-- </el-select>-->
<!-- </el-row>-->
<!-- </el-col>-->
</el-row>
<el-row style="margin-bottom:10px">
<el-col :span="8">

View File

@ -18,19 +18,19 @@
</div>
</el-row>
</el-col>
<el-col :span="7">
<el-row>
<label class="label-name_1">列入机关</label>
<el-select v-model="searchForm.paramMap.decorg" clearable size="mini" placeholder="请选择列入机关" class="custom">
<el-option
v-for="item in orgMarketList"
:key="item.orgNumber"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-row>
</el-col>
<!-- <el-col :span="7">-->
<!-- <el-row>-->
<!-- <label class="label-name_1">列入机关</label>-->
<!-- <el-select v-model="searchForm.paramMap.decorg" clearable size="mini" placeholder="请选择列入机关" class="custom">-->
<!-- <el-option-->
<!-- v-for="item in orgMarketList"-->
<!-- :key="item.orgNumber"-->
<!-- :label="item.label"-->
<!-- :value="item.value"-->
<!-- />-->
<!-- </el-select>-->
<!-- </el-row>-->
<!-- </el-col>-->
</el-row>
<el-row style="margin-bottom:10px">
<el-col :span="9">
@ -61,19 +61,19 @@
/>
</el-row>
</el-col>
<el-col :span="7">
<el-row>
<label class="label-name_1">移出机关</label>
<el-select v-model="searchForm.paramMap.remdecorg" clearable size="mini" placeholder="请选择移出机关" class="custom">
<el-option
v-for="item in orgMarketList"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-row>
</el-col>
<!-- <el-col :span="7">-->
<!-- <el-row>-->
<!-- <label class="label-name_1">移出机关</label>-->
<!-- <el-select v-model="searchForm.paramMap.remdecorg" clearable size="mini" placeholder="请选择移出机关" class="custom">-->
<!-- <el-option-->
<!-- v-for="item in orgMarketList"-->
<!-- :key="item.value"-->
<!-- :label="item.label"-->
<!-- :value="item.value"-->
<!-- />-->
<!-- </el-select>-->
<!-- </el-row>-->
<!-- </el-col>-->
</el-row>
<el-row style="margin-bottom:10px">
<el-col :span="9">
@ -271,7 +271,7 @@ export default {
search() {
//
let flag = false
// obj
for (const key in this.searchForm.paramMap) {
if (this.searchForm.paramMap[key] == null || this.searchForm.paramMap[key] == '') {

View File

@ -0,0 +1,11 @@
<template>
</template>
<script>
</script>
<style>
</style>

View File

@ -0,0 +1,11 @@
<template>
</template>
<script>
</script>
<style>
</style>

View File

@ -0,0 +1,369 @@
<template>
<div class="page">
<edit-table
ref="EditTable"
v-model="data"
:table-prop="tableProp"
:fields="fields"
:dialog-prop="dialogProp"
:show-search-form="true"
row-key="id"
:search-form-prop="searchFormProp"
:form-prop="formProp"
:search-loader="searchLoader"
@update:selected="(value)=>{selected = value}"
>
<template v-slot:divider="scope">
<div class="divider">
<span class="text">{{ scope.getPropValue(scope.field.label) }}</span>
</div>
</template>
</edit-table>
<div class="btns">
<el-button icon="el-icon-circle-plus-outline" type="primary" size="mini" @click="addData">添加</el-button>
<!-- <el-upload-->
<!-- style="display: inline-block; margin-left: 10px; margin-right: 10px;"-->
<!-- action=""-->
<!-- :show-file-list="false"-->
<!-- :auto-upload="false"-->
<!-- :on-change="(file) => { batchImport(file) }"-->
<!-- >-->
<!-- <el-button-->
<!-- slot="trigger"-->
<!-- icon="iconfont icon-tijiao"-->
<!-- type="primary"-->
<!-- size="mini"-->
<!-- >批量导入</el-button>-->
<!-- </el-upload>-->
<!-- <el-button icon="el-icon-download" type="primary" size="mini" @click="downloadTemplate">下载模板</el-button>-->
</div>
</div>
</template>
<script>
import { listExpelled, saveExpelled, batchImportExpelled } from '@/api/expelled'
import EditTable from '@/plugins/EasyComponent/EditTable'
export default {
components: {
EditTable
},
data() {
return {
data: [],
selected: [],
tableProp: {
emitLoadOnCreate: true,
tableConfig: {
showIndex: true,
selection: false,
indexWidth: '80px',
handlerWidth: '120px',
showPagination: true,
tableSelectionProps: {
selectable: (row, index) => {
return row.status === '1'
}
},
tableProps: {
headerCellStyle: { background: '#F5F5F5!important', color: '#333333!important', padding: '0px' },
headerRowStyle: { height: '48px' },
rowStyle: { height: '48px' },
cellStyle: { padding: '16px 0', color: '#333' }
}
},
buttons: [
{
label: '编辑',
type: 'text',
show: true,
handler: (scope, { row }) => {
this.$refs.EditTable.editReady(row)
}
},
{
label: '删除',
type: 'text',
show: true,
handler: (scope, { row }) => {
this.$confirm('是否确认删除该' + row.entName + '市场主体拟除名名单信息', '提示', {
type: 'info',
customClass: 'type-1'
})
.then(() => {
return saveExpelled({
...row,
isDelete: '1'
}).then(() => {
this.$message.success('删除成功')
this.$refs.EditTable.search({ reset: true })
}).catch(error => {
this.$message.error('删除失败: ' + (error.message || '未知错误'))
throw error
})
})
.catch(error => {
//
if (error !== 'cancel') {
throw error
}
})
}
}
]
},
searchFormProp: {
formConfig: {
labelWidth: '100px',
labelPosition: 'right',
gutter: 32
}
},
formProp: {
formConfig: {
labelWidth: '210px',
labelPosition: 'right',
gutter: 32,
buttonPosition: 'right'
},
buttons: [
{
label: '返回',
type: 'primary',
buttonProps: {
plain: true
},
handler: (scope, { row }) => {
this.$refs.EditTable.cancelEdit()
}
},
{
label: '保存',
type: 'primary',
handler: (scope, { row }) => {
return scope.formInstance.submitForm().then((formData) => {
return this.$confirm('是否继续提交', '提示', {
type: 'info',
customClass: 'type-1'
})
.then(() => {
return (() => {
return saveExpelled
})()(formData)
.then(() => {
this.$message.success('保存成功')
this.$refs.EditTable.editConfirm(formData)
return this.$refs.EditTable.search({ reset: true })
})
.catch(error => {
this.$message.error('保存失败: ' + (error.message || '未知错误'))
throw error
})
})
.catch(error => {
//
if (error !== 'cancel') {
throw error
}
})
})
}
}
]
},
dialogProp: {
title: (scope) => {
if (scope.editRowClone && scope.editRowClone._isAdd) {
return !scope.editRowClone.selected ? '新增市场主体拟除名名单信息' : '新增市场主体拟除名名单信息'
} else if (scope.editRowClone) {
return '编辑市场主体拟除名名单信息'
}
return '市场主体拟除名名单信息'
},
width: '1200px',
customClass: 'dialog-abnormal-list'
},
fields: [
{
type: 'input',
label: '市场主体名称',
prop: 'searchEntName',
span: 9,
showInForm: ({ meta }) => {
return meta.isSearchForm === true
},
showInTable: false
},
{
type: 'input',
label: '统一社会信用代码',
prop: 'searchUscc',
span: 9,
tableProps: {
width: '150px',
showOverflowTooltip: true,
formatter: (row, column, cellValue, index) => {
return `${row.uscc || ''}`
}
},
showInForm: ({ meta }) => {
return meta.isSearchForm === true
},
showInTable: false
},
{
type: 'buttons',
showInTable: false,
showInForm: ({ meta }) => {
return meta.isSearchForm === true
},
hiddenLabel: true,
label: '搜索操作',
prop: '搜索操作',
span: 6,
formItemProp: {
labelWidth: '0px'
},
buttons: [
{
label: '查询',
type: 'primary',
handler: (scope) => {
const { meta } = scope
const { _editTable } = meta
const { editTableInstance } = _editTable
editTableInstance.search()
}
},
{
label: '重置',
type: 'primary',
buttonProps: {
plain: true
},
handler: (scope) => {
const { meta } = scope
const { _editTable } = meta
const { editTableInstance } = _editTable
editTableInstance.search({
reset: true,
resetData: {
status: '1'
}
})
}
}
]
},
{
type: 'divider',
label: '市场主体拟除名名单信息',
showInTable: false,
showInForm: ({ meta }) => {
return meta.isForm === true
}
},
{
type: 'input',
label: '市场主体名称',
prop: 'entName',
required: true,
showInForm: ({ meta }) => {
return meta.isForm === true
},
tableProps: {
width: '200px',
showOverflowTooltip: true,
formatter: (row, column, cellValue, index) => {
return `${row.entName || ''}`
}
},
showInTable: true
},
{
type: 'input',
label: '统一社会信用代码',
prop: 'uscc',
required: true,
showInForm: ({ meta }) => {
return meta.isForm === true
},
showInTable: true
},
{
type: 'input',
label: '法定代表人(负责人、经营者)',
prop: 'lerepName',
required: true,
showInForm: ({ meta }) => {
return meta.isForm === true
},
tableProps: {
showOverflowTooltip: true
}
},
{
type: 'input',
label: '住所(经营场所)',
prop: 'address',
required: true,
showInForm: ({ meta }) => {
return meta.isForm === true
},
tableProps: {
showOverflowTooltip: true
}
}
]
}
},
beforeRouteEnter(to, from, next) {
next((vm) => {
// 使 $nextTick
vm.$nextTick(() => {
if (vm.$refs.EditTable) {
vm.$refs.EditTable.search({ reset: true })
}
})
})
},
methods: {
searchLoader(pageParam, parseSearchFormData, instance) {
return listExpelled({
size: pageParam.size,
current: pageParam.current,
entity: {
...parseSearchFormData
}
}).then((data) => {
//
const records = data.data.records.map(record => ({
...record,
_isAdd: record._isAdd || false
}))
return {
tableData: records,
total: data.data.total
}
})
},
addData() {
this.$refs.EditTable.editReady({})
},
downloadTemplate() {
window.open(`${process.env.VUE_APP_BASE_API}/expelled/downloadTemplate`, '_blank')
},
batchImport(file) {
const formData = new FormData()
formData.append('annex', file.raw)
return batchImportExpelled(formData).then(() => {
this.$message.success('导入成功')
this.$refs.EditTable.search({ reset: true })
})
}
}
}
</script>
<style lang="scss" scoped>
@import "~@/styles/abnormal-list.scss";
</style>

View File

@ -0,0 +1,11 @@
<template>
</template>
<script>
</script>
<style>
</style>

View File

@ -0,0 +1,11 @@
<template>
</template>
<script>
</script>
<style>
</style>