UNPKG

39.5 kBJavaScriptView Raw
1"use strict";
2
3Object.defineProperty(exports, "__esModule", {
4 value: true
5});
6
7var _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; };
8
9var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
10
11var _react = require("react");
12
13var _react2 = _interopRequireDefault(_react);
14
15var _beeComplexGrid = require("bee-complex-grid");
16
17var _beeComplexGrid2 = _interopRequireDefault(_beeComplexGrid);
18
19var _acBtns = require("ac-btns");
20
21var _acBtns2 = _interopRequireDefault(_acBtns);
22
23var _beeButtonGroup = require("bee-button-group");
24
25var _beeButtonGroup2 = _interopRequireDefault(_beeButtonGroup);
26
27var _lodash = require("lodash.clonedeep");
28
29var _lodash2 = _interopRequireDefault(_lodash);
30
31var _beeIcon = require("bee-icon");
32
33var _beeIcon2 = _interopRequireDefault(_beeIcon);
34
35var _beeModal = require("bee-modal");
36
37var _beeModal2 = _interopRequireDefault(_beeModal);
38
39var _lodash3 = require("lodash.isequal");
40
41var _lodash4 = _interopRequireDefault(_lodash3);
42
43var _TextField = require("./RowField/TextField");
44
45var _TextField2 = _interopRequireDefault(_TextField);
46
47var _SelectField = require("./RowField/SelectField");
48
49var _SelectField2 = _interopRequireDefault(_SelectField);
50
51var _NumberField = require("./RowField/NumberField");
52
53var _NumberField2 = _interopRequireDefault(_NumberField);
54
55var _YearField = require("./RowField/YearField");
56
57var _YearField2 = _interopRequireDefault(_YearField);
58
59var _DateField = require("./RowField/DateField");
60
61var _DateField2 = _interopRequireDefault(_DateField);
62
63var _acTips = require("ac-tips");
64
65var _acTips2 = _interopRequireDefault(_acTips);
66
67var _classnames = require("classnames");
68
69var _classnames2 = _interopRequireDefault(_classnames);
70
71var _defaultProps = require("./defaultProps");
72
73function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
74
75function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }
76
77function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }
78
79function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; }
80
81function _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; }
82
83function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
84
85function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
86
87function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); }
88//文本输入组件
89
90//下拉选择组件
91
92//数值选择组件
93
94//年份选择组件
95
96//日期组件
97
98
99var defaultProps = {
100 data: [],
101 excludeKeys: [],
102 delRow: function delRow() {}, //删除回调
103 getSelectedDataFunc: function getSelectedDataFunc() {}, //选中回调
104 save: function save() {}, //保存回调
105 clsfix: 'ac-gridcn',
106 onChange: function onChange() {}, //数据改变回调
107 hideSave: false, //是否隐藏保存按钮
108 isEdit: false, //是否需要表格编辑
109 powerBtns: ['addRow', 'update', 'delRow', 'copyRow', 'export', 'min', 'max', 'cancel', 'save', 'copyToEnd'],
110 forcePowerBtns: ['cancel', 'save'] //不受按钮权限控制的按钮
111};
112
113var Grid = function (_Component) {
114 _inherits(Grid, _Component);
115
116 function Grid(props) {
117 var _this$state;
118
119 _classCallCheck(this, Grid);
120
121 var _this = _possibleConstructorReturn(this, _Component.call(this, props));
122
123 _initialiseProps.call(_this);
124
125 _this.state = (_this$state = {
126 copying: false, //是否正在拷贝
127 open: props.defaultOpen != undefined ? props.defaultValue : true, //默认展开收起
128 isMax: false, //是否最大化了
129 columns: props.columns,
130 data: props.data,
131 defaultValueKeyValue: {} }, _defineProperty(_this$state, "isMax", false), _defineProperty(_this$state, "selectData", []), _defineProperty(_this$state, "allEditing", false), _defineProperty(_this$state, "adding", false), _defineProperty(_this$state, "addNum", 0), _defineProperty(_this$state, "canExport", false), _defineProperty(_this$state, "pasting", false), _this$state);
132 _this.oldColumns = props.columns;
133 _this.selectList = []; //选中的数据
134 _this.allData = []; //表格所有数据
135 _this.errors = {}; //整个表格的校验错误信息
136 _this.selectKeyData = {}; //存select类型字段 key:data(下拉列表)
137 return _this;
138 }
139
140 /**
141 *获取保存的column和table上的属性
142 *
143 */
144
145 /**
146 *
147 * 重置grid的columns
148 */
149
150
151 Grid.prototype.componentWillMount = function componentWillMount() {
152 this.setColumn(this.props.columns);
153 this.setData(this.props.data, this.props.exportData);
154 };
155
156 Grid.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {
157 if ('data' in nextProps && !(0, _lodash4["default"])(nextProps.data, this.state.data)) {
158 this.setData(nextProps.data, nextProps.exportData);
159 }
160 };
161 //校验选中数据
162
163 //增行
164
165
166 //取消新增
167
168 //修改
169
170
171 //删除行
172
173
174 //复制行
175
176
177 //保存数据
178
179
180 //取消复制
181
182 //粘贴至末行
183
184
185 //粘贴至此处
186
187
188 //取消粘贴
189
190
191 //最大化、最小化
192
193
194 //修改取消
195
196 //全不选
197
198
199 //行hover
200
201
202 //粘贴至此处按钮
203
204
205 //数据选择回调
206
207 //打开关闭
208
209
210 //编辑表格导出数据select类型单独处理
211
212
213 Grid.prototype.render = function render() {
214 return _react2["default"].createElement(
215 "span",
216 null,
217 this.state.isMax ? ReactDOM.createPortal(this.renderDom(), document.querySelector('body')) : this.renderDom()
218 );
219 };
220
221 return Grid;
222}(_react.Component);
223
224var _initialiseProps = function _initialiseProps() {
225 var _this2 = this;
226
227 this.getColumnsAndTablePros = function () {
228 return _this2.grid.getColumnsAndTablePros();
229 };
230
231 this.resetColumns = function () {
232 _this2.grid.resetColumns(_this2.oldColumns);
233 };
234
235 this.exportExcel = function () {
236 _this2.grid.exportExcel();
237 };
238
239 this.getValue = function (text, props) {
240 var renderType = props.renderType,
241 fieldProps = props.fieldProps;
242 var _fieldProps$data = fieldProps.data,
243 data = _fieldProps$data === undefined ? [] : _fieldProps$data,
244 defaultValue = fieldProps.defaultValue;
245
246 var value = defaultValue != undefined ? defaultValue : '';
247 if (renderType && renderType == 'select') {
248 data.forEach(function (item) {
249 if (item.value == text) {
250 value = item.key;
251 }
252 });
253 } else {
254 value = text;
255 }
256 return value;
257 };
258
259 this.setColumn = function (cl) {
260 var columns = (0, _lodash2["default"])(cl);
261 var defaultValueKeyValue = {};
262 columns.forEach(function (item) {
263 var renderType = item.renderType,
264 _item$fieldProps = item.fieldProps,
265 fieldProps = _item$fieldProps === undefined ? {} : _item$fieldProps,
266 dataIndex = item.dataIndex,
267 oldRender = item.render,
268 component = item.component,
269 other = _objectWithoutProperties(item, ["renderType", "fieldProps", "dataIndex", "render", "component"]);
270
271 if (!oldRender) oldRender = function oldRender(text) {
272 return text;
273 };
274 if (renderType) {
275 if (item.required) {
276 item.className = "required";
277 }
278 if (fieldProps.defaultValue != undefined) {
279 defaultValueKeyValue[dataIndex] = fieldProps.defaultValue;
280 } else {
281 defaultValueKeyValue[dataIndex] = '';
282 }
283 switch (renderType) {
284 case 'input':
285 item.render = function (text, record, index) {
286 return record._edit ? _react2["default"].createElement(_TextField2["default"], _extends({}, other, {
287 fieldProps: fieldProps,
288 index: index,
289 value: oldRender && oldRender(text, record, index),
290 field: item.dataIndex,
291 onChange: _this2.onChange,
292 status: record._status,
293 onValidate: _this2.onValidate
294 })) : _react2["default"].createElement(
295 "div",
296 null,
297 oldRender && oldRender(text, record, index)
298 );
299 };
300 break;
301 case 'inputNumber':
302 item.render = function (text, record, index) {
303 var value = text;
304 return record._edit ? _react2["default"].createElement(_NumberField2["default"], _extends({}, other, {
305 fieldProps: fieldProps,
306 index: index,
307 value: value,
308 field: item.dataIndex,
309 onChange: _this2.onChange,
310 status: record._status,
311 onValidate: _this2.onValidate
312 })) : _react2["default"].createElement(
313 "div",
314 null,
315 oldRender && oldRender(value, record, index)
316 );
317 };
318 break;
319 case 'select':
320 item.render = function (text, record, index) {
321 var value = _this2.getValue(text, item);
322 if (index == 0 && !_this2.selectKeyData[item.dataIndex]) {
323 _this2.selectKeyData[item.dataIndex] = fieldProps.data;
324 }
325 return record._edit ? _react2["default"].createElement(_SelectField2["default"], _extends({}, other, {
326 fieldProps: fieldProps,
327 index: index,
328 value: text + '',
329 field: item.dataIndex,
330 onChange: _this2.onChange,
331 status: record._status,
332 onValidate: _this2.onValidate
333 })) : _react2["default"].createElement(
334 "div",
335 null,
336 oldRender && oldRender(value, record, index)
337 );
338 };
339 break;
340 case 'datepicker':
341 item.render = function (text, record, index) {
342 return record._edit ? _react2["default"].createElement(_DateField2["default"], _extends({}, other, {
343 fieldProps: fieldProps,
344 index: index,
345 value: oldRender && oldRender(text, record, index),
346 field: item.dataIndex,
347 onChange: _this2.onChange,
348 status: record._status,
349 onValidate: _this2.onValidate
350 })) : _react2["default"].createElement(
351 "div",
352 null,
353 oldRender && oldRender(text, record, index)
354 );
355 };
356 break;
357 case 'year':
358 item.render = function (text, record, index) {
359 return record._edit ? _react2["default"].createElement(_YearField2["default"], _extends({}, other, {
360 fieldProps: fieldProps,
361 index: index,
362 value: oldRender && oldRender(text, record, index),
363 field: item.dataIndex,
364 onChange: _this2.onChange,
365 status: record._status,
366 onValidate: _this2.onValidate
367 })) : _react2["default"].createElement(
368 "div",
369 null,
370 oldRender && oldRender(text, record, index)
371 );
372 };
373 break;
374 case 'refer':
375 item.render = function (text, record, index) {
376 var displayName = 'name';
377 if (fieldProps && fieldProps.displayName) name = fieldProps.displayName;
378 var value = oldRender && oldRender(text, record, index);
379 if (text && (typeof text === "undefined" ? "undefined" : _typeof(text)) == 'object' && !record._edit) {
380 value = oldRender && oldRender(text[displayName], record, index);
381 }
382 return record._edit ? _react2["default"].createElement(
383 "span",
384 null,
385 _react2["default"].cloneElement(component, _extends({}, other, fieldProps, {
386 index: index,
387 value: value,
388 field: item.dataIndex,
389 onChange: _this2.onChange,
390 status: record._status,
391 onValidate: _this2.onValidate,
392 text: item.listKey ? record[item.listKey] : value
393 }))
394 ) : _react2["default"].createElement(
395 "div",
396 null,
397 item.listKey ? record[item.listKey] : value
398 );
399 };
400 break;
401 }
402 }
403 });
404 _this2.setState({
405 columns: columns,
406 defaultValueKeyValue: defaultValueKeyValue
407 });
408 _this2.oldColumns = columns;
409 };
410
411 this.setData = function (da, exportData) {
412 var data = (0, _lodash2["default"])(da);
413 var selectData = [];
414 data.forEach(function (item, index) {
415 item._index = index;
416 if (item._checked) selectData.push(item);
417 });
418 _this2.allData = data;
419 _this2.selectList = selectData;
420 _this2.setState({
421 data: data,
422 selectData: selectData,
423 canExport: false
424 }, function () {
425 if (exportData && (0, _lodash4["default"])(_this2.props.exportData, exportData)) {} else if (exportData && !(0, _lodash4["default"])(_this2.props.exportData, exportData)) {
426 _this2.getExportData(exportData);
427 } else if (!exportData) {
428 _this2.getExportData(data);
429 }
430 });
431 };
432
433 this.onValidate = function (filed, errors, index) {
434 if (filed == '_delete') {
435 delete _this2.errors[index];
436 }
437 var current = _this2.errors[index] || {};
438 if (errors) {
439 current[filed] = errors[filed][0].message;
440 } else {
441 delete current[filed];
442 }
443 if (Object.keys(current).length == 0) {
444 delete _this2.errors[index];
445 } else {
446 _this2.errors[index] = current;
447 }
448 };
449
450 this.validate = function () {
451 if (Object.keys(_this2.errors).length) {
452 return _this2.errors;
453 } else {
454 return null;
455 }
456 };
457
458 this.validateSelect = function () {
459 if (Object.keys(_this2.errors).length) {
460 var newError = {};
461 _this2.selectList.forEach(function (item) {
462 if (_this2.errors[item._index]) {
463 newError[item._index] = _this2.errors[item._index];
464 }
465 });
466 if (Object.keys(newError).length) {
467 return newError;
468 } else {
469 return null;
470 }
471 } else {
472 return null;
473 }
474 };
475
476 this.onChange = function (field, value, index) {
477 if (!(0, _lodash4["default"])(_this2.allData[index][field], value)) {
478 _this2.allData[index]._checked = true;
479 _this2.allData[index][field] = value;
480 var selectList = [];
481 _this2.allData.forEach(function (item) {
482 if (item._checked) selectList.push(item);
483 });
484 _this2.setState({
485 data: _this2.allData,
486 selectData: selectList
487 });
488 _this2.props.onChange(_this2.allData);
489 }
490 };
491
492 this.addRow = function () {
493 var defaultValueKeyValue = _this2.state.defaultValueKeyValue;
494 var data = (0, _lodash2["default"])(_this2.state.data);
495 var item = (0, _lodash2["default"])(defaultValueKeyValue);
496 item._edit = true;
497 item._status = 'edit';
498 item._checked = true;
499 data.unshift(item);
500 var selectList = [];
501 data.forEach(function (item, index) {
502 if (item._checked) selectList.push(item);
503 item._index = index;
504 });
505 _this2.setState({
506 data: data,
507 adding: true,
508 addNum: _this2.state.addNum + 1,
509 selectData: selectList
510 });
511 _this2.selectList = selectList;
512 _this2.allData = data;
513 _this2.props.onChange(data);
514 };
515
516 this.cancelAdd = function () {
517 _beeModal2["default"].confirm({
518 title: '温馨提示',
519 keyword: '警告',
520 content: "数据未保存,确定离开 ?",
521 onOk: function onOk() {
522 var data = (0, _lodash2["default"])(_this2.state.data);
523 data.splice(0, _this2.state.addNum);
524 for (var i = 0; i < _this2.state.addNum; i++) {
525 delete _this2.errors[i];
526 }_this2.setState({
527 data: data,
528 adding: false,
529 addNum: 0,
530 selectData: []
531 });
532 _this2.selectList = [];
533 _this2.props.onChange(data);
534 },
535 onCancel: function onCancel() {},
536 confirmType: 'two'
537 });
538 };
539
540 this.updateAll = function () {
541 var data = (0, _lodash2["default"])(_this2.state.data);
542 data.forEach(function (item) {
543 item._edit = true; //是否编辑态
544 item._status = 'edit'; //是否编辑态,用于显示是否编辑过
545 item._checked = false;
546 });
547 _this2.setState({
548 data: data,
549 allEditing: true,
550 selectData: []
551 });
552 // this.props.onChange(data)
553 _this2.allData = data;
554 };
555
556 this.delRow = function () {
557 if (_this2.selectList.length <= 0) {
558 _acTips2["default"].create({
559 type: 'warning',
560 content: "请先选择数据"
561 });
562 } else {
563 _beeModal2["default"].confirm({
564 title: '温馨提示',
565 keyword: '删除',
566 content: "单据删除后将不能恢复。",
567 onOk: function onOk() {
568 var data = (0, _lodash2["default"])(_this2.state.data);
569 _this2.selectList.forEach(function (item, index) {
570 data.splice(item._index - index, 1);
571 _this2.onValidate('_delete', '', item._index);
572 });
573
574 data = _this2.resetChecked(data, true);
575 _this2.allData = data;
576 _this2.props.onChange(data);
577 _this2.setState({
578 data: data
579 }, function () {
580 _this2.props.delRow(_this2.selectList, data);
581 });
582 },
583 onCancel: function onCancel() {},
584 confirmType: 'two'
585 });
586 }
587 };
588
589 this.copyRow = function () {
590 if (_this2.selectList.length <= 0) {
591 _acTips2["default"].create({
592 type: 'warning',
593 content: "请先选择数据"
594 });
595 } else {
596 var copyData = [];
597 var data = (0, _lodash2["default"])(_this2.state.data);
598 data.forEach(function (item) {
599 if (item._checked) copyData.push(item);
600 });
601 _this2.setState({
602 copying: true,
603 selectData: copyData
604 });
605 }
606 };
607
608 this.save = function () {
609 var selectList = [];
610 _this2.allData.forEach(function (item) {
611 if (item._checked) selectList.push(item);
612 });
613 if (selectList.length <= 0) {
614 _acTips2["default"].create({
615 type: 'warning',
616 content: "请先选择数据"
617 });
618 } else if (_this2.validate()) {
619 _acTips2["default"].create({
620 type: 'warning',
621 content: "数据校验失败"
622 });
623 console.log(_this2.errors);
624 } else {
625 var data = (0, _lodash2["default"])(_this2.state.data);
626 data.forEach(function (item) {
627 item._edit = false; //是否编辑态
628 item._status = ''; //是否编辑态,用于显示是否编辑过
629 item._checked = false;
630 });
631 _this2.setState({
632 data: data,
633 adding: false,
634 allEditing: false,
635 selectData: [],
636 pasting: false
637 });
638 // this.props.onChange(data)
639 _this2.allData = data;
640 _this2.props.save(selectList);
641 }
642 };
643
644 this.cancelCopy = function () {
645 _this2.setState({
646 copying: false,
647 selectData: []
648 });
649 };
650
651 this.copyToEnd = function () {
652 var data = _this2.state.data;
653
654 var selectData = _this2.selectList;
655 selectData.forEach(function (item, index) {
656 item._edit = true;
657 item._status = 'edit';
658 item._checked = true;
659 item._needChecked = true;
660 _this2.props.excludeKeys.forEach(function (it) {
661 delete item[it];
662 });
663 });
664 data = data.concat(selectData);
665 data = _this2.resetChecked(data, true);
666 _this2.setState({
667 data: data,
668 copying: false,
669 selectData: selectData,
670 pasting: true,
671 pasteOldData: _this2.state.data
672 });
673 _this2.props.onChange(data);
674 _this2.allData = data;
675 };
676
677 this.copyToHere = function () {
678 var _data;
679
680 var currentIndex = _this2.currentIndex; //从0开始
681 var data = (0, _lodash2["default"])(_this2.state.data);
682 var selectData = _this2.selectList;
683 selectData.forEach(function (item, index) {
684 item._edit = true;
685 item._status = 'edit';
686 item._checked = true;
687 item._needChecked = true;
688 _this2.props.excludeKeys.forEach(function (it) {
689 delete item[it];
690 });
691 });
692 (_data = data).splice.apply(_data, [currentIndex, 0].concat(_toConsumableArray(selectData)));
693 data = _this2.resetChecked(data, true);
694 _this2.setState({
695 data: data,
696 copying: false,
697 pasting: true,
698 pasteOldData: _this2.state.data
699 });
700 _this2.props.onChange(data);
701 _this2.allData = data;
702 };
703
704 this.cancelPaste = function () {
705 var data = _this2.state.pasteOldData;
706 _this2.setState({
707 data: data,
708 copying: false,
709 pasting: false
710 });
711 _this2.allData = data;
712 };
713
714 this.max = function () {
715 if (!_this2.state.isMax) {
716 window.scrollTo(0, 0);
717 }
718 _this2.setState({
719 isMax: !_this2.state.isMax
720 });
721 };
722
723 this.cancelEdit = function () {
724 _beeModal2["default"].confirm({
725 title: '温馨提示',
726 keyword: '警告',
727 content: "数据未保存,确定离开?",
728 onOk: function onOk() {
729 var data = (0, _lodash2["default"])(_this2.state.data);
730 data.forEach(function (item) {
731 item._edit = false; //是否编辑态
732 item._status = ''; //是否编辑态,用于显示是否编辑过
733 item._checked = false;
734 });
735 _this2.setState({
736 data: data,
737 allEditing: false,
738 selectData: [],
739 errors: {}
740 });
741 // this.props.onChange(data)
742 _this2.allData = data;
743 _this2.errors = {};
744 _this2.selectList = [];
745 },
746 onCancel: function onCancel() {},
747 confirmType: 'two'
748 });
749 };
750
751 this.resetChecked = function (dataValue, needIndex) {
752 var data = (0, _lodash2["default"])(dataValue);
753 data.forEach(function (item, index) {
754 if (item._needChecked) {
755 delete item._needChecked;
756 } else {
757 item._checked = false;
758 }
759 if (needIndex) item._index = index;
760 });
761 // this.props.onChange(data)
762 return data;
763 };
764
765 this.onRowHover = function (index, record) {
766 _this2.currentIndex = index;
767 };
768
769 this.hoverContent = function () {
770 if (_this2.state.copying) {
771 return _react2["default"].createElement(_acBtns2["default"], { btns: {
772 copyToHere: {
773 onClick: _this2.copyToHere
774 }
775 } });
776 } else {
777 return '';
778 }
779 };
780
781 this.getSelectedDataFunc = function (selectList, record, index, newData) {
782 _this2.selectList = selectList;
783 var data = (0, _lodash2["default"])(_this2.state.data);
784 if (index != undefined) {
785 data[index]['_checked'] = !data[index]['_checked'];
786 } else {
787 //点击了全选
788 if (selectList.length > 0) {
789 //全选
790 data.map(function (item) {
791 if (!item['_disabled']) {
792 item['_checked'] = true;
793 }
794 });
795 } else {
796 //反选
797 data.map(function (item) {
798 if (!item['_disabled']) {
799 item['_checked'] = false;
800 }
801 });
802 }
803 }
804 _this2.setState({
805 data: data,
806 selectData: selectList
807 });
808 _this2.allData = data;
809 _this2.props.getSelectedDataFunc(selectList, record, index, newData);
810 };
811
812 this.open = function () {
813 _this2.setState({
814 open: !_this2.state.open
815 });
816 };
817
818 this.getExportData = function (data) {
819 var exportData = (0, _lodash2["default"])(data);
820 exportData.forEach(function (item) {
821 for (var attr in _this2.selectKeyData) {
822 item[attr] = _this2.getValue(item[attr], {
823 renderType: 'select',
824 fieldProps: {
825 data: _this2.selectKeyData[attr]
826 }
827 });
828 }
829 });
830 _this2.exportData = exportData;
831 _this2.setState({
832 canExport: true
833 });
834 };
835
836 this.renderDom = function () {
837 var _state = _this2.state,
838 copying = _state.copying,
839 isMax = _state.isMax,
840 columns = _state.columns,
841 data = _state.data,
842 allEditing = _state.allEditing,
843 adding = _state.adding,
844 open = _state.open,
845 selectData = _state.selectData,
846 canExport = _state.canExport,
847 pasting = _state.pasting;
848
849 var _props = _this2.props,
850 clsfix = _props.clsfix,
851 paginationObj = _props.paginationObj,
852 exportData = _props.exportData,
853 disabled = _props.disabled,
854 title = _props.title,
855 hideSave = _props.hideSave,
856 isEdit = _props.isEdit,
857 powerBtns = _props.powerBtns,
858 forcePowerBtns = _props.forcePowerBtns,
859 otherProps = _objectWithoutProperties(_props, ["clsfix", "paginationObj", "exportData", "disabled", "title", "hideSave", "isEdit", "powerBtns", "forcePowerBtns"]);
860
861 var _paginationObj = 'none';
862 if (paginationObj != 'none') {
863 _paginationObj = _extends({}, _defaultProps.paginationDefaultProps, paginationObj);
864 _paginationObj.disabled = paginationObj.disabled !== undefined ? paginationObj.disabled : data.length === 0 || allEditing || copying || adding;
865
866 if (data.length === 0 || allEditing || copying || adding) {
867 _paginationObj.disabled = true;
868 }
869 }
870 var btns1 = {};
871 var btnSave = {};
872 btns1 = {
873 addRow: {
874 onClick: _this2.addRow,
875 disabled: copying || allEditing || pasting || disabled
876 },
877 update: {
878 onClick: _this2.updateAll,
879 disabled: data.length == 0 || copying || allEditing || adding || pasting || disabled
880 },
881 delRow: {
882 onClick: _this2.delRow,
883 disabled: pasting || copying || selectData.length == 0 || disabled
884 },
885 copyRow: {
886 onClick: _this2.copyRow,
887 disabled: copying || adding || pasting || allEditing || selectData.length == 0 || disabled
888 }
889 };
890 var btnsObj = {
891 min: {
892 onClick: _this2.max
893 }
894 };
895 if (!isMax) {
896 delete btnsObj.min;
897 btnsObj.max = {
898 onClick: _this2.max
899 };
900 }
901 if (allEditing) {
902 if (!hideSave) {
903 btnSave.save = {
904 onClick: _this2.save,
905 disabled: selectData.length == 0 || disabled
906 };
907 }
908 btnSave.cancel = {
909 onClick: _this2.cancelEdit
910 };
911 } else if (adding) {
912 if (!hideSave) {
913 btnSave.save = {
914 onClick: _this2.save,
915 disabled: selectData.length == 0 || disabled
916 };
917 }
918 btnSave.cancel = {
919 onClick: _this2.cancelAdd
920 };
921 } else if (copying) {
922 delete btns1.copyRow;
923 btns1.copyToEnd = {
924 onClick: _this2.copyToEnd
925 };
926 btnSave = {
927 cancel: {
928 onClick: _this2.cancelCopy
929 }
930 };
931 } else if (pasting) {
932 if (!hideSave) {
933 btnSave.save = {
934 onClick: _this2.save,
935 disabled: selectData.length == 0 || disabled
936 };
937 }
938 btnSave.cancel = {
939 onClick: _this2.cancelPaste
940 };
941 }
942 var gridOptions = _extends({
943 syncHover: true,
944 autoCheckedByClickRows: false,
945 multiSelect: { type: "checkbox" },
946 showFilterMenu: false
947 }, otherProps, {
948 data: data,
949 columns: columns,
950 exportData: _this2.exportData,
951 paginationObj: _paginationObj,
952 ref: function ref(el) {
953 return _this2.grid = el;
954 },
955 hoverContent: _this2.hoverContent,
956 getSelectedDataFunc: _this2.getSelectedDataFunc,
957 onRowHover: _this2.onRowHover
958 });
959 gridOptions = _extends(_defaultProps.gridDefalutProps, gridOptions);
960 return _react2["default"].createElement(
961 _react.Fragment,
962 null,
963 _react2["default"].createElement(
964 "div",
965 { className: clsfix + " " + (disabled ? 'disabled' : '') + " " + (gridOptions.headerScroll ? 'header-scroll' : '') + " " + (isMax ? 'max' : '') + " " + (adding || allEditing || copying || pasting ? 'isEdit' : '') },
966 typeof title == 'string' ? _react2["default"].createElement(
967 "div",
968 { className: clsfix + "-panel " + (open ? '' : 'close') },
969 _react2["default"].createElement(
970 "span",
971 { onClick: _this2.open, className: clsfix + "-panel-header" },
972 _react2["default"].createElement(
973 "span",
974 { className: clsfix + "-panel-icon" },
975 open ? _react2["default"].createElement(_beeIcon2["default"], { type: "uf-triangle-down" }) : _react2["default"].createElement(_beeIcon2["default"], { type: "uf-triangle-right" })
976 ),
977 _react2["default"].createElement(
978 "span",
979 { className: clsfix + "-panel-title" },
980 title
981 )
982 ),
983 open ? _react2["default"].createElement(
984 "div",
985 { className: clsfix + "-panel-btns" },
986 _react2["default"].createElement(
987 _beeButtonGroup2["default"],
988 null,
989 _react2["default"].createElement(_acBtns2["default"], { btns: btns1, powerBtns: powerBtns, forcePowerBtns: forcePowerBtns })
990 ),
991 _react2["default"].createElement(_acBtns2["default"], { btns: btnSave, powerBtns: powerBtns, forcePowerBtns: forcePowerBtns }),
992 _react2["default"].createElement(_acBtns2["default"], { btns: {
993 "export": {
994 onClick: function onClick() {
995 _this2.grid.exportExcel();
996 },
997 disabled: !canExport || allEditing || adding || disabled
998 }
999 }, powerBtns: powerBtns, forcePowerBtns: forcePowerBtns }),
1000 _react2["default"].createElement(_acBtns2["default"], { btns: btnsObj, powerBtns: powerBtns, forcePowerBtns: forcePowerBtns })
1001 ) : ''
1002 ) : _react2["default"].createElement(
1003 "div",
1004 { className: clsfix + "-panel" },
1005 _react2["default"].createElement("div", null),
1006 _react2["default"].createElement(
1007 "div",
1008 { className: "ac-gridcn-panel-btns" },
1009 _react2["default"].createElement(
1010 _beeButtonGroup2["default"],
1011 null,
1012 _react2["default"].createElement(_acBtns2["default"], { btns: btns1, powerBtns: powerBtns, forcePowerBtns: forcePowerBtns })
1013 ),
1014 _react2["default"].createElement(_acBtns2["default"], { btns: btnSave, powerBtns: powerBtns, forcePowerBtns: forcePowerBtns }),
1015 _react2["default"].createElement(_acBtns2["default"], { btns: {
1016 "export": {
1017 onClick: function onClick() {
1018 _this2.grid.exportExcel();
1019 },
1020 disabled: !canExport || allEditing || adding || disabled
1021 }
1022 }, powerBtns: powerBtns, forcePowerBtns: forcePowerBtns }),
1023 _react2["default"].createElement(_acBtns2["default"], { btns: btnsObj, powerBtns: powerBtns, forcePowerBtns: forcePowerBtns })
1024 )
1025 ),
1026 typeof title == 'string' ? _react2["default"].createElement(
1027 "div",
1028 { className: clsfix + "-inner " + (open ? 'show' : 'hide') + " " + (isMax ? 'max' : '') },
1029 _react2["default"].createElement(_beeComplexGrid2["default"], gridOptions)
1030 ) : _react2["default"].createElement(_beeComplexGrid2["default"], gridOptions)
1031 )
1032 );
1033 };
1034};
1035
1036Grid.defaultProps = defaultProps;
1037exports["default"] = Grid;
1038module.exports = exports["default"];
\No newline at end of file