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.
- package/README.md +17 -1
- package/assets/btn.css +7 -1
- package/assets/card.css +14 -0
- package/assets/editBigTable.css +17 -0
- package/assets/flow.css +1235 -224
- package/assets/formPage.css +212 -5
- package/assets/gridPage.css +12 -2
- package/assets/index.css +1610 -348
- package/assets/login.css +0 -3
- package/assets/tree.css +4 -0
- package/lib/Easy3wButton/index.js +4 -2
- package/lib/Easy3wButtonOne/index.js +10 -2
- package/lib/Easy3wCaHandler/index.js +130 -24
- package/lib/Easy3wCard/index.js +11 -53
- package/lib/Easy3wCard/indexM.js +80 -0
- package/lib/Easy3wCard/indexPC.js +75 -0
- package/lib/Easy3wCol/index.js +53 -0
- package/lib/Easy3wDownLoad/index copy.js +333 -0
- package/lib/Easy3wDownLoad/index.js +129 -19
- package/lib/Easy3wEditBigTable/Easy3wEditBigTableForm.js +295 -0
- package/lib/Easy3wEditBigTable/Editors/EditorNumber.js +92 -0
- package/lib/Easy3wEditBigTable/Editors/EditorsDatePicker.js +168 -0
- package/lib/Easy3wEditBigTable/Editors/EditorsInputNumber.js +141 -0
- package/lib/Easy3wEditBigTable/index.js +1175 -0
- package/lib/Easy3wFlow/index.js +722 -25
- package/lib/Easy3wFormPage/index.js +28 -1553
- package/lib/Easy3wFormPage/indexM.js +4274 -0
- package/lib/Easy3wFormPage/indexPC.js +4006 -0
- package/lib/Easy3wGetDesensitization/index.js +43 -0
- package/lib/Easy3wGridCheckBox/index.js +1 -1
- package/lib/Easy3wGridDatePicker/index.js +1 -1
- package/lib/Easy3wGridDateTimePicker/index.js +1 -1
- package/lib/Easy3wGridInput/index.js +31 -4
- package/lib/Easy3wGridInputAmount/index.js +93 -0
- package/lib/Easy3wGridInputDigit/index.js +83 -0
- package/lib/Easy3wGridInputEmail/index.js +73 -0
- package/lib/Easy3wGridPage/index.js +10 -580
- package/lib/Easy3wGridPage/indexM.js +696 -0
- package/lib/Easy3wGridPage/indexPC.js +668 -0
- package/lib/Easy3wGridSelect/index.js +4 -2
- package/lib/Easy3wGridTextArea/index.js +57 -6
- package/lib/Easy3wModal/index.js +180 -7
- package/lib/Easy3wRow/index.js +53 -0
- package/lib/Easy3wTree/index.js +318 -0
- package/lib/Easy3wUIConfig/index.js +30 -0
- package/lib/Easy3wUpload/index.js +86 -42
- package/lib/Easy3wUploadB/index copy 2.js +1011 -0
- package/lib/Easy3wUploadB/index copy 3.js +1088 -0
- package/lib/Easy3wUploadB/index.js +300 -145
- package/lib/Easy3wUploadM/index copy.js +523 -0
- package/lib/Easy3wUploadM/index.js +122 -51
- package/lib/index.js +81 -0
- 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
|
-
|
|
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:
|
|
69
|
-
})(_react2['default'].createElement(TextArea, (0, _extends3['default'])({
|
|
119
|
+
rules: rules
|
|
120
|
+
})(_react2['default'].createElement(TextArea, (0, _extends3['default'])({ style: { minWidth: 80 } }, cmptPros)))
|
|
70
121
|
);
|
|
71
122
|
};
|
|
72
123
|
|
package/lib/Easy3wModal/index.js
CHANGED
|
@@ -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
|
-
|
|
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'];
|