您当前的位置: 首页 > 

梁云亮

暂无认证

  • 3浏览

    0关注

    1211博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

生成多条件查询页面

梁云亮 发布时间:2022-05-29 10:33:53 ,浏览量:3

最终生成的条件查询页面

请添加图片描述

代码 封装
@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
@ToString
public class QuerySelect {
    private String value;
    private String text;
    private List list;
}
具体工具类
public class GenPageQueryUtil {
    private static List ids = new ArrayList();

    public static String gen(String data) {
        List res = JsonUtil.string2Obj(data, List.class, QuerySelect.class);

        StringBuffer sb = genForm(res);
        genScript(sb);

        return sb.toString();
    }

    /**
     * 生成对应的JavaScript
     *
     * @param sb
     */
    private static void genScript(StringBuffer sb) {
        sb.append("\n");
        sb.append("\t$(\"#queryText\").attr(\"name\",\"queryValue\");\n");
        sb.append("\t$(\"#querySelect\").change(function () {\n");
        sb.append("\t\tlet val = $(\"#querySelect option:selected\").val();\n");

        boolean falg = true;
        for (String id : ids) {
            if (id.contains("Select")) {
                if (falg) {
                    sb.append("\t\tif ('" + id + "'.includes(val)){\n");
                    falg = false;
                } else {
                    sb.append("\t\t}else if ('" + id + "'.includes(val)){\n");
                }
                //显示
                sb.append("\t\t\t$(\"#" + id + "\").show();\n");
                sb.append("\t\t\t$(\"#" + id + "\").attr(\"name\",\"queryValue\");\n");
                for (String id2 : ids) {
                    if (!id2.equals(id)) {
                        //隐藏
                        sb.append("\t\t\t$(\"#" + id2 + "\").hide();\n");
                        sb.append("\t\t\t$(\"#" + id2 + "\").removeAttr(\"name\");\n");
                    }
                }
            }
        }
        sb.append("\t\t}else {\n");
        //显示
        sb.append("\t\t\t$(\"#queryText\").show();\n");
        sb.append("\t\t\t$(\"#queryText\").attr(\"name\",\"queryValue\");\n");
        for (String id : ids) {
            if (id.contains("Select")) {
                //隐藏
                sb.append("\t\t\t$(\"#" + id + "\").hide();\n");
                sb.append("\t\t\t$(\"#" + id + "\").removeAttr(\"name\");\n");
            }
        }
        sb.append("\t\t}\n");
        sb.append("\t})\n");
        sb.append("");
    }

