UNPKG

2.11 kBJavaScriptView Raw
1/**
2 * Module : kero dataTable row meta
3 * Author : liuyk(liuyk@yonyou.com)
4 * Date : 2016-08-08 13:54:01
5 */
6import {
7 rowUtilFunObj
8} from './row-util';
9
10/**
11 * 设置meta信息
12 * @memberof Row
13 * @param {string} fieldName 需要设置meta信息的字段名
14 * @param {string} key meta信息的key
15 * @param {string} value meta信息的值
16 * @example
17 * row.setMeta('filed1','type','string')
18 */
19const setMeta = function(fieldName, key, value) {
20 var meta = rowUtilFunObj._getField(this, fieldName).meta
21 if (!meta)
22 meta = rowUtilFunObj._getField(this, fieldName).meta = {}
23 var oldValue = meta[key]
24 if (rowUtilFunObj.eq(oldValue, value)) return;
25 meta[key] = value
26 //this.metaChange(- this.metaChange())
27 if (this.metaChange[fieldName + '.' + key]) {
28 this.metaChange[fieldName + '.' + key](-this.metaChange[fieldName + '.' + key]());
29 }
30
31 if (key == 'enable')
32 this.parent.enableChange(-this.parent.enableChange())
33 if (this.parent.getCurrentRow() == this) {
34 if (this.parent.metaChange[fieldName + '.' + key])
35 this.parent.metaChange[fieldName + '.' + key](-this.parent.metaChange[fieldName + '.' + key]());
36 this.parent.trigger(fieldName + '.' + key + '.' + DataTable.ON_CURRENT_META_CHANGE, {
37 eventType: 'dataTableEvent',
38 dataTable: this.parent.id,
39 oldValue: oldValue,
40 newValue: value
41 });
42 //this.parent.metaChange(- this.parent.metaChange())
43 }
44 this.parent.trigger(DataTable.ON_ROW_META_CHANGE, {
45 eventType: 'dataTableEvent',
46 dataTable: this.parent.id,
47 field: fieldName,
48 meta: key,
49 oldValue: oldValue,
50 newValue: value,
51 row: this
52 });
53
54 this.parent.trigger(fieldName + '.' + key + '.' + DataTable.ON_ROW_META_CHANGE, {
55 eventType: 'dataTableEvent',
56 dataTable: this.parent.id,
57 field: fieldName,
58 meta: key,
59 oldValue: oldValue,
60 newValue: value,
61 row: this
62 });
63}
64
65
66export const rowMetaFunObj = {
67 setMeta: setMeta
68}