diff --git a/CHANGELOG.md b/CHANGELOG.md index 61eb2b17..8924ebc0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,7 @@ **FEATURES** - 代码生成支持路径方式生成 +- 代码生成 支持选择表单生成类型(需要模板支持) # 1.2.1 diff --git a/apps/web-antd/package.json b/apps/web-antd/package.json index 5264b7e3..49063a18 100644 --- a/apps/web-antd/package.json +++ b/apps/web-antd/package.json @@ -1,6 +1,6 @@ { "name": "@vben/web-antd", - "version": "1.2.1", + "version": "1.2.2", "homepage": "https://vben.pro", "bugs": "https://github.com/vbenjs/vue-vben-admin/issues", "repository": { diff --git a/apps/web-antd/src/api/tool/gen/model.d.ts b/apps/web-antd/src/api/tool/gen/model.d.ts index d5012c02..b859c8ff 100644 --- a/apps/web-antd/src/api/tool/gen/model.d.ts +++ b/apps/web-antd/src/api/tool/gen/model.d.ts @@ -177,6 +177,7 @@ export interface Info { // 树表需要添加此属性 params?: any; popupComponent?: string; + formComponent?: string; } export interface GenInfo { diff --git a/apps/web-antd/src/views/tool/gen/edit-gen.vue b/apps/web-antd/src/views/tool/gen/edit-gen.vue index 48a816ac..47c12812 100644 --- a/apps/web-antd/src/views/tool/gen/edit-gen.vue +++ b/apps/web-antd/src/views/tool/gen/edit-gen.vue @@ -82,6 +82,7 @@ async function handleSave() { ...requestData.params, parentMenuId: requestData.parentMenuId, popupComponent: requestData.popupComponent, + formComponent: requestData.formComponent, }; } // 保存 diff --git a/apps/web-antd/src/views/tool/gen/edit-steps/basic-setting.vue b/apps/web-antd/src/views/tool/gen/edit-steps/basic-setting.vue index 1937aa64..0ffe258d 100644 --- a/apps/web-antd/src/views/tool/gen/edit-steps/basic-setting.vue +++ b/apps/web-antd/src/views/tool/gen/edit-steps/basic-setting.vue @@ -109,9 +109,12 @@ onMounted(async () => { await formApi.setValues(info); // 弹出框类型需要手动赋值 if (info.options) { - const popupComponent = JSON.parse(info.options)?.popupComponent; + const { popupComponent, formComponent } = JSON.parse(info.options); if (popupComponent) { - await formApi.setFieldValue('popupComponent', popupComponent); + formApi.setFieldValue('popupComponent', popupComponent); + } + if (formComponent) { + formApi.setFieldValue('formComponent', formComponent); } } await Promise.all([initTreeSelect(info.columns), initMenuSelect()]); diff --git a/apps/web-antd/src/views/tool/gen/edit-steps/basic.tsx b/apps/web-antd/src/views/tool/gen/edit-steps/basic.tsx index 9e14a64a..9b1a86c2 100644 --- a/apps/web-antd/src/views/tool/gen/edit-steps/basic.tsx +++ b/apps/web-antd/src/views/tool/gen/edit-steps/basic.tsx @@ -157,6 +157,21 @@ export const formSchema: FormSchemaGetter = () => [ fieldName: 'popupComponent', label: '弹窗组件类型', }, + { + component: 'RadioGroup', + componentProps: { + buttonStyle: 'solid', + options: [ + { label: 'useVbenForm', value: 'useForm' }, + { label: 'antd原生表单', value: 'native' }, + ], + optionType: 'button', + }, + help: '自定义功能, 需要后端支持\n复杂(布局, 联动等)表单建议用antd原生表单', + defaultValue: 'useForm', + fieldName: 'formComponent', + label: '生成表单类型', + }, { component: 'RadioGroup', componentProps: {