easy3wui 1.5.7 → 1.5.8-2.beta

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.
Files changed (53) hide show
  1. package/README.md +17 -1
  2. package/assets/btn.css +7 -1
  3. package/assets/card.css +14 -0
  4. package/assets/editBigTable.css +17 -0
  5. package/assets/flow.css +1235 -224
  6. package/assets/formPage.css +212 -5
  7. package/assets/gridPage.css +12 -2
  8. package/assets/index.css +1610 -348
  9. package/assets/login.css +0 -3
  10. package/assets/tree.css +4 -0
  11. package/lib/Easy3wButton/index.js +4 -2
  12. package/lib/Easy3wButtonOne/index.js +10 -2
  13. package/lib/Easy3wCaHandler/index.js +130 -24
  14. package/lib/Easy3wCard/index.js +11 -53
  15. package/lib/Easy3wCard/indexM.js +80 -0
  16. package/lib/Easy3wCard/indexPC.js +75 -0
  17. package/lib/Easy3wCol/index.js +53 -0
  18. package/lib/Easy3wDownLoad/index copy.js +333 -0
  19. package/lib/Easy3wDownLoad/index.js +129 -19
  20. package/lib/Easy3wEditBigTable/Easy3wEditBigTableForm.js +295 -0
  21. package/lib/Easy3wEditBigTable/Editors/EditorNumber.js +92 -0
  22. package/lib/Easy3wEditBigTable/Editors/EditorsDatePicker.js +168 -0
  23. package/lib/Easy3wEditBigTable/Editors/EditorsInputNumber.js +141 -0
  24. package/lib/Easy3wEditBigTable/index.js +1175 -0
  25. package/lib/Easy3wFlow/index.js +722 -25
  26. package/lib/Easy3wFormPage/index.js +28 -1553
  27. package/lib/Easy3wFormPage/indexM.js +4274 -0
  28. package/lib/Easy3wFormPage/indexPC.js +4006 -0
  29. package/lib/Easy3wGetDesensitization/index.js +43 -0
  30. package/lib/Easy3wGridCheckBox/index.js +1 -1
  31. package/lib/Easy3wGridDatePicker/index.js +1 -1
  32. package/lib/Easy3wGridDateTimePicker/index.js +1 -1
  33. package/lib/Easy3wGridInput/index.js +31 -4
  34. package/lib/Easy3wGridInputAmount/index.js +93 -0
  35. package/lib/Easy3wGridInputDigit/index.js +83 -0
  36. package/lib/Easy3wGridInputEmail/index.js +73 -0
  37. package/lib/Easy3wGridPage/index.js +10 -580
  38. package/lib/Easy3wGridPage/indexM.js +696 -0
  39. package/lib/Easy3wGridPage/indexPC.js +668 -0
  40. package/lib/Easy3wGridSelect/index.js +4 -2
  41. package/lib/Easy3wGridTextArea/index.js +57 -6
  42. package/lib/Easy3wModal/index.js +180 -7
  43. package/lib/Easy3wRow/index.js +53 -0
  44. package/lib/Easy3wTree/index.js +318 -0
  45. package/lib/Easy3wUIConfig/index.js +30 -0
  46. package/lib/Easy3wUpload/index.js +86 -42
  47. package/lib/Easy3wUploadB/index copy 2.js +1011 -0
  48. package/lib/Easy3wUploadB/index copy 3.js +1088 -0
  49. package/lib/Easy3wUploadB/index.js +300 -145
  50. package/lib/Easy3wUploadM/index copy.js +523 -0
  51. package/lib/Easy3wUploadM/index.js +122 -51
  52. package/lib/index.js +81 -0
  53. package/package.json +5 -2
@@ -42,22 +42,73 @@ var Easy3wGridTextArea = function (_Component) {
42
42
  (0, _inherits3['default'])(Easy3wGridTextArea, _Component);
43
43
 
44
44
  function Easy3wGridTextArea() {
45
+ var _temp, _this, _ret;
46
+
45
47
  (0, _classCallCheck3['default'])(this, Easy3wGridTextArea);
46
- return (0, _possibleConstructorReturn3['default'])(this, _Component.apply(this, arguments));
48
+
49
+ for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
50
+ args[_key] = arguments[_key];
51
+ }
52
+
53
+ return _ret = (_temp = (_this = (0, _possibleConstructorReturn3['default'])(this, _Component.call.apply(_Component, [this].concat(args))), _this), _this.touchSetHeight = function () {
54
+ var fieldId = _this.props.fieldId;
55
+ // 获取textarea元素
56
+
57
+ var textarea = document.getElementById(fieldId);
58
+ if (textarea) {
59
+ var scrollHeight = textarea.scrollHeight;
60
+ // scrollHeight属性表示元素内容的总高度,包括那些在视口中不可见的部分
61
+ // 2 边框
62
+
63
+ var scrollHeightNew = scrollHeight + 2;
64
+ // 监听输入事件
65
+ textarea.addEventListener('input', function () {
66
+ // 移除滚动条,以便正确计算内容高度
67
+ this.style.height = 'auto';
68
+ this.style.height = scrollHeightNew + 'px';
69
+ });
70
+ // 初始时设置一次高度,确保页面加载时textarea高度正确
71
+ textarea.style.height = scrollHeightNew + 'px';
72
+ }
73
+ }, _this.touchTransform = function (value) {
74
+ var strValue = value;
75
+ if (typeof value === 'number') {
76
+ strValue = String(value);
77
+ }
78
+ return strValue;
79
+ }, _temp), (0, _possibleConstructorReturn3['default'])(_this, _ret);
47
80
  }
48
81
 
82
+ Easy3wGridTextArea.prototype.componentDidMount = function componentDidMount() {
83
+ this.touchSetHeight();
84
+ };
85
+ // 检验长度前转换字段值为字符串
86
+
87
+
49
88
  Easy3wGridTextArea.prototype.render = function render() {
50
89
  var _props = this.props,
51
90
  fieldId = _props.fieldId,
52
91
  value = _props.value,
53
92
  form = _props.form,
54
- cmptPros = _props.cmptPros,
55
93
  required = _props.required,
56
94
  requiredMessage = _props.requiredMessage,
57
- label = _props.label;
95
+ label = _props.label,
96
+ cmptPros = _props.cmptPros;
58
97
  var getFieldDecorator = form.getFieldDecorator;
59
- var maxLength = cmptPros.maxLength;
60
98
 
99
+ var _ref = cmptPros || {},
100
+ maxLength = _ref.maxLength,
101
+ disabled = _ref.disabled,
102
+ rows = _ref.rows;
103
+
104
+ var defaultMaxLength = 2000;
105
+ // if (!rows) {
106
+ // cmptPros = { autosize: { minRows: 2, maxRows: 9999 }, ...cmptPros };
107
+ // }
108
+ var rules = [{ required: required, message: requiredMessage || '\u8BF7\u586B\u5199' + label }, { max: maxLength || defaultMaxLength, message: '\u5F55\u5165\u6587\u5B57\u957F\u5EA6\u4E0D\u80FD\u8D85\u8FC7' + (maxLength || defaultMaxLength), transform: this.touchTransform }];
109
+ if (disabled) {
110
+ rules.pop();
111
+ }
61
112
  return _react2['default'].createElement(
62
113
  _form2['default'].Item,
63
114
  { style: { marginBottom: 0 } },
@@ -65,8 +116,8 @@ var Easy3wGridTextArea = function (_Component) {
65
116
  // trigger: 'onBlur',
66
117
  // valuePropName: 'defaultValue',
67
118
  initialValue: value,
68
- rules: [{ required: required, message: requiredMessage || '\u8BF7\u586B\u5199' + label }, { max: maxLength || 400, message: '\u5F55\u5165\u6587\u5B57\u957F\u5EA6\u4E0D\u80FD\u8D85\u8FC7' + (maxLength || 400) }]
69
- })(_react2['default'].createElement(TextArea, (0, _extends3['default'])({}, cmptPros, { style: { minWidth: 80 } })))
119
+ rules: rules
120
+ })(_react2['default'].createElement(TextArea, (0, _extends3['default'])({ style: { minWidth: 80 } }, cmptPros)))
70
121
  );
