强制注销功能优化
This commit is contained in:
parent
e78f2fd9a8
commit
97cbc29c77
|
|
@ -6,6 +6,9 @@
|
||||||
top="153px"
|
top="153px"
|
||||||
custom-class="dialog-abnormal-list"
|
custom-class="dialog-abnormal-list"
|
||||||
>
|
>
|
||||||
|
<div class="dialog-container">
|
||||||
|
<!-- 左侧表格 -->
|
||||||
|
<div class="left-panel">
|
||||||
<edit-table
|
<edit-table
|
||||||
v-if="visible"
|
v-if="visible"
|
||||||
v-model="tableData"
|
v-model="tableData"
|
||||||
|
|
@ -18,7 +21,28 @@
|
||||||
:selected.sync="selected"
|
:selected.sync="selected"
|
||||||
/>
|
/>
|
||||||
<!-- 当没有输入条件时显示提示 -->
|
<!-- 当没有输入条件时显示提示 -->
|
||||||
<div v-if="showNoDataMessage" class="no-data-message">请输入条件进行查询!</div>
|
<!-- <div v-if="showNoDataMessage" class="no-data-message">请输入条件进行查询!</div>-->
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- 右侧已选择主体显示区域 -->
|
||||||
|
<div class="right-panel">
|
||||||
|
<div class="selected-title">已选择主体</div>
|
||||||
|
<div v-if="selected.length === 0" class="empty-tip">暂无选择</div>
|
||||||
|
<div v-else class="selected-list">
|
||||||
|
<div
|
||||||
|
v-for="(entity, index) in selected"
|
||||||
|
:key="entity.pripid"
|
||||||
|
class="selected-item"
|
||||||
|
>
|
||||||
|
<div class="item-info">
|
||||||
|
<div class="item-name">{{ entity.entname }}</div>
|
||||||
|
<div class="item-code">{{ entity.uniscid || entity.regno }}</div>
|
||||||
|
</div>
|
||||||
|
<i class="el-icon-close remove-btn" @click="removeEntity(index)" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
<div slot="footer">
|
<div slot="footer">
|
||||||
<el-button type="primary" plain @click="visible = false">取消</el-button>
|
<el-button type="primary" plain @click="visible = false">取消</el-button>
|
||||||
|
|
@ -29,6 +53,7 @@
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import { baseinfoListByRegOrg, getIsUserProp } from '@/api/force'
|
import { baseinfoListByRegOrg, getIsUserProp } from '@/api/force'
|
||||||
|
import { getBaseCodeList } from '@/api/constant'
|
||||||
export default {
|
export default {
|
||||||
props: {
|
props: {
|
||||||
type: {
|
type: {
|
||||||
|
|
@ -44,17 +69,20 @@ export default {
|
||||||
isExSearch: false,
|
isExSearch: false,
|
||||||
tableData: [],
|
tableData: [],
|
||||||
selected: [],
|
selected: [],
|
||||||
|
selectedEntities: [], // 已选择主体列表
|
||||||
showNoDataMessage: false, // 新增属性
|
showNoDataMessage: false, // 新增属性
|
||||||
|
INDUSTRYPHYList: [], // 存储行业门类数据
|
||||||
fields: [
|
fields: [
|
||||||
{
|
{
|
||||||
type: 'input',
|
type: 'input',
|
||||||
label: '统一社会信用代码/注册号',
|
label: '统一社会信用代码/注册号',
|
||||||
prop: 'searchUscc',
|
prop: 'searchUscc',
|
||||||
span: 8,
|
span: 10,
|
||||||
tableProps: {
|
tableProps: {
|
||||||
|
width: `210px`,
|
||||||
showOverflowTooltip: true,
|
showOverflowTooltip: true,
|
||||||
formatter: (row, column, cellValue, index) => {
|
formatter: (row, column, cellValue, index) => {
|
||||||
return `${row.uniscid || row.regNO || ''}`
|
return `${row.uniscid || row.regno || ''}`
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
@ -64,14 +92,71 @@ export default {
|
||||||
return meta.isSearchForm ? '主体名称(模糊)' : '主体名称'
|
return meta.isSearchForm ? '主体名称(模糊)' : '主体名称'
|
||||||
},
|
},
|
||||||
prop: 'entName',
|
prop: 'entName',
|
||||||
span: 8,
|
span: 10,
|
||||||
tableProps: {
|
tableProps: {
|
||||||
|
width: `210px`,
|
||||||
showOverflowTooltip: true,
|
showOverflowTooltip: true,
|
||||||
formatter: (row, column, cellValue, index) => {
|
formatter: (row, column, cellValue, index) => {
|
||||||
return `${row.entname || ''}`
|
return `${row.entname || ''}`
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
type: 'input',
|
||||||
|
label: '登记机关',
|
||||||
|
prop: 'regorgCn',
|
||||||
|
span: 6,
|
||||||
|
isView: false,
|
||||||
|
tableProps: {
|
||||||
|
width: '180px',
|
||||||
|
formatter: (row, column, cellValue, index) => {
|
||||||
|
return `${row.regorgCn || ''}`
|
||||||
|
}
|
||||||
|
},
|
||||||
|
showInForm: false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type: 'select',
|
||||||
|
label: '主体类型',
|
||||||
|
prop: 'enterType',
|
||||||
|
span: 7,
|
||||||
|
defaultValue: 'company', // 设置默认值为“企业”
|
||||||
|
options: [
|
||||||
|
{ label: '企业', value: 'company' },
|
||||||
|
{ label: '个体户', value: 'individual' },
|
||||||
|
{ label: '农专社', value: 'farmer' }
|
||||||
|
],
|
||||||
|
tableProps: {
|
||||||
|
width: '90px',
|
||||||
|
showOverflowTooltip: true,
|
||||||
|
formatter: (row, column, cellValue, index) => {
|
||||||
|
const typeMap = {
|
||||||
|
company: '企业',
|
||||||
|
individual: '个体户',
|
||||||
|
farmer: '农专社'
|
||||||
|
}
|
||||||
|
return typeMap[cellValue] || ''
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type: 'select',
|
||||||
|
label: '行业门类',
|
||||||
|
prop: 'industryphy',
|
||||||
|
span: 9,
|
||||||
|
options: [],
|
||||||
|
tableProps: {
|
||||||
|
width: '150px',
|
||||||
|
showOverflowTooltip: true,
|
||||||
|
formatter: (row, column, cellValue, index) => {
|
||||||
|
const industryMap = this.INDUSTRYPHYList?.reduce((map, item) => {
|
||||||
|
map[item.code] = item.name // 使用 code 作为 key,name 作为 value
|
||||||
|
return map
|
||||||
|
}, {})
|
||||||
|
return industryMap?.[cellValue] || '' // 匹配 cellValue 并返回对应中文
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
{
|
{
|
||||||
type: 'buttons',
|
type: 'buttons',
|
||||||
showInTable: false,
|
showInTable: false,
|
||||||
|
|
@ -111,58 +196,76 @@ export default {
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
type: 'input',
|
type: 'date-picker',
|
||||||
label: '登记机关',
|
label: '吊销日期自',
|
||||||
prop: 'regorgCn',
|
prop: 'revStartDate',
|
||||||
span: 6,
|
span: 8,
|
||||||
isView: false,
|
valueFormat: 'yyyy-MM-dd',
|
||||||
tableProps: {
|
placeholder: '请选择开始日期',
|
||||||
width: '200px',
|
showInTable: false
|
||||||
formatter: (row, column, cellValue, index) => {
|
|
||||||
return `${row.regorgCn || ''}`
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
showInForm: false
|
{
|
||||||
|
type: 'date-picker',
|
||||||
|
label: '吊销日期至',
|
||||||
|
prop: 'revEndDate',
|
||||||
|
span: 8,
|
||||||
|
valueFormat: 'yyyy-MM-dd',
|
||||||
|
placeholder: '请选择结束日期',
|
||||||
|
showInTable: false
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
type: 'input',
|
type: 'input',
|
||||||
label: '法定代表人',
|
label: '吊销时间',
|
||||||
prop: 'leRep',
|
prop: 'revDate',
|
||||||
span: 6,
|
span: 6,
|
||||||
tableProps: {
|
tableProps: {
|
||||||
formatter: (row, column, cellValue, index) => {
|
width: '120px',
|
||||||
return `${row.name || ''}`
|
|
||||||
}
|
|
||||||
},
|
|
||||||
showInForm: false
|
|
||||||
},
|
|
||||||
{
|
|
||||||
type: 'input',
|
|
||||||
label: '经营地址',
|
|
||||||
prop: 'dom',
|
|
||||||
span: 10,
|
|
||||||
tableProps: {
|
|
||||||
showOverflowTooltip: true,
|
showOverflowTooltip: true,
|
||||||
formatter: (row, column, cellValue, index) => {
|
formatter: (row, column, cellValue, index) => {
|
||||||
return `${row.dom || ''}`
|
return row.revDate || ''
|
||||||
}
|
|
||||||
},
|
|
||||||
showInForm: false
|
|
||||||
},
|
|
||||||
{
|
|
||||||
type: 'input',
|
|
||||||
label: '属地机关',
|
|
||||||
prop: 'localadm',
|
|
||||||
span: 6,
|
|
||||||
isView: false,
|
|
||||||
tableProps: {
|
|
||||||
width: '200px',
|
|
||||||
formatter: (row, column, cellValue, index) => {
|
|
||||||
return `${row.localadmCn || cellValue}`
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
showInForm: false
|
showInForm: false
|
||||||
}
|
}
|
||||||
|
// {
|
||||||
|
// type: 'input',
|
||||||
|
// label: '法定代表人',
|
||||||
|
// prop: 'leRep',
|
||||||
|
// span: 6,
|
||||||
|
// tableProps: {
|
||||||
|
// formatter: (row, column, cellValue, index) => {
|
||||||
|
// return `${row.name || ''}`
|
||||||
|
// }
|
||||||
|
// },
|
||||||
|
// showInForm: false
|
||||||
|
// }
|
||||||
|
// {
|
||||||
|
// type: 'input',
|
||||||
|
// label: '经营地址',
|
||||||
|
// prop: 'dom',
|
||||||
|
// span: 10,
|
||||||
|
// tableProps: {
|
||||||
|
// showOverflowTooltip: true,
|
||||||
|
// formatter: (row, column, cellValue, index) => {
|
||||||
|
// return `${row.dom || ''}`
|
||||||
|
// }
|
||||||
|
// },
|
||||||
|
// showInForm: false
|
||||||
|
// },
|
||||||
|
// {
|
||||||
|
// type: 'input',
|
||||||
|
// label: '属地机关',
|
||||||
|
// prop: 'localadm',
|
||||||
|
// span: 6,
|
||||||
|
// isView: false,
|
||||||
|
// tableProps: {
|
||||||
|
// width: '200px',
|
||||||
|
// formatter: (row, column, cellValue, index) => {
|
||||||
|
// return `${row.localadmCn || cellValue}`
|
||||||
|
// }
|
||||||
|
// },
|
||||||
|
// showInForm: false
|
||||||
|
// }
|
||||||
],
|
],
|
||||||
searchFormProp: {
|
searchFormProp: {
|
||||||
formConfig: {
|
formConfig: {
|
||||||
|
|
@ -177,10 +280,7 @@ export default {
|
||||||
selection: true,
|
selection: true,
|
||||||
// eslint-disable-next-line no-mixed-spaces-and-tabs
|
// eslint-disable-next-line no-mixed-spaces-and-tabs
|
||||||
tableSelectionProps: {
|
tableSelectionProps: {
|
||||||
reserveSelection: true,
|
reserveSelection: true
|
||||||
selectable: (row, index) => {
|
|
||||||
return this.selected.length === 0 || this.selected[0] === row
|
|
||||||
}
|
|
||||||
// eslint-disable-next-line no-mixed-spaces-and-tabs
|
// eslint-disable-next-line no-mixed-spaces-and-tabs
|
||||||
},
|
},
|
||||||
disableSelectAll: false,
|
disableSelectAll: false,
|
||||||
|
|
@ -212,18 +312,48 @@ export default {
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
mounted() {
|
||||||
|
getBaseCodeList('CA05').then(res => {
|
||||||
|
if (res.code === 0) {
|
||||||
|
this.INDUSTRYPHYList = res.data
|
||||||
|
// 使用 $set 更新 fields 中的 options
|
||||||
|
const industryFieldIndex = this.fields.findIndex(field => field.prop === 'industryphy')
|
||||||
|
if (industryFieldIndex !== -1) {
|
||||||
|
this.$set(this.fields[industryFieldIndex], 'options', this.INDUSTRYPHYList.map(item => ({
|
||||||
|
label: item.name,
|
||||||
|
value: item.code
|
||||||
|
})))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
methods: {
|
methods: {
|
||||||
open() {
|
open() {
|
||||||
this.selected = []
|
this.selected = []
|
||||||
|
this.selectedEntities = []
|
||||||
this.visible = true
|
this.visible = true
|
||||||
},
|
},
|
||||||
|
handleSelectionChange(selection) {
|
||||||
|
this.$set(this, 'selectedEntities', [...selection])
|
||||||
|
},
|
||||||
|
removeEntity(index) {
|
||||||
|
this.selected.splice(index, 1)
|
||||||
|
},
|
||||||
searchLoader(pageParam, parseSearchFormData, instance) {
|
searchLoader(pageParam, parseSearchFormData, instance) {
|
||||||
const { searchUscc, entName } = parseSearchFormData
|
const { searchUscc, entName, revStartDate, revEndDate } = parseSearchFormData
|
||||||
|
// 校验吊销日期自和吊销日期至是否同时选择
|
||||||
|
if ((revStartDate && !revEndDate) || (!revStartDate && revEndDate)) {
|
||||||
|
this.$message.warning('吊销日期自 和 吊销日期至 需同时选择!')
|
||||||
|
return Promise.reject() // 阻止查询
|
||||||
|
}
|
||||||
|
|
||||||
return baseinfoListByRegOrg({
|
return baseinfoListByRegOrg({
|
||||||
size: pageParam.size,
|
size: pageParam.size,
|
||||||
current: pageParam.current,
|
current: pageParam.current,
|
||||||
entity: {
|
entity: {
|
||||||
...parseSearchFormData
|
...parseSearchFormData,
|
||||||
|
revStartDate, // 开始时间
|
||||||
|
revEndDate // 结束时间
|
||||||
}
|
}
|
||||||
}).then((data) => {
|
}).then((data) => {
|
||||||
this.showNoDataMessage = !searchUscc && !entName
|
this.showNoDataMessage = !searchUscc && !entName
|
||||||
|
|
@ -234,17 +364,81 @@ export default {
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
confirm() {
|
confirm() {
|
||||||
this.$emit('confirm', this.selected)
|
this.$emit('confirm', this.selected) // 提交已选择主体信息
|
||||||
this.visible = false
|
this.visible = false
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
|
.dialog-container {
|
||||||
|
display: flex;
|
||||||
|
height: 60vh;
|
||||||
|
|
||||||
|
.left-panel {
|
||||||
|
flex: 1;
|
||||||
|
overflow-y: auto;
|
||||||
|
border-right: 1px solid #ebeef5;
|
||||||
|
padding-right: 16px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.right-panel {
|
||||||
|
width: 300px;
|
||||||
|
padding-left: 16px;
|
||||||
|
overflow-y: auto;
|
||||||
|
|
||||||
|
.selected-title {
|
||||||
|
font-weight: bold;
|
||||||
|
margin-bottom: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.empty-tip {
|
||||||
|
color: #999;
|
||||||
|
text-align: center;
|
||||||
|
margin-top: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.selected-list {
|
||||||
|
max-height: 50vh;
|
||||||
|
overflow-y: auto;
|
||||||
|
|
||||||
|
.selected-item {
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
align-items: center;
|
||||||
|
padding: 8px 12px;
|
||||||
|
border: 1px solid #ebeef5;
|
||||||
|
border-radius: 4px;
|
||||||
|
margin-bottom: 8px;
|
||||||
|
|
||||||
|
.item-info {
|
||||||
|
flex: 1;
|
||||||
|
|
||||||
|
.item-name {
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
.item-code {
|
||||||
|
font-size: 12px;
|
||||||
|
color: #999;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.remove-btn {
|
||||||
|
cursor: pointer;
|
||||||
|
color: #f56c6c;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
.no-data-message {
|
.no-data-message {
|
||||||
color: red;
|
color: red;
|
||||||
text-align: center; /* 可选:让文字居中 */
|
text-align: center;
|
||||||
font-size: 16px; /* 可选:设置字体大小 */
|
font-size: 16px;
|
||||||
margin-top: 20px; /* 可选:增加顶部间距 */
|
margin-top: 20px;
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -219,6 +219,25 @@ export default {
|
||||||
},
|
},
|
||||||
optionsBaseCode: 'C13044',
|
optionsBaseCode: 'C13044',
|
||||||
showInForm: false
|
showInForm: false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type: 'input',
|
||||||
|
label: '公告期至剩余天数',
|
||||||
|
prop: 'noticeToRemain',
|
||||||
|
span: 8,
|
||||||
|
tableProps: {
|
||||||
|
showOverflowTooltip: true,
|
||||||
|
width: '150px',
|
||||||
|
formatter: (row, column, cellValue, index) => {
|
||||||
|
// 计算剩余天数
|
||||||
|
const noticeToDate = new Date(row.noticeTo)
|
||||||
|
const today = new Date()
|
||||||
|
const diffTime = noticeToDate - today
|
||||||
|
const diffDays = Math.ceil(diffTime / (1000 * 60 * 60 * 24))
|
||||||
|
return diffDays >= 0 ? `${diffDays} 天` : '已过期'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
showInForm: false // 不作为搜索条件
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
@ -274,7 +293,23 @@ export default {
|
||||||
size: pageParam.size,
|
size: pageParam.size,
|
||||||
current: pageParam.current,
|
current: pageParam.current,
|
||||||
entity: {
|
entity: {
|
||||||
...parseSearchFormData
|
...parseSearchFormData,
|
||||||
|
soon: '0'
|
||||||
|
}
|
||||||
|
}).then((data) => {
|
||||||
|
return {
|
||||||
|
tableData: data.dataPage.records,
|
||||||
|
total: data.dataPage.total
|
||||||
|
}
|
||||||
|
})
|
||||||
|
} else if (this.params === 'soon') {
|
||||||
|
this.params = 'force'
|
||||||
|
return forceDeregisterPageByRegOrg({
|
||||||
|
size: pageParam.size,
|
||||||
|
current: pageParam.current,
|
||||||
|
entity: {
|
||||||
|
...parseSearchFormData,
|
||||||
|
soon: '1'
|
||||||
}
|
}
|
||||||
}).then((data) => {
|
}).then((data) => {
|
||||||
return {
|
return {
|
||||||
|
|
|
||||||
|
|
@ -23,6 +23,13 @@
|
||||||
>
|
>
|
||||||
个案办理
|
个案办理
|
||||||
</el-button>
|
</el-button>
|
||||||
|
<el-button
|
||||||
|
style="background: #FF8C00;"
|
||||||
|
type="primary"
|
||||||
|
@click="$refs.speList.open('soon')"
|
||||||
|
>
|
||||||
|
公告期即将届满名单
|
||||||
|
</el-button>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<template v-slot:bus-status="{ row, field, formatter }">
|
<template v-slot:bus-status="{ row, field, formatter }">
|
||||||
|
|
@ -308,6 +315,13 @@ export default {
|
||||||
this.getOrgunits()
|
this.getOrgunits()
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
goToExpiringSoonList() {
|
||||||
|
// 跳转到当前页面,并携带参数标识为即将届满名单
|
||||||
|
this.$router.push({
|
||||||
|
path: `/forceNotice/force/todo`,
|
||||||
|
query: { expiringSoon: true }
|
||||||
|
})
|
||||||
|
},
|
||||||
getOrgunits() {
|
getOrgunits() {
|
||||||
getOrgunits().then(res => {
|
getOrgunits().then(res => {
|
||||||
this.orgs = res
|
this.orgs = res
|
||||||
|
|
@ -460,4 +474,9 @@ export default {
|
||||||
.bus-status-4 {
|
.bus-status-4 {
|
||||||
color: #F4222D;
|
color: #F4222D;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.el-button--primary {
|
||||||
|
margin-right: 12px;
|
||||||
|
}
|
||||||
|
|
||||||
</style>
|
</style>
|
||||||
|
|
|
||||||
|
|
@ -22,7 +22,7 @@
|
||||||
type="primary"
|
type="primary"
|
||||||
@click="$refs.entlist.open()"
|
@click="$refs.entlist.open()"
|
||||||
>
|
>
|
||||||
个案主体办理
|
主体名单办理
|
||||||
</el-button>
|
</el-button>
|
||||||
<el-button
|
<el-button
|
||||||
v-if="type === 'todo'"
|
v-if="type === 'todo'"
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue