easy3wui 1.5.55-beta1 → 1.5.55-beta11

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.
@@ -48,12 +48,9 @@ var _Easy3wEditBigTableForm = require('./Easy3wEditBigTableForm');
48
48
 
49
49
  var _Easy3wEditBigTableForm2 = _interopRequireDefault(_Easy3wEditBigTableForm);
50
50
 
51
- var _lodash = require('lodash');
52
-
53
51
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
54
52
 
55
- /* eslint-disable no-alert */
56
- var Selectors = _reactDataGridAddons.Data.Selectors;
53
+ var Selectors = _reactDataGridAddons.Data.Selectors; /* eslint-disable no-alert */
57
54
 
58
55
  var Easy3wEditBigTable = function (_Component) {
59
56
  (0, _inherits3['default'])(Easy3wEditBigTable, _Component);
@@ -74,8 +71,7 @@ var Easy3wEditBigTable = function (_Component) {
74
71
  };
75
72
 
76
73
  _this.onGridRowsUpdated = function (objUpdated) {
77
- var fromRow = objUpdated.fromRow,
78
- fromRowData = objUpdated.fromRowData;
74
+ var fromRowData = objUpdated.fromRowData;
79
75
  var updated = objUpdated.updated;
80
76
  var _this$props = _this.props,
81
77
  touchAutoCompute = _this$props.touchAutoCompute,
@@ -86,7 +82,6 @@ var Easy3wEditBigTable = function (_Component) {
86
82
  // 数据变更-自动计算行数据
87
83
  updated = touchAutoCompute(objUpdated);
88
84
  }
89
- console.log('onGridRowsUpdated', objUpdated, updated);
90
85
  var autoAddNumberIdxEdit = fromRowData.autoAddNumber_idx_edit;
91
86
 
92
87
  dataList[autoAddNumberIdxEdit] = (0, _extends3['default'])({}, fromRowData, updated);
@@ -101,28 +96,73 @@ var Easy3wEditBigTable = function (_Component) {
101
96
  };
102
97
 
103
98
  _this.onRowsSelected = function (rows) {
104
- _this.setState({
105
- arrSelectedIndexes: _this.state.arrSelectedIndexes.concat(rows.map(function (r) {
106
- return r.rowIdx;
107
- })) // 表格选择行索引
99
+ var _this$state = _this.state,
100
+ arrValues = _this$state.arrValues,
101
+ arrValuesInfo = _this$state.arrValuesInfo;
102
+ var _this$props2 = _this.props,
103
+ rowKey = _this$props2.rowKey,
104
+ onRowsSelectedCb = _this$props2.onRowsSelectedCb;
105
+
106
+ var arrValuesNew = []; // 表格选择行索引
107
+ var arrValuesInfoNew = []; // 表格选择行数据
108
+ rows.map(function (r) {
109
+ arrValuesNew.push(r.row[rowKey]);
110
+ arrValuesInfoNew.push(r.row);
111
+ return r;
108
112
  });
113
+ arrValues = arrValues.concat(arrValuesNew); // 表格选择行索引
114
+ arrValuesInfo = arrValuesInfo.concat(arrValuesInfoNew); // 表格选择行数据
115
+ if (onRowsSelectedCb && typeof onRowsSelectedCb === 'function') {
116
+ // 表格选择回调函数
117
+ onRowsSelectedCb('onRowsSelected', arrValues, arrValuesInfo, arrValuesNew, arrValuesInfoNew);
118
+ }
119
+ _this.onSelectedRowsChange(arrValues, arrValuesInfo);
109
120
  };
110
121
 
111
122
  _this.onRowsDeselected = function (rows) {
112
- var rowIndexes = rows.map(function (r) {
113
- return r.rowIdx;
114
- });
115
- _this.setState({
116
- arrSelectedIndexes: _this.state.arrSelectedIndexes.filter(function (i) {
117
- return rowIndexes.indexOf(i) === -1;
118
- }) // 表格选择行索引
123
+ var arrValuesInfo = _this.state.arrValuesInfo;
124
+ var _this$props3 = _this.props,
125
+ rowKey = _this$props3.rowKey,
126
+ onRowsSelectedCb = _this$props3.onRowsSelectedCb;
127
+
128
+ var arrValuesNew = []; // 表格选择行索引
129
+ var arrValuesInfoNew = []; // 表格选择行数据
130
+ var arrSelected = []; // 已选择的行索引
131
+ var arrSelectedInfo = []; // 已选择的行数据
132
+ arrValuesInfo.filter(function (item) {
133
+ var flag = true;
134
+ rows.map(function (r) {
135
+ var row = r.row;
136
+
137
+ if (item[rowKey] === row[rowKey]) {
138
+ // 删除已取消选择的行
139
+ flag = false;
140
+ arrSelected.push(item[rowKey]);
141
+ arrSelectedInfo.push(item);
142
+ }
143
+ return r;
144
+ });
145
+ if (flag) {
146
+ arrValuesNew.push(item[rowKey]);
147
+ arrValuesInfoNew.push(item);
148
+ }
149
+ return flag;
119
150
  });
151
+ if (onRowsSelectedCb && typeof onRowsSelectedCb === 'function') {
152
+ // 表格选择回调函数
153
+ onRowsSelectedCb('onRowsDeselected', arrValuesNew, arrValuesInfoNew, arrSelected, arrSelectedInfo);
154
+ }
155
+ _this.onSelectedRowsChange(arrValuesNew, arrValuesInfoNew);
156
+ };
157
+
158
+ _this.onSelectedRowsChange = function (arrValues, arrValuesInfo) {
159
+ _this.setState({ arrValues: arrValues, arrValuesInfo: arrValuesInfo });
120
160
  };
121
161
 
122
162
  _this.touchAddRow = function () {
123
- var _this$props2 = _this.props,
124
- onGridRowsUpdated = _this$props2.onGridRowsUpdated,
125
- dataList = _this$props2.dataList;
163
+ var _this$props4 = _this.props,
164
+ onGridRowsUpdated = _this$props4.onGridRowsUpdated,
165
+ dataList = _this$props4.dataList;
126
166
 
127
167
  var dataListNew = [].concat(dataList, [{}]);
128
168
  if (onGridRowsUpdated && typeof onGridRowsUpdated === 'function') {
@@ -132,17 +172,17 @@ var Easy3wEditBigTable = function (_Component) {
132
172
  };
133
173
 
134
174
  _this.touchCopyRow = function () {
135
- var _this$props3 = _this.props,
136
- onGridRowsUpdated = _this$props3.onGridRowsUpdated,
137
- dataList = _this$props3.dataList;
138
- var arrSelectedIndexes = _this.state.arrSelectedIndexes;
175
+ var _this$props5 = _this.props,
176
+ onGridRowsUpdated = _this$props5.onGridRowsUpdated,
177
+ dataList = _this$props5.dataList;
178
+ var arrValues = _this.state.arrValues;
139
179
 
140
- if (arrSelectedIndexes.length) {
180
+ if (arrValues.length) {
141
181
  var newArr = []; // 复制的新数组
142
- arrSelectedIndexes.forEach(function (rowIdx) {
143
- var newRow = (0, _extends3['default'])({}, dataList[rowIdx]);
182
+ arrValues.forEach(function (key) {
183
+ var newRow = (0, _extends3['default'])({}, dataList[key]);
144
184
  newArr.push(newRow);
145
- return rowIdx;
185
+ return key;
146
186
  });
147
187
  var dataListNew = [].concat(dataList, newArr);
148
188
  if (onGridRowsUpdated && typeof onGridRowsUpdated === 'function') {
@@ -158,23 +198,38 @@ var Easy3wEditBigTable = function (_Component) {
158
198
  };
159
199
 
160
200
  _this.deleteRow = function () {
161
- var _this$props4 = _this.props,
162
- dataList = _this$props4.dataList,
163
- onGridRowsUpdated = _this$props4.onGridRowsUpdated;
164
- var arrSelectedIndexes = _this.state.arrSelectedIndexes;
165
-
166
- if (arrSelectedIndexes.length) {
167
- var dataListNew = []; // 复制的新数组
168
- dataList.forEach(function (row, index) {
169
- if (arrSelectedIndexes.indexOf(index) === -1) {
170
- dataListNew.push(row);
171
- }
172
- return index;
201
+ var _this$props6 = _this.props,
202
+ dataList = _this$props6.dataList,
203
+ onGridRowsUpdated = _this$props6.onGridRowsUpdated,
204
+ objToolbarProps = _this$props6.objToolbarProps,
205
+ rowKey = _this$props6.rowKey;
206
+ var deleteRowInterface = objToolbarProps.deleteRowInterface;
207
+ var arrValues = _this.state.arrValues;
208
+
209
+ if (arrValues.length) {
210
+ // const dataListNew = []; // 删除选择行后的新数组
211
+ var dataListDel = []; // 要删除的行数组
212
+ var dataListNew = dataList.filter(function (row) {
213
+ var flag = true;
214
+ arrValues.map(function (key) {
215
+ if (key === row[rowKey]) {
216
+ dataListDel.push(row);
217
+ // 删除选择的行
218
+ flag = false;
219
+ }
220
+ return key;
221
+ });
222
+ return flag;
173
223
  });
224
+ if (deleteRowInterface && typeof deleteRowInterface === 'function') {
225
+ // 删除行接口
226
+ deleteRowInterface(dataListDel, arrValues);
227
+ }
174
228
  if (onGridRowsUpdated && typeof onGridRowsUpdated === 'function') {
175
229
  // 数据变更-回调函数
176
230
  onGridRowsUpdated('deleteRow', dataListNew);
177
231
  }
232
+ _this.onSelectedRowsChange([], []); // 选择行清空
178
233
  } else {
179
234
  _modal2['default'].error({
180
235
  title: '错误',
@@ -255,10 +310,11 @@ var Easy3wEditBigTable = function (_Component) {
255
310
  };
256
311
 
257
312
  _this.confirmCallbackBatchEditBigTable = function (objFormData, objColumn) {
258
- var _this$props5 = _this.props,
259
- touchAutoCompute = _this$props5.touchAutoCompute,
260
- onGridRowsUpdated = _this$props5.onGridRowsUpdated,
261
- dataList = _this$props5.dataList;
313
+ var _this$props7 = _this.props,
314
+ touchAutoCompute = _this$props7.touchAutoCompute,
315
+ onGridRowsUpdated = _this$props7.onGridRowsUpdated,
316
+ dataList = _this$props7.dataList,
317
+ rowKey = _this$props7.rowKey;
262
318
  // if (touchAutoCompute && typeof touchAutoCompute === 'function') { // 数据变更-自动计算行数据
263
319
  // updated = touchAutoCompute(objUpdated);
264
320
  // }
@@ -280,8 +336,6 @@ var Easy3wEditBigTable = function (_Component) {
280
336
  // toRow 改变的单元格的新行序号
281
337
  // toRowId 改变的单元格的新行id
282
338
  // updated 改变的单元格的新值
283
- var rowKey = _this.ReactDataGridRef.props.rowKey;
284
-
285
339
  updated = touchAutoCompute({ cellKey: objColumn.key, fromRow: autoAddNumberIdxView, toRow: autoAddNumberIdxView, fromRowId: row[rowKey], toRowId: row[rowKey], rowIds: [row[rowKey]], updated: updated, action: 'CELL_BATCH_CHANGE', fromRowData: row });
286
340
  }
287
341
  dataList[autoAddNumberIdxEdit] = (0, _extends3['default'])({}, row, updated);
@@ -294,16 +348,17 @@ var Easy3wEditBigTable = function (_Component) {
294
348
  };
295
349
 
296
350
  _this.getRows = function () {
297
- var _this$state = _this.state,
298
- filters = _this$state.filters,
299
- sortColumn = _this$state.sortColumn,
300
- sortDirection = _this$state.sortDirection;
301
- var _this$props6 = _this.props,
302
- dataList = _this$props6.dataList,
303
- enableCellSelect = _this$props6.enableCellSelect;
351
+ var _this$state2 = _this.state,
352
+ filters = _this$state2.filters,
353
+ sortColumn = _this$state2.sortColumn,
354
+ sortDirection = _this$state2.sortDirection;
355
+ var _this$props8 = _this.props,
356
+ dataList = _this$props8.dataList,
357
+ enableCellSelect = _this$props8.enableCellSelect,
358
+ rowSelection = _this$props8.rowSelection;
304
359
 
305
360
  var rows = dataList;
306
- if (enableCellSelect) {
361
+ if (enableCellSelect || rowSelection) {
307
362
  rows = _this.touchLoopDataBefore();
308
363
  }
309
364
  return Selectors.getRows({ rows: rows, filters: filters, sortColumn: sortColumn, sortDirection: sortDirection });
@@ -322,11 +377,12 @@ var Easy3wEditBigTable = function (_Component) {
322
377
  _this.touchLoopDataBefore = function () {
323
378
  var dataList = _this.props.dataList;
324
379
 
325
- var rows = dataList.map(function (row, index) {
380
+ dataList.map(function (row, index) {
326
381
  // autoAddNumber_idx_edit 自动添加序号 数据更新时使用确定当前更新的行
327
- return (0, _extends3['default'])({}, row, { autoAddNumber_idx_edit: index });
382
+ dataList[index] = (0, _extends3['default'])({}, row, { autoAddNumber_idx_edit: index });
383
+ return row;
328
384
  });
329
- return rows;
385
+ return dataList;
330
386
  };
331
387
 
332
388
  _this.touchLoopData = function () {
@@ -358,10 +414,10 @@ var Easy3wEditBigTable = function (_Component) {
358
414
 
359
415
  _this.getHearder = function () {
360
416
  var columns = _this.props.columns;
361
- var _this$props7 = _this.props,
362
- arrColumnsKey = _this$props7.arrColumnsKey,
363
- objSheet = _this$props7.objSheet,
364
- arrColInfo = _this$props7.arrColInfo;
417
+ var _this$props9 = _this.props,
418
+ arrColumnsKey = _this$props9.arrColumnsKey,
419
+ objSheet = _this$props9.objSheet,
420
+ arrColInfo = _this$props9.arrColInfo;
365
421
 
366
422
 
367
423
  var arrColumnsKeyNew = ['id'];
@@ -488,11 +544,63 @@ var Easy3wEditBigTable = function (_Component) {
488
544
  return toolbar;
489
545
  };
490
546
 
547
+ _this.onCheckCellIsEditable = function (obj) {
548
+ var column = obj.column;
549
+ // column:当前列的信息。
550
+ // idx:当前单元格的索引。
551
+ // row:当前行的数据。
552
+ // rowIdx:当前行的索引
553
+
554
+ var editable = column.editable,
555
+ editor = column.editor,
556
+ onCheckCellIsEditable = column.onCheckCellIsEditable;
557
+
558
+ var editableFlag = false; // 单元格是否可编辑 true 允许编辑 false 禁止编辑
559
+ if (editable || editor) {
560
+ // 单元格可编辑
561
+ editableFlag = true;
562
+ if (onCheckCellIsEditable && typeof onCheckCellIsEditable === 'function') {
563
+ editableFlag = onCheckCellIsEditable(obj); // 自定义单元格是否可编辑
564
+ }
565
+ } else {
566
+ editableFlag = false;
567
+ }
568
+ return editableFlag;
569
+ };
570
+
571
+ _this.touchRowRenderer = function (obj) {
572
+ var onCheckCellIsEditable = _this.props.onCheckCellIsEditable;
573
+ var renderBaseRow = obj.renderBaseRow,
574
+ columns = obj.columns,
575
+ row = obj.row,
576
+ idx = obj.idx;
577
+
578
+ var onCheckCellIsEditableNew = onCheckCellIsEditable || _this.onCheckCellIsEditable;
579
+ var columnsNew = [].concat(columns);
580
+ columns.map(function (column, index) {
581
+ if (onCheckCellIsEditableNew({ column: column, idx: idx, row: row })) {
582
+ columnsNew[index] = (0, _extends3['default'])({}, column, { cellClass: (column.cellClass || '') + ' custom-edit-cell' });
583
+ }
584
+ return column;
585
+ });
586
+ return _react2['default'].createElement(
587
+ 'span',
588
+ null,
589
+ renderBaseRow((0, _extends3['default'])({}, obj, {
590
+ columns: [].concat(columnsNew)
591
+ }))
592
+ );
593
+ };
594
+
491
595
  _this.getReactDataGridProps = function () {
492
- var _this$props8 = _this.props,
493
- enableCellSelect = _this$props8.enableCellSelect,
494
- objToolbarProps = _this$props8.objToolbarProps,
495
- rowSelection = _this$props8.rowSelection;
596
+ var arrValues = _this.state.arrValues;
597
+ var _this$props10 = _this.props,
598
+ enableCellSelect = _this$props10.enableCellSelect,
599
+ rowKey = _this$props10.rowKey,
600
+ objToolbarProps = _this$props10.objToolbarProps,
601
+ rowSelection = _this$props10.rowSelection,
602
+ onCheckCellIsEditable = _this$props10.onCheckCellIsEditable,
603
+ touchRowRenderer = _this$props10.touchRowRenderer;
496
604
 
497
605
  var objReactDataGridProps = {}; // ReactDataGrid属性对象
498
606
  // toolbar属性
@@ -509,6 +617,10 @@ var Easy3wEditBigTable = function (_Component) {
509
617
  if (enableCellSelect && typeof enableCellSelect === 'boolean') {
510
618
  objReactDataGridProps.enableCellSelect = enableCellSelect;
511
619
  objReactDataGridProps.onGridRowsUpdated = _this.onGridRowsUpdated; // 表格编辑
620
+ objReactDataGridProps.onCheckCellIsEditable = onCheckCellIsEditable || _this.onCheckCellIsEditable; // 单元格是否可编辑
621
+ // if (onCheckCellIsEditable) {
622
+ // }
623
+ objReactDataGridProps.rowRenderer = touchRowRenderer || _this.touchRowRenderer; // 表格行渲染
512
624
  }
513
625
  // 表格行选择
514
626
  if (rowSelection && typeof rowSelection === 'boolean') {
@@ -518,8 +630,11 @@ var Easy3wEditBigTable = function (_Component) {
518
630
  onRowsSelected: _this.onRowsSelected,
519
631
  onRowsDeselected: _this.onRowsDeselected,
520
632
  selectBy: {
521
- rowKey: 'id',
522
- indexes: _this.state.arrSelectedIndexes
633
+ keys: {
634
+ rowKey: rowKey || 'id',
635
+ values: arrValues
636
+ }
637
+ // indexes: this.state.arrValues,
523
638
  }
524
639
  };
525
640
  } else if (rowSelection) {
@@ -530,14 +645,18 @@ var Easy3wEditBigTable = function (_Component) {
530
645
  };
531
646
 
532
647
  _this.createColumns = function () {
533
- var _this$props9 = _this.props,
534
- autoAddNumber = _this$props9.autoAddNumber,
535
- columns = _this$props9.columns;
648
+ var _this$props11 = _this.props,
649
+ autoAddNumber = _this$props11.autoAddNumber,
650
+ columns = _this$props11.columns;
536
651
  // 自动添加序号
537
652
 
538
653
  var columnsNew = [].concat(columns);
539
654
  if (autoAddNumber && typeof autoAddNumber === 'boolean') {
540
- columnsNew = [{ name: '序号', key: 'autoAddNumber_idx_view', resizable: true, width: 50 }].concat(columnsNew);
655
+ var objColumns = columns && columns.length > 0 ? columns[0] : {};
656
+ var _objColumns$frozen = objColumns.frozen,
657
+ frozen = _objColumns$frozen === undefined ? false : _objColumns$frozen;
658
+
659
+ columnsNew = [{ name: '序号', key: 'autoAddNumber_idx_view', resizable: true, width: 50, frozen: frozen }].concat(columnsNew);
541
660
  }
542
661
  _this.columns = columnsNew;
543
662
  return columnsNew;
@@ -553,9 +672,9 @@ var Easy3wEditBigTable = function (_Component) {
553
672
  };
554
673
 
555
674
  _this.checkData = function () {
556
- var _this$props10 = _this.props,
557
- columns = _this$props10.columns,
558
- dataList = _this$props10.dataList;
675
+ var _this$props12 = _this.props,
676
+ columns = _this$props12.columns,
677
+ dataList = _this$props12.dataList;
559
678
 
560
679
  var strCheckFailRows = ''; // 校验失败的行号
561
680
  var arrRequiredMessage = []; // 必填提示信息
@@ -619,7 +738,8 @@ var Easy3wEditBigTable = function (_Component) {
619
738
  }
620
739
  _this.state = {
621
740
  // 表格选择
622
- arrSelectedIndexes: [], // 表格选择行索引
741
+ arrValues: [], // 表格选择行索引
742
+ arrValuesInfo: [], // 表格选择行数据
623
743
  // 查询条件
624
744
  filters: {},
625
745
  // 排序--sort
@@ -647,6 +767,8 @@ var Easy3wEditBigTable = function (_Component) {
647
767
 
648
768
  // 表格选择---取消选择
649
769
 
770
+ // 改变选择状态
771
+
650
772
  // #endregion 表格选择
651
773
  // #region 右上角按钮处理--toolbar
652
774
  // 新增
@@ -690,6 +812,9 @@ var Easy3wEditBigTable = function (_Component) {
690
812
 
691
813
  // #endregion toolbar处理
692
814
  // #region 设置ReactDataGrid属性
815
+ // 在单元格设置为活动状态之前调用,返回一个布尔值以确定单元格是否可编辑
816
+
817
+ // 表格行渲染
693
818
 
694
819
  // 创建columns
695
820
 
@@ -710,7 +835,9 @@ var Easy3wEditBigTable = function (_Component) {
710
835
  var _props = this.props,
711
836
  totalFlag = _props.totalFlag,
712
837
  objOtherProps = _props.objOtherProps,
713
- objToolbarProps = _props.objToolbarProps;
838
+ objToolbarProps = _props.objToolbarProps,
839
+ strReactDataGridStyle = _props.strReactDataGridStyle,
840
+ strAddReactDataGridStyle = _props.strAddReactDataGridStyle;
714
841
 
715
842
  var objReactDataGridProps = this.getReactDataGridProps();
716
843
  var columns = this.createColumns(); // 表头
@@ -718,7 +845,12 @@ var Easy3wEditBigTable = function (_Component) {
718
845
  return _react2['default'].createElement(
719
846
  'div',
720
847
  { style: { backgroundColor: '#fff' } },
721
- _react2['default'].createElement(_reactDataGrid2['default'], (0, _extends3['default'])({
848
+ _react2['default'].createElement(
849
+ 'style',
850
+ null,
851
+ strReactDataGridStyle || (strAddReactDataGridStyle || '') + '\n .custom-edit-cell { \n background-color: #f6ffed;\n }\n '
852
+ ),
853
+ _react2['default'].createElement(_reactDataGrid2['default'], (0, _extends3['default'])({}, this.props, {
722
854
  ref: this.ReactDataGridRef,
723
855
  columns: columns // 表头
724
856
  // rows={rows}
@@ -765,5 +897,8 @@ var Easy3wEditBigTable = function (_Component) {
765
897
  return Easy3wEditBigTable;
766
898
  }(_react.Component);
767
899
 
900
+ Easy3wEditBigTable.defaultProps = {
901
+ rowKey: 'autoAddNumber_idx_edit'
902
+ };
768
903
  exports['default'] = Easy3wEditBigTable;
769
904
  module.exports = exports['default'];
package/lib/index.js CHANGED
@@ -389,4 +389,13 @@ Object.defineProperty(exports, 'Easy3wGetDesensitization', {
389
389
  }
390
390
  });
391
391
 
392
+ var _Easy3wEditBigTable = require('./Easy3wEditBigTable');
393
+
394
+ Object.defineProperty(exports, 'Easy3wEditBigTable', {
395
+ enumerable: true,
396
+ get: function get() {
397
+ return _interopRequireDefault(_Easy3wEditBigTable)['default'];
398
+ }
399
+ });
400
+
392
401
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "easy3wui",
3
- "version": "1.5.55-beta1",
3
+ "version": "1.5.55-beta11",
4
4
  "description": "easy3wui components for react",
5
5
  "keywords": [
6
6
  "react",