71
122
  };
72
123
 
@@ -6,6 +6,10 @@ var _extends2 = require('babel-runtime/helpers/extends');
6
6
 
7
7
  var _extends3 = _interopRequireDefault(_extends2);
8
8
 
9
+ var _objectWithoutProperties2 = require('babel-runtime/helpers/objectWithoutProperties');
10
+
11
+ var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
12
+
9
13
  var _notification2 = require('antd/lib/notification');
10
14
 
11
15
  var _notification3 = _interopRequireDefault(_notification2);
@@ -77,12 +81,12 @@ var Easy3wModal = function (_Component) {
77
81
  return _react2['default'].createElement(
78
82
  _button2['default'],
79
83
  {
80
- onClick: function onClick(e) {
81
- return _this.onClickFunc(e, obj.func);
82
- },
83
84
  type: 'primary',
84
85
  className: (0, _classnames2['default'])(['e3wFootBtn']),
85
- loading: obj.loading
86
+ loading: obj.loading,
87
+ onClick: function onClick(e) {
88
+ return _this.onClickFunc(e, obj.func);
89
+ }
86
90
  },
87
91
  obj.cName
88
92
  );
@@ -99,6 +103,168 @@ var Easy3wModal = function (_Component) {
99
103
  );
100
104
  }, _temp), (0, _possibleConstructorReturn3['default'])(_this, _ret);
101
105
  }
