288 lines
6.8 KiB
TypeScript
288 lines
6.8 KiB
TypeScript
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 };
|
|
}
|