import { BasicColumn, FormSchema } from '/@/components/Table'; const dbDriverMap = { // MySQL 数据库 '1': { dbDriver: 'com.mysql.jdbc.Driver' }, //MySQL5.7+ 数据库 '4': { dbDriver: 'com.mysql.cj.jdbc.Driver' }, // Oracle '2': { dbDriver: 'oracle.jdbc.OracleDriver' }, // SQLServer 数据库 '3': { dbDriver: 'com.microsoft.sqlserver.jdbc.SQLServerDriver' }, // marialDB 数据库 '5': { dbDriver: 'org.mariadb.jdbc.Driver' }, // postgresql 数据库 '6': { dbDriver: 'org.postgresql.Driver' }, // 达梦 数据库 '7': { dbDriver: 'dm.jdbc.driver.DmDriver' }, // 人大金仓 数据库 '8': { dbDriver: 'com.kingbase8.Driver' }, // 神通 数据库 '9': { dbDriver: 'com.oscar.Driver' }, // SQLite 数据库 '10': { dbDriver: 'org.sqlite.JDBC' }, // DB2 数据库 '11': { dbDriver: 'com.ibm.db2.jcc.DB2Driver' }, // Hsqldb 数据库 '12': { dbDriver: 'org.hsqldb.jdbc.JDBCDriver' }, // Derby 数据库 '13': { dbDriver: 'org.apache.derby.jdbc.ClientDriver' }, // H2 数据库 '14': { dbDriver: 'org.h2.Driver' }, // 其他数据库 '15': { dbDriver: '' }, }; const dbUrlMap = { // MySQL 数据库 '1': { dbUrl: 'jdbc:mysql://127.0.0.1:3306/jeecg-boot?characterEncoding=UTF-8&useUnicode=true&useSSL=false' }, //MySQL5.7+ 数据库 '4': { dbUrl: 'jdbc:mysql://127.0.0.1:3306/jeecg-boot?characterEncoding=UTF-8&useUnicode=true&useSSL=false&tinyInt1isBit=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai', }, // Oracle '2': { dbUrl: 'jdbc:oracle:thin:@127.0.0.1:1521:ORCL' }, // SQLServer 数据库 '3': { dbUrl: 'jdbc:sqlserver://127.0.0.1:1433;SelectMethod=cursor;DatabaseName=jeecgboot' }, // Mariadb 数据库 '5': { dbUrl: 'jdbc:mariadb://127.0.0.1:3306/jeecg-boot?characterEncoding=UTF-8&useSSL=false' }, // Postgresql 数据库 '6': { dbUrl: 'jdbc:postgresql://127.0.0.1:5432/jeecg-boot' }, // 达梦 数据库 '7': { dbUrl: 'jdbc:dm://127.0.0.1:5236/?jeecg-boot&zeroDateTimeBehavior=convertToNull&useUnicode=true&characterEncoding=utf-8' }, // 人大金仓 数据库 '8': { dbUrl: 'jdbc:kingbase8://127.0.0.1:54321/jeecg-boot' }, // 神通 数据库 '9': { dbUrl: 'jdbc:oscar://192.168.1.125:2003/jeecg-boot' }, // SQLite 数据库 '10': { dbUrl: 'jdbc:sqlite://opt/test.db' }, // DB2 数据库 '11': { dbUrl: 'jdbc:db2://127.0.0.1:50000/jeecg-boot' }, // Hsqldb 数据库 '12': { dbUrl: 'jdbc:hsqldb:hsql://127.0.0.1/jeecg-boot' }, // Derby 数据库 '13': { dbUrl: 'jdbc:derby://127.0.0.1:1527/jeecg-boot' }, // H2 数据库 '14': { dbUrl: 'jdbc:h2:tcp://127.0.0.1:8082/jeecg-boot' }, // 其他数据库 '15': { dbUrl: '' }, }; export const columns: BasicColumn[] = [ { title: '所属机构', dataIndex: 'sysOrgCode_dictText', width: 150, align: 'left', }, { title: '数据源编码', dataIndex: 'code', width: 150, align: 'left', }, { title: '数据源名称', dataIndex: 'name', width: 150, align: 'left', }, { title: '数据库类型', dataIndex: 'dbType_dictText', width: 150, align: 'left', }, { title: '驱动类', dataIndex: 'dbDriver', width: 200, align: 'left', }, { title: '数据源地址', dataIndex: 'dbUrl', align: 'left', }, ]; export const searchFormSchema: FormSchema[] = [ { field: 'sysOrgCode', label: '所属机构', component: 'JDictSelectTag', componentProps: { dictCode: "sys_depart,depart_name,org_code,org_category='1' and del_flag = '0' order by org_code", placeholder: '请选择机构', }, colProps: { span: 6 }, }, { field: 'name', label: '数据源名称', component: 'Input', colProps: { span: 6 }, }, { field: 'dbType', label: '数据库类型', component: 'JDictSelectTag', colProps: { span: 6 }, componentProps: () => { return { dictCode: 'database_type', }; }, }, ]; export const formSchema: FormSchema[] = [ { field: 'id', label: 'id', component: 'Input', show: false, }, { field: 'sysOrgCode', label: '所属机构', component: 'Input', required: true, slot: 'departSelect', }, { field: 'code', label: '数据源编码', component: 'Input', required: true, dynamicDisabled: true }, { field: 'name', label: '数据源名称', component: 'Input', required: true, }, { field: 'dbType', label: '数据库类型', component: 'JDictSelectTag', required: true, componentProps: ({ formModel }) => { return { dictCode: 'database_type', onChange: (e: any) => { formModel = Object.assign(formModel, dbDriverMap[e], dbUrlMap[e]); }, }; }, }, { field: 'dbDriver', label: '驱动类', required: true, component: 'Input', }, { field: 'dbUrl', label: '数据源地址', required: true, component: 'InputTextArea', }, { field: 'dbUsername', label: '用户名', required: true, component: 'Input', }, { field: 'dbPassword', label: '密码', required: true, component: 'InputPassword', slot: 'pwd', }, { field: 'remark', label: '备注', component: 'InputTextArea', }, ]; // 数据源基础表单 export function useDataSourceFormSchema() { const dataSourceFormSchema: FormSchema[] = [ { field: 'id', label: 'id', component: 'Input', show: false, }, { field: 'sysOrgCode', label: '所属机构', component: 'Input', required: true, show: false, }, { field: 'code', label: '数据源编码', component: 'Input', // required: true, dynamicDisabled: true }, { field: 'name', label: '数据源名称', component: 'Input', required: true, }, { field: 'dbType', label: '数据库类型', component: 'JDictSelectTag', required: true, componentProps: ({ formModel }) => { return { dictCode: 'database_type', onChange: (e: any) => { formModel = Object.assign(formModel, dbDriverMap[e], dbUrlMap[e]); }, }; }, }, { field: 'dbDriver', label: '驱动类', required: true, component: 'Input', }, { field: 'dbUrl', label: '数据源地址', required: true, component: 'InputTextArea', }, { field: 'dbUsername', label: '用户名', required: true, component: 'Input', }, { field: 'dbPassword', label: '密码', required: true, component: 'InputPassword', slot: 'pwd', }, { field: 'remark', label: '备注', component: 'InputTextArea', }, ]; return { dataSourceFormSchema }; }