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 相关文章推荐
js的闭包的一个示例说明
Nov 18 Javascript
js使浏览器窗口最大化实现代码(适用于IE)
Aug 07 Javascript
采用自执行的匿名函数解决for循环使用闭包的问题
Sep 11 Javascript
JavaScript里实用的原生API汇总
May 14 Javascript
JavaScript获取两个数组交集的方法
Jun 09 Javascript
jquery实现先淡出再折叠收起的动画效果
Aug 07 Javascript
Vue中父组件向子组件通信的方法
Jul 11 Javascript
js解决软键盘遮挡输入框的问题分享
Dec 19 Javascript
vuejs中监听窗口关闭和窗口刷新事件的方法
Sep 21 Javascript
layui字体图标 loading图标静止不旋转的解决方法
Sep 23 Javascript
微信小程序分享小程序码的生成(带参数)以及参数的获取
Mar 25 Javascript
如何通过vscode运行调试javascript代码
Jul 24 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
截获网站title标签之家内容的例子
2006/10/09 PHP
PHP图片等比例缩放生成缩略图函数分享
2014/06/10 PHP
php实现以只读方式打开文件的方法
2015/03/16 PHP
php 生成Tab键或逗号分隔的CSV
2016/09/24 PHP
PHP获取日期对应星期、一周日期、星期开始与结束日期的方法
2018/06/22 PHP
一个关于javascript匿名函数的问题分析
2012/03/30 Javascript
导入extjs、jquery 文件时$使用冲突问题解决方法
2014/01/14 Javascript
用简洁的jQuery方法toggleClass实现隔行换色
2014/10/22 Javascript
JS显示下拉列表框内全部元素的方法
2015/03/31 Javascript
jQuery实现带有洗牌效果的动画分页实例
2015/08/31 Javascript
分步解析JavaScript实现tab选项卡自动切换功能
2016/01/25 Javascript
谈谈因Vue.js引发关于getter和setter的思考
2016/12/02 Javascript
JavaScript实现带有子菜单和控件的slider轮播图效果
2017/11/01 Javascript
JavaScript实现的贝塞尔曲线算法简单示例
2018/01/30 Javascript
利用jquery和BootStrap实现动态滚动条效果
2018/12/03 jQuery
layer.js之回调销毁对话框的例子
2019/09/11 Javascript
js验证密码强度解析
2020/03/18 Javascript
简洁的十分钟Python入门教程
2015/04/03 Python
Python中内置的日志模块logging用法详解
2016/07/12 Python
基于Django的ModelForm组件(详解)
2017/12/07 Python
python使用jieba实现中文分词去停用词方法示例
2018/03/11 Python
TensorFlow命名空间和TensorBoard图节点实例
2020/01/23 Python
灵活运用CSS3特性绘制简易版围棋效果
2016/09/28 HTML / CSS
html5清空画布方法(三种)
2017/10/16 HTML / CSS
Tarte Cosmetics官网:美国最受欢迎的化妆品公司之一
2017/08/24 全球购物
科级干部群众路线教育实践活动个人对照检查材料
2014/09/19 职场文书
早读课迟到检讨书
2014/09/25 职场文书
2014年精神文明建设工作总结
2014/11/19 职场文书
2014年法务工作总结
2014/12/11 职场文书
团员个人总结
2015/02/26 职场文书
2015年纪念“卢沟桥事变”78周年活动方案
2015/05/06 职场文书
几款流行的HTML5 UI框架比较(小结)
2021/04/08 HTML / CSS
pytorch 使用半精度模型部署的操作
2021/05/24 Python
Spring Cache和EhCache实现缓存管理方式
2021/06/15 Java/Android
python自动化操作之动态验证码、滑动验证码的降噪和识别
2021/08/30 Python
分享python函数常见关键字
2022/04/26 Python