kero
Version:
<img src="http://tinper.org/assets/images/kero.png" width="120" style="max-width:100%;"/>
62 lines (58 loc) • 2.08 kB
JavaScript
/**
* Module : kero dataTable row meta
* Author : liuyk(liuyk@yonyou.com)
* Date : 2016-08-08 13:54:01
*/
import { rowUtilFunObj } from './row-util';
/**
* 设置meta信息
* @memberof Row
* @param {string} fieldName 需要设置meta信息的字段名
* @param {string} key meta信息的key
* @param {string} value meta信息的值
* @example
* row.setMeta('filed1','type','string')
*/
var setMeta = function setMeta(fieldName, key, value) {
var meta = rowUtilFunObj._getField(this, fieldName).meta;
if (!meta) meta = rowUtilFunObj._getField(this, fieldName).meta = {};
var oldValue = meta[key];
if (rowUtilFunObj.eq(oldValue, value)) return;
meta[key] = value;
//this.metaChange(- this.metaChange())
if (this.metaChange[fieldName + '.' + key]) {
this.metaChange[fieldName + '.' + key](-this.metaChange[fieldName + '.' + key]());
}
if (key == 'enable') this.parent.enableChange(-this.parent.enableChange());
if (this.parent.getCurrentRow() == this) {
if (this.parent.metaChange[fieldName + '.' + key]) this.parent.metaChange[fieldName + '.' + key](-this.parent.metaChange[fieldName + '.' + key]());
this.parent.trigger(fieldName + '.' + key + '.' + DataTable.ON_CURRENT_META_CHANGE, {
eventType: 'dataTableEvent',
dataTable: this.parent.id,
oldValue: oldValue,
newValue: value
});
//this.parent.metaChange(- this.parent.metaChange())
}
this.parent.trigger(DataTable.ON_ROW_META_CHANGE, {
eventType: 'dataTableEvent',
dataTable: this.parent.id,
field: fieldName,
meta: key,
oldValue: oldValue,
newValue: value,
row: this
});
this.parent.trigger(fieldName + '.' + key + '.' + DataTable.ON_ROW_META_CHANGE, {
eventType: 'dataTableEvent',
dataTable: this.parent.id,
field: fieldName,
meta: key,
oldValue: oldValue,
newValue: value,
row: this
});
};
export var rowMetaFunObj = {
setMeta: setMeta
};