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 // } ];