tmtTable设计说明文档
文件链接:tmt-table.js
BOSS后台项目用到最多的就是列表页,所以把列表页做成通用组件,可以大大提高开发效率。
因为列表可能有不同的样式,所以在实例化组件时可以传值控制样式,用这种方式:

组件内部接收这个参数对象,判断使用哪套样式,如果不传参,则使用默认的'default'样式。
本组件有3个属性值,分别为:
props: {
//表格的基本参数和设置
options: { required: true, default: {} },
//返回当前点击行的所有原始数据
rowdata: { required: false, default: {} },
//当前的页数
pagination: { required: false, default: 0 }
},
组件的data属性有三个变量:
data() {
return {
//分页总数
pageNum: 0,
//当前页数
currentPage: 0,
//样式加载结束才显示HTML页面,防止样式混乱
isShow: false
}
},
当组件内部代码全部编译完成时,把依赖的bootstrap引入到页面中,并在css加载完毕后显示页面:
ready() {
var __this = this;
//插入依赖的CSS文件
var link = $('<link rel="stylesheet" type="text/css" href="http://h5cdn.wisdomtmt.com/common/util/tmt-table/tmt-table-theme/bootstrap.min.css"/>');
$('head').append(link);
//当CSS加载完成才显示组件
var judgeCssLoad = setInterval(function() {
if (link[0].sheet) {
__this.isShow = true; clearInterval(judgeCssLoad);
}
}, 30)
//处理父组件传入的数据
__this.loadData();
}
组件内部定义了两个方法:
changePage和loadData;
changePage(currentPage) {
//父组件和pagination是双向绑定,所以改变pagination的值,父组件可以接收到
this.$set("pagination", currentPage);
this.currentPage = currentPage;
}
loadData() {
var __this = this;
//判断外部的data数据是否传入,进行分页初始化和绑定事件
var tableData = __this.options.data;
//因为父组件传入的数据有延迟,所以设定200ms的延迟执行
setTimeout(function() {
//拿到父组件传入的数据才执行分页和绑定事件
if (tableData) {
//初始化分页
__this.pageNum = Math.ceil(tableData.total_num / tableData.limit);
//绑定事件,通过jQuery的on方法进行绑定
if (__this.options.fn) {
var fn = __this.options.fn,
keys = Object.keys(fn);
for (let i = 0; i < keys.length; i++) {
var tempArr = keys[i].split(' ');
//先解绑再绑定,防止重复绑定
$(tempArr[0]).unbind();
$(tempArr[0]).on(tempArr[1], function() {
setTimeout(fn[keys[i]], 50);
});
}
}
} else {
//如果没有拿到数据,就再执行一遍
__this.loadData();
}
}, 200); }
组件的watch属性监听了两个变量:
options和pagination:
watch: {
//监听当options发生变化时,重载数据
'options': {
handler: function(val, oldVal) {
this.loadData();
},
deep: true
},
//当前页发生改变时,通知父组件
'pagination': {
handler: function(val, oldVal) {
this.currentPage = val;
}
}
}
最后把tmtTable组件注册到Vue的全局变量上,并在控制台通知组件加载完毕:
Vue.component('tmtTable', tmt_table);
console.log('tmtTable component ready!');

