bootstrap-table(一)树状表(tree-grid)

因为项目有一个接口是多级组织架构的,所以需求是使用树状图表展示,然后表格控件用的bootstrap-table,通过官网的扩展地址找到了tree-grid 这个功能。

扩展地址:bootstrap-table扩展 建议经常使用这个控件的人fork

使用方法官网有,但是我这里还是贴一下,有一点提示大家:关系idpid 是number数据类型,如果后台给的是string类型,记得转换一下,不然是不能成功的,我就吃了这个亏,虽然也是我自个没看清

道个歉,我自己的不严谨,耽误了小伙伴们的时间!!!

不过这个可以通过修改源码达到目的bootstrap-table-treegrid,修改为:

onCheckRoot: function (row, data) {
    var that = this;
    if (row[that.options.parentIdField] == '0') {
        return true;
    } else {
        return false;
    }
}

引用的各类文件我就不贴了,大家记得参考一下官网扩展代码:tree-grid

  var $table = $('#table');
  $(function() {
    $table.bootstrapTable({
      url: '../json/treegrid.json',
      height: $(window).height(),
      striped: true,
      sidePagination: 'server',
      //这里是标志id  和 parentIdField有关系
      idField: 'id',
      columns: [
        {
          field: 'ck',
          checkbox: true
        },
        {
          field: 'name',
          title: '名称'
        },
        {
          field: 'status',
          title: '状态',
          sortable: true,
          align: 'center',
          formatter: 'statusFormatter'
        },
        {
          field: 'permissionValue',
          title: '权限值'
        }
      ],
      //最主要的就是下面  定义哪一列作为展开项  定义父级标志 这里是pid
      //定义的列一定是要在表格中展现的  换言之就是上方有这个列 不然报错
      treeShowField: 'name',
      
      parentIdField: 'pid',
      onLoadSuccess: function(data) {
        $table.treegrid({
          initialState: 'collapsed',
          treeColumn: 1,
          expanderExpandedClass: 'glyphicon glyphicon-minus',
          expanderCollapsedClass: 'glyphicon glyphicon-plus',
          onChange: function() {
            $table.bootstrapTable('resetWidth');
          }
        });
      }
    });
  });
    // 格式化类型
  function typeFormatter(value, row, index) {
    if (value === 'menu') {
      return '菜单';
    }
    if (value === 'button') {
      return '按钮';
    }
    if (value === 'api') {
      return '接口';
    }
    return '-';
  }

  // 格式化状态
  function statusFormatter(value, row, index) {
    if (value === 1) {
      return '<span class="label label-success">正常</span>';
    } else {
      return '<span class="label label-default">锁定</span>';
    }
  }

下面是效果图,我个人觉得还是很OK的:

效果图

评论 39
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值