From 81a89bb4dcafab803c276f2500c207889951d266 Mon Sep 17 00:00:00 2001 From: 15683799673 Date: Sat, 28 Jun 2025 01:29:34 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BA=BA=E5=83=8F=E5=BA=93=E9=A1=B5=E9=9D=A2?= =?UTF-8?q?=E4=BC=98=E5=8C=96=20=E5=A2=9E=E5=8A=A0=E4=BA=BA=E5=83=8F?= =?UTF-8?q?=E5=9B=BE=E7=89=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../web-antd/src/api/sis/personLib/model.d.ts | 2 + apps/web-antd/src/views/sis/personLib/data.ts | 2 +- .../sis/personLibImg/{data.ts => data.tsx} | 46 ++++++++++++++++++- .../sis/personLibImg/personLibImg-modal.vue | 1 + 4 files changed, 48 insertions(+), 3 deletions(-) rename apps/web-antd/src/views/sis/personLibImg/{data.ts => data.tsx} (67%) diff --git a/apps/web-antd/src/api/sis/personLib/model.d.ts b/apps/web-antd/src/api/sis/personLib/model.d.ts index 5a93ec83..80c069ee 100644 --- a/apps/web-antd/src/api/sis/personLib/model.d.ts +++ b/apps/web-antd/src/api/sis/personLib/model.d.ts @@ -46,6 +46,8 @@ export interface PersonLibVO { */ searchValue: string; + labelText: any; + } export interface PersonLibForm extends BaseEntity { diff --git a/apps/web-antd/src/views/sis/personLib/data.ts b/apps/web-antd/src/views/sis/personLib/data.ts index 34726a0a..ff5b9f5e 100644 --- a/apps/web-antd/src/views/sis/personLib/data.ts +++ b/apps/web-antd/src/views/sis/personLib/data.ts @@ -32,7 +32,7 @@ export const columns: VxeGridProps['columns'] = [ { title: '人员库编码', - field: 'libCode', + field: 'id', }, { title: '人员库名称', diff --git a/apps/web-antd/src/views/sis/personLibImg/data.ts b/apps/web-antd/src/views/sis/personLibImg/data.tsx similarity index 67% rename from apps/web-antd/src/views/sis/personLibImg/data.ts rename to apps/web-antd/src/views/sis/personLibImg/data.tsx index 4b262699..a242a287 100644 --- a/apps/web-antd/src/views/sis/personLibImg/data.ts +++ b/apps/web-antd/src/views/sis/personLibImg/data.tsx @@ -1,12 +1,53 @@ -import type { FormSchemaGetter } from '#/adapter/form'; +import type { FormSchemaGetter, VbenFormSchema } from '#/adapter/form'; import type { VxeGridProps } from '#/adapter/vxe-table'; import { DictEnum } from '@vben/constants'; import { getPopupContainer } from '@vben/utils'; import { getDictOptions } from '#/utils/dict'; +import { personLibList } from '#/api/sis/personLib'; +import type { PersonLibQuery, PersonLibVO } from '#/api/sis/personLib/model'; +import { Tag } from 'ant-design-vue'; + +let libArr: PersonLibVO[] = []; +const labelText: VbenFormSchema = { + label: '图片库', + fieldName: 'libId', + component: 'ApiSelect', + componentProps: { + resultField: 'list', // 根据API返回结构调整 + labelField: 'labelText', + valueField: 'id', + // immediate: true, + api: async () => { + if(!libArr || libArr.length == 0){ + const params: PersonLibQuery = { + pageNum: 1, + pageSize: 500, + }; + const res = await personLibList(params); + res.rows.forEach((item) => { + let tag = + item.libType == 1 ? ( + 人像库 + ) : ( + 工服库 + ); + item.labelText = ( + + {item.libName} {tag} + + ); + }); + libArr = res.rows + } + return libArr; + }, + }, +}; export const querySchema: FormSchemaGetter = () => [ + labelText, { component: 'Input', fieldName: 'imgName', @@ -69,6 +110,7 @@ export const columns: VxeGridProps['columns'] = [ ]; export const modalSchema: FormSchemaGetter = () => [ + labelText, { label: '人像名称', fieldName: 'imgName', @@ -115,7 +157,7 @@ export const modalSchema: FormSchemaGetter = () => [ }, { label: '人像图片', - fieldName: 'img', + fieldName: 'imgUrl', component: 'ImageUpload', componentProps: { // accept: 'image/*', // 可选拓展名或者mime类型 ,拼接 diff --git a/apps/web-antd/src/views/sis/personLibImg/personLibImg-modal.vue b/apps/web-antd/src/views/sis/personLibImg/personLibImg-modal.vue index 8a52ede3..3efc575e 100644 --- a/apps/web-antd/src/views/sis/personLibImg/personLibImg-modal.vue +++ b/apps/web-antd/src/views/sis/personLibImg/personLibImg-modal.vue @@ -31,6 +31,7 @@ const [BasicForm, formApi] = useVbenForm({ // 通用配置项 会影响到所有表单项 componentProps: { class: 'w-full', + allowClear: true, }, }, schema: modalSchema(),