106
+ // 获取loading状态
107
+
108
+
109
+ // 供脚手架index存store
110
+ Easy3wModal.setGetLoading = function setGetLoading(fn) {
111
+ Easy3wModal.getLoading = fn;
112
+ };
113
+ // 返回一个promise
114
+
115
+
116
+ Easy3wModal.returnPromise = function returnPromise() {
117
+ var onOk = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : function () {};
118
+
119
+ return new Promise(function (resolve) {
120
+ try {
121
+ onOk();
122
+ setTimeout(function () {
123
+ resolve(); // 300ms 后关闭 Modal
124
+ document.body.style.overflow = '';
125
+ }, 300);
126
+ } catch (e) {
127
+ console.error('onOk 执行报错:', e);
128
+ resolve(); // 出错时不关闭
129
+ document.body.style.overflow = '';
130
+ }
131
+ });
132
+ };
133
+ // confirm
134
+
135
+
136
+ Easy3wModal.confirm = function confirm() {
137
+ var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
138
+ var _onOk = props.onOk,
139
+ _onCancel = props.onCancel,
140
+ restProps = (0, _objectWithoutProperties3['default'])(props, ['onOk', 'onCancel']);
141
+
142
+ return _modal2['default'].confirm((0, _extends3['default'])({}, restProps, {
143
+ onCancel: function onCancel() {
144
+ if (_onCancel) {
145
+ _onCancel();
146
+ }
147
+ document.body.style.overflow = '';
148
+ },
149
+ onOk: function onOk() {
150
+ // 1. 检查全局 loading 状态,阻止重复操作
151
+ var loadingFlag = Easy3wModal.getLoading();
152
+ if (loadingFlag) {
153
+ _notification3['default'].warning({
154
+ message: '温馨提示',
155
+ description: '操作正在进行中,请稍后!',
156
+ duration: 3
157
+ });
158
+ return Promise.reject(); // 阻止 Modal 自动关闭
159
+ }
160
+
161
+ // 2. onOk不是函数,关闭
162
+ if (typeof _onOk !== 'function') {
163
+ return true; // 直接关闭 Modal
164
+ }
165
+
166
+ // 3. 执行onOk
167
+ return new Promise(function (resolve) {
168
+ try {
169
+ _onOk();
170
+ setTimeout(function () {
171
+ resolve(); // 300ms 后关闭 Modal
172
+ document.body.style.overflow = '';
173
+ }, 300);
174
+ } catch (e) {
175
+ console.error('onOk 执行报错:', e);
176
+ resolve(); // 出错时不关闭
177
+ document.body.style.overflow = '';
178
+ }
179
+ });
180
+ }
181
+ }));
182
+ };
183
+
184
+ // 展示modal
185
+
186
+
187
+ Easy3wModal.showModal = function showModal(type) {
188
+ var _this2 = this;
189
+
190
+ var props = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
191
+
192
+ // 1. 判断参数类型
193
+ var options = typeof props === 'string' || typeof props === 'number' ? { content: props } : props;
194
+
195
+ var _onOk2 = options.onOk,
196
+ _onCancel2 = options.onCancel,
197
+ restProps = (0, _objectWithoutProperties3['default'])(options, ['onOk', 'onCancel']);
198
+
199
+ // 2. 定义统一的关闭逻辑
200
+
201
+ var resetBodyOverflow = function resetBodyOverflow() {
202
+ document.body.style.overflow = '';
203
+ };
204
+
205
+ // 3. 调用对应类型的 Modal 方法
206
+ return _modal2['default'][type]((0, _extends3['default'])({}, restProps, {
207
+ onCancel: function onCancel() {
208
+ if (_onCancel2) {
209
+ _onCancel2();
210
+ }
211
+ resetBodyOverflow();
212
+ },
213
+ onOk: function onOk() {
214
+ if (_onOk2) {
215
+ var loadingFlag = Easy3wModal.getLoading();
216
+ if (loadingFlag) {
217
+ _notification3['default'].warning({
218
+ message: '温馨提示',
219
+ description: '操作正在进行中,请稍后!',
220
+ duration: 3
221
+ });
222
+ return;
223
+ }
224
+ if (typeof _onOk2 !== 'function') {
225
+ return true; // 直接关闭 Modal
226
+ }
227
+ _this2.returnPromise(_onOk2).then(function () {});
228
+ }
229
+ }
230
+ }));
231
+ };
232
+
233
+ // info
234
+
235
+
236
+ Easy3wModal.info = function info() {
237
+ var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
238
+
239
+ return this.showModal('info', props);
240
+ };
241
+
242
+ // success
243
+
244
+
245
+ Easy3wModal.success = function success() {
246
+ var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
247
+
248
+ return this.showModal('success', props);
249
+ };
250
+
251
+ // error
252
+
253
+
254
+ Easy3wModal.error = function error() {
255
+ var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
256
+
257
+ return this.showModal('error', props);
258
+ };
259
+
260
+ // warning
261
+
262
+
263
+ Easy3wModal.warning = function warning() {
264
+ var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
265
+
266
+ return this.showModal('warning', props);
267
+ };
102
268
 
