三级联动基于vue和layui

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <%@ include file="../../common/head.jsp" %>
    <script type="text/javascript" src="${webRoot}/static/layuiadmin/layui/layui.all.js"></script>
    <script type="text/javascript" src="${webRoot}/static/js/admin.js"></script>
</head>
<body>
<div class="layui-fluid">
    <div class="layui-row layui-col-space15">
        <div class="layui-tab layui-tab-brief">
            <form class="layui-form" style="margin-top: 10px" id="app">
                <div class="layui-form-item">
                    <label class="layui-form-label">省</label>
                    <div class="layui-input-inline" >
                        <select name="regionId" lay-filter="selectPro" lay-verify="required"  >
                            <option value="">请选择省</option>
                            <option v-for="pro in proList" :value="pro.regionId">{{pro.regionName}}</option>
                        </select>
                    </div>
                    <font color="red">*</font>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">市</label>
                    <div class="layui-inline" >
                        <select name="classId" lay-verify="required" lay-filter="selectCity">
                            <option value="">请选择市</option>
                            <option  v-for="city in cityList" :value="city.regionId">{{city.regionName}}</option>
                        </select>
                    </div>
                    <font color="red">*</font>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">区</label>
                    <div class="layui-inline" >
                        <select name="classId" lay-verify="required" >
                            <option value="">请选择区</option>
                            <option  v-for="dd in districtList" :value="dd.regionId">{{dd.regionName}}</option>
                        </select>
                    </div>
                    <font color="red">*</font>
                </div>
                <div class="layui-form-item">
                    <div class="layui-inline">
                        <label class="layui-form-label"></label>
                        <button class="layui-btn" lay-submit="" lay-filter="add">立即提交</button>
                    </div>
                </div>
            </form>
        </div>
    </div>
</div>
</body>
<script>
    var app = new Vue({
        el: '#app',
        data: {
            proList:[],
            cityList:[],
            districtList:[]
        }, created: function () {
            $.post("${webRoot}/schoolAdmin/classHeader/selectPro", function (res) {
                app.proList = res;
            })
        },updated:function () {
            form.render();
        }
    });
    //监听选择框年级是否发生变化 ,班级要随年级的变化儿变化
    form.on('select(selectPro)', function(data){
        if (data==null){
            app.cityList=[];
            app.districtList=[];
            return false;
        }
        $.post("${webRoot}/schoolAdmin/classHeader/selectCityByProId",{'proId':data.elem.value}, function (res) {
            app.districtList=[];
            if (res==null){
                app.districtList=[];
                return false;
            }
            app.cityList = res;
        });
    });
    form.on('select(selectCity)', function(data){
        $.post("${webRoot}/schoolAdmin/classHeader/selectUByCityId",{'cityId':data.elem.value}, function (res) {
            app.districtList = res;
        });
    });

</script>
</html>

@RequestMapping(value = "/selectPro",method = RequestMethod.POST)
    @ResponseBody
    public List<JxjlRegion> selectPro( HttpServletRequest request) throws CustomException {
        return  classHeaderService.selectPro();
    }
    @RequestMapping(value = "/selectCityByProId",method = RequestMethod.POST)
    @ResponseBody
    public List<JxjlRegion> selectCityByProId(int proId, HttpServletRequest request) throws CustomException {
        return  classHeaderService.selectCityByProId(proId);
    }
    @RequestMapping(value = "/selectUByCityId",method = RequestMethod.POST)
    @ResponseBody
    public List<JxjlRegion> selectUByProId(int cityId, HttpServletRequest request) throws CustomException {
        return  classHeaderService.selectUByProId(cityId);
    }


VueLayui是两个不同的前端框架,它们有一些区别和特点: 1. 架构和特性:Vue是一个渐进式的JavaScript框架,用于构建用户界面,它提供了数据驱动的组件化架构,具有双向数据绑定、虚拟DOM、组件化开发等特性。Layui是一个轻量级的前端UI框架,提供了一套简洁易用的UI组件和丰富的页面布局工具。 2. 生态系统:Vue拥有一个庞大的生态系统,包括插件、工具库、社区支持等,提供了丰富的扩展和解决方案。Layui相对于Vue而言,生态系统相对较小,主要集中在其自身提供的组件和工具上。 3. 学习曲线:Vue相对来说学习曲线较为平缓,官方文档详细且易于理解,同时也有很多社区资源和教程可供参考。Layui的学习曲线相对较陡,文档相对简洁,对于前端开发经验较少的人来说可能需要更多的学习和实践时间。 4. 社区和支持:Vue拥有一个活跃的社区,并得到了广泛应用和支持,有很多第三方库和插件可供选择。Layui的社区相对较小,可选择的第三方资源相对较少。 5. UI组件:Vue本身并没有提供完整的UI组件库,但有很多第三方UI组件库可供选择,如Element UI、Vuetify等。而Layui提供了一套完整的UI组件库,包含了常用的组件和样式。 综上所述,Vue更适合构建复杂的单页面应用和大型项目,拥有更庞大的生态系统和更广泛的社区支持;而Layui则适合快速搭建简单的页面和基础的UI需求,对于小型项目和对框架要求不高的项目来说更为合适。选择哪个框架取决于你的具体需求和项目规模。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值