bootstrap 三级联动&四级联动

              bootstrap 三级联动&四级联动

 

        三级联动在日常开发中经常用到,现在自己亲自作了一个,四级联动的效果,前端后端代码如下。

前端代码如下:

<!DOCTYPE html>
<html lang="zh" xmlns:th="http://www.thymeleaf.org">
<meta charset="utf-8">
<head th:include="include :: header"></head>
<link th:href="@{/ajax/libs/jquery-layout/jquery.layout-latest.css}" rel="stylesheet"/>
<link th:href="@{/ajax/libs/jquery-ztree/3.5/css/metro/zTreeStyle.css}" rel="stylesheet"/>

<body class="gray-bg">

<div class="container-div ui-layout-center">
    <div class="row">
        <div class="col-sm-12 search-collapse">
            <form id="user-form">
                <input type="hidden" id="cityStateCode" name="params[cityStateCode]" value="">
                <input type="hidden" id="countyCode" name="params[countyCode]">
                <input type="hidden" id="applyHospitalCode" name="params[applyHospitalCode]">
                <div class="select-list">
                    <ul>
                        <!--省市县三级联动-开始-->
                        <li style="margin-top: 12px;margin-right: 0px;">申请方:</li>
                        <li>
                            <select name="input_province" id="input_province" class="form-control" style="width: 120px;">
                                <option value="">---请选择---</option>
                                <option value="520000">贵州省</option>
                            </select>
                        </li>
                        <!--市级-->
                        <li>
                            <select name="input_city" id="input_city" class="form-control" style="width: 120px;">
                                <option selected="selected" value="">---请选择---</option>
                            </select>
                        </li>
                        <!--区县-->
                        <li>
                            <select name="input_area" id="input_area" class="form-control" style="width: 120px;">
                                <option selected="selected" value="">---请选择---</option>
                            </select>
                        </li>
                        <!--机构-->
                        <li>
                            <select name="input_hospital" id="input_hospital" class="form-control" style="width: 200px;">
                                <option selected="selected" value="">---请选择---</option>
                            </select>
                        </li>
                        <!--省市县三级联动-结束-->

                        <li>
                            患者姓名:<input type="text" name="patiName" style="width: 120px;"/>
                        </li>
                        <li class="select-time">
                            <label>统计时间: </label>
                            <input type="text" class="time-input" id="startTime" placeholder="开始时间"
                                   name="params[startTime]"/>
                            <span>-</span>
                            <input type="text" class="time-input" id="endTime" placeholder="结束时间"
                                   name="params[endTime]"/>
                        </li>
                        <li>
                            <a class="btn btn-primary btn-rounded btn-sm" onclick="$.table.search()"><i
                                    class="fa fa-search"></i>&nbsp;搜索</a>
                            <a id="resetForm" class="btn btn-warning btn-rounded btn-sm" onclick="$.form.reset()"><i
                                    class="fa fa-refresh"></i>&nbsp;重置</a>
                        </li>
                    </ul>
                </div>
            </form>
        </div>

        <div class="btn-group-sm hidden-xs" id="toolbar">
            <a class="btn btn-warning" onclick="$.table.exportExcel()">
                <i class="fa fa-download"></i> 导出
            </a>
        </div>

        <div class="col-sm-12 select-table table-striped">
            <table id="bootstrap-table" data-mobile-responsive="true"></table>
        </div>
    </div>
</div>

