Prechádzať zdrojové kódy

fix:数据源选项可设置

liu.shiyi 1 rok pred
rodič
commit
b7c99cc7a1

+ 5 - 0
data-room-ui/example/main.js

@@ -60,6 +60,11 @@ registerConfig(
     sourceExtends: ['jpg', 'jpeg', 'png', 'gif', 'bmp', 'svg', 'webp', 'ico', 'xls', 'xlsx', 'csv'],
     // datasetAuth: ['unAdd', 'unEdit', 'unDelete'], // 数据集按钮权限 新增 编辑 删除
     // datasetTypeList: ['original', 'custom', 'http'],
+    // sourceTypeList: [
+    //   { label: 'Mysql', code: 'mysql', name: 'com.mysql.jdbc.Driver', url: 'jdbc:mysql://localhost:3306/db_name?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf-8&useSSL=false&useOldAliasMetadataBehavior=true' },
+    //   { label: 'ClickHouse', code: 'clickhouse', name: 'ru.yandex.clickhouse.ClickHouseDriver', url: 'jdbc:clickhouse://localhost:8123/db_name' },
+    //   { label: 'test', code: 'test', name: 'test', url: 'test' }
+    // ],
     // customPlots: [],
     // 远程组件列表
     remoteComponents,

+ 17 - 53
data-room-ui/packages/DataSourceManagement/src/setDatasource.vue

@@ -37,8 +37,8 @@
           >
             <el-option
               v-for="sourceType in sourceTypeList"
-              :key="sourceType.id"
-              :label="sourceType.name"
+              :key="sourceType.code"
+              :label="sourceType.label"
               :value="sourceType.code"
             />
           </el-select>
@@ -223,27 +223,10 @@ export default {
       setDatasourceVisible: false,
       title: '',
       linkLoading: false,
-      sourceTypeList: [
-        { name: 'Mysql', code: 'mysql' },
-        { name: 'ClickHouse', code: 'clickhouse' },
-        { name: 'PostgreSQL', code: 'postgresql' },
-        { name: 'Oracle', code: 'oracle' },
-        { name: 'Sqlserver', code: 'sqlserver' }
-      ],
-      driverCLassList: [
-        { code: 'mysqlDriver', name: 'com.mysql.jdbc.Driver' },
-        { code: 'clickhouseDriver', name: 'ru.yandex.clickhouse.ClickHouseDriver' },
-        { code: 'oracleDriver', name: 'oracle.jdbc.driver.OracleDriver' },
-        { code: 'hsqlDriver', name: 'org.hsqldb.jdbc.JDBCDriver' },
-        { code: 'ibmdb2Driver', name: 'com.ibm.db2.jcc.DB2Driver' },
-        { code: 'sqlserverDriver', name: 'com.microsoft.sqlserver.jdbc.SQLServerDriver' },
-        { code: 'postgresqlDriver', name: 'org.postgresql.Driver' },
-        { code: 'hiveDriver', name: 'org.apache.hive.jdbc.HiveDriver' }
-      ],
       dataForm: {
         id: '',
         sourceName: '',
-        sourceType: 'Mysql',
+        sourceType: 'mysql',
         driverClassName: 'com.mysql.jdbc.Driver',
         username: '',
         password: '',
@@ -315,6 +298,17 @@ export default {
       }
     }
   },
+  computed: {
+    sourceTypeList () {
+      return window.BS_CONFIG?.sourceTypeList || [
+        { label: 'Mysql', code: 'mysql', name: 'com.mysql.jdbc.Driver', url: 'jdbc:mysql://localhost:3306/db_name?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf-8&useSSL=false&useOldAliasMetadataBehavior=true' },
+        { label: 'ClickHouse', code: 'clickhouse', name: 'ru.yandex.clickhouse.ClickHouseDriver', url: 'jdbc:clickhouse://localhost:8123/db_name' },
+        { label: 'PostgreSQL', code: 'postgresql', name: 'org.postgresql.Driver', url: 'jdbc:postgresql://localhost:13308/db_name' },
+        { label: 'Oracle', code: 'oracle', name: 'oracle.jdbc.driver.OracleDriver', url: 'jdbc:oracle:thin:@localhost:1521:orcl' },
+        { label: 'Sqlserver', code: 'sqlserver', name: 'com.microsoft.sqlserver.jdbc.SQLServerDriver', url: 'jdbc:sqlserver://localhost:1433;databaseName=db_name' }
+      ]
+    }
+  },
   methods: {
     // 初始化
     init (row) {
@@ -326,26 +320,6 @@ export default {
         this.dataForm = row
       }
     },
-    getUrl (driverClassName) {
-      switch (driverClassName) {
-        case 'com.mysql.jdbc.Driver':
-          return 'jdbc:mysql://localhost:3306/db_name?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf-8&useSSL=false&useOldAliasMetadataBehavior=true'
-        case 'ru.yandex.clickhouse.ClickHouseDriver':
-          return 'jdbc:clickhouse://localhost:8123/db_name'
-        case 'oracle.jdbc.driver.OracleDriver':
-          return 'jdbc:oracle:thin:@localhost:1521:orcl'
-        case 'org.hsqldb.jdbc.JDBCDriver':
-          return 'jdbc:hsqldb:http://localhost:1527/db_name'
-        case 'com.ibm.db2.jcc.DB2Driver':
-          return 'jdbc:db2://localhost:5000/db_name'
-        case 'com.microsoft.sqlserver.jdbc.SQLServerDriver':
-          return 'jdbc:sqlserver://localhost:1433;databaseName=db_name;encrypt=false'
-        case 'org.postgresql.Driver':
-          return 'jdbc:postgresql://localhost:13308/db_name'
-        case 'org.apache.hive.jdbc.HiveDriver':
-          return 'jdbc:hive2://localhost:10000/db_name'
-      }
-    },
     // 名称校验
     validateSourceName (rule, value, callback) {
       checkRepeat({
@@ -363,20 +337,10 @@ export default {
     // 数据源类型选择
     sourceTypeChange (code) {
       if (!this.dataForm.id && code) {
-        let driverName = ''
-        driverName = code + 'Driver'
-        // 从驱动列表中获取驱动的对应的jdbcUrl
-        this.driverCLassList.forEach(driver => {
-          if (driverName === driver.code) {
-            this.dataForm.driverClassName = driver.name
-            this.queryDriverTemp(driver.name)
-          }
-        })
+        this.dataForm.driverClassName = this.sourceTypeList.find(item => item.code === code)?.name
+        this.$set(this.dataForm, 'url', this.sourceTypeList.find(item => item.code === code)?.url)
       }
     },
-    queryDriverTemp (val) {
-      this.$set(this.dataForm, 'url', this.getUrl(val))
-    },
     // 阻止文本域回车换行
     textareaKeydown () {
       const e = window.event || arguments[0]
@@ -414,7 +378,7 @@ export default {
       this.dataForm = {
         id: '',
         sourceName: '',
-        sourceType: 'Mysql',
+        sourceType: 'mysql',
         driverClassName: 'com.mysql.jdbc.Driver',
         username: '',
         password: '',