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 @@ + + +