Selaa lähdekoodia

replace select

AE86 3 vuotta sitten
vanhempi
säilyke
8bf9561798
21 muutettua tiedostoa jossa 199 lisäystä ja 141 poistoa
  1. 6 6
      dbsyncer-biz/src/main/java/org/dbsyncer/biz/impl/BaseServiceImpl.java
  2. 30 13
      dbsyncer-biz/src/main/java/org/dbsyncer/biz/impl/TableGroupServiceImpl.java
  3. 1 1
      dbsyncer-connector/src/main/java/org/dbsyncer/connector/util/ESUtil.java
  4. 1 1
      dbsyncer-web/src/main/resources/public/connector/add.html
  5. 9 4
      dbsyncer-web/src/main/resources/public/connector/addDqlMysql.html
  6. 9 4
      dbsyncer-web/src/main/resources/public/connector/addElasticsearch.html
  7. 9 4
      dbsyncer-web/src/main/resources/public/connector/addMysql.html
  8. 2 2
      dbsyncer-web/src/main/resources/public/index.html
  9. 2 2
      dbsyncer-web/src/main/resources/public/mapping/editTable.html
  10. 2 2
      dbsyncer-web/src/main/resources/public/mapping/editTableGroup.html
  11. 1 1
      dbsyncer-web/src/main/resources/public/monitor/monitor.html
  12. 20 22
      dbsyncer-web/src/main/resources/static/js/connector/add.js
  13. 10 4
      dbsyncer-web/src/main/resources/static/js/connector/edit.js
  14. 9 4
      dbsyncer-web/src/main/resources/static/js/mapping/add.js
  15. 41 24
      dbsyncer-web/src/main/resources/static/js/mapping/edit.js
  16. 6 6
      dbsyncer-web/src/main/resources/static/js/mapping/editFilterAndConvert.js
  17. 2 2
      dbsyncer-web/src/main/resources/static/js/mapping/editParam.js
  18. 26 28
      dbsyncer-web/src/main/resources/static/js/mapping/editTableGroup.js
  19. 13 8
      dbsyncer-web/src/main/resources/static/js/monitor/index.js
  20. 0 0
      dbsyncer-web/src/main/resources/static/plugins/css/select2/select2.min.css
  21. 0 3
      dbsyncer-web/src/main/resources/static/plugins/js/select2/select2.min.js

+ 6 - 6
dbsyncer-biz/src/main/java/org/dbsyncer/biz/impl/BaseServiceImpl.java

@@ -35,16 +35,16 @@ public class BaseServiceImpl {
     }
 
     protected void assertRunning(String metaId) {
-        Assert.isTrue(!isRunning(metaId), "驱动正在运行, 请先停止.");
-    }
-
-    protected void assertRunning(TableGroup model) {
         synchronized (LOCK) {
-            Mapping mapping = manager.getMapping(model.getMappingId());
-            assertRunning(mapping.getMetaId());
+            Assert.isTrue(!isRunning(metaId), "驱动正在运行, 请先停止.");
         }
     }
 