<div th:include="include :: footer"></div>
<script th:src="@{/ajax/libs/jquery-layout/jquery.layout-latest.js}"></script>
<script th:src="@{/ajax/libs/jquery-ztree/3.5/js/jquery.ztree.all-3.5.js}"></script>
<script th:inline="javascript">

    var prefix = ctx + "biz/consultation";

    $(function () {
        var panehHidden = false;
        if ($(this).width() < 769) {
            panehHidden = true;
        }
        $('body').layout({initClosed: panehHidden, west__size: 185});

        queryApplyConsList();
    });

    function queryApplyConsList() {
        clearHiddenInfo(1);
        var options = {
            url: prefix + "/consultationApplication",
            createUrl: prefix + "/add",
            updateUrl: prefix + "/edit/{id}",
            removeUrl: prefix + "/remove",
            exportUrl: prefix + "/export",
            importUrl: prefix + "/importData",
            importTemplateUrl: prefix + "/importTemplate",
            sortName: "applyTime",
            sortOrder: "desc",
            modalName: "用户",
            columns: [
                /*{
                checkbox: true
                },*/
                {
                    field: 'applyTime',
                    title: '申请时间',
                    sortable: true,
                    width: '6%'
                },
                {
                    field: 'primStatus',
                    title: '状态',
                    width: '4%'
                },
                {
                    field: 'primNo',
                    title: '会诊编号',
                    width: '3%'
                },
                {
                    field: 'primEmergency',
                    title: '会诊类型',
                    width: '2%'
                },
                {
                    field: 'primInteracyive',
                    title: '会诊方式',
                    width: '1%'
                },
                {
                    field: 'patiName',
                    title: '患者姓名',
                    width: '2%'
                },
                {
                    field: 'patiGender',
                    title: '性别',
                    width: '1%'
                },
                {
                    field: 'patiIdentity',
                    title: '身份证号',
                    width: '6%'
                },
                {
                    field: 'cityStateName',
                    title: '申请所属市',
                    width: '3%'
                },
                {
                    field: 'countyName',
                    title: '申请所属区县',
                    width: '3%'
                },
                {
                    field: 'applyHospitalName',
                    title: '申请机构',
                    width: '6%'
                },
                {
                    field: 'applyDepartmentName',
                    title: '申请科室',
                    width: '6%'
                },
                {
                    field: 'applySubdeptName',
                    title: '申请子科室',
                    width: '6%'
                },
                {
                    field: 'applyUserName',
                    title: '申请医生',
                    width: '5%'
                },
                {
                    field: 'primMdt',
                    title: '是否多学科',
                    width: '2%'
                },
                {
                    field: 'consHospitalName',
                    title: '会诊机构',
                    width: '6%'
                },
                {
                    field: 'consDepartmentName',
                    title: '会诊科室',
                    width: '6%'
                },
                {
                    field: 'consSubdeptName',
                    title: '会诊子科室',
                    width: '6%'
                },
                {
                    field: 'consUserName',
                    title: '会诊专家',
                    width: '5%'
                },
                {
                    field: 'professional',
                    title: '专家职称',
                    width: '1%'
                },
                {
                    field: 'submitTime',
                    title: '会诊时间',
                    sortable: true,
                    width: '6%'
                },
                {
                    title: '操作',
                    align: 'center',
                    formatter: function (value, row, index) {
                        var actions = [];
                        actions.push('<a href="#" onclick="$.operate.editTab(\'' + row.primId + '\')"><i class="fa fa-edit"></i>查看</a> ');
                        return actions.join('');
                    }, width: '5%'
                }]
        };

        $.table.init(options);
    }


    /*三级联动省级节点-开始*/
    $("#input_province").change(function () {
        //清空隐藏域信息
        clearHiddenInfo(1);
        //每次切换都要清空市州下拉数据
        $("#input_city").find("option").remove();
        $("#input_city").append("<option value=''>---请选择---</option>>")
        //每次切换都要清空区县下拉数据
        $("#input_area").find("option").remove();
        $("#input_area").append("<option value=''>---请选择---</option>>")
        //每次切换都要清空机构下拉数据
        $("#input_hospital").find("option").remove();
        $("#input_hospital").append("<option value=''>---请选择---</option>>")
        var str = "";
        var formdata = new FormData();
        var proviceCode = $("#input_province option:selected").val();

        if(proviceCode == null || proviceCode ==''){
            return;
        }
        formdata.append("provinceCode", proviceCode);
        $.ajax({
            url: ctx + "biz/consultation/queryCityList",
            data: formdata,
            type: "post",
            processData: false,
            contentType: false,
            dataType: "json",
            success: function (result) {
                $.each(result,function(i,item){
                    str += "<option value=" + item.dictionarykey + ">" + item.dictionaryvalue + "</option>";
                })
                //将数据添加到市州下拉框里
                $("#input_city").append(str);
            }
        })
    });
    /*三级联动省级节点-结束*/

    /*三级联动市州级节点-开始*/
    $("#input_city").change(function () {
        //清空隐藏域信息
        clearHiddenInfo(2);
        //每次切换都要清空区县下拉数据
        $("#input_area").find("option").remove();
        $("#input_area").append("<option value=''>---请选择---</option>>")
        //每次切换都要清空机构下拉数据
        $("#input_hospital").find("option").remove();
        $("#input_hospital").append("<option value=''>---请选择---</option>>")
        var str = "";
        var formdata = new FormData();
        var cityCode = $("#input_city option:selected").val();

        //给隐藏域市州code赋值
        $("#cityStateCode").val(cityCode);

        if(cityCode == null || cityCode ==''){
            return;
        }
        formdata.append("cityCode", cityCode);
        $.ajax({
            url: ctx + "biz/consultation/queryAreaList",
            data: formdata,
            type: "post",
            processData: false,
            contentType: false,
            dataType: "json",
            success: function (result) {
                $.each(result,function(i,item){
                    str += "<option value=" + item.dictionarykey + ">" + item.dictionaryvalue + "</option>";
                })
                //将数据添加到区县下拉框里
                $("#input_area").append(str);
            }
        })
    });
    /*三级联动市州级节点-结束*/

    /*机构信息联动-开始*/
    $("#input_area").change(function () {
        //清空隐藏域信息
        clearHiddenInfo(3);
        //每次切换都要清空机构下拉数据
        $("#input_hospital").find("option").remove();
        $("#input_hospital").append("<option value=''>---请选择---</option>>")
        var str = "";
        var formdata = new FormData();
        var areaCode = $("#input_area option:selected").val();

        //给隐藏域区县code赋值
        $("#countyCode").val(areaCode);

        if(areaCode == null || areaCode ==''){
            return;
        }
        formdata.append("areaCode", areaCode);
        $.ajax({
            url: ctx + "biz/consultation/queryHospitalList",
            data: formdata,
            type: "post",
            processData: false,
            contentType: false,
            dataType: "json",
            success: function (result) {
                $.each(result,function(i,item){
                    str += "<option value=" + item.dictionarykey + ">" + item.dictionaryvalue + "</option>";
                })
                //将数据添加到机构下拉框里
                $("#input_hospital").append(str);
            }
        })
    });
    /*机构信息联动-结束*/

    /*机构ochange事件赋值机构编码*/
    $("#input_hospital").change(function () {
        //清空隐藏域信息
        //clearHiddenInfo(3);
        var hospitalCode = $("#input_hospital option:selected").val();
        //给隐藏域区县code赋值
        $("#applyHospitalCode").val(hospitalCode);
    });

    // 重置:清空缓存域省、市、区县、机构信息
    $("#resetForm").click(function () {
        clearHiddenInfo(1);
    });

    /**
     * 清空隐藏域函数
     * 1:省事件操作;2:市级事件操作;3:区县事件操作
     * @param type
     */
    function clearHiddenInfo(type) {
        if(type == 1){
            $("#cityStateCode").val(null);
            $("#countyCode").val(null);
            $("#applyHospitalCode").val(null);
        }
        if(type == 2){
            $("#countyCode").val(null);
            $("#applyHospitalCode").val(null);
        }
        if(type == 3){
            $("#applyHospitalCode").val(null);
        }

    }


