AE86 5 anni fa
parent
commit
416e4a4e9c

+ 66 - 11
dbsyncer-web/src/main/resources/static/js/mapping/editMappingFilterAndConvert.js

@@ -1,6 +1,5 @@
-// 绑定条件表格点击事件
-function bindConditionListClick(){
-    var $del = $(".conditionDelete");
+// 绑定表格点击删除事件
+function bindConfigListClick($del){
     $del.unbind("click");
     $del.bind('click', function(){
         // 阻止tr触发click事件
@@ -12,13 +11,17 @@ function bindConditionListClick(){
 // 绑定新增条件点击事件
 function bindConditionAddClick() {
     var $conditionAdd = $("#conditionAdd");
-    $conditionAdd.unbind("click");
-    $conditionAdd.bind('click', function () {
+        $conditionAdd.unbind("click");
+        $conditionAdd.bind('click', function () {
         var conditionOperation = $("#conditionOperation").select2("val");
         var conditionSourceField = $("#conditionSourceField").select2("val");
         var conditionFilter = $("#conditionFilter").select2("val");
-        var $conditionArg = $("#conditionArg");
-        var conditionArg = $conditionArg.val();
+        var conditionArg = $("#conditionArg").val();
+        // 非空检查
+        if(conditionSourceField == null || conditionSourceField == undefined || conditionSourceField == ''){
+            bootGrowl("数据源表字段不能空.", "danger");
+            return;
+        }
 
         // 检查重复字段
         var repeated = false;
@@ -45,12 +48,64 @@ function bindConditionAddClick() {
         trHtml += "</tr>";
         $conditionList.append(trHtml);
         // 清空参数
-        $conditionArg.val("");
-        bindConditionListClick();
-    })
+        $("#conditionArg").val("");
+        bindConditionListClick($(".conditionDelete"));
+    });
+}
+
+// 绑定新增转换点击事件
+function bindConvertAddClick() {
+    var $convertAdd = $("#convertAdd");
+        $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 convertArg = $(".convertArg:eq(0)").val();
+        var convertArg1 = $(".convertArg:eq(1)").val();
+        // 多个参数时,英文符号“,”拼接
+        convertArg = convertArg1 !== '' ? convertArg + ','+ convertArg1 : convertArg;
+        // 非空检查
+        if(convertTargetField == null || convertTargetField == undefined || convertTargetField == ''){
+            bootGrowl("目标源表字段不能空.", "danger");
+            return;
+        }
+
+        // 检查重复字段
+        var repeated = false;
+        var $convertList = $("#convertList");
+        $convertList.find("tr").each(function(k,v){
+             var opr = $(this).find("td:eq(0)").text();
+             var tf = $(this).find("td:eq(1)").text();
+             var arg = $(this).find("td:eq(2)").text();
+             if(repeated = (opr==convertOperatorText && tf==convertTargetField && arg==convertArg)){
+                bootGrowl("转换配置已存在.", "danger");
+                // break;
+                return false;
+             }
+        });
+        if(repeated){ return; }
+
+        var trHtml = "<tr>";
+        trHtml += "<td value='" + convertOperatorVal + "'>" + convertOperatorText + "</td>";
+        trHtml += "<td>" + convertTargetField + "</td>";
+        trHtml += "<td>" + convertArg + "</td>";
+        trHtml += "<td><a class='fa fa-remove fa-2x convertDelete dbsyncer_pointer' title='删除' ></a></td>";
+        trHtml += "</tr>";
+        $convertList.append(trHtml);
+        // 清空参数
+        $(".convertArg").val("");
+        bindConfigListClick($(".convertDelete"));
+    });
 }
 
 $(function() {
-    bindConditionListClick();
+    // 过滤条件
+    bindConfigListClick($(".conditionDelete"));
     bindConditionAddClick();
+
+    // 转换配置
+    bindConfigListClick($(".convertDelete"));
+    bindConvertAddClick();
 });

+ 1 - 0
dbsyncer-web/src/main/resources/templates/mapping/editMapping.html

@@ -127,5 +127,6 @@
 </div>
 
 <script th:src="@{/js/mapping/editMapping.js}"></script>
+<script th:src="@{/js/mapping/editMappingFilterAndConvert.js}"></script>
 <script th:src="@{/js/mapping/editMappingIncrement.js}"></script>
 </html>

+ 1 - 1
dbsyncer-web/src/main/resources/templates/mapping/editMappingConvert.html

@@ -59,7 +59,7 @@
                         <th>操作</th>
                     </tr>
                     </thead>
-                    <tbody class="convertList">
+                    <tbody id="convertList">
                     <tr>
                         <td>追加</td>
                         <td>NAME</td>