单选-三级级联

265 阅读1分钟

技术栈: vue + jquery

一级用ajax加载出来,点击一级的选项对应的二级出来,点击二级对应的选项三级出来. 然后根据拿到选择的值.

预览:

HTML:

<div id="app-1">
        <div id="app-search">
            <div>分类:</div>
            <div>
                <select v-show="isShowLevelSearch1" id="yy_search_classifyId_1" @change="searchLevel1($event)">
                    <option value="">请选择一级</option>
                    <option v-for="level in levels1" v-bind:value="level.id">{{ level.name }}
                    </option>
                </select>
            </div>
            <div>
                <select v-show="isShowLevelSearch2" id="yy_search_classifyId_2" @change="searchLevel2($event)">
                    <option value="">请选择二级</option>
                    <option v-for="level in levels2" v-bind:value="level.id">{{ level.name }}
                    </option>
                </select>
            </div>
            <div>
                <select v-show="isShowLevelSearch3" id="yy_search_classifyId_3" @change="searchLevel3($event)">
                    <option value="">请选择三级</option>
                    <option v-for="level in levels3" v-bind:value="level.id">{{ level.name }}
                    </option>
                </select>
            </div>
        </div>
        <button @click="selectValue()">选中</button>
    </div>

JS:

var baseURL = '${ctx.contextPath}';
        var app1 = new Vue({
            el: '#app-1',
            data: {
                levels1: [],
                levels2: [],
                levels3: [],
                isShowLevelSearch1: true,
                isShowLevelSearch2: false,
                isShowLevelSearch3: false
            },
            methods: {
                //搜索栏的分类三级
                searchLevel1: function (enent) {
                    //获取选择框的value值
                    // console.log(event.target.value)
                    var id = event.target.value;
                    this.isShowLevelSearch2 = true;
                    this.isShowLevelSearch3 = false;
                    $("#yy_search_classifyId_2").val('');
                    $("#yy_search_classifyId_3").val('');
                    //classifyLevel2(id) 点击拿到二级选项
                },
                searchLevel2: function (enent) {
                    // console.log(event.target.value)
                    $("#yy_search_classifyId_3").val('');
                    //获取选择框的value值
                    var id = event.target.value
                    this.isShowLevelSearch3 = true;
                    // classifyLevel3(id) 点击拿到三级选项
                },
                selectValue: function () {
                    //拿到选中的值
                    if ($('#yy_search_classifyId_3 option:selected').val() !== '') {
                        var classifyId = $('#yy_search_classifyId_3 option:selected').val()
                    } else if ($('#yy_search_classifyId_3 option:selected').val() === '' && $('#yy_search_classifyId_2 option:selected').val() !== '') {
                        var classifyId = $('#yy_search_classifyId_2 option:selected').val()
                    } else if ($('#yy_search_classifyId_3 option:selected').val() === '' && $('#yy_search_classifyId_2 option:selected').val() === '') {
                        var classifyId = $('#yy_search_classifyId_1 option:selected').val()
                    }
                    console.log(classifyId)
                }
            }
        });

        //级联一级
        function classifyLevel1(id) {
            $.ajax({
                url: baseURL + '/api/common/findAllLevel',
                type: 'GET',
                dataType: 'JSON',
                data: {
                    'classifyId': id
                }
            }).done(function (res) {
                app1.levels1 = res.data
            }).fail(function () {
                console.log('初始化失败! 请刷新重试!')
            })
        }
        //级联二级
        function classifyLevel2(id) {
            $.ajax({
                url: baseURL + '/api/common/findAllLevel',
                type: 'GET',
                dataType: 'JSON',
                data: {
                    'classifyId': id
                }
            }).done(function (res) {
                app1.levels2 = res.data
            }).fail(function () {
                console.log('初始化失败! 请刷新重试!')
            })
        }
        //级联三级
        function classifyLevel3(id) {
            $.ajax({
                url: baseURL + '/api/common/findAllLevel',
                type: 'GET',
                dataType: 'JSON',
                data: {
                    'classifyId': id
                }
            }).done(function (res) {
                app1.levels3 = res.data
            }).fail(function () {
                console.log('初始化失败! 请刷新重试!')
            })
        }

搞定了,下次copy.