</script>
</body>
<form id="importForm" enctype="multipart/form-data" class="mt20 mb10" style="display: none;">
    <div class="col-xs-offset-1">
        <input type="file" id="file" name="file"/>
        <div class="mt10 pt5">
            <input type="checkbox" id="updateSupport" name="updateSupport" title="如果登录账户已经存在,更新这条数据。"> 是否更新已经存在的用户数据
            &nbsp; <a onclick="$.table.importTemplate()" class="btn btn-default btn-xs"><i
                class="fa fa-file-excel-o"></i> 下载模板</a>
        </div>
        <font color="red" class="pull-left mt10">
            提示:仅允许导入“xls”或“xlsx”格式文件!
        </font>
    </div>
</form>
</html>

后端代码如下:

/**
     * 根据省级code获取市州数据列表.
     *
     * @return
     */
    @PostMapping("/queryCityList")
    @ResponseBody
    public List<OrgInfo> queryAllCityList(@RequestParam("provinceCode") String provinceCode) {
        OrgInfoVo vo = new OrgInfoVo();
        vo.setProvinceCode(provinceCode);
        List<OrgInfo> orgInfoList = bizDetailsService.selectAllCityList(vo);
        return orgInfoList; //AjaxResult.success();
    }

    /**
     * 根据市州code获取区县数据列表.
     *
     * @param cityCode
     * @return
     */
    @PostMapping("/queryAreaList")
    @ResponseBody
    public List<OrgInfo> queryAreaList(@RequestParam("cityCode") String cityCode) {
        OrgInfoVo vo = new OrgInfoVo();
        vo.setCityCode(cityCode);
        List<OrgInfo> orgInfoList = bizDetailsService.selectAllAreaList(vo);
        return orgInfoList;
    }

    @PostMapping("/queryHospitalList")
    @ResponseBody
    public List<OrgInfo> queryHospitalList(@RequestParam("areaCode") String areaCode) {
        OrgInfoVo vo = new OrgInfoVo();
        vo.setAreaCode(areaCode);
        List<OrgInfo> orgInfoList = bizDetailsService.selectAllHospitalList(vo);
        return orgInfoList;
    }

 

运行效果:

 

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值