1 | 'use strict';
|
2 |
|
3 | Object.defineProperty(exports, "__esModule", {
|
4 | value: true
|
5 | });
|
6 | exports.updateRow = exports.setData = exports.setChildSimpleDataByRowId = exports.setChildValue = exports.setValue = undefined;
|
7 |
|
8 | var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; |
9 |
|
10 |
|
11 |
|
12 |
|
13 |
|
14 |
|
15 | var _rowUtil = require('./row-util');
|
16 |
|
17 | var _util = require('tinper-sparrow/src/util');
|
18 |
|
19 |
|
20 |
|
21 |
|
22 | var setValue = function setValue(fieldName, value, ctx, options) {
|
23 |
|
24 | if (arguments.length === 1) {
|
25 | value = fieldName;
|
26 | fieldName = '$data';
|
27 | }
|
28 | var oldValue = this.getValue(fieldName);
|
29 | if (typeof oldValue == 'undefined' || oldValue === null) oldValue = '';
|
30 | if ((0, _rowUtil.eq)(oldValue, value)) return;
|
31 | var event = {
|
32 | eventType: 'dataTableEvent',
|
33 | dataTable: this.parent.id,
|
34 | rowId: this.rowId,
|
35 | field: fieldName,
|
36 | oldValue: oldValue,
|
37 | newValue: value,
|
38 | ctx: ctx || ""
|
39 | };
|
40 | var flag = this.parent.triggerReturn(DataTable.ON_BEFORE_VALUE_CHANGE, event);
|
41 | if (!flag) {
|
42 | (0, _rowUtil._triggerChange)(this, fieldName, oldValue, ctx);
|
43 | return;
|
44 | }
|
45 | (0, _rowUtil._getField)(this, fieldName)['value'] = value;
|
46 | (0, _rowUtil._triggerChange)(this, fieldName, oldValue, ctx);
|
47 | };
|
48 |
|
49 | var setChildValue = function setChildValue(fieldName, value) {
|
50 | var nameArr = fieldName.split('.');
|
51 | var _name = nameArr[0];
|
52 | var _field = this.data[_name];
|
53 | for (var i = 0, count = nameArr.length; i < count; i++) {
|
54 |
|
55 | if (i == count - 1) {
|
56 | if (_field['value'] instanceof u.DataTable) {
|
57 |
|
58 | } else {
|
59 | this.setValue(fieldName, value);
|
60 | }
|
61 | } else {
|
62 | if (_field && _field['value'] instanceof u.DataTable) {
|
63 | var row = _field['value'].getCurrentRow();
|
64 | if (row) row.setChildValue(fieldName.replace(_name + '.', ''), value);
|
65 | } else {
|
66 | _name = nameArr[i + 1];
|
67 | _field = _field[_name];
|
68 | }
|
69 | }
|
70 | }
|
71 | };
|
72 |
|
73 | var setChildSimpleDataByRowId = function setChildSimpleDataByRowId(rowId, data) {
|
74 | var rowIdArr = rowId.split('.');
|
75 | var rowIdLength = rowIdArr.length;
|
76 | if (rowIdLength > 1) {
|
77 | var _childField = rowIdArr[0];
|
78 | var _childObj = this.data[_childField];
|
79 | if (_childObj && _childObj['value'] instanceof u.DataTable) {
|
80 | var rowId = rowIdArr[1];
|
81 | var row = null;
|
82 | if (rowId) row = _childObj['value'].getRowByRowId(rowId);
|
83 | if (row) {
|
84 | if (rowIdArr.length == 2) {
|
85 | row.setSimpleData(data);
|
86 | } else {
|
87 | row.setChildSimpleDataByRowId(fieldName.replace(_childField + '.' + rowId + '.', ''), data);
|
88 | }
|
89 | }
|
90 | }
|
91 | }
|
92 | };
|
93 |
|
94 |
|
95 |
|
96 |
|
97 |
|
98 |
|
99 |
|
100 |
|
101 | var _setData = function _setData(rowObj, sourceData, targetData, subscribe, parentKey, options) {
|
102 | for (var key in sourceData) {
|
103 |
|
104 |
|
105 | if (options && !options.fieldFlag) {
|
106 | if (!rowObj.parent.getMeta(key)) {
|
107 | continue;
|
108 | }
|
109 | }
|
110 | var _parentKey = parentKey || null;
|
111 |
|
112 | targetData[key] = targetData[key] || {};
|
113 | var valueObj = sourceData[key];
|
114 |
|
115 |
|
116 |
|
117 |
|
118 |
|
119 |
|
120 |
|
121 |
|
122 |
|
123 |
|
124 | if (valueObj == null || (typeof valueObj === 'undefined' ? 'undefined' : _typeof(valueObj)) != 'object') {
|
125 |
|
126 | if (!targetData[key].isChild) {
|
127 | targetData[key]['value'] = rowObj.formatValue(key, valueObj);
|
128 | }
|
129 | if (subscribe === true && oldValue !== targetData[key]['value']) {
|
130 | (0, _rowUtil._triggerChange)(rowObj, key, oldValue);
|
131 | }
|
132 | } else {
|
133 | if (valueObj.error) {
|
134 | if (u.showMessageDialog) u.showMessageDialog({ title: "警告", msg: valueObj.error, backdrop: true });else alert(valueObj.error);
|
135 | } else if (valueObj.value || valueObj.value === null || valueObj.meta || valueObj.value === '' || valueObj.value === '0' || valueObj.value === 0) {
|
136 | var oldValue = targetData[key]['value'];
|
137 | targetData[key]['value'] = rowObj.formatValue(key, valueObj.value);
|
138 | if (subscribe === true && oldValue !== targetData[key]['value']) {
|
139 | (0, _rowUtil._triggerChange)(rowObj, key, oldValue);
|
140 | }
|
141 | for (var k in valueObj.meta) {
|
142 | rowObj.setMeta(key, k, valueObj.meta[k]);
|
143 | }
|
144 | } else if ((0, _util.isArray)(valueObj)) {
|
145 | targetData[key].isChild = true;
|
146 |
|
147 | var _key = _parentKey == null ? key : _parentKey + '.' + key;
|
148 | var ns = rowObj.parent.ns === '' ? key : rowObj.parent.ns + '.' + _key;
|
149 | if (rowObj.parent.meta[_key]) {
|
150 | var meta = rowObj.parent.meta[_key]['meta'];
|
151 | targetData[key].value = new u.DataTable({ root: rowObj.parent.root, ns: ns, meta: meta });
|
152 | targetData[key].value.setSimpleData(valueObj);
|
153 | }
|
154 | } else {
|
155 | _parentKey = _parentKey == null ? key : _parentKey + '.' + key;
|
156 | _setData(rowObj, valueObj, targetData[key], null, _parentKey, options);
|
157 | }
|
158 | }
|
159 |
|
160 | }
|
161 | };
|
162 |
|
163 |
|
164 |
|
165 |
|
166 |
|
167 | var setData = function setData(data, subscribe, options) {
|
168 | this.status = data.status;
|
169 | var sourceData = data.data,
|
170 | targetData = this.data;
|
171 | if (this.parent.root.strict != true) {
|
172 | _setData(this, sourceData, targetData, subscribe, null, options);
|
173 | return;
|
174 | }
|
175 |
|
176 |
|
177 | var meta = this.parent.meta;
|
178 | for (var key in meta) {
|
179 | var oldValue = newValue = null;
|
180 |
|
181 | if (meta[key]['type'] && meta[key]['type'] === 'child') {
|
182 | targetData[key].isChild = true;
|
183 |
|
184 | var ns = this.parent.ns === '' ? key : this.parent.ns + '.' + key;
|
185 | var meta = this.parent.meta[key]['meta'];
|
186 | targetData[key].value = new u.DataTable({ root: this.parent.root, ns: ns, meta: meta });
|
187 | if (_typeof(sourceData[key]) === 'object') targetData[key].value.setSimpleData(sourceData[key]);
|
188 | }
|
189 |
|
190 | else if (key.indexOf('.') != -1) {
|
191 | var keys = key.split('.');
|
192 | var _fieldValue = sourceData;
|
193 | var _targetField = targetData;
|
194 | for (var i = 0; i < keys.length; i++) {
|
195 | _fieldValue = _fieldValue || {};
|
196 | _fieldValue = _fieldValue[keys[i]];
|
197 | _targetField = _targetField[keys[i]];
|
198 | }
|
199 | oldValue = _targetField['value'];
|
200 | _targetField['value'] = this.formatValue(key, _fieldValue);
|
201 | newValue = _targetField['value'];
|
202 | }
|
203 |
|
204 | else if (sourceData[key] == null || _typeof(sourceData[key]) != 'object') {
|
205 | oldValue = targetData[key]['value'];
|
206 | targetData[key]['value'] = this.formatValue(key, sourceData[key]);
|
207 | newValue = targetData[key]['value'];
|
208 | } else {
|
209 | var valueObj = sourceData[key];
|
210 | if (valueObj.error) {
|
211 | if (u.showMessageDialog) u.showMessageDialog({ title: "警告", msg: valueObj.error, backdrop: true });else alert(valueObj.error);
|
212 | } else if (valueObj.value || valueObj.value === null || valueObj.meta) {
|
213 | oldValue = targetData[key]['value'];
|
214 | targetData[key]['value'] = this.formatValue(key, valueObj.value);
|
215 | newValue = targetData[key]['value'];
|
216 | for (var k in valueObj.meta) {
|
217 | this.setMeta(key, k, valueObj.meta[k]);
|
218 | }
|
219 | }
|
220 | }
|
221 | if (subscribe === true && oldValue !== newValue) {
|
222 | (0, _rowUtil._triggerChange)(this, key, oldValue);
|
223 | }
|
224 | }
|
225 | };
|
226 |
|
227 | var updateRow = function updateRow(row) {
|
228 | this.setData(row);
|
229 | };
|
230 |
|
231 | exports.setValue = setValue;
|
232 | exports.setChildValue = setChildValue;
|
233 | exports.setChildSimpleDataByRowId = setChildSimpleDataByRowId;
|
234 | exports.setData = setData;
|
235 | exports.updateRow = updateRow; |
\ | No newline at end of file |