@jdlinker/system
Version:
jdLinker 系统模块
623 lines (616 loc) • 14.2 kB
text/typescript
import { BasicColumn, FormSchema, render, JVxeTypes, JVxeColumn } from '@jdlinker/ui';
import { listSimpleMenus } from '@jdlinker/func';
export const columns: BasicColumn[] = [
{
title: '表类型',
dataIndex: 'tableType',
width: 120,
customRender: ({ text }) => {
return render.renderDict(text, 'table_type');
}
},
{
title: '表名',
dataIndex: 'tableName',
width: 150
},
{
title: '表描述',
dataIndex: 'tableTxt',
width: 200
},
{
title: '版本',
dataIndex: 'tableVersion',
width: 80
},
{
title: '同步状态',
dataIndex: 'isDbSynch',
width: 80,
sorter: true,
customRender: ({ record }) => {
const color = record.isDbSynch == 'Y' ? 'green' : 'red';
const text = record.isDbSynch ? (record.isDbSynch == 'Y' ? '已同步' : '未同步') : '';
return render.renderTag(text, color);
}
},
{
title: '创建时间',
width: 150,
dataIndex: 'createTime'
}
];
export const searchFormSchema: FormSchema[] = [
{
label: '表名',
field: 'tableName',
component: 'Input',
colProps: { span: 6 }
},
{
label: '表类型',
field: 'tableType',
component: 'JDictSelectTag',
componentProps: {
dictCode: 'table_type',
placeholder: '请选择表类型',
stringToNumber: true
},
colProps: { span: 6 }
}
];
export const formSchema: FormSchema[] = [
{
field: 'id',
label: '',
component: 'Input',
show: false
},
{
label: '表名称',
field: 'tableName',
required: true,
component: 'Input',
colProps: {
span: 6
}
},
{
label: '表描述',
field: 'tableComment',
required: true,
component: 'Input',
colProps: {
span: 6
}
},
{
label: '类名称',
field: 'className',
required: true,
helpMessage: '默认去除表名的前缀。如果存在重复,则需要手动添加前缀,避免 MyBatis 报 Alias 重复的问题。',
component: 'Input',
colProps: {
span: 6
}
},
{
label: '作者',
field: 'author',
required: true,
defaultValue: 'juload',
component: 'Input',
colProps: {
span: 6
}
},
{
label: '生成模板',
field: 'templateType',
required: true,
component: 'JDictSelectTag',
colProps: {
span: 6
},
defaultValue: 1,
componentProps: {
dictCode: 'templateType',
stringToNumber: true
}
},
{
label: '前端类型',
field: 'frontType',
required: true,
component: 'JDictSelectTag',
defaultValue: 30,
colProps: {
span: 6
},
componentProps: {
dictCode: 'frontType',
stringToNumber: true
}
},
{
label: '生成场景',
field: 'scene',
required: true,
component: 'JDictSelectTag',
defaultValue: 30,
colProps: {
span: 6
},
componentProps: {
dictCode: 'code_scene',
stringToNumber: true
}
},
{
label: '模块名',
field: 'moduleName',
required: true,
helpMessage: '模块名,即一级目录,例如 system、infra、tool 等等',
component: 'Input',
colProps: { span: 6 }
},
{
label: '业务名',
field: 'businessName',
required: true,
component: 'Input',
helpMessage: '业务名,即二级目录,例如 user、permission、dict 等等',
colProps: { span: 6 }
},
{
label: '类名称',
field: 'className',
required: true,
component: 'Input',
helpMessage: '类名称(首字母大写),例如SysUser、SysMenu、SysDictData 等等',
colProps: { span: 6 }
},
{
label: '类描述',
field: 'classComment',
required: true,
component: 'Input',
helpMessage: '用作类描述,例如 用户',
colProps: { span: 6 }
},
{
label: '上级菜单',
field: 'parentMenuId',
required: true,
component: 'ApiTreeSelect',
componentProps: {
api: () => listSimpleMenus(),
handleTree: 'id'
},
colProps: { span: 6 }
},
{
label: '自定义路径',
field: 'genPath',
component: 'Input',
helpMessage: '填写磁盘绝对路径,若不填写,则生成到当前Web项目下',
defaultValue: '/',
ifShow: ({ values }) => values.genType === '1',
colProps: { span: 12 }
},
{
label: '显示复选框',
field: 'isCheckbox',
component: 'Select',
colProps: {
span: 6
},
defaultValue: 'Y',
componentProps: {
options: [
{
label: '是',
value: 'Y'
},
{
label: '否',
value: 'N'
}
]
}
},
{
label: '是否分页',
field: 'isPage',
component: 'Select',
colProps: {
span: 6
},
defaultValue: 'Y',
componentProps: {
options: [
{
label: '是',
value: 'Y'
},
{
label: '否',
value: 'N'
}
]
}
},
{
label: '备注',
field: 'remark',
component: 'InputTextArea',
colProps: { span: 24 }
}
// {
// label: '附表',
// field: 'subTableStr',
// required: true,
// component: 'Input',
// colProps: {
// span: 12
// },
// dynamicDisabled: true
// }
//
// {
// label: '表单类型',
// field: 'formType',
// component: 'Select',
// colProps: {
// span: 6,
// },
// required: true,
// defaultValue: 'drawer',
// componentProps: {
// options: [
// {
// label: 'Drawer抽屉',
// value: 'drawer',
// },
// {
// label: 'Modal对话框',
// value: 'modal',
// },
// ],
// },
// },
// {
// label: '生成方法',
// field: 'genMethod',
// component: 'JCheckbox',
// defaultValue: 'page,detail,add,update,del,batchDel,import,export',
// required: true,
// colProps: {
// span: 18,
// },
// componentProps: {
// options: [
// { label: '分页', value: 'page' },
// { label: '详情', value: 'detail' },
// { label: '新增', value: 'add' },
// { label: '修改', value: 'update' },
// { label: '删除', value: 'del' },
// { label: '批量删除', value: 'batchDel' },
// { label: '导入', value: 'import' },
// { label: '导出', value: 'export' },
// ],
// },
// },
];
export const dbInfoColumn: JVxeColumn[] = [
{
title: 'ID',
key: 'id',
type: JVxeTypes.hidden
},
{
title: '字段名称',
key: 'columnName',
type: JVxeTypes.input,
defaultValue: '',
validateRules: [
{
required: true,
message: '请输入${title}'
}
]
},
{
title: '字段备注',
key: 'columnComment',
type: JVxeTypes.input,
defaultValue: '',
placeholder: '请输入${title}',
validateRules: [
{
required: true,
message: '请输入${title}'
}
]
},
{
title: '字段长度',
key: 'dbLength',
type: JVxeTypes.inputNumber,
defaultValue: 32,
validateRules: [
{
required: true,
message: '请输入${title}'
}
]
},
{
title: '小数点',
key: 'dbPointLength',
type: JVxeTypes.inputNumber,
defaultValue: 0
},
{
title: '默认值',
key: 'dbDefaultVal',
type: JVxeTypes.input,
defaultValue: '',
placeholder: '请输入${title}'
},
{
title: '字段类型',
key: 'dataType',
type: JVxeTypes.select,
defaultValue: 'varchar',
options: [
{ title: 'bigint', value: 'BIGINT' },
{ title: 'date', value: 'DATE' },
{ title: 'char', value: 'CHAR' },
{ title: 'datetime', value: 'DATETIME' },
{ title: 'decimal', value: 'DECIMAL' },
{ title: 'double', value: 'DOUBLE' },
{ title: 'float', value: 'FLOAT' },
{ title: 'int', value: 'INT' },
{ title: 'text', value: 'TEXT' },
{ title: 'time', value: 'TIME' },
{ title: 'tinyint', value: 'TINYINT' },
{ title: 'varchar', value: 'VARCHAR' },
{ title: 'integer', value: 'INTEGER' },
{ title: 'timestamp', value: 'TIMESTAMP' }
],
placeholder: '请选择'
},
// {
// title: '主键',
// key: 'dbIsKey',
// type: JVxeTypes.checkbox,
// customValue: [1, 0],
// defaultChecked: false
// },
{
title: '允许空值',
key: 'nullable',
type: JVxeTypes.checkbox,
defaultValue: true,
customValue: [1, 0],
defaultChecked: true
}
];
export const vueInfoColumn: JVxeColumn[] = [
{
title: 'ID',
key: 'id',
type: JVxeTypes.hidden
},
{
title: '字段名称',
key: 'columnName',
type: JVxeTypes.normal
},
{
title: '字段备注',
key: 'columnComment',
type: JVxeTypes.normal
},
{
title: '表单显示',
key: 'updateOperation',
type: JVxeTypes.checkbox,
customValue: [1, 0],
defaultChecked: false
},
{
title: '列表显示',
key: 'listOperationResult',
type: JVxeTypes.checkbox,
customValue: [1, 0],
defaultChecked: false
},
// {
// title: '是否排序',
// key: 'sortFlag',
// type: JVxeTypes.checkbox,
// customValue: [1, 0],
// defaultChecked: false
// },
// {
// title: '是否只读',
// key: 'isReadOnly',
// type: JVxeTypes.checkbox,
// customValue: [1, 0],
// defaultChecked: true
// },
{
title: '控件类型',
key: 'htmlType',
type: JVxeTypes.select,
defaultValue: 'text',
options: [
{ label: '文本', value: 'input' },
{ title: '密码', value: 'password' },
{ label: '多行文本', value: 'textarea' },
{ label: '下拉框', value: 'select' },
{ label: '单选框', value: 'radio' },
{ label: '多选框', value: 'checkbox' },
{ title: '日期', value: 'date' },
{ label: '日期-时间', value: 'datetime' },
{ title: '时间', value: 'time' },
{ label: '图片上传', value: 'imageUpload' },
{ label: '文件上传', value: 'fileUpload' },
{ label: '富文本控件', value: 'editor' },
{ title: '开关', value: 'switch' },
{ title: '下拉框多选', value: 'list_multi' },
{ title: 'Popup弹框', value: 'popup' },
{ title: '分类字典树', value: 'cat_tree' },
{ title: '部门选择', value: 'sel_depart' },
{ title: '用户选择', value: 'sel_user' },
{ title: 'MarkDown', value: 'markdown' },
{ title: '省市区组件', value: 'pca' },
{ title: '联动组件', value: 'link_down' },
{ title: '自定义树控件', value: 'sel_tree' }
],
placeholder: '请选择',
validateRules: [
{
required: true,
message: '请选择${title}'
}
]
},
{
title: '控件长度',
key: 'fieldLength',
type: JVxeTypes.inputNumber,
defaultValue: 120,
validateRules: [
{
required: true,
message: '请选择${title}'
}
]
},
// {
// title: '查询类型',
// key: 'queryMode',
// type: JVxeTypes.select,
// customValue: [1, 0],
// defaultValue: 'single',
// options: [
// { title: '普通查询', value: 'single' },
// { title: '范围查询', value: 'group' }
// ],
// placeholder: '请选择',
// validateRules: [
// {
// required: true,
// message: '请选择${title}'
// }
// ]
// },
{
title: '控件默认值',
key: 'fieldDefaultValue',
type: JVxeTypes.input
},
{
title: '扩展参数',
key: 'fieldExtendJson',
type: JVxeTypes.input
}
// {
// title: '自定义转化器',
// key: 'converter',
// type: JVxeTypes.input,
// width: 150
// }
];
export const searchInfoColumn: JVxeColumn[] = [
{
title: 'ID',
key: 'id',
type: JVxeTypes.hidden
},
{
title: '字段名称',
key: 'columnName',
type: JVxeTypes.normal
},
{
title: '字段备注',
key: 'columnComment',
type: JVxeTypes.normal
},
{
title: '是否查询',
key: 'listOperation',
type: JVxeTypes.checkbox,
customValue: [1, 0],
defaultChecked: false
},
{
title: '控件类型',
key: 'htmlType',
type: JVxeTypes.select,
defaultValue: 'text',
options: [
{ label: '文本', value: 'input' },
{ title: '密码', value: 'password' },
{ label: '多行文本', value: 'textarea' },
{ label: '下拉框', value: 'select' },
{ label: '单选框', value: 'radio' },
{ label: '多选框', value: 'checkbox' },
{ title: '日期', value: 'date' },
{ label: '日期-时间', value: 'datetime' },
{ title: '时间', value: 'time' },
{ label: '图片上传', value: 'imageUpload' },
{ label: '文件上传', value: 'fileUpload' },
{ label: '富文本控件', value: 'editor' },
{ title: '开关', value: 'switch' },
{ title: '下拉框多选', value: 'list_multi' },
{ title: 'Popup弹框', value: 'popup' },
{ title: '分类字典树', value: 'cat_tree' },
{ title: '部门选择', value: 'sel_depart' },
{ title: '用户选择', value: 'sel_user' },
{ title: 'MarkDown', value: 'markdown' },
{ title: '省市区组件', value: 'pca' },
{ title: '联动组件', value: 'link_down' },
{ title: '自定义树控件', value: 'sel_tree' }
],
placeholder: '请选择',
validateRules: [
{
required: true,
message: '请选择${title}'
}
]
},
{
title: '字典table',
key: 'queryDictTable',
type: JVxeTypes.input
},
{
title: '字典Code',
key: 'queryDictField',
type: JVxeTypes.input
},
{
title: '字典Text',
key: 'queryDictText',
type: JVxeTypes.input
}
// {
// title: '默认值',
// key: 'queryDefVal',
// type: JVxeTypes.input
// },
// {
// title: '是否启用',
// key: 'queryConfigFlag',
// type: JVxeTypes.checkbox,
// customValue: [1, 0],
// defaultChecked: false
// }
];