Bladeren bron

表单相关:右键选择的嵌套问题

yangyj 2 jaren geleden
bovenliggende
commit
021678856e

+ 7 - 5
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/FormulaServiceImpl.java

@@ -1511,10 +1511,10 @@ public  List<ElementData> setScale(Integer scale,List<ElementData> data){
                  }
                  if(f.contains(".option")){
                      /*FC.optionC?是无法嵌套的函数*/
-                     Matcher m = RegexUtils.matcher(FC_REG+"(optionC?)\\(([^)]+)\\)",f);
+                     Matcher m = RegexUtils.matcher(FC_REG+"optionC?\\(([^)(]+),",f);
                      while (m.find()){
-                       String[] args= m.group(2).split(",");
-                       String flag=args[0];
+                     /*  String[] args= m.group(2).split(",");*/
+                       String flag=m.group(1);
                        /*radio控件,结果只有两个0,1 ,结果作为标识位,且为1才会执第二个参数的回调方法*/
                        if("OPTION".equals(flag)){
                            Optional<KeyMapper> kOp=tec.getKeyMappers().stream().filter(e->StringUtils.isEquals(e.getCode(),fd.getCode())).findFirst();
@@ -1533,10 +1533,12 @@ public  List<ElementData> setScale(Integer scale,List<ElementData> data){
                            /*默认0*/
                            flag="0";
                        }
+                         String methodName = new Object(){}.getClass().getEnclosingMethod().getName();
                        if(StringUtils.isEquals(flag,1)){
-                           f=f.replace(m.group(),args[1]);
+                           f=f.replace(m.group(),"").replaceAll("\\)$","");
                        }else{
-                           f=f.replace(m.group(),"''");
+                           fd.setFinished(Boolean.TRUE);
+                           f="''";
                        }
                      }
                  }