feat: 代码生成
This commit is contained in:
214
apps/web-antd/src/views/tool/gen/edit-steps/basic.tsx
Normal file
214
apps/web-antd/src/views/tool/gen/edit-steps/basic.tsx
Normal file
@@ -0,0 +1,214 @@
|
||||
import { getPopupContainer } from '@vben/utils';
|
||||
|
||||
import { type FormSchemaGetter, z } from '#/adapter';
|
||||
|
||||
export const formSchema: FormSchemaGetter = () => [
|
||||
{
|
||||
component: 'Divider',
|
||||
componentProps: {
|
||||
orientation: 'left',
|
||||
},
|
||||
fieldName: 'divider1',
|
||||
formItemClass: 'col-span-2',
|
||||
label: '基本信息',
|
||||
},
|
||||
{
|
||||
component: 'Input',
|
||||
componentProps: {
|
||||
placeholder: '请输入',
|
||||
},
|
||||
fieldName: 'tableName',
|
||||
label: '表名称',
|
||||
rules: 'required',
|
||||
},
|
||||
{
|
||||
component: 'Input',
|
||||
componentProps: {
|
||||
placeholder: '请输入',
|
||||
},
|
||||
fieldName: 'tableComment',
|
||||
label: '表描述',
|
||||
rules: 'required',
|
||||
},
|
||||
{
|
||||
component: 'Input',
|
||||
componentProps: {
|
||||
placeholder: '请输入',
|
||||
},
|
||||
fieldName: 'className',
|
||||
label: '实体类名称',
|
||||
rules: 'required',
|
||||
},
|
||||
{
|
||||
component: 'Input',
|
||||
componentProps: {
|
||||
placeholder: '请输入',
|
||||
},
|
||||
fieldName: 'functionAuthor',
|
||||
label: '作者',
|
||||
rules: 'required',
|
||||
},
|
||||
{
|
||||
component: 'Divider',
|
||||
componentProps: {
|
||||
orientation: 'left',
|
||||
},
|
||||
fieldName: 'divider2',
|
||||
formItemClass: 'col-span-2',
|
||||
label: '生成信息',
|
||||
},
|
||||
{
|
||||
component: 'Select',
|
||||
componentProps: {
|
||||
allowClear: false,
|
||||
getPopupContainer,
|
||||
options: [
|
||||
{ label: '单表(增删改查)', value: 'crud' },
|
||||
{ label: '树表(增删改查)', value: 'tree' },
|
||||
],
|
||||
},
|
||||
defaultValue: 'crud',
|
||||
fieldName: 'tplCategory',
|
||||
label: '模板类型',
|
||||
rules: 'selectRequired',
|
||||
},
|
||||
{
|
||||
component: 'Select',
|
||||
componentProps: {
|
||||
getPopupContainer,
|
||||
placeholder: '请选择',
|
||||
},
|
||||
dependencies: {
|
||||
show: (values) => values.tplCategory === 'tree',
|
||||
triggerFields: ['tplCategory'],
|
||||
},
|
||||
fieldName: 'treeCode',
|
||||
helpMessage: '树节点显示的编码字段名, 如: dept_id (相当于id)',
|
||||
label: '树编码字段',
|
||||
rules: 'selectRequired',
|
||||
},
|
||||
{
|
||||
component: 'Select',
|
||||
componentProps: {
|
||||
allowClear: false,
|
||||
placeholder: '请选择',
|
||||
},
|
||||
dependencies: {
|
||||
show: (values) => values.tplCategory === 'tree',
|
||||
triggerFields: ['tplCategory'],
|
||||
},
|
||||
fieldName: 'treeParentCode',
|
||||
help: '树节点显示的父编码字段名, 如: parent_Id (相当于parentId)',
|
||||
label: '树父编码字段',
|
||||
rules: 'selectRequired',
|
||||
},
|
||||
{
|
||||
component: 'Select',
|
||||
componentProps: {
|
||||
allowClear: false,
|
||||
placeholder: '请选择',
|
||||
},
|
||||
dependencies: {
|
||||
show: (values) => values.tplCategory === 'tree',
|
||||
triggerFields: ['tplCategory'],
|
||||
},
|
||||
fieldName: 'treeName',
|
||||
help: '树节点的显示名称字段名, 如: dept_name (相当于label)',
|
||||
label: '树名称字段',
|
||||
rules: 'selectRequired',
|
||||
},
|
||||
{
|
||||
component: 'Input',
|
||||
componentProps: {
|
||||
placeholder: '请输入',
|
||||
},
|
||||
fieldName: 'packageName',
|
||||
help: '生成在哪个java包下, 例如 com.ruoyi.system',
|
||||
label: '生成包路径',
|
||||
rules: 'required',
|
||||
},
|
||||
{
|
||||
component: 'Input',
|
||||
componentProps: {
|
||||
placeholder: '请输入',
|
||||
},
|
||||
fieldName: 'moduleName',
|
||||
help: '可理解为子系统名,例如 system',
|
||||
label: '生成模块名',
|
||||
rules: 'required',
|
||||
},
|
||||
{
|
||||
component: 'Input',
|
||||
componentProps: {
|
||||
placeholder: '请输入',
|
||||
},
|
||||
fieldName: 'businessName',
|
||||
help: '可理解为功能英文名,例如 user',
|
||||
label: '生成业务名',
|
||||
rules: 'required',
|
||||
},
|
||||
{
|
||||
component: 'Input',
|
||||
componentProps: {
|
||||
placeholder: '请输入',
|
||||
},
|
||||
fieldName: 'functionName',
|
||||
help: '用作类描述,例如 用户',
|
||||
label: '生成功能名',
|
||||
rules: 'required',
|
||||
},
|
||||
{
|
||||
component: 'TreeSelect',
|
||||
componentProps: {
|
||||
allowClear: false,
|
||||
getPopupContainer,
|
||||
placeholder: '请选择',
|
||||
},
|
||||
defaultValue: 0,
|
||||
fieldName: 'parentMenuId',
|
||||
label: '上级菜单',
|
||||
},
|
||||
{
|
||||
component: 'RadioGroup',
|
||||
componentProps: {
|
||||
buttonStyle: 'solid',
|
||||
options: [
|
||||
{ label: 'zip压缩包', value: '0' },
|
||||
{ label: '自定义路径', value: '1' },
|
||||
],
|
||||
optionType: 'button',
|
||||
},
|
||||
defaultValue: '0',
|
||||
fieldName: 'genType',
|
||||
help: '默认为zip压缩包下载, 也可以自定义生成路径',
|
||||
label: '生成代码方式',
|
||||
},
|
||||
{
|
||||
component: 'Input',
|
||||
componentProps: {
|
||||
placeholder: '请输入',
|
||||
},
|
||||
defaultValue: '/',
|
||||
dependencies: {
|
||||
show: (model) => model.genType === '1',
|
||||
triggerFields: ['genType'],
|
||||
},
|
||||
fieldName: 'genPath',
|
||||
help: '输入绝对路径, 不支持"./"相对路径',
|
||||
label: '代码生成路径',
|
||||
rules: z
|
||||
.string()
|
||||
.regex(/^(?:[a-z]:)?(?:\/|(?:\\|\/)[^\\/:*?"<>|\r\n]+)*(?:\\|\/)?$/i, {
|
||||
message: '请输入合法的路径',
|
||||
}),
|
||||
},
|
||||
{
|
||||
component: 'Textarea',
|
||||
componentProps: {
|
||||
placeholder: '请输入',
|
||||
},
|
||||
fieldName: 'remark',
|
||||
formItemClass: 'col-span-2 items-baseline',
|
||||
label: '备注',
|
||||
},
|
||||
];
|
Reference in New Issue
Block a user