+    protected void assertRunning(Mapping mapping) {
+        Assert.notNull(mapping, "mapping can not be null.");
+        assertRunning(mapping.getMetaId());
+    }
+
     protected void log(LogType log, ConfigModel model) {
         if (null != model) {
             // 新增连接器:知识库

+ 30 - 13
dbsyncer-biz/src/main/java/org/dbsyncer/biz/impl/TableGroupServiceImpl.java

@@ -3,10 +3,12 @@ package org.dbsyncer.biz.impl;
 import org.dbsyncer.biz.TableGroupService;
 import org.dbsyncer.biz.checker.Checker;
 import org.dbsyncer.common.util.CollectionUtils;
+import org.dbsyncer.common.util.StringUtil;
 import org.dbsyncer.connector.config.Field;
 import org.dbsyncer.parser.logger.LogType;
 import org.dbsyncer.parser.model.Mapping;
 import org.dbsyncer.parser.model.TableGroup;
+import org.dbsyncer.storage.constant.ConfigConstant;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -31,22 +33,39 @@ public class TableGroupServiceImpl extends BaseServiceImpl implements TableGroup
 
     @Override
     public String add(Map<String, String> params) {
-        TableGroup model = (TableGroup) tableGroupChecker.checkAddConfigModel(params);
-        assertRunning(model);
-        log(LogType.TableGroupLog.INSERT, model);
-
-        String id = manager.addTableGroup(model);
+        String mappingId = params.get("mappingId");
+        assertRunning(manager.getMapping(mappingId));
+
+        // table1, table2
+        String[] sourceTableArray = StringUtil.split(params.get("sourceTable"), ",");
+        String[] targetTableArray = StringUtil.split(params.get("targetTable"), ",");
+        int tableSize = sourceTableArray.length;
+        Assert.isTrue(tableSize == targetTableArray.length, "数据源表和目标源表关系必须为一组");
+
+        String id = null;
+        for (int i = 0; i < tableSize; i++) {
+            params.put("sourceTable", sourceTableArray[i]);
+            params.put("targetTable", targetTableArray[i]);
+            TableGroup model = (TableGroup) tableGroupChecker.checkAddConfigModel(params);
+            log(LogType.TableGroupLog.INSERT, model);
+
+            id = manager.addTableGroup(model);
+        }
 
         // 合并驱动公共字段
-        mergeMappingColumn(model.getMappingId());
+        mergeMappingColumn(mappingId);
 
-        return id;
+        return 1 < tableSize ? String.valueOf(tableSize) : id;
     }
 
     @Override
     public String edit(Map<String, String> params) {
+        String id = params.get(ConfigConstant.CONFIG_MODEL_ID);
+        TableGroup tableGroup = manager.getTableGroup(id);
+        Assert.notNull(tableGroup, "Can not find tableGroup.");
+        assertRunning(manager.getMapping(tableGroup.getMappingId()));
+
         TableGroup model = (TableGroup) tableGroupChecker.checkEditConfigModel(params);
-        assertRunning(model);
         log(LogType.TableGroupLog.UPDATE, model);
 
         return manager.editTableGroup(model);
@@ -56,19 +75,17 @@ public class TableGroupServiceImpl extends BaseServiceImpl implements TableGroup
     public boolean remove(String mappingId, String ids) {
         Assert.hasText(mappingId, "Mapping id can not be null");
         Assert.hasText(ids, "TableGroup ids can not be null");
-        Mapping mapping = manager.getMapping(mappingId);
-        Assert.notNull(mapping, "Mapping can not be null");
-        assertRunning(mapping.getMetaId());
+        assertRunning(manager.getMapping(mappingId));
 
         // 批量删除表
-        Stream.of(ids.split(",")).parallel().forEach(id -> {
+        Stream.of(StringUtil.split(ids, ",")).parallel().forEach(id -> {
             TableGroup model = manager.getTableGroup(id);
             log(LogType.TableGroupLog.DELETE, model);
             manager.removeTableGroup(id);
         });
 
         // 合并驱动公共字段
-        mergeMappingColumn(mapping.getId());
+        mergeMappingColumn(mappingId);
         return true;
     }
 

+ 1 - 1
dbsyncer-connector/src/main/java/org/dbsyncer/connector/util/ESUtil.java

@@ -55,7 +55,7 @@ public abstract class ESUtil {
      * @return
      */
     private static HttpHost makeHttpHost(String address, String scheme) {
-        String[] arr = address.split(":");
+        String[] arr = StringUtil.split(address, ":");
         if (arr.length == ADDRESS_LENGTH) {
             String ip = arr[0];
             int port = Integer.parseInt(arr[1]);

+ 1 - 1
dbsyncer-web/src/main/resources/public/connector/add.html

@@ -54,7 +54,7 @@
                             </div>
 
                             <!-- 连接配置 -->
-                            <div class="connectorConfig"></div>
+                            <div id="connectorConfig"></div>
 
                         </div>
                     </div>

+ 9 - 4
dbsyncer-web/src/main/resources/public/connector/addDqlMysql.html

@@ -47,10 +47,15 @@
 
 <script type="text/javascript">
 $(function () {
-    // 初始化select2插件
-    $(".select-control").select2({
-        width: "100%",
-        theme: "classic"
+    // 初始化select插件
+    $(".select-control").selectpicker({
+        "title":"请选择",
+        "actionsBox":true,
+        "liveSearch":true,
+        "selectAllText":"全选",
+        "deselectAllText":"取消全选",
+        "noneResultsText":"没有找到 {0}",
+        "selectedTextFormat":"count > 10"
     });
 })
 </script>

+ 9 - 4
dbsyncer-web/src/main/resources/public/connector/addElasticsearch.html

@@ -47,10 +47,15 @@
 
 <script type="text/javascript">
 $(function () {
-    // 初始化select2插件
-    $(".select-control").select2({
-        width: "100%",
-        theme: "classic"
+    // 初始化select插件
+    $(".select-control").selectpicker({
+        "title":"请选择",
+        "actionsBox":true,
+        "liveSearch":true,
+        "selectAllText":"全选",
+        "deselectAllText":"取消全选",
+        "noneResultsText":"没有找到 {0}",
+        "selectedTextFormat":"count > 10"
     });
 })
 </script>

+ 9 - 4
dbsyncer-web/src/main/resources/public/connector/addMysql.html

@@ -32,10 +32,15 @@
 
 <script type="text/javascript">
 $(function () {
-    // 初始化select2插件
-    $(".select-control").select2({
-        width: "100%",
-        theme: "classic"
+    // 初始化select插件
+    $(".select-control").selectpicker({
+        "title":"请选择",
+        "actionsBox":true,
+        "liveSearch":true,
+        "selectAllText":"全选",
+        "deselectAllText":"取消全选",
+        "noneResultsText":"没有找到 {0}",
+        "selectedTextFormat":"count > 10"
     });
 })
 </script>

+ 2 - 2
dbsyncer-web/src/main/resources/public/index.html

@@ -17,9 +17,9 @@
     <link type="text/css" rel="stylesheet" th:href="@{/plugins/css/bootstrap/bootstrap.min.css}"/>
     <link type="text/css" rel="stylesheet" th:href="@{/plugins/css/bootstrap-dialog/bootstrap-dialog.min.css}"/>
     <link type="text/css" rel="stylesheet" th:href="@{/plugins/css/bootstrap-fileinput/fileinput.min.css}"/>
+    <link type="text/css" rel="stylesheet" th:href="@{/plugins/css/bootstrap-select/bootstrap-select.min.css}"/>
     <link type="text/css" rel="stylesheet" th:href="@{/plugins/css/icheck/all.css}"/>
     <link type="text/css" rel="stylesheet" th:href="@{/plugins/css/loading-plus/loading-plus.css}"/>
-    <link type="text/css" rel="stylesheet" th:href="@{/plugins/css/select2/select2.min.css}"/>
     <link type="text/css" rel="stylesheet" th:href="@{/css/common.css}">
     <link type="text/css" rel="stylesheet" th:href="@{/css/index/index.css}">
 </head>
@@ -45,10 +45,10 @@
 <script th:src="@{/plugins/js/bootstrap-fileinput/fileinput.min.js}"></script>
 <script th:src="@{/plugins/js/bootstrap-fileinput/theme.min.js}"></script>
 <script th:src="@{/plugins/js/bootstrap-fileinput/zh.js}"></script>
+<script th:src="@{/plugins/js/bootstrap-select/bootstrap-select.min.js}"></script>
 <script th:src="@{/plugins/js/icheck/icheck.min.js}"></script>
 <script th:src="@{/plugins/js/loading-plus/loading-plus.js}"></script>
 <script th:src="@{/plugins/js/placeholder/jquery.placeholder.js}"></script>
-<script th:src="@{/plugins/js/select2/select2.min.js}"></script>
 <script th:src="@{/plugins/js/formValidate/formValidate.js}"></script>
 <script th:src="@{/plugins/js/sql-formatter/sql-formatter.min.js}"></script>
 <script th:src="@{/plugins/js/echarts/echarts.min.js}"></script>

+ 2 - 2
dbsyncer-web/src/main/resources/public/mapping/editTable.html

@@ -10,7 +10,7 @@
         <div class="col-md-5">
             <label class="col-sm-3 control-label text-right">数据源表</label>
             <div class="col-sm-9">
-                <select id="sourceTable" class="form-control select-control">
+                <select id="sourceTable" class="form-control select-control" multiple="multiple">
                     <option th:each="t,s:${mapping?.sourceConnector?.table}" th:value="${t}" th:text="${t}" />
                 </select>
             </div>
@@ -24,7 +24,7 @@
             <div class="form-group">
                 <label class="col-sm-3 control-label text-right">目标源表</label>
                 <div class="col-sm-9">
-                    <select id="targetTable" class="form-control select-control">
+                    <select id="targetTable" class="form-control select-control" multiple="multiple">
                         <option th:each="t,s:${mapping?.targetConnector?.table}" th:value="${t}" th:text="${t}" />
                     </select>
                 </div>

+ 2 - 2
dbsyncer-web/src/main/resources/public/mapping/editTableGroup.html

@@ -83,7 +83,7 @@
                                 <div class="col-md-5">
                                     <label class="col-sm-3 control-label text-right">数据源表字段</label>
                                     <div class="col-sm-9">
-                                        <select id="sourceFieldMapping" class="form-control select-control">
+                                        <select id="sourceTableField" class="form-control select-control">
                                             <option value="">无</option>
                                             <option th:each="c,s:${tableGroup?.sourceTable?.column}" th:value="${c?.name}" th:text="${c?.name} +' (' + ${c?.typeName} +')'" />
                                         </select>
@@ -98,7 +98,7 @@
                                     <div class="form-group">
                                         <label class="col-sm-3 control-label text-right">目标源表字段</label>
                                         <div class="col-sm-9">
-                                            <select id="targetFieldMapping" class="form-control select-control">
+                                            <select id="targetTableField" class="form-control select-control">
                                                 <option value="">无</option>
                                                 <option th:each="c,s:${tableGroup?.targetTable?.column}" th:value="${c?.name}" th:text="${c?.name} +' (' + ${c?.typeName} +')'" />
                                             </select>

+ 1 - 1
dbsyncer-web/src/main/resources/public/monitor/monitor.html

@@ -103,7 +103,7 @@
                                 <div class="col-md-1">
                                     <!-- 是否包含成功 -->
                                     <select id="searchDataSuccess" class="form-control select-control">
-                                        <option th:value="${c?.value}" th:text="${c?.message}" th:each="c,state : ${storageDataStatus}"/>
+                                        <option th:value="${c?.value}" th:text="${c?.message}" th:each="c,state : ${storageDataStatus}" th:selected="${c?.value eq 0}"/>
                                     </select>
                                 </div>
                                 <div class="col-sm-4">

+ 20 - 22
dbsyncer-web/src/main/resources/static/js/connector/add.js

@@ -17,34 +17,32 @@ var check = function () {
     }
 };
 
-//切换连接
-function changeConnectorType($this) {
-    //连接类型
-    var connType = $this.val();
-    //获取连接配置元素
-    var connectorConfig = $this.parent().parent().parent().find(".connectorConfig");
-    //清空配置
-    connectorConfig.html("");
-
-    //加载页面
-    connectorConfig.load($basePath + "/connector/page/add" + connType);
-}
-
 $(function () {
     // 兼容IE PlaceHolder
     $('input[type="text"],input[type="password"],textarea').PlaceHolder();
 
-    // 初始化select2插件
-    var $connectorTypeSelect = $(".select-control").select2({
-        width: "100%",
-        theme: "classic"
+    // 初始化select插件
+    $(".select-control").selectpicker({
+        "title":"请选择",
+        "actionsBox":true,
+        "liveSearch":true,
+        "selectAllText":"全选",
+        "deselectAllText":"取消全选",
+        "noneResultsText":"没有找到 {0}",
+        "selectedTextFormat":"count > 10"
     });
-    // 默认渲染连接页面
-    changeConnectorType($connectorTypeSelect);
 
-    //连接类型切换事件
-    $("select[name='connectorType']").change(function () {
-        changeConnectorType($(this));
+    // 默认渲染连接页面
+    $("#connectorType").on('changed.bs.select',function(e){
+        //连接类型
+        var connType = $(this).selectpicker('val');
+        //获取连接配置元素
+        var $connectorConfig = $("#connectorConfig");
+        //清空配置
+        $connectorConfig.html("");
+
+        //加载页面
+        $connectorConfig.load($basePath + "/connector/page/add" + connType);
     });
 
     //保存

+ 10 - 4
dbsyncer-web/src/main/resources/static/js/connector/edit.js

@@ -13,11 +13,17 @@ $(function () {
     // 兼容IE PlaceHolder
     $('input[type="text"],input[type="password"],textarea').PlaceHolder();
 
-    // 初始化select2插件
-    var $connectorTypeSelect = $(".select-control").select2({
-        width: "100%",
-        theme: "classic"
+    // 初始化select插件
+    $(".select-control").selectpicker({
+        "title":"请选择",
+        "actionsBox":true,
+        "liveSearch":true,
+        "selectAllText":"全选",
+        "deselectAllText":"取消全选",
+        "noneResultsText":"没有找到 {0}",
+        "selectedTextFormat":"count > 10"
     });
+
     //保存
     $("#connectorSubmitBtn").click(function () {
         var $form = $("#connectorModifyForm");

+ 9 - 4
dbsyncer-web/src/main/resources/static/js/mapping/add.js

@@ -22,10 +22,15 @@ $(function () {
     // 兼容IE PlaceHolder
     $('input[type="text"],input[type="password"],textarea').PlaceHolder();
 
-    // 初始化select2插件
-    $(".select-control").select2({
-        width: "100%",
-        theme: "classic"
+    // 初始化select插件
+    $(".select-control").selectpicker({
+        "title":"请选择",
+        "actionsBox":true,
+        "liveSearch":true,
+        "selectAllText":"全选",
+        "deselectAllText":"取消全选",
+        "noneResultsText":"没有找到 {0}",
+        "selectedTextFormat":"count > 10"
     });
 
     // 绑定匹配相似表复选框事件

+ 41 - 24
dbsyncer-web/src/main/resources/static/js/mapping/edit.js

@@ -98,15 +98,42 @@ function bindMappingTableGroupListClick() {
     });
 }
 
+// 绑定下拉选择事件自动匹配相似表事件
+function bindTableSelect(){
+    var $sourceSelect = $("#sourceTable");
+    var $targetSelect = $("#targetTable");
+    $sourceSelect.on('changed.bs.select',function(e){
+        $targetSelect.selectpicker('val', $(this).selectpicker('val'));
+    });
+    bindMappingTableGroupAddClick($sourceSelect, $targetSelect);
+}
+
 // 绑定新增表关系点击事件
-function bindMappingTableGroupAddClick() {
+function bindMappingTableGroupAddClick($sourceSelect, $targetSelect) {
     var $addBtn = $("#tableGroupAddBtn");
     $addBtn.unbind("click");
     $addBtn.bind('click', function () {
         var m = {};
         m.mappingId = $(this).attr("mappingId");
-        m.sourceTable = $("#sourceTable option:checked").val();
-        m.targetTable = $("#targetTable option:checked").val();
+        m.sourceTable = $sourceSelect.selectpicker('val');
+        m.targetTable = $targetSelect.selectpicker('val');
+
+        // 如果存在多个选择,只筛选相似表
+        var sLen = m.sourceTable.length;
+        var tLen = m.targetTable.length;
+        if(1 < sLen || 1 < tLen){
+            var mark = [];
+            for(j = 0; j < sLen; j++) {
+                if(-1 != m.targetTable.indexOf(m.sourceTable[j])){
+                    mark.push(m.sourceTable[j]);
+                }
+            }
+            m.sourceTable = mark;
+            m.targetTable = mark;
+        }
+        m.sourceTable = m.sourceTable.join();
+        m.targetTable = m.targetTable.join();
+
         doPoster("/tableGroup/add", m, function (data) {
             if (data.success == true) {
                 bootGrowl("新增映射关系成功!", "success");
@@ -136,18 +163,6 @@ function bindMappingTableGroupDelClick() {
     });
 }
 
-// 绑定下拉自动匹配字段
-function bindAutoSelect(){
-    var $sourceSelect = $("#sourceTable");
-    var $targetSelect = $("#targetTable");
-
-    // 绑定数据源下拉切换事件
-    $sourceSelect.change(function () {
-        var v = $(this).select2("val");
-        $targetSelect.val(v).trigger("change");
-    });
-}
-
 // 修改驱动名称
 function mappingModifyName(){
     var $name = $("#mappingModifyName");
@@ -171,18 +186,20 @@ $(function () {
 
     // 绑定表关系点击事件
     bindMappingTableGroupListClick();
-    // 绑定新增表关系点击事件
-    bindMappingTableGroupAddClick();
+    // 绑定下拉选择事件自动匹配相似表事件
+    bindTableSelect();
     // 绑定删除表关系点击事件
     bindMappingTableGroupDelClick();
 
-    // 绑定下拉自动匹配字段
-    bindAutoSelect();
-
-    // 初始化select2插件
-    $(".select-control").select2({
-        width: "100%",
-        theme: "classic"
+    // 初始化select插件
+    $(".select-control").selectpicker({
+        "title":"请选择",
+        "actionsBox":true,
+        "liveSearch":true,
+        "selectAllText":"全选",
+        "deselectAllText":"取消全选",
+        "noneResultsText":"没有找到 {0}",
+        "selectedTextFormat":"count > 10"
     });
 
     // 保存

+ 6 - 6
dbsyncer-web/src/main/resources/static/js/mapping/editFilterAndConvert.js

@@ -66,9 +66,9 @@ function bindConditionAddClick() {
     var $conditionAdd = $("#conditionAdd");
     $conditionAdd.unbind("click");
     $conditionAdd.bind('click', function () {
-        var conditionOperation = $("#conditionOperation").select2("val");
-        var conditionSourceField = $("#conditionSourceField").select2("val");
-        var conditionFilter = $("#conditionFilter").select2("val");
+        var conditionOperation = $("#conditionOperation").selectpicker("val");
+        var conditionSourceField = $("#conditionSourceField").selectpicker("val");
+        var conditionFilter = $("#conditionFilter").selectpicker("val");
         var conditionArg = $("#conditionArg").val();
         // 非空检查
         if(conditionSourceField == null || conditionSourceField == undefined || conditionSourceField == ''){
@@ -121,9 +121,9 @@ function bindConvertAddClick() {
     $convertAdd.unbind("click");
     $convertAdd.bind('click', function () {
         var $convertOperator = $("#convertOperator");
-        var convertOperatorVal = $convertOperator.select2("val");
-        var convertOperatorText = $convertOperator.select2("data")[0].text;
-        var convertTargetField = $("#convertTargetField").select2("val");
+        var convertOperatorVal = $convertOperator.selectpicker("val");
+        var convertOperatorText = $convertOperator.find("option:selected")[0].text;
+        var convertTargetField = $("#convertTargetField").selectpicker("val");
         var convertArg = $(".convertArg:eq(0)").val();
         var convertArg1 = $(".convertArg:eq(1)").val();
         // 多个参数时,英文符号“,”拼接

+ 2 - 2
dbsyncer-web/src/main/resources/static/js/mapping/editParam.js

@@ -10,9 +10,9 @@ function bingMappingParamsInputClick(){
 }
 
 // 生成参数配置
-function genMappingParams($inputs){
+function genMappingParams($select){
     var params = {};
-    $inputs.each(function () {
+    $select.each(function () {
         if('' != $(this).val()){
             params[$(this).attr("name")] = $(this).val();
         }

+ 26 - 28
dbsyncer-web/src/main/resources/static/js/mapping/editTableGroup.js

@@ -10,14 +10,6 @@ function submit(data) {
     });
 }
 
-// 初始化select2插件
-function bindSelectEvent($selector){
-    $selector.find(".select-control").select2({
-        width : "100%",
-        theme : "classic"
-    });
-}
-
 // 初始化映射关系参数
 function initFieldMappingParams(){
     // 生成JSON参数
@@ -85,12 +77,23 @@ function bindFieldMappingListClick(){
         initFieldMappingParams();
     });
 }
+// 绑定下拉选择事件自动匹配相似字段事件
+function bindTableFieldSelect(){
+    var $sourceSelect = $("#sourceTableField");
+    var $targetSelect = $("#targetTableField");
+
+    // 绑定数据源下拉切换事件
+    $sourceSelect.on('changed.bs.select',function(e){
+        $targetSelect.selectpicker('val', $(this).selectpicker('val'));
+    });
+    bindFieldMappingAddClick($sourceSelect, $targetSelect)
+}
 // 绑定添加字段映射点击事件
-function bindFieldMappingAddClick(){
+function bindFieldMappingAddClick($sourceSelect, $targetSelect){
     var $btn = $("#fieldMappingAddBtn");
     $btn.bind('click', function(){
-        var sField = $("#sourceFieldMapping").select2("val");
-        var tField = $("#targetFieldMapping").select2("val");
+        var sField = $sourceSelect.selectpicker("val");
+        var tField = $targetSelect.selectpicker("val");
         sField = sField == null ? "" : sField;
         tField = tField == null ? "" : tField;
         // 非空检查
@@ -139,17 +142,6 @@ function bindFieldMappingDelClick(){
         }
     });
 }
-// 绑定下拉自动匹配字段
-function bindAutoSelect(){
-    var $sourceSelect = $("#sourceFieldMapping");
-    var $targetSelect = $("#targetFieldMapping");
-
-    // 绑定数据源下拉切换事件
-    $sourceSelect.change(function () {
-        var v = $(this).select2("val");
-        $targetSelect.val(v).trigger("change");
-    });
-}
 // 返回驱动配置页面
 function backMappingPage($this){
     doLoader('/mapping/page/edit?id=' + $this.attr("mappingId"));
@@ -158,17 +150,23 @@ function backMappingPage($this){
 $(function() {
     // 绑定表字段关系点击事件
     initFieldMappingParams();
+    // 绑定下拉选择事件自动匹配相似字段事件
+    bindTableFieldSelect();
     // 绑定删除表字段映射事件
     bindFieldMappingCheckBoxClick();
     bindFieldMappingListClick();
-    bindFieldMappingAddClick();
     bindFieldMappingDelClick();
-    // 绑定下拉自动匹配字段
-    bindAutoSelect();
 
-    // 初始化select2插件
-    bindSelectEvent($("#tableGroupBaseConfig"));
-    bindSelectEvent($("#tableGroupSuperConfig"));
+    // 初始化select插件
+    $(".select-control").selectpicker({
+        "title":"请选择",
+        "actionsBox":true,
+        "liveSearch":true,
+        "selectAllText":"全选",
+        "deselectAllText":"取消全选",
+        "noneResultsText":"没有找到 {0}",
+        "selectedTextFormat":"count > 10"
+    });
 
     //保存
     $("#tableGroupSubmitBtn").click(function () {

+ 13 - 8
dbsyncer-web/src/main/resources/static/js/monitor/index.js

@@ -108,8 +108,8 @@ function showMore($this, $url, $params, $call){
 function bindQueryDataEvent() {
     $("#queryDataBtn").click(function () {
         var keyword = $("#searchDataKeyword").val();
-        var id = $("#searchMetaData").select2("val");
-        var success = $("#searchDataSuccess").select2("val");
+        var id = $("#searchMetaData").selectpicker("val");
+        var success = $("#searchDataSuccess").selectpicker("val");
         doGetter('/monitor/queryData', {"error": keyword, "success": success, "id" : id, "pageNum" : 1, "pageSize" : 10}, function (data) {
             if (data.success == true) {
                 refreshDataList(data.resultValue);
@@ -122,8 +122,8 @@ function bindQueryDataEvent() {
 function bindQueryDataMoreEvent() {
     $("#queryDataMore").click(function () {
         var keyword = $("#searchDataKeyword").val();
-        var id = $("#searchMetaData").select2("val");
-        var success = $("#searchDataSuccess").select2("val");
+        var id = $("#searchMetaData").selectpicker("val");
+        var success = $("#searchDataSuccess").selectpicker("val");
         showMore($(this), '/monitor/queryData', {"error": keyword, "success": success, "id" : id}, function(resultValue){
             refreshDataList(resultValue, true)
         });
@@ -435,10 +435,15 @@ function createTimer(){
 }
 
 $(function () {
-    // 初始化select2插件
-    $(".select-control").select2({
-        width: "100%",
-        theme: "classic"
+    // 初始化select插件
+    $(".select-control").selectpicker({
+        "title":"请选择",
+        "actionsBox":true,
+        "liveSearch":true,
+        "selectAllText":"全选",
+        "deselectAllText":"取消全选",
+        "noneResultsText":"没有找到 {0}",
+        "selectedTextFormat":"count > 10"
     });
 
     // 连接类型切换事件

Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
dbsyncer-web/src/main/resources/static/plugins/css/select2/select2.min.css


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 3
dbsyncer-web/src/main/resources/static/plugins/js/select2/select2.min.js


Kaikkia tiedostoja ei voida näyttää, sillä liian monta tiedostoa muuttui tässä diffissä