103
269
  Easy3wModal.prototype.render = function render() {
104
270
  var _props = this.props,
@@ -108,9 +274,11 @@ var Easy3wModal = function (_Component) {
108
274
  loadingFlag = _props.loadingFlag,
109
275
  cancelHandler = _props.cancelHandler,
110
276
  onOk = _props.onOk,
111
- width = _props.width;
277
+ width = _props.width,
278
+ footer = _props.footer,
279
+ footBtnArr = _props.footBtnArr;
112
280
 
113
- var btnObj = this.getBtnObj();
281
+ var btnObj = footer && footer.length ? footer : footBtnArr && footBtnArr.length ? this.getBtnObj() : null;
114
282
  return _react2['default'].createElement(
115
283
  _modal2['default'],
116
284
  (0, _extends3['default'])({
@@ -122,7 +290,8 @@ var Easy3wModal = function (_Component) {
122
290
  footer: btnObj,
123
291
  width: width,
124
292
  destroyOnClose: true,
125
- style: { top: 20 }
293
+ maskClosable: false,
294
+ style: { top: 20, zIndex: 99998 }
126
295
  }, this.props, {
127
296
  afterClose: function afterClose() {
128
297
  document.body.style.overflow = '';
@@ -135,6 +304,10 @@ var Easy3wModal = function (_Component) {
135
304
  return Easy3wModal;
136
305
  }(_react.Component);
137
306
 
307
+ Easy3wModal.getLoading = function () {
308
+ return false;
309
+ };
310
+
138
311
  exports['default'] = (0, _dva.connect)(function (state) {
139
312
  return {
140
313
  loadingFlag: state.loading
@@ -0,0 +1,53 @@
1
+ 'use strict';
2
+
3
+ exports.__esModule = true;
4
+
5
+ var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
6
+
7
+ var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
8
+
9
+ var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
10
+
11
+ var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
12
+
13
+ var _inherits2 = require('babel-runtime/helpers/inherits');
14
+
15
+ var _inherits3 = _interopRequireDefault(_inherits2);
16
+
17
+ var _react = require('react');
18
+
19
+ var _react2 = _interopRequireDefault(_react);
20
+
21
+ var _row = require('antd/lib/row');
22
+
23
+ var _row2 = _interopRequireDefault(_row);
24
+
25
+ require('antd/lib/row/style');
26
+
27
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
28
+
29
+ var Easy3wRow = function (_Component) {
30
+ (0, _inherits3['default'])(Easy3wRow, _Component);
31
+
32
+ function Easy3wRow() {
33
+ (0, _classCallCheck3['default'])(this, Easy3wRow);
34
+ return (0, _possibleConstructorReturn3['default'])(this, _Component.apply(this, arguments));
35
+ }
36
+
37
+ Easy3wRow.prototype.render = function render() {
38
+ var _props = this.props,
39
+ objRowProps = _props.objRowProps,
40
+ children = _props.children;
41
+
42
+ return _react2['default'].createElement(
43
+ _row2['default'],
44
+ objRowProps,
45
+ children
46
+ );
47
+ };
48
+
49
+ return Easy3wRow;
50
+ }(_react.Component);
51
+
52
+ exports['default'] = Easy3wRow;
53
+ module.exports = exports['default'];
@@ -0,0 +1,318 @@
1
+ 'use strict';
2
+
3
+ exports.__esModule = true;
4
+
5
+ var _extends2 = require('babel-runtime/helpers/extends');
6
+
7
+ var _extends3 = _interopRequireDefault(_extends2);
8
+
9
+ var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
10
+
11
+ var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
12
+
13
+ var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
14
+
15
+ var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
16
+
17
+ var _inherits2 = require('babel-runtime/helpers/inherits');
18
+
19
+ var _inherits3 = _interopRequireDefault(_inherits2);
20
+
21
+ var _react = require('react');
22
+
23
+ var _react2 = _interopRequireDefault(_react);
24
+
25
+ var _classnames = require('classnames');
26
+
27
+ var _classnames2 = _interopRequireDefault(_classnames);
28
+
29
+ var _input = require('antd/lib/input');
30
+
31
+ var _input2 = _interopRequireDefault(_input);
32
+
33
+ require('antd/lib/input/style');
34
+
35
+ var _tree = require('antd/lib/tree');
36
+
37
+ var _tree2 = _interopRequireDefault(_tree);
38
+
39
+ require('antd/lib/tree/style');
40
+
41
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
42
+
43
+ var Search = _input2['default'].Search;
44
+ var TreeNode = _tree2['default'].TreeNode;
45
+
46
+ /**
47
+ * props参数
48
+ * arrData: 树数据源 必须 Array
49
+ * objTreeProps: 树配置参数 非必须 Object
50
+ * 另加属性:touchRenderNode, titleField = 'title', countField = 'count', keyField = 'key'
51
+ * touchRenderNode: 自定义渲染节点 非必须 Function 返回值:{ title, count, key, isLeaf, expanded, selected, loading }
52
+ * titleField: 节点标题字段 非必须 String 默认值:'title'
53
+ * countField: 节点计数字段 非必须 String 默认值:'count'
54
+ * keyField: 节点key字段 非必须 String 默认值:'key'
55
+ * objSearchProps: 搜索配置参数 非必须 Object
56
+ * 另加属性:searchFlag = true, onSearchCallback
57
+ * searchFlag: 是否开启搜索功能 非必须 Boolean 默认值:true
58
+ * onSearchCallback: 搜索回调函数 非必须 Function 返回值:(arrDataVisible, searchValue, expandedKeys)
59
+ * bidPureComponent: 绑定组件方法 非必须 Function
60
+ * intUpdateCount: 数据更新次数 必须 Number
61
+ */
62
+
63
+ var Easy3wTree = function (_Component) {
64
+ (0, _inherits3['default'])(Easy3wTree, _Component);
65
+
66
+ function Easy3wTree(props) {
67
+ (0, _classCallCheck3['default'])(this, Easy3wTree);
68
+
69
+ var _this = (0, _possibleConstructorReturn3['default'])(this, _Component.call(this, props));
70
+
71
+ _initialiseProps.call(_this);
72
+
73
+ var arrData = props.arrData,
74
+ bidPureComponent = props.bidPureComponent;
75
+
76
+ if (bidPureComponent && typeof bidPureComponent === 'function') {
77
+ bidPureComponent(_this);
78
+ }
79
+ var arrDefaultExpandedKeys = _this.touchGetDEK(arrData);
80
+ _this.searchRef = _react2['default'].createRef();
81
+ _this.state = {
82
+ // 两数量值,用于彻底更新树,树数据更新,重新渲染,使defaultExpandedKeys生效
83
+ treevisible: true, // 显示树
84
+ arrDefaultExpandedKeys: arrDefaultExpandedKeys, // 树默认展开节点
85
+ arrSearchExpandedKeys: [], // 查询时,树默认展开节点
86
+ arrDataVisible: arrData || [], // 树数据源-显示数据
87
+ selectedKeys: [] // 选中节点key
88
+ };
89
+ return _this;
90
+ }
91
+ // 获取默认展开节点
92
+
93
+ // 更新state
94
+
95
+ // #region 树查询
96
+ // 清空输入框
97
+
98
+ // 获取输入框
99
+
100
+ // 树搜索
101
+
102
+ // 递归过滤树结构,并设置展开节点的 keys
103
+
104
+ // #endregion
105
+ // 节点点击事件
106
+
107
+ // 处理树组织
108
+
109
+
110
+ Easy3wTree.prototype.render = function render() {
111
+ var _this2 = this;
112
+
113
+ var _state = this.state,
114
+ arrDataVisible = _state.arrDataVisible,
115
+ selectedKeys = _state.selectedKeys,
116
+ treevisible = _state.treevisible,
117
+ arrDefaultExpandedKeys = _state.arrDefaultExpandedKeys,
118
+ arrSearchExpandedKeys = _state.arrSearchExpandedKeys;
119
+ var _props = this.props,
120
+ _props$objTreeProps = _props.objTreeProps,
121
+ objTreeProps = _props$objTreeProps === undefined ? {} : _props$objTreeProps,
122
+ _props$objSearchProps = _props.objSearchProps,
123
+ objSearchProps = _props$objSearchProps === undefined ? {} : _props$objSearchProps;
124
+ var _objSearchProps$searc = objSearchProps.searchFlag,
125
+ searchFlag = _objSearchProps$searc === undefined ? true : _objSearchProps$searc;
126
+
127
+ return _react2['default'].createElement(
128
+ 'div',
129
+ { className: (0, _classnames2['default'])('easy3wTree') },
130
+ searchFlag ? _react2['default'].createElement(Search, {
131
+ placeholder: '\u8BF7\u8F93\u5165\u67E5\u8BE2\u5185\u5BB9',
132
+ onChange: function onChange(e) {
133
+ return _this2.touchSearch(e.target.value);
134
+ }
135
+ // style={{ width: 'calc(100% - 12px)', margin: '0 6px' }}
136
+ , ref: this.searchRef,
137
+ className: (0, _classnames2['default'])('easy3wTreeSearch')
138
+ }) : '',
139
+ treevisible ? _react2['default'].createElement(
140
+ _tree2['default'],
141
+ (0, _extends3['default'])({
142
+ defaultExpandedKeys: arrSearchExpandedKeys && arrSearchExpandedKeys.length > 0 ? arrSearchExpandedKeys : arrDefaultExpandedKeys // 树默认展开节点key Array
143
+ , selectedKeys: selectedKeys // 选中节点key Array
144
+ , showLine: true,
145
+ showIcon: true
146
+ // multiple 多选
147
+ , onSelect: this.touchSelect
148
+ }, objTreeProps),
149
+ this.touchRenderTreeNodes(arrDataVisible)
150
+ ) : ''
151
+ );
152
+ };
153
+
154
+ return Easy3wTree;
155
+ }(_react.Component);
156
+
157
+ var _initialiseProps = function _initialiseProps() {
158
+ var _this3 = this;
159
+
160
+ this.componentDidUpdate = function (prevProps) {
161
+ var _props2 = _this3.props,
162
+ intUpdateCount = _props2.intUpdateCount,
163
+ arrData = _props2.arrData;
164
+
165
+ if (intUpdateCount !== prevProps.intUpdateCount) {
166
+ var arrDefaultExpandedKeys = _this3.touchGetDEK(arrData);
167
+ // eslint-disable-next-line react/no-did-update-set-state
168
+ _this3.setState({
169
+ arrDataVisible: arrData || [], // 树数据源-显示数据
170
+ arrDefaultExpandedKeys: arrDefaultExpandedKeys, // 树默认展开节点
171
+ treevisible: false // 隐藏树
172
+ }, function () {
173
+ _this3.setState({
174
+ treevisible: true // 显示树
175
+ });
176
+ });
177
+ }
178
+ };
179
+
180
+ this.touchGetDEK = function (arrData) {
181
+ var arrDefaultExpandedKeys = [];
182
+ if (arrData && arrData.length > 0) {
183
+ var item = arrData[0];
184
+ var _props$objTreeProps2 = _this3.props.objTreeProps,
185
+ objTreeProps = _props$objTreeProps2 === undefined ? {} : _props$objTreeProps2;
186
+ var _objTreeProps$keyFiel = objTreeProps.keyField,
187
+ keyField = _objTreeProps$keyFiel === undefined ? 'key' : _objTreeProps$keyFiel;
188
+
189
+ arrDefaultExpandedKeys = item[keyField] ? [item[keyField]] : [];
190
+ }
191
+ return arrDefaultExpandedKeys;
192
+ };
193
+
194
+ this.touchUpdateState = function (objState) {
195
+ _this3.setState(objState);
196
+ };
197
+
198
+ this.touchClearInput = function () {
199
+ if (_this3.searchRef.current) {
200
+ // 或者使用 antd 的方法
201
+ // this.searchRef.current.input.input.value = '';
202
+ _this3.searchRef.current.input.state.value = '';
203
+ _this3.touchSearch('');
204
+ }
205
+ };
206
+
207
+ this.touchGetInput = function () {
208
+ if (_this3.searchRef.current) {
209
+ var value = _this3.searchRef.current.input.input.value;
210
+
211
+ return value;
212
+ }
213
+ return '';
214
+ };
215
+
216
+ this.touchSearch = function (value) {
217
+ var _props3 = _this3.props,
218
+ arrData = _props3.arrData,
219
+ objSearchProps = _props3.objSearchProps;
220
+ var onSearchCallback = objSearchProps.onSearchCallback;
221
+
222
+ var arrSearchExpandedKeys = [];
223
+ var arrDataVisible = [];
224
+ if (value) {
225
+ arrDataVisible = _this3.touchFilterTreeData(arrData, value, arrSearchExpandedKeys);
226
+ } else {
227
+ arrDataVisible = arrData;
228
+ }
229
+ if (onSearchCallback && typeof onSearchCallback === 'function') {
230
+ onSearchCallback(arrDataVisible, value, arrSearchExpandedKeys);
231
+ }
232
+ _this3.setState({
233
+ arrDataVisible: arrDataVisible, // 树数据源-显示数据
234
+ arrSearchExpandedKeys: arrSearchExpandedKeys, // 查询时,树默认展开节点
235
+ treevisible: false // 隐藏树
236
+ }, function () {
237
+ _this3.setState({
238
+ treevisible: true // 显示树
239
+ });
240
+ });
241
+ };
242
+
243
+ this.touchFilterTreeData = function (arrAllData, searchValue, expandedKeys) {
244
+ var _props$objTreeProps3 = _this3.props.objTreeProps,
245
+ objTreeProps = _props$objTreeProps3 === undefined ? {} : _props$objTreeProps3;
246
+ var _objTreeProps$titleFi = objTreeProps.titleField,
247
+ titleField = _objTreeProps$titleFi === undefined ? 'title' : _objTreeProps$titleFi,
248
+ _objTreeProps$keyFiel2 = objTreeProps.keyField,
249
+ keyField = _objTreeProps$keyFiel2 === undefined ? 'key' : _objTreeProps$keyFiel2;
250
+
251
+ var filteredData = arrAllData.map(function (item) {
252
+ // 递归过滤子节点
253
+ var children = item.children ? _this3.touchFilterTreeData(item.children, searchValue, expandedKeys) : [];
254
+ // 如果节点名字匹配,或者子节点匹配
255
+ if (item[titleField].includes(searchValue) || children.length > 0) {
256
+ expandedKeys.push(item[keyField]); // 记录展开的节点 key
257
+ return (0, _extends3['default'])({}, item, {
258
+ children: children // 返回匹配的子节点
259
+ });
260
+ }
261
+ return null;
262
+ }).filter(function (item) {
263
+ return item !== null;
264
+ }); // 过滤掉没有匹配的节点
265
+ return filteredData;
266
+ };
267
+
268
+ this.touchSelect = function (selectedKeys, info) {
269
+ var _props$objTreeProps4 = _this3.props.objTreeProps,
270
+ objTreeProps = _props$objTreeProps4 === undefined ? {} : _props$objTreeProps4;
271
+ var onSelectCallback = objTreeProps.onSelectCallback;
272
+
273
+ if (onSelectCallback && typeof onSelectCallback === 'function') {
274
+ onSelectCallback(selectedKeys, info);
275
+ }
276
+ _this3.setState({
277
+ selectedKeys: selectedKeys // 选中节点key Array
278
+ });
279
+ };
280
+
281
+ this.touchRenderTreeNodes = function (arrDataVisible) {
282
+ var _props$objTreeProps5 = _this3.props.objTreeProps,
283
+ objTreeProps = _props$objTreeProps5 === undefined ? {} : _props$objTreeProps5;
284
+ var touchRenderNode = objTreeProps.touchRenderNode,
285
+ _objTreeProps$titleFi2 = objTreeProps.titleField,
286
+ titleField = _objTreeProps$titleFi2 === undefined ? 'title' : _objTreeProps$titleFi2,
287
+ _objTreeProps$countFi = objTreeProps.countField,
288
+ countField = _objTreeProps$countFi === undefined ? 'count' : _objTreeProps$countFi,
289
+ _objTreeProps$keyFiel3 = objTreeProps.keyField,
290
+ keyField = _objTreeProps$keyFiel3 === undefined ? 'key' : _objTreeProps$keyFiel3;
291
+
292
+ return arrDataVisible.map(function (item) {
293
+ var children = item.children;
294
+
295
+ var title = item[titleField]; // 节点标题
296
+ var count = item[countField]; // 节点计数
297
+ var key = item[keyField]; // 节点key
298
+ var objItemNew = (0, _extends3['default'])({}, item);
299
+ if (touchRenderNode && typeof touchRenderNode === 'function') {
300
+ objItemNew = touchRenderNode(item);
301
+ }
302
+ return _react2['default'].createElement(
303
+ TreeNode,
304
+ (0, _extends3['default'])({
305
+ title: count ? title + '(' + count + ')' : title,
306
+ key: key
307
+ }, objItemNew, {
308
+ objNode: item // 节点信息-原
309
+ , objNodeNew: objItemNew // 节点信息-新-处理后的数据
310
+ }),
311
+ children ? _this3.touchRenderTreeNodes(children) : null
312
+ );
313
+ });
314
+ };
315
+ };
316
+
317
+ exports['default'] = Easy3wTree;
318
+ module.exports = exports['default'];