/**
* 原始表格表头
*
* @file table表头插件
* @author Brian Li(lbxxlht@163.com)
*/
var define = typeof define === 'function' && define.amd ? define : function (factory) {
typeof module === 'object' ? (module.exports = factory(require)) : '';
};
define(function (require) {
var util = require('../core/util');
var Plugin = require('../core/plugin');
// public /////////////////////////////////////////////////////////////////
/**
* 构造函数
*
* @constructor
* @param {Object} param 初始化对象
* @param {number} param.height 表头高度
*/
function TableHeader(param) {
if (!(this instanceof TableHeader)) {
return new TableHeader(param);
}
param = param || {};
Plugin.call(this, param);
}
util.inherit(TableHeader, Plugin);
/**
* @override
*
* @param {Object} param 宿主UI初始化时的参数引用,***操作请小心***
* @return {boolean} 是否初始化成功
*/
TableHeader.prototype.load = function (param) {
param.pluginSkin = util.joinClassName(param.pluginSkin, 'table-header');
param.tpl = extendTPL(param.tpl, param.fields);
return true;
};
// private /////////////////////////////////////////////////////////////////
/**
* 对模版进行扩充
*
* @param {Array.<string>} tpl 原始模板
* @param {Array.<Field>} fields table列配置
* @param {number} headerHeight header行高度
* @return {Array.<string>} 扩展后的模板
*/
function extendTPL(tpl, fields, headerHeight) {
var height = util.calcLatticeSize(headerHeight);
var header = [
'<tr class="table-head">'
];
for (var n = 0; n < fields.length; n++) {
header = header.concat([
'<td data-ui-column="' + n + '" class="th'
+ ((!isNaN(fields[n].width)) ? (' width' + util.calcLatticeSize(fields[n].width)) : '')
+ '">',
fields[n].tip,
'</td>'
]);
}
header.push('</tr>');
var picker = new util.Picker(tpl);
return picker.find('.table-content').head(header).export();
}
return TableHeader;
});
|