加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

bootstrap treeview 树形数据生成

发布时间:2020-12-17 20:46:53 所属栏目:安全 来源:网络整理
导读:这个问题还是挺经典的,后台只是负责查出所有的数据,前台js来处理数据展示给treeview;show you the code below:script $(function () { getData(); }) var displaySeach = function(){ if($("#search-page .x_content").is(":hidden")) $(‘#search-page .x
这个问题还是挺经典的,后台只是负责查出所有的数据,前台js来处理数据展示给treeview;show you the code below:<script>    $(function () {        getData();    })    var displaySeach = function(){        if($("#search-page .x_content").is(":hidden"))            $(‘#search-page .x_content‘).slideDown(300);        else            $(‘#search-page .x_content‘).slideUp(300);    }    function getTree() {        //节点上的数据遵循如下的格式:        var tree = [{            text: "场地列表",//节点显示的文本值   string            icon: "glyphicon glyphicon-play-circle",//节点上显示的图标,支持bootstrap的图标 string            selectedIcon: "glyphicon glyphicon-ok",//节点被选中时显示的图标     string            color: "#ff0000",//节点的前景色    string            backColor: "#1606ec",//节点的背景色    string            selectable: true,//标记节点是否可以选择。false表示节点应该作为扩展标题,不会触发选择事件。 string            state: { //描述节点的初始状态   Object                checked: true,//是否选中节点                /*disabled: true,*/ //是否禁用节点                expanded: true,//是否展开节点                selected: true //是否选中节点            }        }]        return tree;    }    function getData() {        $.ajax({            type: "GET",url: "/serverPoint/index",success: function (data) {                console.log("data",data);                for (var k = 0; k < data.length; k++) {                    data[k][‘text‘] = data[k][‘Name‘];                }                var tree = [{                    text: "场地列表",//节点显示的文本值   string                    icon: "glyphicon glyphicon-play-circle",//节点上显示的图标,支持bootstrap的图标 string                    selectedIcon: "glyphicon glyphicon-ok",//节点被选中时显示的图标     string                    color: "#ff0000",//节点的前景色    string                    backColor: "#1606ec",//节点的背景色    string                    selectable: true,//标记节点是否可以选择。false表示节点应该作为扩展标题,不会触发选择事件。 string                    state: { //描述节点的初始状态   Object                        checked: true,//是否选中节点                        /*disabled: true,*/ //是否禁用节点                        expanded: true,//是否展开节点                        selected: true //是否选中节点                    },nodes: toTree(data)                }]                $(‘#tree‘).treeview({                    data: tree,//节点数据                    showBorder: true,//是否在节点周围显示边框                    showCheckbox: true,//是否在节点上显示复选框                    showIcon: true,//是否显示节点图标                    highlightSelected: true,levels: 2,multiSelect: true,//是否可以同时选择多个节点                    showTags: true                });            },error: function () {                    $.pnotify({                        title: ‘失败提醒‘,text: ‘请求服务器失败‘,type: ‘error‘,nonblock: {                            nonblock: false                        },});            }        });    }    function toTree(data) {        // 删除 所有 children,以防止多次调用        data.forEach(function (item) {            delete item.nodes;        });        // 将数据存储为 以 id 为 KEY 的 map 索引数据列        var map = {};        data.forEach(function (item) {            map[item.ID] = item;        });//        console.log(map);        var val = [];        data.forEach(function (item) {            // 以当前遍历项,的pid,去map对象中找到索引的id            var parent = map[item.ParentID];            // 好绕啊,如果找到索引,那么说明此项不在顶级当中,那么需要把此项添加到,他对应的父级中            if (parent) {                (parent.nodes || (parent.nodes = [])).push(item);            } else {                //如果没有在map中找到对应的索引ID,那么直接把 当前的item添加到 val结果集中,作为顶级                val.push(item);            }        });        return val;    }    $(‘.place-choice‘).on(‘change‘,function () {        var cityNum = $(this).val();        console.log("cityNum:",cityNum);        addPlaceSelect($(this),cityNum);    });    var addPlaceSelect = function (obj,cityNum) {        console.log("addPlaceSelect....................");        obj.nextAll().remove();        $.ajax({            url: ‘/serverPoint/getChild/‘ + cityNum,type: ‘get‘,data: {},success: function (data) {                if (data) {                    if (data.length > 0) {                        console.log(‘data.length > 0‘);                        var select = $(‘<select></select>‘);                        select.addClass(‘select2_single form-control place-choice‘).css(‘margin-right‘,‘5px‘).css(‘width‘,‘100px‘).css(‘float‘,‘left‘);                        $(‘.place-choice-td‘).append(select);                        select.on(‘change‘,function () {                            var cityNum = $(this).val();                            addPlaceSelect($(this),cityNum);                        });                        var str = ‘<option value="">请选择</option>‘;                        select.append(str);                        for (var i = 0; i < data.length; i++) {                            var str = ‘<option value="‘ + data[i][‘ID‘] + ‘">‘ + data[i][‘Name‘] + ‘</option>‘;                            select.append(str);                        }                    }                } else {                    $.pnotify({                        title: ‘失败提醒‘,text: ‘添加分类失败‘,});                }            },error: function () {                $.pnotify({                    title: ‘失败提醒‘,nonblock: {                        nonblock: false                    },});            }        });    }    function addNode(pid=null) {        var parentId=‘‘;        if (pid == -1) {            var text = $(‘#postition-name‘).val();            console.log(‘text:‘,text);            parentId = 0;            if (text == "" || text.length == 0) {                $.pnotify({                    title: ‘温馨提醒‘,text: ‘请先填写名称‘,});                return;            }        } else {            parentId = $(‘.place-choice-td select:last-child‘).val();            console.log(parentId);            var text = $(‘#sub-postition-name‘).val();            if (parentId == "" || parentId.length == 0) {                $.pnotify({                    title: ‘温馨提醒‘,text: ‘请先选择场景‘,});                return;            }            if (text == "" || text.length == 0) {                $.pnotify({                    title: ‘温馨提醒‘,});                return;            }        }        $.ajax({            url: ‘/serverPoint/add‘,type: ‘post‘,data: {                ‘parentId‘: parentId,‘name‘: text            },success: function (data) {                $.pnotify({                    title: ‘成功提醒‘,text: ‘添加成功‘,type: ‘success‘,});                getData();            },});            }        });    }    /* function getTree() {         //节点上的数据遵循如下的格式:         var tree = [{             text: "Node 1",//节点显示的文本值    string             icon: "glyphicon glyphicon-play-circle",//节点上显示的图标,支持bootstrap的图标    string             selectedIcon: "glyphicon glyphicon-ok",//节点被选中时显示的图标    string             color: "#ff0000",//节点的前景色       string             backColor: "#1606ec",//节点的背景色       string             href: "#http://www.baidu.com",//节点上的超链接             selectable: true,//标记节点是否可以选择。false表示节点应该作为扩展标题,不会触发选择事件。    string             state: { //描述节点的初始状态  Object                 checked: true,//是否选中节点                 /!*disabled: true,*!/ //是否禁用节点                 expanded: true,//是否展开节点                 selected: true //是否选中节点             },//tags: [‘标签信息1‘,‘标签信息2‘],//向节点的右侧添加附加信息(类似与boostrap的徽章)    Array of Strings             nodes: getData()         }]         return tree;     }*/    /*function getData(){        $.ajax({            type: "GET",success:function(data){                console.log(JSON.stringify(data));                return JSON.stringify(data);            },error:function() {            }        });    }*/</script>

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读