欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

bootstrap-table formatter 使用vue组件的方法

程序员文章站 2022-06-21 08:52:01
bootstrap-table简介 •1.1、bootstrap table简介及特征:      &nb...

bootstrap-table简介

1.1、bootstrap table简介及特征:

         bootstrap table是国人开发的一款基于 bootstrap 的 jquery 表格插件,通过简单的设置,就可以拥有强大的单选、多选、排序、分页,以及编辑、导出、过滤(扩展)等等的功能。目前在github上已经有2600多个star,可见其受欢迎程度。其官方网站地址 为:。里面可以下载使用所需的js和css文件,以及参考文档和例子。

•支持 bootstrap 3 和 bootstrap 2
•自适应界面
•固定表头
•非常丰富的配置参数
•直接通过标签使用
•显示/隐藏列
•显示/隐藏表头
•通过 ajax 获取 json 格式的数据
•支持排序
•格式化表格
•支持单选或者多选
•强大的分页功能
•支持卡片视图
•支持多语言
•支持插件

下面通过实例代码给大家介绍bootstrap-table formatter 使用vue组件的方法,具体代码如下所示:

import { subject } from "rxjs";
import vue from "vue";
export const bteventhub = new subject();
const vuecomlist = [];
let vuecomid = 0;
bteventhub.debouncetime(10)
 .filter(() => vuecomlist.length > 0)
 .delay(10)
 .subscribe(function() {
  const len = vuecomlist.length - 1;
  for (let i = len; i >= 0; i--) {
   const item = vuecomlist[i];
   const dom = document.getelementbyid(item.name);
   if (dom != null) {
    new vue(item);
    vuecomlist.splice(i, 1);
   }
  }
  if (vuecomlist.length === 0) {
   vuecomid = 0;
  }
 });
export function btaddvuecom(obj: object) {
 const id = `_vue_com_${vuecomid++}`;
 vuecomlist.push({
  el: "#" + id,
  name: id,
  ...obj
 });
 settimeout(() => {
  bteventhub.next();
 }, 0);
 return id;
}
window["btaddvuecom"] = btaddvuecom;
function colformatter1(value, row) {
 const id = window.btaddvuecom({
  template: '<el-switch v-model="row.isshow"></el-switch>',
  data: function () {
   return {
    row
   }
  }
 });
 return `<div id="${id}"></div>`;
}

ps:vue 结合bootstrap table插件使用

bootstrap table插件可以很方便的搜索排序,方便快捷,下面是结合vue的完整的例子。

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>vue bootstrap table demo</title>
  <meta name="viewport" content="initial-scale=1, maximum-scale=1, user-scalable=no">
  <link rel="stylesheet" href="../bootstrap/css/bootstrap.min.css" rel="external nofollow" >
  <link rel="stylesheet" href="../plugins/bootstrap-table-develop/src/bootstrap-table.css" rel="external nofollow" >
</head>
<body class="">
  <div>
    <table class="table table-bordered table-striped" id="tabletest1">
    </table>
  </div>
  <script src="../jquery/jquery-2.1.4.min.js"></script>
  <script src="../dist/vue.js"></script>
  <script src="../plugins/bootstrap-table-develop/src/bootstrap-table.js"></script>
  <script src="../plugins/bootstrap-table-develop/src/locale/bootstrap-table-zh-cn.js"></script>
  <script>
  var app7 = new vue({
    el: '#tabletest1',
    data: {
      //message: [],
      message: [],
      columns: [{
          title: 'id',
          field: 'id'
        },
        {
          field: 'name',
          title: 'item name'
        }, {
          field: 'url',
          title: 'url'
        }, {
          field: 'alex',
          title: 'alex'
        }, {
          field: 'country',
          title: 'country'
        }
      ],
    },
    created() {
      //console.log(this.message)
      this.getdata();
      this.intervalgetdata();
      //console.log(this.message)
    },
    methods: {
      intervalgetdata() {
        setinterval(() => {
          //   $.get("selectbttable.php?action=init_data_list", data => {
          //   var data = json.parse(data);
          //   this.message = data;
          //   $('#tabletest1').bootstraptable('load', this.message);
          //   //console.log(json.parse(data))
          //   console.log("get data")
          // })
          this.getdata();
        }, 3000)
      },
      getdata() {
        //es6 箭头函数的写法
        //  $.get("selectbttable.php?action=init_data_list", data => {
        //   var data = json.parse(data);
        //   this.message = data;
        //   $('#tabletest1').bootstraptable('load', this.message);
        //   console.log("init data")
        // })
        var that = this;
        $.get("selectbttable.php?action=init_data_list", function(data) {
          var data = json.parse(data);
          that.message = data;
          $('#tabletest1').bootstraptable('load', that.message);
          console.log("init data")
        })
      }
    },
    mounted() {
      console.log(this.message + "mounted")
      $('#tabletest1').bootstraptable({ columns: this.columns, height: 500, search: true });
    }
  })
  </script>
</body>
</html>

     (adsbygoogle = window.adsbygoogle || []).push({}); 

总结

以上所述是小编给大家介绍的bootstrap-table formatter 使用vue组件的方法,希望对大家有所帮助