tmtTable设计说明文档的更多相关文章
- PowerDesigner中导出设计说明文档
点击下图的新建按钮,新建一个导出内容的模板 模板设计界面分为2栏,左边是可选的模板内容,右侧是模板,双击左侧条目会添加到右侧,最后生成的文件中就有此项内容. 已经添加到右侧的内容可以编辑,双击右侧的条 ...
- Net 通用权限管理系统源码 带数据库设计文档,部署说明文档
Net 通用权限管理系统源码 带数据库设计文档,部署说明文档 包括数据库设计文档部署安装文档源码数据库文件 下载地址:http://www.mallhd.com/archives/1389
- SWFUpload 2.5.0版 官方说明文档 中文翻译版
原文地址:http://www.cnblogs.com/youring2/archive/2012/07/13/2590010.html#setFileUploadLimit SWFUpload v2 ...
- ICE中间件说明文档
ICE中间件说明文档 1 ICE中间件简介 2 平台核心功能 2.1 接口描述语言(Slice) 2.2 ICE运行时 2.2.1 ...
- Eclipse用法和技巧四:生成说明文档1
写代码经常要添加注释的,java代码的注释也可以分为两种.单行注释以“//”作为开头就可以.段落注释在第一行开头添加“/*”,在最后一行结尾添加“*/"即可.这里介绍一种添加注释的方法,其注 ...
- vnpy官网说明文档网址
接触VNPY一年多,一直对作者设计原理和思想有所困惑.发一篇vnpy官网的说明文档,便于以后理解项目代码. http://www.vnpy.org/archives.html
- 为ASP.NET WEB API生成人性化说明文档
一.为什么要生成说明文档 我们大家都知道,自己写的API要供他人调用,就需要用文字的方式将调用方法和注意事项等写成一个文档以更好的展示我们设计时的想法和思路,便于调用者更加高效的使用我们的API. 当 ...
- INSPIRED启示录 读书笔记 - 第18章 重新定义产品说明文档
理想的产品说明文档 1.产品说明文档应该完整地描述用户体验——不只是用户需求,还包括交互设计和视觉设计.用户需求和用户体验是密不可分的 2.产品说明文档必须准确地描述软件的行为 3.产品说明文档必须以 ...
- ES SQL使用说明文档
ES SQL使用说明文档 一.Elasticsearch术语介绍 l 接近实时(NRT): Elasticsearch 是一个接近实时的搜索平台.这意味着,从索引一个文档直到这个文档能够被搜索到有一 ...
随机推荐
- SQL Cookbook
1. 利用LAG OVER抑制结果集中的重复值 原始结果如下: SQL> select deptno,ename from emp order by deptno; DEPTNO ENAME ...
- 2014 -> 2015
2014年初在公司的发展不太顺利, 发现比好多小伙伴的发展速度都要慢了,钱不多,职位也不高,做的事情成长也不快. 为了职业发展考虑,年中就一直想换一个好一点的工作机会, 年中拿了好几个offer, 有 ...
- 设为首页 和 收藏本站js代码 兼容IE,chrome,ff
设为首页 和 收藏本站js代码 兼容IE,chrome,ff //设为首页 function SetHome(obj,url){ try{ obj.style.behavior='url(#defau ...
- Nutch源码阅读进程4---parseSegment
前面依次看了nutch的准备工作inject和generate部分,抓取的fetch部分的代码,趁热打铁,我们下面来一睹parse即页面解析部分的代码,这块代码主要是集中在ParseSegment类里 ...
- Android Fragment完全解析
转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/8881711 我们都知道,Android上的界面展示都是通过Activity实现的, ...
- 自绘制HT For Web ComboBox下拉框组件
传统的HTML5的下拉框select只能实现简单的文字下拉列表,而HTforWeb通用组件中ComboBox不仅能够实现传统HTML5下拉框效果,而且可以在文本框和下拉列表中添加自定义的小图标,让整个 ...
- rtf格式的一些说明,转载的
RTF是Rich TextFormat的缩写,意即多文本格式.这是一种类似DOC格式(Word文档)的文件,有很好的兼容性,使用Windows"附件"中的"写字板&quo ...
- 从C#到Objective-C,循序渐进学习苹果开发(2)--Objective-C和C#的差异
本随笔系列主要介绍从一个Windows平台从事C#开发到Mac平台开发苹果开发的一系列感想和体验历程,本系列文章是在起步阶段逐步积累的,希望带给大家更好,更真实的转换历程体验. 在上篇<从C#到 ...
- Mysql日期统计函数简介
NOW() 返回当前的日期和时间 CURDATE() 返回当前的日期 CURTIME() 返回当前的时间 DATE() 提取日期或日期/时间表达式的日期部分 EXTRACT() 返回日期/时间按的单独 ...
- C#使用读写锁三行代码简单解决多线程并发写入文件时线程同步的问题
(补充:初始化FileStream时使用包含文件共享属性(System.IO.FileShare)的构造函数比使用自定义线程锁更为安全和高效,更多内容可点击参阅) 在开发程序的过程中,难免少不了写入错 ...