@bchr/bchr-front-lib 0.5.9 → 0.5.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,392 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports["default"] = void 0;
7
+
8
+ var _react = _interopRequireDefault(require("react"));
9
+
10
+ var _lodash = _interopRequireDefault(require("lodash"));
11
+
12
+ var _Values = _interopRequireDefault(require("../base/utils/Values"));
13
+
14
+ var _DateTimes = _interopRequireDefault(require("../base/utils/DateTimes"));
15
+
16
+ var _reactUuid = _interopRequireDefault(require("react-uuid"));
17
+
18
+ var _antd = require("antd");
19
+
20
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
21
+
22
+ function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
23
+
24
+ function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
25
+
26
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
27
+
28
+ function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && Symbol.iterator in Object(iter)) return Array.from(iter); }
29
+
30
+ function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
31
+
32
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
33
+
34
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
35
+
36
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
37
+
38
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
39
+
40
+ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
41
+
42
+ function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
43
+
44
+ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
45
+
46
+ var KendoGridAPI = /*#__PURE__*/function () {
47
+ function KendoGridAPI(kendoGridRef, state, setState) {
48
+ _classCallCheck(this, KendoGridAPI);
49
+
50
+ this.gridTableRef = kendoGridRef;
51
+
52
+ if (state) {
53
+ if (_Values["default"].isNotEmpty(state)) {
54
+ this.state = state;
55
+ this.setState = setState;
56
+ } else {
57
+ throw new Error("Invalid state for create KendoGridAPI");
58
+ }
59
+ }
60
+
61
+ this.defaultPagerGridModelObj = {
62
+ skip: 0,
63
+ take: 20,
64
+ filters: [],
65
+ pageable: {
66
+ pageSizes: [20, 50, 100, 200],
67
+ type: 'numeric'
68
+ },
69
+ total: 0,
70
+ filterable: true,
71
+ resizable: true,
72
+ sortable: {
73
+ mode: 'multiple'
74
+ },
75
+ data: []
76
+ };
77
+ }
78
+
79
+ _createClass(KendoGridAPI, [{
80
+ key: "getTableRef",
81
+ value: function getTableRef() {
82
+ return this.gridTableRef;
83
+ }
84
+ }, {
85
+ key: "buildPagerGridModel",
86
+ value: function buildPagerGridModel(modelOptions) {
87
+ var model = null;
88
+
89
+ if (_lodash["default"].isPlainObject(modelOptions)) {
90
+ model = Object.assign(_objectSpread({}, this.defaultPagerGridModelObj), modelOptions);
91
+ } else {
92
+ model = _objectSpread({}, this.defaultPagerGridModelObj);
93
+ }
94
+
95
+ this.setState({
96
+ refTableModel: _objectSpread({}, model)
97
+ });
98
+ return this.state.refTableModel;
99
+ }
100
+ }, {
101
+ key: "buildNotPagerGridModel",
102
+ value: function buildNotPagerGridModel(modelOptions) {
103
+ var model = null;
104
+
105
+ if (_lodash["default"].isPlainObject(modelOptions)) {
106
+ model = Object.assign(_objectSpread(_objectSpread({}, this.defaultPagerGridModelObj), {}, {
107
+ pageable: false
108
+ }), modelOptions);
109
+ } else {
110
+ model = _objectSpread(_objectSpread({}, this.defaultPagerGridModelObj), {}, {
111
+ pageable: false
112
+ });
113
+ }
114
+
115
+ this.setState({
116
+ refTableModel: _objectSpread({}, model)
117
+ });
118
+ return this.state.refTableModel;
119
+ }
120
+ }, {
121
+ key: "setTableFilter",
122
+ value: function setTableFilter(field, filterInfo) {
123
+ var _this$state$refTableM;
124
+
125
+ if (!this.state.refTableModel.filters) {
126
+ this.state.refTableModel.filters = [];
127
+ }
128
+
129
+ var filters = (_this$state$refTableM = this.state.refTableModel) === null || _this$state$refTableM === void 0 ? void 0 : _this$state$refTableM.filters;
130
+ var hasFieldIndex = filters === null || filters === void 0 ? void 0 : filters.findIndex(function (item) {
131
+ return item.field === field;
132
+ });
133
+
134
+ if (_Values["default"].isNotEmpty(filterInfo)) {
135
+ if (hasFieldIndex !== -1) {
136
+ this.state.refTableModel.filters[hasFieldIndex] = filterInfo;
137
+ } else {
138
+ this.state.refTableModel.filters.unshift(_objectSpread(_objectSpread({}, filterInfo), {}, {
139
+ field: field
140
+ }));
141
+ }
142
+ } else {
143
+ this.state.refTableModel.filters = filters.filter(function (item) {
144
+ return item.field !== field;
145
+ });
146
+ }
147
+
148
+ this.setState({
149
+ refTableModel: _objectSpread({}, this.state.refTableModel)
150
+ });
151
+ return this.state.refTableModel;
152
+ }
153
+ }, {
154
+ key: "setTableDataWithNoPageable",
155
+ value: function setTableDataWithNoPageable(allData) {
156
+ var dataArray = allData || [];
157
+
158
+ if (_lodash["default"].isEmpty(this.state.refTableModel)) {
159
+ throw new Error("please create buildPagerTableModel first, then set table data.");
160
+ }
161
+
162
+ this.state.refTableModel.data = dataArray;
163
+ this.setState({
164
+ refTableModel: _objectSpread({}, this.state.refTableModel)
165
+ });
166
+ return this.state.refTableModel;
167
+ }
168
+ }, {
169
+ key: "setAllDataWithPage",
170
+ value: function setAllDataWithPage(allData) {
171
+ var dataArray = allData || [];
172
+ this.setOnePageData({
173
+ data: dataArray,
174
+ total: dataArray.length
175
+ }, this.getCurrentPageIndex(), this.getPageSize());
176
+ }
177
+ }, {
178
+ key: "setOnePageData",
179
+ value: function setOnePageData(onePageResultData, pageIndex, pageSize) {
180
+ if (_lodash["default"].isEmpty(this.state.refTableModel)) {
181
+ throw new Error("please create buildPagerTableModel first, then set table data.");
182
+ }
183
+
184
+ if (_Values["default"].isEmpty(onePageResultData)) {
185
+ throw new Error("please check pageData value.");
186
+ }
187
+
188
+ this.state.refTableModel.data = onePageResultData === null || onePageResultData === void 0 ? void 0 : onePageResultData.data;
189
+ this.state.refTableModel.skip = pageIndex;
190
+ this.state.refTableModel.take = pageSize;
191
+ this.state.refTableModel.total = onePageResultData === null || onePageResultData === void 0 ? void 0 : onePageResultData.total;
192
+ this.setState({
193
+ refTableModel: _objectSpread({}, this.state.refTableModel)
194
+ });
195
+ return this.state.refTableModel;
196
+ }
197
+ }, {
198
+ key: "getRowData",
199
+ value: function getRowData(row) {
200
+ if (row.uid) {
201
+ return this.state.refTableModel.data.filter(function (item) {
202
+ return item.uid === row.uid;
203
+ })[0];
204
+ }
205
+
206
+ return this.state.refTableModel.data.filter(function (item) {
207
+ return item.pk === row.pk;
208
+ })[0];
209
+ }
210
+ }, {
211
+ key: "insertRow",
212
+ value: function insertRow(row) {
213
+ var addItem = {
214
+ uid: (0, _reactUuid["default"])(),
215
+ inEditState: true
216
+ };
217
+
218
+ if (_lodash["default"].isPlainObject(row)) {
219
+ addItem = _objectSpread(_objectSpread({}, addItem), row);
220
+ }
221
+
222
+ if (_Values["default"].isEmpty(this.state.refTableModel.data)) {
223
+ this.state.refTableModel.data = [];
224
+ }
225
+
226
+ this.state.refTableModel.data.push(_objectSpread({}, addItem));
227
+ this.setState({
228
+ refTableModel: _objectSpread({}, this.state.refTableModel)
229
+ });
230
+ return this;
231
+ }
232
+ }, {
233
+ key: "insertOneRow",
234
+ value: function insertOneRow(row) {
235
+ if (_Values["default"].isNotEmptyArray(this.state.refTableModel.data)) {
236
+ var findData = this.state.refTableModel.data.find(function (item) {
237
+ return _Values["default"].isNotNull(item.uid) || item.inEditState;
238
+ });
239
+
240
+ if (_Values["default"].isNull(findData)) {
241
+ this.insertRow(row);
242
+ } else {
243
+ _antd.message.warning("有未保存的数据,请先保存或取消");
244
+ }
245
+ } else {
246
+ this.insertRow(row);
247
+ }
248
+ }
249
+ }, {
250
+ key: "removeRow",
251
+ value: function removeRow(row) {
252
+ var filterGridData = this.state.refTableModel.data.filter(function (item) {
253
+ return item.pk ? item.pk !== row.pk : item.uid !== row.uid;
254
+ });
255
+ this.state.refTableModel.data = _toConsumableArray(filterGridData);
256
+ this.setState({
257
+ refTableModel: _objectSpread({}, this.state.refTableModel)
258
+ });
259
+ }
260
+ }, {
261
+ key: "updateRow",
262
+ value: function updateRow(row) {
263
+ var rowIndex = this.state.refTableModel.data.findIndex(function (item) {
264
+ return item.pk === row.pk;
265
+ });
266
+
267
+ if (row.uid) {
268
+ rowIndex = this.state.refTableModel.data.findIndex(function (item) {
269
+ return item.uid === row.uid;
270
+ });
271
+ }
272
+
273
+ if (rowIndex !== -1) {
274
+ var dataItem = this.state.refTableModel.data[rowIndex];
275
+ this.state.refTableModel.data[rowIndex] = _objectSpread(_objectSpread({}, dataItem), row);
276
+ }
277
+
278
+ this.setState({
279
+ refTableModel: _objectSpread({}, this.state.refTableModel)
280
+ });
281
+ return this;
282
+ }
283
+ }, {
284
+ key: "setRowInEditState",
285
+ value: function setRowInEditState(row) {
286
+ var _this$state$refTableM2,
287
+ _this = this;
288
+
289
+ var state = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
290
+ (_this$state$refTableM2 = this.state.refTableModel.data) === null || _this$state$refTableM2 === void 0 ? void 0 : _this$state$refTableM2.forEach(function (item, index) {
291
+ if (item.pk === row.pk) {
292
+ if (!state) {
293
+ _this.state.refTableModel.data[index] = _objectSpread({}, row);
294
+ _this.state.refTableModel.data[index].inEditState = state;
295
+ } else {
296
+ item.inEditState = state;
297
+ }
298
+ }
299
+ });
300
+ this.setState({
301
+ refTableModel: _objectSpread({}, this.state.refTableModel)
302
+ });
303
+ return this;
304
+ }
305
+ }, {
306
+ key: "setAllRowInEditState",
307
+ value: function setAllRowInEditState() {
308
+ var _this$state$refTableM3;
309
+
310
+ var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
311
+ (_this$state$refTableM3 = this.state.refTableModel.data) === null || _this$state$refTableM3 === void 0 ? void 0 : _this$state$refTableM3.forEach(function (item) {
312
+ item.inEditState = state;
313
+ });
314
+ this.setState({
315
+ refTableModel: _objectSpread({}, this.state.refTableModel)
316
+ });
317
+ return this;
318
+ }
319
+ }, {
320
+ key: "renderBooleanColumnAsText",
321
+ value: function renderBooleanColumnAsText(rowIndex, column) {
322
+ return this.state.refTableModel.data[rowIndex][column.dataIndex] ? "是" : "否";
323
+ }
324
+ }, {
325
+ key: "renderDateColumnAsDate10Text",
326
+ value: function renderDateColumnAsDate10Text(rowIndex, column) {
327
+ return _DateTimes["default"].strDateOfLen10(this.state.refTableModel.data[rowIndex][column.dataIndex]);
328
+ }
329
+ }, {
330
+ key: "renderDateColumnAsDateTime19Text",
331
+ value: function renderDateColumnAsDateTime19Text(rowIndex, column) {
332
+ return _DateTimes["default"].strDateTimeOfLen19(this.state.refTableModel.data[rowIndex][column.dataIndex]);
333
+ }
334
+ }, {
335
+ key: "rowIndex",
336
+ value: function rowIndex(_rowIndex) {
337
+ return (this.state.refTableModel.skip - 1) * this.state.refTableModel.take + _rowIndex + 1;
338
+ }
339
+ }, {
340
+ key: "showTotalRow",
341
+ value: function showTotalRow() {
342
+ this.state.refTableModel.showTotal = true;
343
+ this.setState({
344
+ refTableModel: _objectSpread({}, this.state.refTableModel)
345
+ });
346
+ }
347
+ }, {
348
+ key: "hideTotalRow",
349
+ value: function hideTotalRow() {
350
+ this.state.refTableModel.showTotal = false;
351
+ this.setState({
352
+ refTableModel: _objectSpread({}, this.state.refTableModel)
353
+ });
354
+ }
355
+ }, {
356
+ key: "setPageSize",
357
+ value: function setPageSize(size) {
358
+ this.state.refTableModel.take = size;
359
+ this.setState({
360
+ refTableModel: _objectSpread({}, this.state.refTableModel)
361
+ });
362
+ }
363
+ }, {
364
+ key: "getPageSize",
365
+ value: function getPageSize() {
366
+ return this.state.refTableModel.take;
367
+ }
368
+ }, {
369
+ key: "setCurrentPageIndex",
370
+ value: function setCurrentPageIndex(index) {
371
+ this.state.refTableModel.skip = index;
372
+ this.setState({
373
+ refTableModel: _objectSpread({}, this.state.refTableModel)
374
+ });
375
+ }
376
+ }, {
377
+ key: "getCurrentPageIndex",
378
+ value: function getCurrentPageIndex() {
379
+ return this.state.refTableModel.skip;
380
+ }
381
+ }], [{
382
+ key: "of",
383
+ value: function of(gridTableRef, state, setState) {
384
+ return new KendoGridAPI(gridTableRef, state, setState);
385
+ }
386
+ }]);
387
+
388
+ return KendoGridAPI;
389
+ }();
390
+
391
+ var _default = KendoGridAPI;
392
+ exports["default"] = _default;