From 4604f70a573f4129805b55912b344079b69afee9 Mon Sep 17 00:00:00 2001 From: Junyan Qin Date: Thu, 8 May 2025 11:28:52 +0800 Subject: [PATCH] feat: switch dynamic to shadcn --- .../home/bots/components/bot-form/BotForm.tsx | 54 ++++--- web/src/app/home/bots/page.tsx | 30 ++-- .../dynamic-form/DynamicFormComponent.tsx | 132 +++++++++++++++++- .../dynamic-form/DynamicFormItemComponent.tsx | 83 ++++++++--- .../dynamic-form/DynamicFormItemConfig.ts | 4 +- 5 files changed, 248 insertions(+), 55 deletions(-) diff --git a/web/src/app/home/bots/components/bot-form/BotForm.tsx b/web/src/app/home/bots/components/bot-form/BotForm.tsx index 7cbccd5f..6b38acf9 100644 --- a/web/src/app/home/bots/components/bot-form/BotForm.tsx +++ b/web/src/app/home/bots/components/bot-form/BotForm.tsx @@ -161,7 +161,7 @@ export default function BotForm({ function onEditMode() { console.log('onEditMode', form.getValues()); - + } async function getBotConfig(botId: string): Promise> { @@ -347,11 +347,11 @@ export default function BotForm({ 平台/适配器选择*
- field.onChange(Number(e.target.value))} + /> + ); - {config.type === DynamicFormItemType.STRING && } + case DynamicFormItemType.STRING: + return ; - {config.type === DynamicFormItemType.BOOLEAN && } + case DynamicFormItemType.BOOLEAN: + return ( + + ); - {config.type === DynamicFormItemType.STRING_ARRAY && ( - + + + + + + {/* 这里需要根据实际情况添加选项 */} + 选项1 + 选项2 + + + + ); + + case DynamicFormItemType.SELECT: + return ( + + ); + + default: + return ; + } } diff --git a/web/src/app/home/components/dynamic-form/DynamicFormItemConfig.ts b/web/src/app/home/components/dynamic-form/DynamicFormItemConfig.ts index d18dfa47..33b6e2d3 100644 --- a/web/src/app/home/components/dynamic-form/DynamicFormItemConfig.ts +++ b/web/src/app/home/components/dynamic-form/DynamicFormItemConfig.ts @@ -35,9 +35,11 @@ export interface IDynamicFormItemLabel { export enum DynamicFormItemType { INT = 'integer', - STRING = 'string', + FLOAT = 'float', BOOLEAN = 'boolean', + STRING = 'string', STRING_ARRAY = 'array[string]', + SELECT = 'select', UNKNOWN = 'unknown', }