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


Posted in Javascript onMay 09, 2019

bootstrap-table简介

1.1、bootstrap table简介及特征:

         Bootstrap table是国人开发的一款基于 Bootstrap 的 jQuery 表格插件,通过简单的设置,就可以拥有强大的单选、多选、排序、分页,以及编辑、导出、过滤(扩展)等等的功能。目前在github上已经有2600多个Star,可见其受欢迎程度。其官方网站地址 为:http://bootstrap-table.wenzhixin.net.cn/。里面可以下载使用所需的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组件的方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Javascript 相关文章推荐
jQuery 动态酷效果实现总结
Dec 27 Javascript
js+css 实现遮罩居中弹出层(随浏览器窗口滚动条滚动)
Dec 11 Javascript
jquery仿搜索自动联想功能代码
May 23 Javascript
jQuery滚动条插件nanoscroller使用指南
Apr 21 Javascript
JS实现网页游戏中滑块响应鼠标点击移动效果
Oct 19 Javascript
jquery操作select元素和option的实例代码
Feb 03 Javascript
浅析Javascript ES6新增值比较函数Object.is
Aug 24 Javascript
javascript 网页进度条简单实例
Feb 22 Javascript
JavaScript 用fetch 实现异步下载文件功能
Jul 21 Javascript
原生js的ajax和解决跨域的jsonp(实例讲解)
Oct 16 Javascript
RequireJS用法简单示例
Aug 20 Javascript
vue 解决遍历对象显示的顺序不对问题
Nov 07 Javascript
详解es6新增数组方法简便了哪些操作
May 09 #Javascript
Vue函数式组件-你值得拥有
May 09 #Javascript
12个提高JavaScript技能的概念(小结)
May 09 #Javascript
Vue 处理表单input单行文本框的实例代码
May 09 #Javascript
使用vuex解决刷新页面state数据消失的问题记录
May 08 #Javascript
微信小程序网络层封装的实现(promise, 登录锁)
May 08 #Javascript
详解微信小程序的不同函数调用的几种方法
May 08 #Javascript
You might like
转生史莱姆:萌王第一次撸串开心到飞起,哥布塔撸串却神似界王神
2018/11/30 日漫
用 Composer构建自己的 PHP 框架之使用 ORM
2014/10/30 PHP
基于PHP的加载类操作以及其他两种魔术方法的应用实例
2017/08/28 PHP
IE autocomplete internet explorer's autocomplete
2007/06/30 Javascript
JQUERY实现左侧TIPS滑进滑出效果示例
2013/06/27 Javascript
javascript使用正则表达式实现去掉空格之后的字符
2015/02/15 Javascript
jQuery实现带滚动导航效果的全屏滚动相册实例
2015/06/19 Javascript
AngularJs 60分钟入门基础教程
2016/04/03 Javascript
微信小程序 网络API发起请求详解
2016/11/09 Javascript
Angular实现跨域(搜索框的下拉列表)
2017/02/16 Javascript
js实现一个简单的数字时钟效果
2017/03/29 Javascript
JavaScript全屏和退出全屏事件总结(附代码)
2017/08/17 Javascript
解决Jquery下拉框数据动态获取的问题
2018/01/25 jQuery
详解vue项目中如何引入全局sass/less变量、function、mixin
2018/06/02 Javascript
vue路由事件beforeRouteLeave及组件内定时器的清除方法
2018/09/29 Javascript
基于vue通用表单解决方案的思考与分析
2019/03/16 Javascript
ES6 let和const定义变量与常量的应用实例分析
2019/06/27 Javascript
使用JavaScrip模拟实现仿京东搜索框功能
2019/10/16 Javascript
高效jQuery选择器的5个技巧实例分析
2019/11/26 jQuery
JavaScript设计模式--简单工厂模式定义与应用案例详解
2020/05/23 Javascript
关于javascript中的promise的用法和注意事项(推荐)
2021/01/15 Javascript
解决python中遇到字典里key值为None的情况,取不出来的问题
2018/10/17 Python
python3.6利用pyinstall打包py为exe的操作实例
2018/10/31 Python
python解释器spython使用及原理解析
2019/08/24 Python
PyTorch里面的torch.nn.Parameter()详解
2020/01/03 Python
Python性能测试工具Locust安装及使用
2020/12/01 Python
基于pycharm 项目和项目文件命名规则的介绍
2021/01/15 Python
CSS3 Flex 弹性布局实例代码详解
2018/11/01 HTML / CSS
Fanatics法国官网:美国体育电商
2019/08/27 全球购物
北大研究生linux应用求职信
2013/10/29 职场文书
国贸专业个人求职信分享
2013/12/04 职场文书
优秀本科毕业生自荐信
2014/07/04 职场文书
党员对照检查材料
2014/09/22 职场文书
个人事迹材料怎么写
2014/12/30 职场文书
硕士学位申请报告
2015/05/15 职场文书
MySQL事务的隔离级别详情
2022/07/15 MySQL