UNPKG

4.17 kBJavaScriptView Raw
1'use strict';
2
3Object.defineProperty(exports, "__esModule", {
4 value: true
5});
6/**
7 * Module : kero dataTable ref
8 * Author : liuyk(liuyk@yonyou.com)
9 * Date : 2016-08-01 14:34:01
10 */
11
12var refSelectedRows = function refSelectedRows() {
13 return ko.pureComputed({
14 read: function read() {
15 var ins = this.selectedIndices() || [];
16 var rs = this.rows();
17 var selectedRows = [];
18 for (var i = 0; i < ins.length; i++) {
19 selectedRows.push(rs[i]);
20 }
21 return selectedRows;
22 }, owner: this
23 });
24};
25
26/**
27 * 绑定字段值
28 * @param {Object} fieldName
29 */
30var ref = function ref(fieldName) {
31 this.createField(fieldName);
32 if (!this.valueChange[fieldName]) this.valueChange[fieldName] = ko.observable(1);
33 return ko.pureComputed({
34 read: function read() {
35 this.valueChange[fieldName]();
36 this.currentRowChange();
37 var row = this.getCurrentRow();
38 if (row) {
39 return row.getChildValue(fieldName);
40 } else return '';
41 },
42 write: function write(value) {
43 var row = this.getCurrentRow();
44 if (row) row.setChildValue(fieldName, value);
45 },
46 owner: this
47 });
48};
49
50var refByRow = function refByRow(obj) {
51 var fieldName = obj.fieldName,
52 fullField = obj.fullField;
53 this.createField(fieldName);
54 if (!this.valueChange[fieldName]) this.valueChange[fieldName] = ko.observable(1);
55 return ko.pureComputed({
56 read: function read() {
57 this.valueChange[fieldName]();
58 this.currentRowChange();
59 var row,
60 index = obj.index + '';
61 var childRowObj = {
62 fullField: fullField,
63 index: index
64 };
65 row = this.getChildRow(childRowObj);
66
67 if (row) {
68 return row.getChildValue(fieldName);
69 } else return '';
70 },
71 write: function write(value) {
72 var row;
73 if (obj.index > -1) row = this.getRow(obj.index);
74 if (row) row.setChildValue(fieldName, value);
75 },
76 owner: this
77 });
78};
79/**
80 * 绑定字段属性
81 * @param {Object} fieldName
82 * @param {Object} key
83 */
84var refMeta = function refMeta(fieldName, key) {
85 if (!this.metaChange[fieldName + '.' + key]) this.metaChange[fieldName + '.' + key] = ko.observable(1);
86 return ko.pureComputed({
87 read: function read() {
88 this.metaChange[fieldName + '.' + key]();
89 this.currentRowChange();
90 return this.getMeta(fieldName, key);
91 },
92 write: function write(value) {
93 this.setMeta(fieldName, key, value);
94 },
95 owner: this
96 });
97};
98
99var refRowMeta = function refRowMeta(fieldName, key) {
100 if (!this.metaChange[fieldName + '.' + key]) this.metaChange[fieldName + '.' + key] = ko.observable(1);
101 return ko.pureComputed({
102 read: function read() {
103 this.metaChange[fieldName + '.' + key]();
104 this.currentRowChange();
105 var row = this.getCurrentRow();
106 if (row) return row.getMeta(fieldName, key);else return this.getMeta(fieldName, key);
107 },
108 write: function write(value) {
109 var row = this.getCurrentRow();
110 if (row) row.setMeta(fieldName, value);
111 },
112 owner: this
113 });
114};
115
116var refEnable = function refEnable(fieldName) {
117 return ko.pureComputed({
118 //enable优先级: dataTable.enable > row上的enable > field中的enable定义
119 read: function read() {
120 this.enableChange();
121 if (!fieldName) return this.enable;
122 var fieldEnable = this.getRowMeta(fieldName, 'enable');
123 if (typeof fieldEnable == 'undefined' || fieldEnable == null) fieldEnable = true;
124 return fieldEnable && this.enable;
125 },
126 owner: this
127 });
128};
129
130exports.refSelectedRows = refSelectedRows;
131exports.ref = ref;
132exports.refMeta = refMeta;
133exports.refRowMeta = refRowMeta;
134exports.refEnable = refEnable;
135exports.refByRow = refByRow;
\No newline at end of file