kero
Version:
<img src="http://tinper.org/assets/images/kero.png" width="120" style="max-width:100%;"/>
69 lines (63 loc) • 2.11 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')
*/
const setMeta = function(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 const rowMetaFunObj = {
setMeta: setMeta
}