From fb537fdc00755cc2f50878f3b89dd64d7ff1ccb5 Mon Sep 17 00:00:00 2001 From: zcxlsm Date: Tue, 29 Jul 2025 02:05:02 +0800 Subject: [PATCH] =?UTF-8?q?feat(property):=20=E6=B7=BB=E5=8A=A0=E7=94=A8?= =?UTF-8?q?=E6=88=B7=E5=AF=BC=E5=85=A5=E5=92=8C=E4=BA=BA=E8=84=B8=E5=AF=BC?= =?UTF-8?q?=E5=85=A5=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/api/property/resident/person/index.ts | 55 ++++++- .../api/property/resident/person/model.d.ts | 12 ++ .../resident/person/face-import-modal.vue | 115 ++++++++++++++ .../views/property/resident/person/index.vue | 148 +++++++++--------- .../resident/person/person-import-modal.vue | 131 ++++++++++++++++ 5 files changed, 382 insertions(+), 79 deletions(-) create mode 100644 apps/web-antd/src/views/property/resident/person/face-import-modal.vue create mode 100644 apps/web-antd/src/views/property/resident/person/person-import-modal.vue diff --git a/apps/web-antd/src/api/property/resident/person/index.ts b/apps/web-antd/src/api/property/resident/person/index.ts index f3593634..43f57891 100644 --- a/apps/web-antd/src/api/property/resident/person/index.ts +++ b/apps/web-antd/src/api/property/resident/person/index.ts @@ -1,9 +1,9 @@ -import type { PersonVO, PersonForm, PersonQuery } from './model'; +import type { PersonVO, PersonForm, PersonQuery, PerssonImportParam } from './model'; import type { ID, IDS } from '#/api/common'; import type { PageResult } from '#/api/common'; -import { commonExport } from '#/api/helper'; +import { commonExport, ContentTypeEnum } from '#/api/helper'; import { requestClient } from '#/api/request'; /** @@ -59,3 +59,54 @@ export function personUpdate(data: PersonForm) { export function personRemove(id: ID | IDS) { return requestClient.deleteWithMsg(`/property/person/${id}`); } + +/** + * 从excel导入用户 + * @param data + * @returns void + */ +export function personImportData(data: PerssonImportParam) { + return requestClient.post<{ code: number; msg: string }>( + '/property/person/importData', + data, + { + headers: { + 'Content-Type': ContentTypeEnum.FORM_DATA, + }, + isTransformResponse: false, + }, + ); +} + +/** + * 导入人脸 + * @param data + * @returns void + */ +export function personImportFace(data: PerssonImportParam) { + return requestClient.post<{ code: number; msg: string }>( + '/property/person/importFace', + data, + { + headers: { + 'Content-Type': ContentTypeEnum.FORM_DATA, + }, + isTransformResponse: false, + }, + ); +} + +/** + * 下载用户导入模板 + * @returns blob + */ +export function downloadImportTemplate() { + return requestClient.post( + '/property/person/importTemplate', + {}, + { + isTransformResponse: false, + responseType: 'blob', + }, + ); +} diff --git a/apps/web-antd/src/api/property/resident/person/model.d.ts b/apps/web-antd/src/api/property/resident/person/model.d.ts index 83b2c7a5..57f03f6b 100644 --- a/apps/web-antd/src/api/property/resident/person/model.d.ts +++ b/apps/web-antd/src/api/property/resident/person/model.d.ts @@ -285,3 +285,15 @@ export interface Person extends BaseEntity { email: string } + +/** + * @description: 用户导入 + * @param updateSupport 是否覆盖数据 + * @param unitId 单位Id + * @param file excel文件 + */ +export interface PerssonImportParam { + updateSupport: boolean; + unitId: number; + file: Blob | File; +} diff --git a/apps/web-antd/src/views/property/resident/person/face-import-modal.vue b/apps/web-antd/src/views/property/resident/person/face-import-modal.vue new file mode 100644 index 00000000..3fd90094 --- /dev/null +++ b/apps/web-antd/src/views/property/resident/person/face-import-modal.vue @@ -0,0 +1,115 @@ + + + diff --git a/apps/web-antd/src/views/property/resident/person/index.vue b/apps/web-antd/src/views/property/resident/person/index.vue index 50d4af5a..2166815f 100644 --- a/apps/web-antd/src/views/property/resident/person/index.vue +++ b/apps/web-antd/src/views/property/resident/person/index.vue @@ -1,29 +1,31 @@ @@ -127,68 +143,44 @@ function handleInfo(row: Required) { diff --git a/apps/web-antd/src/views/property/resident/person/person-import-modal.vue b/apps/web-antd/src/views/property/resident/person/person-import-modal.vue new file mode 100644 index 00000000..03d085da --- /dev/null +++ b/apps/web-antd/src/views/property/resident/person/person-import-modal.vue @@ -0,0 +1,131 @@ + + +