    /**
     * 生成表单
     *
     * @return
     */
    private static StringBuffer genForm(List querySelectList) {
        StringBuffer sb = new StringBuffer("\n");
        sb.append("\t\n");
        for (QuerySelect querySelect : querySelectList) {
            String value = querySelect.getValue();
            String text = querySelect.getText();
            sb.append("\t\t" + text + "\n");
        }
        sb.append("\t\n");

        //保存所有表彰元素的id
        ids.add("queryText");
        sb.append("\t\n");


        for (QuerySelect querySelect : querySelectList) {
            List list = querySelect.getList();
            if (list == null) {
                continue;
            }
            String v = querySelect.getValue();
            ids.add(v + "QuerySelect");
            sb.append("\t\n");
            for (QuerySelect item : list) {
                String value = item.getValue();
                String text = item.getText();
                sb.append("\t\t" + text + "\n");
            }
            sb.append("\t\n");
        }
        sb.append("\t开始时间:  \n");
        sb.append("\t结束时间:\n");
        sb.append("\t\n");

        sb.append("\n");
        return sb;
    }

}
测试代码
//测试,用来生成最终用来生成查询头的JSON数据结构
@Test
void genDataStruct(){
    List querySelectList = new ArrayList();
    querySelectList.add(new QuerySelect("id", "编号", null));
    querySelectList.add(new QuerySelect("name", "省名", null));

    List areaQuerySelect = new ArrayList();
    areaQuerySelect.add(new QuerySelect("东北", "东北", null));
    areaQuerySelect.add(new QuerySelect("西北", "西北", null));
    areaQuerySelect.add(new QuerySelect("西南", "西南", null));
    areaQuerySelect.add(new QuerySelect("华东", "华东", null));
    areaQuerySelect.add(new QuerySelect("华西", "华西", null));
    areaQuerySelect.add(new QuerySelect("华南", "华南", null));
    querySelectList.add(new QuerySelect("area", "地区", areaQuerySelect));

    List statusQuerySelect = new ArrayList();
    statusQuerySelect.add(new QuerySelect("1", "可用", null));
    statusQuerySelect.add(new QuerySelect("2", "禁用", null));
    querySelectList.add(new QuerySelect("status", "状态", statusQuerySelect));
    String json = JsonUtil.obj2String(querySelectList);
    System.out.println(json);
}
// 根据Java代码生成查询头
@Test
void fun1() throws SQLException {
    List querySelectList = new ArrayList();
    querySelectList.add(new QuerySelect("id", "编号", null));
    querySelectList.add(new QuerySelect("name", "省名", null));

    List areaQuerySelect = new ArrayList();
    areaQuerySelect.add(new QuerySelect("东北", "东北", null));
    areaQuerySelect.add(new QuerySelect("西北", "西北", null));
    areaQuerySelect.add(new QuerySelect("西南", "西南", null));
    areaQuerySelect.add(new QuerySelect("华东", "华东", null));
    areaQuerySelect.add(new QuerySelect("华西", "华西", null));
    areaQuerySelect.add(new QuerySelect("华南", "华南", null));
    querySelectList.add(new QuerySelect("area", "地区", areaQuerySelect));

    List statusQuerySelect = new ArrayList();
    statusQuerySelect.add(new QuerySelect("1", "可用", null));
    statusQuerySelect.add(new QuerySelect("2", "禁用", null));
    querySelectList.add(new QuerySelect("status", "状态", statusQuerySelect));

    StringBuffer sb = genForm(querySelectList);
    genScript(sb);

    System.out.println(sb);
}
//根据JSON数据生成查询头
@Test
void fun2() {
    String data = """
            [
                {
                    "value": "id",
                    "text": "编号",
                    "list": null
                },
                {
                    "value": "name",
                    "text": "省名",
                    "list": null
                },
                {
                    "value": "area",
                    "text": "地区",
                    "list": [
                        {
                            "value": "东北",
                            "text": "东北",
                            "list": null
                        },
                        {
                            "value": "西北",
                            "text": "西北",
                            "list": null
                        },
                        {
                            "value": "西南",
                            "text": "西南",
                            "list": null
                        },
                        {
                            "value": "华东",
                            "text": "华东",
                            "list": null
                        },
                        {
                            "value": "华西",
                            "text": "华西",
                            "list": null
                        },
                        {
                            "value": "华南",
                            "text": "华南",
                            "list": null
                        }
                    ]
                },
                {
                    "value": "status",
                    "text": "状态",
                    "list": [
                        {
                            "value": "1",
                            "text": "可用",
                            "list": null
                        },
                        {
                            "value": "2",
                            "text": "禁用",
                            "list": null
                        }
                    ]
                }
            ]
               """;
    String res = gen(data);
    System.out.println(res);
}
测试

调用fun2方法,将生成的代码拷贝到页面中,注意:需要导入JQuery,比如:

DOCTYPE html>


    
    Title
    




    
        编号
        省名
        地区
        状态
    
    
    
        东北
        西北
        西南
        华东
        华西
        华南
    
    
        可用
        禁用
    
    开始时间: 
    结束时间:
    




    $("#queryText").attr("name", "queryValue");
    $("#querySelect").change(function () {
        let val = $("#querySelect option:selected").val();
        if ('areaQuerySelect'.includes(val)) {
            $("#areaQuerySelect").show();
            $("#areaQuerySelect").attr("name", "queryValue");
            $("#queryText").hide();
            $("#queryText").removeAttr("name");
            $("#statusQuerySelect").hide();
            $("#statusQuerySelect").removeAttr("name");
        } else if ('statusQuerySelect'.includes(val)) {
            $("#statusQuerySelect").show();
            $("#statusQuerySelect").attr("name", "queryValue");
            $("#queryText").hide();
            $("#queryText").removeAttr("name");
            $("#areaQuerySelect").hide();
            $("#areaQuerySelect").removeAttr("name");
        } else {
            $("#queryText").show();
            $("#queryText").attr("name", "queryValue");
            $("#areaQuerySelect").hide();
            $("#areaQuerySelect").removeAttr("name");
            $("#statusQuerySelect").hide();
            $("#statusQuerySelect").removeAttr("name");
        }
    })




关注
打赏
1665409997
查看更多评论
立即登录/注册

微信扫码登录

0.0547s