Quellcode durchsuchen

质检日期和必填项检测优化

lvy vor 3 Tagen
Ursprung
Commit
3bbebc48e6

+ 20 - 7
blade-service/blade-manager/src/main/java/org/springblade/manager/controller/ExcelTabController.java

@@ -1077,20 +1077,22 @@ public class ExcelTabController extends BladeController {
                 }
                 status.set(2);
                 Elements parents = element.parents();
-                parents.forEach(parent -> {
+                for (Element parent : parents) {
                     if (parent.tagName().equals("td")) {
                         if (parent.hasAttr("style")) {
                             parent.attr("style", parent.attr("style") + "position: relative;");
                         } else {
                             parent.attr("style", "position: relative;");
                         }
+                        break;
                     }
-                });
+                }
                 element.before("<hc-tooltip :tipsStatus=\"" + true + "\" text=\"缺少日期\" keyname=\""+keyname +"\" @leftClick=\"changeTipsStatus\" typeKey=\"" + key + "\"/>");
             });
             return;
         }
         Map<String, WbsFormElement> keyMap = wbsFormElementList.stream().collect(Collectors.toMap(WbsFormElement::getEKey, item -> item, (v1, v2) -> v1));
+        Map<Long, WbsFormElement> hasMap = new HashMap<>();
         Elements elements = tableHtml.select("el-date-picker");
         elements.forEach(element -> {
             String keyname = element.attr("keyname");
@@ -1100,26 +1102,33 @@ public class ExcelTabController extends BladeController {
             }
             status.set(2);
             boolean flag = true;
-            if (!keyMap.containsKey(key)) {
+            if (keyMap.containsKey(key)) {
                 WbsFormElement wbsFormElement = keyMap.get(key);
                 if (wbsFormElement != null && wbsFormElement.getNodeIgnore() != null && wbsFormElement.getNodeIgnore().contains(tableNode.getPId() + "")) {
                     flag = false;
                 }
+                if (wbsFormElement != null) {
+                    hasMap.put(wbsFormElement.getId(), wbsFormElement);
+                }
             }
             Elements parents = element.parents();
-            parents.forEach(parent -> {
+            for (Element parent : parents) {
                 if (parent.tagName().equals("td")) {
                     if (parent.hasAttr("style")) {
                         parent.attr("style", parent.attr("style") + "position: relative;");
                     } else {
                         parent.attr("style", "position: relative;");
                     }
+                    break;
                 }
-            });
+            }
             element.before("<hc-tooltip :tipsStatus=\"" + flag + "\" text=\"缺少日期\" keyname=\""+keyname +"\" @leftClick=\"changeTipsStatus\" typeKey=\"" + key + "\"/>");
         });
 
         for (WbsFormElement wbsFormElement : wbsFormElementList) {
+            if (hasMap.containsKey(wbsFormElement.getId())) {
+                continue;
+            }
             Object obj = map.get(wbsFormElement.getEKey());
             if (obj != null && obj.toString().contains("_^_")) {
                 continue;
@@ -1133,20 +1142,24 @@ public class ExcelTabController extends BladeController {
             Elements keyNames = tableHtml.getElementsByAttributeValueContaining("keyname", wbsFormElement.getEKey());
             if (!keyNames.isEmpty()) {
                 keyNames.forEach(element -> {
+                    if ("el-date-picker".equals(element.tagName()) || "td".equals(element.tagName()) || "hc-tooltip".equals(element.tagName())) {
+                        return;
+                    }
                     boolean flag = true;
                     if (wbsFormElement.getNodeIgnore() != null && wbsFormElement.getNodeIgnore().contains(tableNode.getPId() + "")) {
                         flag = false;
                     }
                     Elements parents = element.parents();
-                    parents.forEach(parent -> {
+                    for (Element parent : parents) {
                         if (parent.tagName().equals("td")) {
                             if (parent.hasAttr("style")) {
                                 parent.attr("style", parent.attr("style") + "position: relative;");
                             } else {
                                 parent.attr("style", "position: relative;");
                             }
+                            break;
                         }
-                    });
+                    }
                     String keynameAttr = element.attr("keyname");
                     element.before("<hc-tooltip :tipsStatus=\"" + flag + "\" text=\"此项为必填项\" keyname=\""+keynameAttr +"\" @leftClick=\"changeTipsStatus\" typeKey=\"" + wbsFormElement.getEKey() + "\"/>");
                 });