From cc04fee94105b5e9b4ea7fcbc29c8d600fa52cfb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B5=B5=E5=BF=A0=E6=9E=97?= <170083662@qq.com> Date: Wed, 7 Jan 2026 17:43:11 +0800 Subject: [PATCH] =?UTF-8?q?feat(credit):=20=E6=B7=BB=E5=8A=A0=E4=BF=A1?= =?UTF-8?q?=E7=94=A8=E6=A8=A1=E5=9D=97=E6=95=B0=E6=8D=AE=E5=AF=BC=E5=85=A5?= =?UTF-8?q?=E5=AF=BC=E5=87=BA=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 为行政许可、破产重整、分支机构、历史法定代表人、附近企业、专利、疑似关系模块添加导入功能 - 在工具栏中将导入按钮文本更新为导入(多)以区分单个导入和批量导入 - 为各信用模块表格添加导入弹窗组件和相应的导入导出事件处理 - 实现各信用模块的导出功能,支持按搜索条件导出数据 - 优化表格数据源处理,支持关键词搜索和状态筛选 - 添加链接字段的点击跳转功能,提升用户体验 - 移除冗余的表格列字段,精简表格展示内容 --- .../creditAdministrativeLicense/index.ts | 24 ++ src/api/credit/creditBankruptcy/index.ts | 24 ++ src/api/credit/creditBranch/index.ts | 24 ++ .../creditHistoricalLegalPerson/index.ts | 27 ++ src/api/credit/creditNearbyCompany/index.ts | 24 ++ src/api/credit/creditPatent/index.ts | 24 ++ .../creditSuspectedRelationship/index.ts | 27 ++ .../credit/components/CreditSearchToolbar.vue | 2 +- .../credit-administrative-license-import.vue | 94 +++++++ .../creditAdministrativeLicense/index.vue | 147 ++++++----- .../components/credit-bankruptcy-import.vue | 94 +++++++ src/views/credit/creditBankruptcy/index.vue | 138 ++++++----- .../components/credit-branch-import.vue | 94 +++++++ src/views/credit/creditBranch/index.vue | 138 ++++++----- .../components/creditCompanyInfo.vue | 233 +++++++++++++++++- .../creditCustomer/components/search.vue | 2 +- .../credit-historical-legal-person-import.vue | 96 ++++++++ .../creditHistoricalLegalPerson/index.vue | 136 +++++----- .../creditJudiciary/components/search.vue | 2 +- .../credit-nearby-company-import.vue | 94 +++++++ .../credit/creditNearbyCompany/index.vue | 182 ++++++++------ .../components/credit-patent-import.vue | 94 +++++++ src/views/credit/creditPatent/index.vue | 142 ++++++----- .../credit-suspected-relationship-import.vue | 94 +++++++ .../creditSuspectedRelationship/index.vue | 141 ++++++----- .../credit/creditUser/components/search.vue | 2 +- 26 files changed, 1617 insertions(+), 482 deletions(-) create mode 100644 src/views/credit/creditAdministrativeLicense/components/credit-administrative-license-import.vue create mode 100644 src/views/credit/creditBankruptcy/components/credit-bankruptcy-import.vue create mode 100644 src/views/credit/creditBranch/components/credit-branch-import.vue create mode 100644 src/views/credit/creditHistoricalLegalPerson/components/credit-historical-legal-person-import.vue create mode 100644 src/views/credit/creditNearbyCompany/components/credit-nearby-company-import.vue create mode 100644 src/views/credit/creditPatent/components/credit-patent-import.vue create mode 100644 src/views/credit/creditSuspectedRelationship/components/credit-suspected-relationship-import.vue diff --git a/src/api/credit/creditAdministrativeLicense/index.ts b/src/api/credit/creditAdministrativeLicense/index.ts index f42003a..9f30d9c 100644 --- a/src/api/credit/creditAdministrativeLicense/index.ts +++ b/src/api/credit/creditAdministrativeLicense/index.ts @@ -103,3 +103,27 @@ export async function getCreditAdministrativeLicense(id: number) { } return Promise.reject(new Error(res.data.message)); } + +/** + * 导入行政许可 + */ +export async function importCreditAdministrativeLicense(file: File, companyId?: number) { + const formData = new FormData(); + formData.append('file', file); + if (companyId != null) { + formData.append('companyId', String(companyId)); + } + const res = await request.post>( + '/credit/credit-administrative-license/import', + formData, + { + headers: { + 'Content-Type': 'multipart/form-data' + } + } + ); + if (res.data.code === 0) { + return res.data.message; + } + return Promise.reject(new Error(res.data.message)); +} diff --git a/src/api/credit/creditBankruptcy/index.ts b/src/api/credit/creditBankruptcy/index.ts index d9b1ccc..7208de0 100644 --- a/src/api/credit/creditBankruptcy/index.ts +++ b/src/api/credit/creditBankruptcy/index.ts @@ -103,3 +103,27 @@ export async function getCreditBankruptcy(id: number) { } return Promise.reject(new Error(res.data.message)); } + +/** + * 导入破产重整 + */ +export async function importCreditBankruptcy(file: File, companyId?: number) { + const formData = new FormData(); + formData.append('file', file); + if (companyId != null) { + formData.append('companyId', String(companyId)); + } + const res = await request.post>( + '/credit/credit-bankruptcy/import', + formData, + { + headers: { + 'Content-Type': 'multipart/form-data' + } + } + ); + if (res.data.code === 0) { + return res.data.message; + } + return Promise.reject(new Error(res.data.message)); +} diff --git a/src/api/credit/creditBranch/index.ts b/src/api/credit/creditBranch/index.ts index 69eb8f1..dfa47f7 100644 --- a/src/api/credit/creditBranch/index.ts +++ b/src/api/credit/creditBranch/index.ts @@ -103,3 +103,27 @@ export async function getCreditBranch(id: number) { } return Promise.reject(new Error(res.data.message)); } + +/** + * 导入分支机构 + */ +export async function importCreditBranch(file: File, companyId?: number) { + const formData = new FormData(); + formData.append('file', file); + if (companyId != null) { + formData.append('companyId', String(companyId)); + } + const res = await request.post>( + '/credit/credit-branch/import', + formData, + { + headers: { + 'Content-Type': 'multipart/form-data' + } + } + ); + if (res.data.code === 0) { + return res.data.message; + } + return Promise.reject(new Error(res.data.message)); +} diff --git a/src/api/credit/creditHistoricalLegalPerson/index.ts b/src/api/credit/creditHistoricalLegalPerson/index.ts index 35bc6b5..a59529a 100644 --- a/src/api/credit/creditHistoricalLegalPerson/index.ts +++ b/src/api/credit/creditHistoricalLegalPerson/index.ts @@ -103,3 +103,30 @@ export async function getCreditHistoricalLegalPerson(id: number) { } return Promise.reject(new Error(res.data.message)); } + +/** + * 导入历史法定代表人 + */ +export async function importCreditHistoricalLegalPerson( + file: File, + companyId?: number +) { + const formData = new FormData(); + formData.append('file', file); + if (companyId != null) { + formData.append('companyId', String(companyId)); + } + const res = await request.post>( + '/credit/credit-historical-legal-person/import', + formData, + { + headers: { + 'Content-Type': 'multipart/form-data' + } + } + ); + if (res.data.code === 0) { + return res.data.message; + } + return Promise.reject(new Error(res.data.message)); +} diff --git a/src/api/credit/creditNearbyCompany/index.ts b/src/api/credit/creditNearbyCompany/index.ts index cc53526..8198208 100644 --- a/src/api/credit/creditNearbyCompany/index.ts +++ b/src/api/credit/creditNearbyCompany/index.ts @@ -103,3 +103,27 @@ export async function getCreditNearbyCompany(id: number) { } return Promise.reject(new Error(res.data.message)); } + +/** + * 导入附近企业 + */ +export async function importCreditNearbyCompany(file: File, companyId?: number) { + const formData = new FormData(); + formData.append('file', file); + if (companyId != null) { + formData.append('companyId', String(companyId)); + } + const res = await request.post>( + '/credit/credit-nearby-company/import', + formData, + { + headers: { + 'Content-Type': 'multipart/form-data' + } + } + ); + if (res.data.code === 0) { + return res.data.message; + } + return Promise.reject(new Error(res.data.message)); +} diff --git a/src/api/credit/creditPatent/index.ts b/src/api/credit/creditPatent/index.ts index c86edac..55263cc 100644 --- a/src/api/credit/creditPatent/index.ts +++ b/src/api/credit/creditPatent/index.ts @@ -103,3 +103,27 @@ export async function getCreditPatent(id: number) { } return Promise.reject(new Error(res.data.message)); } + +/** + * 导入专利 + */ +export async function importCreditPatent(file: File, companyId?: number) { + const formData = new FormData(); + formData.append('file', file); + if (companyId != null) { + formData.append('companyId', String(companyId)); + } + const res = await request.post>( + '/credit/credit-patent/import', + formData, + { + headers: { + 'Content-Type': 'multipart/form-data' + } + } + ); + if (res.data.code === 0) { + return res.data.message; + } + return Promise.reject(new Error(res.data.message)); +} diff --git a/src/api/credit/creditSuspectedRelationship/index.ts b/src/api/credit/creditSuspectedRelationship/index.ts index eb84265..61ee002 100644 --- a/src/api/credit/creditSuspectedRelationship/index.ts +++ b/src/api/credit/creditSuspectedRelationship/index.ts @@ -103,3 +103,30 @@ export async function getCreditSuspectedRelationship(id: number) { } return Promise.reject(new Error(res.data.message)); } + +/** + * 导入疑似关系 + */ +export async function importCreditSuspectedRelationship( + file: File, + companyId?: number +) { + const formData = new FormData(); + formData.append('file', file); + if (companyId != null) { + formData.append('companyId', String(companyId)); + } + const res = await request.post>( + '/credit/credit-suspected-relationship/import', + formData, + { + headers: { + 'Content-Type': 'multipart/form-data' + } + } + ); + if (res.data.code === 0) { + return res.data.message; + } + return Promise.reject(new Error(res.data.message)); +} diff --git a/src/views/credit/components/CreditSearchToolbar.vue b/src/views/credit/components/CreditSearchToolbar.vue index 24fe62c..5cc6a4d 100644 --- a/src/views/credit/components/CreditSearchToolbar.vue +++ b/src/views/credit/components/CreditSearchToolbar.vue @@ -11,7 +11,7 @@ - 导入 + 导入(多)