diff --git a/apps/web-antd/src/components/form-create/components/use-api-select.tsx b/apps/web-antd/src/components/form-create/components/use-api-select.tsx index ead612517..5de9903ff 100644 --- a/apps/web-antd/src/components/form-create/components/use-api-select.tsx +++ b/apps/web-antd/src/components/form-create/components/use-api-select.tsx @@ -69,6 +69,11 @@ export function useApiSelect(option: ApiSelectProps) { type: String, default: 'label', }, + // 返回值类型(用于部门选择器等):id 返回 ID,name 返回名称 + returnType: { + type: String, + default: 'id', + }, }, setup(props) { const attrs = useAttrs(); @@ -129,10 +134,21 @@ export function useApiSelect(option: ApiSelectProps) { function parseOptions0(data: any[]) { if (Array.isArray(data)) { - options.value = data.map((item: any) => ({ - label: parseExpression(item, props.labelField), - value: parseExpression(item, props.valueField), - })); + options.value = data.map((item: any) => { + const label = parseExpression(item, props.labelField); + let value = parseExpression(item, props.valueField); + + // 根据 returnType 决定返回值 + // 如果设置了 returnType 为 'name',则返回 label 作为 value + if (props.returnType === 'name') { + value = label; + } + + return { + label: label, + value: value, + }; + }); return; } console.warn(`接口[${props.url}] 返回结果不是一个数组`); diff --git a/apps/web-antd/src/components/form-create/helpers.ts b/apps/web-antd/src/components/form-create/helpers.ts index 260170b51..cfc5de10b 100644 --- a/apps/web-antd/src/components/form-create/helpers.ts +++ b/apps/web-antd/src/components/form-create/helpers.ts @@ -194,6 +194,18 @@ export async function useFormCreateDesigner(designer: Ref) { name: 'DeptSelect', label: '部门选择器', icon: 'icon-tree', + props: [ + { + type: 'select', + field: 'returnType', + title: '返回值类型', + value: 'id', + options: [ + { label: '部门编号', value: 'id' }, + { label: '部门名称', value: 'name' } + ] + } + ] }); const dictSelectRule = useDictSelectRule(); const apiSelectRule0 = useSelectRule({ diff --git a/apps/web-ele/src/components/form-create/components/use-api-select.tsx b/apps/web-ele/src/components/form-create/components/use-api-select.tsx index 43a4856ee..12ceb4a69 100644 --- a/apps/web-ele/src/components/form-create/components/use-api-select.tsx +++ b/apps/web-ele/src/components/form-create/components/use-api-select.tsx @@ -69,6 +69,11 @@ export function useApiSelect(option: ApiSelectProps) { type: String, default: 'label', }, + // 返回值类型(用于部门选择器等):id 返回 ID,name 返回名称 + returnType: { + type: String, + default: 'id', + }, }, setup(props) { const attrs = useAttrs(); @@ -129,10 +134,21 @@ export function useApiSelect(option: ApiSelectProps) { function parseOptions0(data: any[]) { if (Array.isArray(data)) { - options.value = data.map((item: any) => ({ - label: parseExpression(item, props.labelField), - value: parseExpression(item, props.valueField), - })); + options.value = data.map((item: any) => { + const label = parseExpression(item, props.labelField); + let value = parseExpression(item, props.valueField); + + // 根据 returnType 决定返回值 + // 如果设置了 returnType 为 'name',则返回 label 作为 value + if (props.returnType === 'name') { + value = label; + } + + return { + label: label, + value: value, + }; + }); return; } console.warn(`接口[${props.url}] 返回结果不是一个数组`); diff --git a/apps/web-ele/src/components/form-create/helpers.ts b/apps/web-ele/src/components/form-create/helpers.ts index 5def589cf..3db5bb149 100644 --- a/apps/web-ele/src/components/form-create/helpers.ts +++ b/apps/web-ele/src/components/form-create/helpers.ts @@ -194,6 +194,18 @@ export async function useFormCreateDesigner(designer: Ref) { name: 'DeptSelect', label: '部门选择器', icon: 'icon-tree', + props: [ + { + type: 'select', + field: 'returnType', + title: '返回值类型', + value: 'id', + options: [ + { label: '部门编号', value: 'id' }, + { label: '部门名称', value: 'name' } + ] + } + ] }); const dictSelectRule = useDictSelectRule(); const apiSelectRule0 = useSelectRule({