dlt-for-react 1.1.16 → 1.1.17
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/HqCheckButton/index.less +13 -0
- package/assets/HqImage/index.less +11 -0
- package/assets/HqInputPicker/index.less +8 -0
- package/assets/selector/resultview/index.less +53 -0
- package/assets/selector/selectormodal/index.less +15 -0
- package/assets/selector/table/index.less +211 -0
- package/assets/selector/tree/index.less +138 -0
- package/assets/stuSelector/index.less +24 -0
- package/assets/teaSelector/index.less +4 -0
- package/lib/components/HqCascader/index.js +306 -0
- package/lib/components/HqCheckBox/index.js +375 -0
- package/lib/components/HqCheckButton/index.js +284 -0
- package/lib/components/HqConfirm/index.js +81 -0
- package/lib/components/HqFormItem/FormRules.js +27 -0
- package/lib/components/HqFormItem/index.js +309 -0
- package/lib/components/HqImage/index.js +553 -0
- package/lib/components/HqInputPicker/edit-page.js +585 -0
- package/lib/components/HqInputPicker/index.js +226 -0
- package/lib/components/HqInputPicker/input-const.js +134 -0
- package/lib/components/HqInputPicker/render.js +2496 -0
- package/lib/components/HqInputPicker/setting-checkbox.js +853 -0
- package/lib/components/HqInputPicker/setting-datepicker.js +430 -0
- package/lib/components/HqInputPicker/setting-datetimepicker.js +443 -0
- package/lib/components/HqInputPicker/setting-input.js +555 -0
- package/lib/components/HqInputPicker/setting-inputNumber.js +658 -0
- package/lib/components/HqInputPicker/setting-monthpicker.js +434 -0
- package/lib/components/HqInputPicker/setting-multiSelect.js +533 -0
- package/lib/components/HqInputPicker/setting-nhcascader.js +588 -0
- package/lib/components/HqInputPicker/setting-old-upload.js +428 -0
- package/lib/components/HqInputPicker/setting-radio.js +468 -0
- package/lib/components/HqInputPicker/setting-rangepicker.js +466 -0
- package/lib/components/HqInputPicker/setting-select.js +534 -0
- package/lib/components/HqInputPicker/setting-stu-selector.js +508 -0
- package/lib/components/HqInputPicker/setting-switch.js +274 -0
- package/lib/components/HqInputPicker/setting-tea-selector.js +508 -0
- package/lib/components/HqInputPicker/setting-textarea.js +619 -0
- package/lib/components/HqInputPicker/setting-timepicker.js +437 -0
- package/lib/components/HqInputPicker/setting-upload.js +795 -0
- package/lib/components/HqMultiSelect/index.js +495 -0
- package/lib/components/HqOldUpload/index.js +350 -0
- package/lib/components/HqSelect/getSelectName.js +20 -0
- package/lib/components/HqSelect/index.js +495 -0
- package/lib/components/HqSelector/HqLsrySelector/index.js +269 -267
- package/lib/components/HqSelector/HqRySelector/index.js +4 -2
- package/lib/components/HqSelector/HqWzSelector/index.js +4 -2
- package/lib/components/HqStuSelector/index.js +267 -0
- package/lib/components/HqTeaSelector/index.js +221 -0
- package/lib/components/KyCollapse/index.js +23 -24
- package/lib/components/KyContainerFrame/index.js +2 -2
- package/lib/components/KyEditableTable/component.js +38 -38
- package/lib/components/KyEditableTable/index.js +203 -181
- package/lib/components/KyExcel/index.js +191 -153
- package/lib/components/KyModal/index.js +43 -33
- package/lib/components/KyTable/AddFieldsModal.js +66 -59
- package/lib/components/KyTable/checkButtons.js +3 -13
- package/lib/components/KyTable/index.js +2 -2
- package/lib/components/KyTableCardList/AddFieldsModal.js +280 -282
- package/lib/components/KyTableCardList/index.js +2 -2
- package/lib/components/KyTree/index.js +7 -7
- package/lib/components/KyUpload/index.js +170 -165
- package/lib/components/NHSelector/ListSort/index.js +411 -0
- package/lib/components/NHSelector/index.js +636 -0
- package/lib/components/NHSelector/resultview/index.js +408 -0
- package/lib/components/NHSelector/selectormodal/index.js +303 -0
- package/lib/components/NHSelector/table/index.js +784 -0
- package/lib/components/NHSelector/tree/index.js +554 -0
- package/lib/index.js +146 -36
- package/lib/layouts/LeftMenu/index.js +6 -6
- package/lib/layouts/Login/index-pre.js +107 -103
- package/lib/layouts/Login/index.js +2 -2
- package/lib/layouts/Login/login.js +178 -172
- package/lib/layouts/NavigationBar/index.js +67 -67
- package/lib/layouts/Top/editPassWord.js +84 -64
- package/lib/layouts/Top/index.js +117 -117
- package/lib/layouts/TopMenu/index.js +53 -53
- package/lib/layouts/layout/index.js +115 -118
- package/lib/layouts/mixTop/index.js +95 -95
- package/lib/layouts/settingDrawer/index.js +96 -96
- package/lib/routes/AuthorizedRoute.js +33 -32
- package/lib/utils/NHCore.js +65 -65
- package/package.json +3 -3
- package/lib/utils/createUuid.js +0 -40
- package/lib/utils/getLoginUser.js +0 -10
- package/lib/utils/getSize.js +0 -27
|
@@ -0,0 +1,306 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = undefined;
|
|
7
|
+
|
|
8
|
+
var _extends2 = require("babel-runtime/helpers/extends");
|
|
9
|
+
|
|
10
|
+
var _extends3 = _interopRequireDefault(_extends2);
|
|
11
|
+
|
|
12
|
+
var _cascader = require("antd/lib/cascader");
|
|
13
|
+
|
|
14
|
+
var _cascader2 = _interopRequireDefault(_cascader);
|
|
15
|
+
|
|
16
|
+
var _getPrototypeOf = require("babel-runtime/core-js/object/get-prototype-of");
|
|
17
|
+
|
|
18
|
+
var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf);
|
|
19
|
+
|
|
20
|
+
var _classCallCheck2 = require("babel-runtime/helpers/classCallCheck");
|
|
21
|
+
|
|
22
|
+
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
|
|
23
|
+
|
|
24
|
+
var _createClass2 = require("babel-runtime/helpers/createClass");
|
|
25
|
+
|
|
26
|
+
var _createClass3 = _interopRequireDefault(_createClass2);
|
|
27
|
+
|
|
28
|
+
var _possibleConstructorReturn2 = require("babel-runtime/helpers/possibleConstructorReturn");
|
|
29
|
+
|
|
30
|
+
var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
|
|
31
|
+
|
|
32
|
+
var _inherits2 = require("babel-runtime/helpers/inherits");
|
|
33
|
+
|
|
34
|
+
var _inherits3 = _interopRequireDefault(_inherits2);
|
|
35
|
+
|
|
36
|
+
require("antd/lib/cascader/style");
|
|
37
|
+
|
|
38
|
+
var _react = require("react");
|
|
39
|
+
|
|
40
|
+
var _react2 = _interopRequireDefault(_react);
|
|
41
|
+
|
|
42
|
+
var _NHFetch = require("../../utils/NHFetch");
|
|
43
|
+
|
|
44
|
+
var _NHFetch2 = _interopRequireDefault(_NHFetch);
|
|
45
|
+
|
|
46
|
+
var _propTypes = require("prop-types");
|
|
47
|
+
|
|
48
|
+
var _propTypes2 = _interopRequireDefault(_propTypes);
|
|
49
|
+
|
|
50
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
* 级联选择框
|
|
54
|
+
* 1、符合自定义表单组件规范,结合FormItem使用时不会出现警告信息
|
|
55
|
+
* 2、使用sign属性时,后台对应sign标识的sql查询数据语句列必须以value、label作为别名
|
|
56
|
+
* Author: zengxiangkai@ly-sky.com
|
|
57
|
+
* Created on: 2018-04-02 14:44:22
|
|
58
|
+
* Version: 1.0
|
|
59
|
+
* Modify log:
|
|
60
|
+
*
|
|
61
|
+
* 2019-04-16 by litugui 调用onChange方法时,添加selectedOptions传递到父级的onChange
|
|
62
|
+
* 2019-04-23 修改:可以接受最后一级下拉框的值,自动获取父级下拉框的值
|
|
63
|
+
*/
|
|
64
|
+
var HqCascader = function (_React$Component) {
|
|
65
|
+
(0, _inherits3.default)(HqCascader, _React$Component);
|
|
66
|
+
|
|
67
|
+
function HqCascader(props) {
|
|
68
|
+
(0, _classCallCheck3.default)(this, HqCascader);
|
|
69
|
+
|
|
70
|
+
var _this = (0, _possibleConstructorReturn3.default)(this, (HqCascader.__proto__ || (0, _getPrototypeOf2.default)(HqCascader)).call(this, props));
|
|
71
|
+
|
|
72
|
+
_initialiseProps.call(_this);
|
|
73
|
+
|
|
74
|
+
var value = [];
|
|
75
|
+
_this.state = {
|
|
76
|
+
options: [],
|
|
77
|
+
value: value
|
|
78
|
+
};
|
|
79
|
+
return _this;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
//初始加载第一级级联下拉数据
|
|
83
|
+
|
|
84
|
+
|
|
85
|
+
(0, _createClass3.default)(HqCascader, [{
|
|
86
|
+
key: "componentDidMount",
|
|
87
|
+
value: function componentDidMount() {
|
|
88
|
+
var _this2 = this;
|
|
89
|
+
|
|
90
|
+
var level = 1;
|
|
91
|
+
var cascaderValue = "";
|
|
92
|
+
|
|
93
|
+
if (typeof this.props.value === "string") {
|
|
94
|
+
this.getValues(function () {
|
|
95
|
+
_this2.getInitData(level, cascaderValue);
|
|
96
|
+
});
|
|
97
|
+
} else {
|
|
98
|
+
this.setState({ value: this.props.value }, function () {
|
|
99
|
+
_this2.getInitData(level, cascaderValue);
|
|
100
|
+
});
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
}, {
|
|
104
|
+
key: "UNSAFE_componentWillReceiveProps",
|
|
105
|
+
value: function UNSAFE_componentWillReceiveProps(nextProps) {
|
|
106
|
+
// Should be a controlled component.
|
|
107
|
+
if ("value" in nextProps) {
|
|
108
|
+
var value = nextProps.value;
|
|
109
|
+
if (typeof value === "string") {
|
|
110
|
+
if (this.props.value !== nextProps.value) {
|
|
111
|
+
this.getValues();
|
|
112
|
+
}
|
|
113
|
+
} else {
|
|
114
|
+
this.setState({ value: value });
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
//获取初始化数据
|
|
120
|
+
|
|
121
|
+
|
|
122
|
+
//当选择父项时,动态加载子项数据
|
|
123
|
+
|
|
124
|
+
|
|
125
|
+
//从后台查询级联下拉数据
|
|
126
|
+
|
|
127
|
+
|
|
128
|
+
//级联选择框值变化时回调
|
|
129
|
+
|
|
130
|
+
|
|
131
|
+
//提供onChange回调方法给Form表单,表明这是一个自定义表单受控组件
|
|
132
|
+
|
|
133
|
+
}, {
|
|
134
|
+
key: "render",
|
|
135
|
+
value: function render() {
|
|
136
|
+
var _state = this.state,
|
|
137
|
+
options = _state.options,
|
|
138
|
+
value = _state.value;
|
|
139
|
+
var _props = this.props,
|
|
140
|
+
style = _props.style,
|
|
141
|
+
placeholder = _props.placeholder,
|
|
142
|
+
changeOnSelect = _props.changeOnSelect,
|
|
143
|
+
disabled = _props.disabled;
|
|
144
|
+
|
|
145
|
+
return _react2.default.createElement(_cascader2.default, {
|
|
146
|
+
options: options,
|
|
147
|
+
loadData: this.loadData,
|
|
148
|
+
onChange: this.handleCascaderChange,
|
|
149
|
+
changeOnSelect: changeOnSelect,
|
|
150
|
+
style: style,
|
|
151
|
+
placeholder: placeholder,
|
|
152
|
+
disabled: disabled,
|
|
153
|
+
value: value,
|
|
154
|
+
notFoundContent: "无数据"
|
|
155
|
+
});
|
|
156
|
+
}
|
|
157
|
+
}]);
|
|
158
|
+
return HqCascader;
|
|
159
|
+
}(_react2.default.Component);
|
|
160
|
+
|
|
161
|
+
//默认属性值
|
|
162
|
+
|
|
163
|
+
|
|
164
|
+
var _initialiseProps = function _initialiseProps() {
|
|
165
|
+
var _this3 = this;
|
|
166
|
+
|
|
167
|
+
this.getInitData = function (level, cascaderValue, parentOption) {
|
|
168
|
+
var _props2 = _this3.props,
|
|
169
|
+
sign = _props2.sign,
|
|
170
|
+
flexibleUrl = _props2.flexibleUrl,
|
|
171
|
+
baseUrl = _props2.baseUrl;
|
|
172
|
+
|
|
173
|
+
var params = (0, _extends3.default)({}, _this3.props.params, { level: level, sign: sign, cascaderValue: cascaderValue });
|
|
174
|
+
params.t = new Date().getTime();
|
|
175
|
+
(0, _NHFetch2.default)((baseUrl === undefined ? "" : baseUrl) + (flexibleUrl ? flexibleUrl : "/proData/selectCascaderList"), "GET", params).then(function (res) {
|
|
176
|
+
if (res) {
|
|
177
|
+
var data = res.data;
|
|
178
|
+
if (data) {
|
|
179
|
+
if (parentOption) {
|
|
180
|
+
parentOption.loading = false;
|
|
181
|
+
parentOption.children = data;
|
|
182
|
+
_this3.setState({
|
|
183
|
+
options: _this3.state.options
|
|
184
|
+
});
|
|
185
|
+
} else {
|
|
186
|
+
_this3.setState({
|
|
187
|
+
options: data
|
|
188
|
+
});
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
//获取初始值,判断是否需要加载下一级级联数据
|
|
192
|
+
var initValue = _this3.state.value;
|
|
193
|
+
if (initValue && initValue.length > 0) {
|
|
194
|
+
var targetOption = data.filter(function (item) {
|
|
195
|
+
return item.value === initValue[level - 1];
|
|
196
|
+
})[0];
|
|
197
|
+
if (targetOption) {
|
|
198
|
+
targetOption.loading = true;
|
|
199
|
+
if (level < initValue.length) {
|
|
200
|
+
_this3.getInitData(level + 1, initValue[level - 1], targetOption);
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
} else {
|
|
205
|
+
_this3.setState({ options: [] });
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
});
|
|
209
|
+
};
|
|
210
|
+
|
|
211
|
+
this.getValues = function (callback) {
|
|
212
|
+
var _props3 = _this3.props,
|
|
213
|
+
sign = _props3.sign,
|
|
214
|
+
value = _props3.value,
|
|
215
|
+
baseUrl = _props3.baseUrl;
|
|
216
|
+
|
|
217
|
+
var params = {
|
|
218
|
+
sign: sign,
|
|
219
|
+
value: value
|
|
220
|
+
};
|
|
221
|
+
params.t = new Date().getTime();
|
|
222
|
+
(0, _NHFetch2.default)((baseUrl === undefined ? "" : baseUrl) + "/proData/selectValues", "GET", params).then(function (res) {
|
|
223
|
+
if (res && res.code === 200 && res.data) {
|
|
224
|
+
_this3.setState({ value: res.data }, callback);
|
|
225
|
+
}
|
|
226
|
+
});
|
|
227
|
+
};
|
|
228
|
+
|
|
229
|
+
this.loadData = function (selectedOptions) {
|
|
230
|
+
var targetOption = selectedOptions[selectedOptions.length - 1];
|
|
231
|
+
targetOption.loading = true;
|
|
232
|
+
var level = targetOption.currLevel + 1;
|
|
233
|
+
var cascaderValue = targetOption.value;
|
|
234
|
+
_this3.getCascaderData(level, cascaderValue, targetOption);
|
|
235
|
+
};
|
|
236
|
+
|
|
237
|
+
this.getCascaderData = function (level, cascaderValue, targetOption) {
|
|
238
|
+
var _props4 = _this3.props,
|
|
239
|
+
sign = _props4.sign,
|
|
240
|
+
flexibleUrl = _props4.flexibleUrl,
|
|
241
|
+
baseUrl = _props4.baseUrl;
|
|
242
|
+
|
|
243
|
+
var params = (0, _extends3.default)({}, _this3.props.params, { level: level, sign: sign, cascaderValue: cascaderValue });
|
|
244
|
+
params.t = new Date().getTime();
|
|
245
|
+
(0, _NHFetch2.default)((baseUrl === undefined ? "" : baseUrl) + (flexibleUrl ? flexibleUrl : "/proData/selectCascaderList"), "GET", params).then(function (res) {
|
|
246
|
+
if (res) {
|
|
247
|
+
if (res.data) {
|
|
248
|
+
if (targetOption) {
|
|
249
|
+
targetOption.loading = false;
|
|
250
|
+
targetOption.children = res.data;
|
|
251
|
+
_this3.setState({
|
|
252
|
+
options: _this3.state.options
|
|
253
|
+
});
|
|
254
|
+
} else {
|
|
255
|
+
_this3.setState({
|
|
256
|
+
options: res.data
|
|
257
|
+
});
|
|
258
|
+
}
|
|
259
|
+
} else {
|
|
260
|
+
_this3.setState({ options: [] });
|
|
261
|
+
}
|
|
262
|
+
}
|
|
263
|
+
});
|
|
264
|
+
};
|
|
265
|
+
|
|
266
|
+
this.handleCascaderChange = function (value, selectedOptions) {
|
|
267
|
+
if (!("value" in _this3.props)) {
|
|
268
|
+
_this3.setState({
|
|
269
|
+
value: value
|
|
270
|
+
});
|
|
271
|
+
}
|
|
272
|
+
|
|
273
|
+
_this3.triggerChange(value, selectedOptions);
|
|
274
|
+
};
|
|
275
|
+
|
|
276
|
+
this.triggerChange = function (changedValue, selectedOptions) {
|
|
277
|
+
// Should provide an event to pass value to Form.
|
|
278
|
+
var onChange = _this3.props.onChange;
|
|
279
|
+
if (onChange) {
|
|
280
|
+
onChange(changedValue, selectedOptions);
|
|
281
|
+
}
|
|
282
|
+
};
|
|
283
|
+
};
|
|
284
|
+
|
|
285
|
+
exports.default = HqCascader;
|
|
286
|
+
HqCascader.defaultProps = {
|
|
287
|
+
sign: "", //数据源标识
|
|
288
|
+
placeholder: "请选择...", //输入框占位文本
|
|
289
|
+
disabled: false, //是否禁用
|
|
290
|
+
changeOnSelect: true //当此项为 true 时,点选每级菜单选项值都会发生变化
|
|
291
|
+
};
|
|
292
|
+
|
|
293
|
+
//属性检查
|
|
294
|
+
HqCascader.propTypes = {
|
|
295
|
+
sign: _propTypes2.default.string.isRequired, //数据源标识
|
|
296
|
+
style: _propTypes2.default.object, //样式
|
|
297
|
+
placeholder: _propTypes2.default.string, //输入框占位文本
|
|
298
|
+
disabled: _propTypes2.default.bool, //是否禁用
|
|
299
|
+
defaultValue: _propTypes2.default.any, //默认选中项
|
|
300
|
+
value: _propTypes2.default.any, //初始值
|
|
301
|
+
changeOnSelect: _propTypes2.default.bool, //当此项为 true 时,点选每级菜单选项值都会发生变化
|
|
302
|
+
onChange: _propTypes2.default.func, //选择完成后的回调
|
|
303
|
+
baseUrl: _propTypes2.default.string, //请求路径的前缀,可通过改参数控制访问的后端服务,如果不设置,则会去访问当前前端服务对应的后端服务,例如:api/sm-bpm-expansion
|
|
304
|
+
params: _propTypes2.default.object, // 请求参数
|
|
305
|
+
flexibleUrl: _propTypes2.default.string // 自定义请求地址
|
|
306
|
+
};
|
|
@@ -0,0 +1,375 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
|
|
7
|
+
var _row = require("antd/lib/row");
|
|
8
|
+
|
|
9
|
+
var _row2 = _interopRequireDefault(_row);
|
|
10
|
+
|
|
11
|
+
var _col = require("antd/lib/col");
|
|
12
|
+
|
|
13
|
+
var _col2 = _interopRequireDefault(_col);
|
|
14
|
+
|
|
15
|
+
var _toConsumableArray2 = require("babel-runtime/helpers/toConsumableArray");
|
|
16
|
+
|
|
17
|
+
var _toConsumableArray3 = _interopRequireDefault(_toConsumableArray2);
|
|
18
|
+
|
|
19
|
+
var _getPrototypeOf = require("babel-runtime/core-js/object/get-prototype-of");
|
|
20
|
+
|
|
21
|
+
var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf);
|
|
22
|
+
|
|
23
|
+
var _classCallCheck2 = require("babel-runtime/helpers/classCallCheck");
|
|
24
|
+
|
|
25
|
+
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
|
|
26
|
+
|
|
27
|
+
var _createClass2 = require("babel-runtime/helpers/createClass");
|
|
28
|
+
|
|
29
|
+
var _createClass3 = _interopRequireDefault(_createClass2);
|
|
30
|
+
|
|
31
|
+
var _possibleConstructorReturn2 = require("babel-runtime/helpers/possibleConstructorReturn");
|
|
32
|
+
|
|
33
|
+
var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
|
|
34
|
+
|
|
35
|
+
var _inherits2 = require("babel-runtime/helpers/inherits");
|
|
36
|
+
|
|
37
|
+
var _inherits3 = _interopRequireDefault(_inherits2);
|
|
38
|
+
|
|
39
|
+
var _checkbox = require("antd/lib/checkbox");
|
|
40
|
+
|
|
41
|
+
var _checkbox2 = _interopRequireDefault(_checkbox);
|
|
42
|
+
|
|
43
|
+
require("antd/lib/row/style");
|
|
44
|
+
|
|
45
|
+
require("antd/lib/col/style");
|
|
46
|
+
|
|
47
|
+
require("antd/lib/checkbox/style");
|
|
48
|
+
|
|
49
|
+
var _react = require("react");
|
|
50
|
+
|
|
51
|
+
var _react2 = _interopRequireDefault(_react);
|
|
52
|
+
|
|
53
|
+
var _propTypes = require("prop-types");
|
|
54
|
+
|
|
55
|
+
var _propTypes2 = _interopRequireDefault(_propTypes);
|
|
56
|
+
|
|
57
|
+
var _NHFetch = require("../../utils/NHFetch");
|
|
58
|
+
|
|
59
|
+
var _NHFetch2 = _interopRequireDefault(_NHFetch);
|
|
60
|
+
|
|
61
|
+
var _equalsObj = require("../../utils/equalsObj");
|
|
62
|
+
|
|
63
|
+
var _equalsObj2 = _interopRequireDefault(_equalsObj);
|
|
64
|
+
|
|
65
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
66
|
+
|
|
67
|
+
var pathUrl = "/proData/selectDataList";
|
|
68
|
+
var CheckboxGroup = _checkbox2.default.Group;
|
|
69
|
+
|
|
70
|
+
/**
|
|
71
|
+
* @Description: Checkbox多选框组件
|
|
72
|
+
* @author weishihuai
|
|
73
|
+
* @date 2019/3/20 14:36
|
|
74
|
+
* 更新日志:
|
|
75
|
+
* 2019-05-27:增加gridLayout布局样式,默认false by zengxiangkai
|
|
76
|
+
* 说明:
|
|
77
|
+
* 1. 使用sign标识从后台查询数据源时,以'DMK_'加上对应代码库标识,如: sign={'DMK_WJCF_WJLX'};
|
|
78
|
+
* 2. 使用自定义数据源时,需注意格式. 如: [{label: 'A', value: 'A'},{label: 'B', value: 'B'},{label: 'C', value: 'C'}];
|
|
79
|
+
* 3. 使用checkBoxGroupDisabled属性可动态配置整个复选框禁用、启用状态;
|
|
80
|
+
* 4. 使用checkBoxDisabledValueArr属性可控制按钮组中哪些checkbox需要被禁用;
|
|
81
|
+
* 5. 使用filterType集合filterData可以过滤指定按钮, 如: filterType={'save'} filterData={['A']};
|
|
82
|
+
* 6. 使用columnsNum属性可控制一行显示几个复选框,不传默认显示4个, 取值范围: [1,2,3,4,6,8];
|
|
83
|
+
*
|
|
84
|
+
* 使用示例:
|
|
85
|
+
<HqCheckBox sign={'DMK_XTGL_WJLX'}
|
|
86
|
+
checkBoxGroupDisabled={false}
|
|
87
|
+
defaultValue={['Apple']}
|
|
88
|
+
onChange={this.onChange}
|
|
89
|
+
columnsNum={1}
|
|
90
|
+
dataSource={[
|
|
91
|
+
{label: 'A', value: 'A'},
|
|
92
|
+
{label: 'B', value: 'B'},
|
|
93
|
+
{label: 'C', value: 'C'},
|
|
94
|
+
]}
|
|
95
|
+
filterType={'remove'}
|
|
96
|
+
filterData={['A']}
|
|
97
|
+
checkBoxDisabledValueArr={['A', 'B']}
|
|
98
|
+
/>
|
|
99
|
+
*
|
|
100
|
+
*/
|
|
101
|
+
|
|
102
|
+
var HqCheckBox = function (_React$Component) {
|
|
103
|
+
(0, _inherits3.default)(HqCheckBox, _React$Component);
|
|
104
|
+
|
|
105
|
+
function HqCheckBox(props) {
|
|
106
|
+
(0, _classCallCheck3.default)(this, HqCheckBox);
|
|
107
|
+
|
|
108
|
+
var _this = (0, _possibleConstructorReturn3.default)(this, (HqCheckBox.__proto__ || (0, _getPrototypeOf2.default)(HqCheckBox)).call(this, props));
|
|
109
|
+
|
|
110
|
+
_this.getDataSource = function (sign) {
|
|
111
|
+
var baseUrl = _this.props.baseUrl;
|
|
112
|
+
|
|
113
|
+
if (!sign) {
|
|
114
|
+
_this.getCustomDataSource();
|
|
115
|
+
} else {
|
|
116
|
+
(0, _NHFetch2.default)((baseUrl === undefined ? "" : baseUrl) + pathUrl, "GET", {
|
|
117
|
+
sign: sign,
|
|
118
|
+
t: new Date().getTime()
|
|
119
|
+
}).then(function (res) {
|
|
120
|
+
if (res) {
|
|
121
|
+
var data = res.data;
|
|
122
|
+
if (data) {
|
|
123
|
+
_this.setState({
|
|
124
|
+
data: [].concat((0, _toConsumableArray3.default)(data))
|
|
125
|
+
});
|
|
126
|
+
} else {
|
|
127
|
+
_this.getCustomDataSource();
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
}).catch(function (err) {
|
|
131
|
+
_this.getCustomDataSource();
|
|
132
|
+
});
|
|
133
|
+
}
|
|
134
|
+
};
|
|
135
|
+
|
|
136
|
+
_this.getCustomDataSource = function () {
|
|
137
|
+
var _this$props$dataSourc = _this.props.dataSource,
|
|
138
|
+
dataSource = _this$props$dataSourc === undefined ? [] : _this$props$dataSourc;
|
|
139
|
+
|
|
140
|
+
if (dataSource && dataSource.length > 0) {
|
|
141
|
+
_this.setState({
|
|
142
|
+
data: [].concat((0, _toConsumableArray3.default)(dataSource))
|
|
143
|
+
});
|
|
144
|
+
}
|
|
145
|
+
};
|
|
146
|
+
|
|
147
|
+
_this.onCheckBoxChange = function (checkedValues) {
|
|
148
|
+
var onChange = _this.props.onChange;
|
|
149
|
+
var data = _this.state.data;
|
|
150
|
+
|
|
151
|
+
if (onChange && typeof onChange === "function") {
|
|
152
|
+
var checkedLabels = [];
|
|
153
|
+
data.forEach(function (item) {
|
|
154
|
+
var val = item.VALUE || item.value;
|
|
155
|
+
var index = checkedValues.indexOf(val);
|
|
156
|
+
if (index !== -1) {
|
|
157
|
+
var label = item.LABEL || item.label;
|
|
158
|
+
checkedLabels[index] = label;
|
|
159
|
+
}
|
|
160
|
+
});
|
|
161
|
+
onChange(checkedValues, checkedLabels);
|
|
162
|
+
}
|
|
163
|
+
_this.setState({
|
|
164
|
+
value: checkedValues
|
|
165
|
+
});
|
|
166
|
+
};
|
|
167
|
+
|
|
168
|
+
_this.isCheckBoxIsDisabled = function (checkBoxDisabledValueArr, value) {
|
|
169
|
+
if (checkBoxDisabledValueArr && checkBoxDisabledValueArr.length <= 0) {
|
|
170
|
+
return false;
|
|
171
|
+
}
|
|
172
|
+
var val = checkBoxDisabledValueArr.find(function (key) {
|
|
173
|
+
return value === key || value === key;
|
|
174
|
+
});
|
|
175
|
+
return val !== undefined;
|
|
176
|
+
};
|
|
177
|
+
|
|
178
|
+
_this.buildCheckBoxOptions = function (filteredData) {
|
|
179
|
+
var _this$props = _this.props,
|
|
180
|
+
checkBoxDisabledValueArr = _this$props.checkBoxDisabledValueArr,
|
|
181
|
+
gridLayout = _this$props.gridLayout,
|
|
182
|
+
columnsNum = _this$props.columnsNum;
|
|
183
|
+
|
|
184
|
+
|
|
185
|
+
var spanNum = 24 / columnsNum;
|
|
186
|
+
|
|
187
|
+
if (gridLayout) {
|
|
188
|
+
var options = filteredData.map(function (option, index) {
|
|
189
|
+
return _react2.default.createElement(
|
|
190
|
+
_col2.default,
|
|
191
|
+
{ span: spanNum, key: index },
|
|
192
|
+
_react2.default.createElement(
|
|
193
|
+
_checkbox2.default,
|
|
194
|
+
{
|
|
195
|
+
key: option.VALUE || option.value,
|
|
196
|
+
disabled: _this.isCheckBoxIsDisabled(checkBoxDisabledValueArr, option.VALUE || option.value),
|
|
197
|
+
value: option.VALUE || option.value
|
|
198
|
+
},
|
|
199
|
+
option.LABEL || option.label
|
|
200
|
+
)
|
|
201
|
+
);
|
|
202
|
+
});
|
|
203
|
+
return _react2.default.createElement(
|
|
204
|
+
_row2.default,
|
|
205
|
+
null,
|
|
206
|
+
options
|
|
207
|
+
);
|
|
208
|
+
} else {
|
|
209
|
+
return filteredData.map(function (option) {
|
|
210
|
+
return _react2.default.createElement(
|
|
211
|
+
_checkbox2.default,
|
|
212
|
+
{
|
|
213
|
+
key: option.VALUE || option.value,
|
|
214
|
+
disabled: _this.isCheckBoxIsDisabled(checkBoxDisabledValueArr, option.VALUE || option.value),
|
|
215
|
+
value: option.VALUE || option.value
|
|
216
|
+
},
|
|
217
|
+
option.LABEL || option.label
|
|
218
|
+
);
|
|
219
|
+
});
|
|
220
|
+
}
|
|
221
|
+
};
|
|
222
|
+
|
|
223
|
+
_this.state = {
|
|
224
|
+
data: [],
|
|
225
|
+
value: props.value || [] // checkbox选中值
|
|
226
|
+
};
|
|
227
|
+
return _this;
|
|
228
|
+
}
|
|
229
|
+
|
|
230
|
+
(0, _createClass3.default)(HqCheckBox, [{
|
|
231
|
+
key: "componentDidMount",
|
|
232
|
+
value: function componentDidMount() {
|
|
233
|
+
var sign = this.props.sign;
|
|
234
|
+
|
|
235
|
+
this.getDataSource(sign);
|
|
236
|
+
}
|
|
237
|
+
}, {
|
|
238
|
+
key: "UNSAFE_componentWillReceiveProps",
|
|
239
|
+
value: function UNSAFE_componentWillReceiveProps(nextProps) {
|
|
240
|
+
// if ('dataSource' in nextProps) {
|
|
241
|
+
// const dataSource = nextProps.dataSource;
|
|
242
|
+
// this.setState({
|
|
243
|
+
// data: dataSource
|
|
244
|
+
// });
|
|
245
|
+
// }
|
|
246
|
+
if ("value" in nextProps && !(0, _equalsObj2.default)(nextProps.value, this.props.value)) {
|
|
247
|
+
this.setState({
|
|
248
|
+
value: nextProps.value
|
|
249
|
+
});
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
|
|
253
|
+
//根据数据源标识从后台查询DataSource
|
|
254
|
+
|
|
255
|
+
|
|
256
|
+
//使用自定义的DataSource
|
|
257
|
+
|
|
258
|
+
|
|
259
|
+
//变化时回调函数
|
|
260
|
+
|
|
261
|
+
|
|
262
|
+
//检查复选框是否需要禁用
|
|
263
|
+
|
|
264
|
+
|
|
265
|
+
//组装CheckBox Options
|
|
266
|
+
|
|
267
|
+
}, {
|
|
268
|
+
key: "render",
|
|
269
|
+
value: function render() {
|
|
270
|
+
var _state = this.state,
|
|
271
|
+
_state$data = _state.data,
|
|
272
|
+
data = _state$data === undefined ? [] : _state$data,
|
|
273
|
+
_state$value = _state.value,
|
|
274
|
+
value = _state$value === undefined ? [] : _state$value;
|
|
275
|
+
var _props = this.props,
|
|
276
|
+
checkBoxGroupDisabled = _props.checkBoxGroupDisabled,
|
|
277
|
+
defaultValue = _props.defaultValue,
|
|
278
|
+
_props$filterType = _props.filterType,
|
|
279
|
+
filterType = _props$filterType === undefined ? "" : _props$filterType,
|
|
280
|
+
_props$filterData = _props.filterData,
|
|
281
|
+
filterData = _props$filterData === undefined ? [] : _props$filterData,
|
|
282
|
+
_props$style = _props.style,
|
|
283
|
+
style = _props$style === undefined ? {} : _props$style;
|
|
284
|
+
|
|
285
|
+
var checkBoxOptions = [];
|
|
286
|
+
|
|
287
|
+
//同时指定过滤类型和需要过滤的数据VALUE
|
|
288
|
+
if (filterType && filterData) {
|
|
289
|
+
switch (filterType) {
|
|
290
|
+
case "remove":
|
|
291
|
+
{
|
|
292
|
+
//过滤掉指定key的复选框
|
|
293
|
+
var filteredData = data.filter(function (item) {
|
|
294
|
+
var itemVal = item.VALUE || item.value;
|
|
295
|
+
var isExist = filterData.find(function (val) {
|
|
296
|
+
return val === itemVal;
|
|
297
|
+
});
|
|
298
|
+
return isExist === undefined;
|
|
299
|
+
});
|
|
300
|
+
if (filteredData && filteredData.length > 0) {
|
|
301
|
+
checkBoxOptions = this.buildCheckBoxOptions(filteredData);
|
|
302
|
+
}
|
|
303
|
+
break;
|
|
304
|
+
}
|
|
305
|
+
case "save":
|
|
306
|
+
{
|
|
307
|
+
//保留指定key值的复选框
|
|
308
|
+
var _filteredData = data.filter(function (item) {
|
|
309
|
+
var itemVal = item.VALUE || item.value;
|
|
310
|
+
var isExist = filterData.find(function (val) {
|
|
311
|
+
return val === itemVal;
|
|
312
|
+
});
|
|
313
|
+
return isExist !== undefined;
|
|
314
|
+
});
|
|
315
|
+
if (_filteredData && _filteredData.length > 0) {
|
|
316
|
+
checkBoxOptions = this.buildCheckBoxOptions(_filteredData);
|
|
317
|
+
}
|
|
318
|
+
break;
|
|
319
|
+
}
|
|
320
|
+
default:
|
|
321
|
+
{
|
|
322
|
+
checkBoxOptions = this.buildCheckBoxOptions(data);
|
|
323
|
+
break;
|
|
324
|
+
}
|
|
325
|
+
}
|
|
326
|
+
} else {
|
|
327
|
+
//不进行数据过滤
|
|
328
|
+
checkBoxOptions = this.buildCheckBoxOptions(data);
|
|
329
|
+
}
|
|
330
|
+
return _react2.default.createElement(
|
|
331
|
+
CheckboxGroup,
|
|
332
|
+
{
|
|
333
|
+
onChange: this.onCheckBoxChange,
|
|
334
|
+
disabled: checkBoxGroupDisabled,
|
|
335
|
+
defaultValue: defaultValue,
|
|
336
|
+
value: value,
|
|
337
|
+
style: style
|
|
338
|
+
},
|
|
339
|
+
checkBoxOptions
|
|
340
|
+
);
|
|
341
|
+
}
|
|
342
|
+
}]);
|
|
343
|
+
return HqCheckBox;
|
|
344
|
+
}(_react2.default.Component);
|
|
345
|
+
|
|
346
|
+
HqCheckBox.defaultProps = {
|
|
347
|
+
checkBoxGroupDisabled: false, //按钮组启用/禁用状态
|
|
348
|
+
checkBoxDisabledValueArr: [], //需要禁用的复选框的值(数组)
|
|
349
|
+
gridLayout: false,
|
|
350
|
+
columnsNum: 4
|
|
351
|
+
};
|
|
352
|
+
|
|
353
|
+
//属性检查
|
|
354
|
+
HqCheckBox.propTypes = {
|
|
355
|
+
sign: _propTypes2.default.string, //数据源标识
|
|
356
|
+
dataSource: _propTypes2.default.arrayOf(
|
|
357
|
+
//自定义数据源
|
|
358
|
+
_propTypes2.default.shape({
|
|
359
|
+
value: _propTypes2.default.string,
|
|
360
|
+
label: _propTypes2.default.node
|
|
361
|
+
})),
|
|
362
|
+
checkBoxGroupDisabled: _propTypes2.default.bool, //整个多选框按钮组启用/禁用状态
|
|
363
|
+
defaultValue: _propTypes2.default.array, //默认选中的选项
|
|
364
|
+
value: _propTypes2.default.array, //初始值
|
|
365
|
+
onChange: _propTypes2.default.func, //选项变化时的回调函数
|
|
366
|
+
checkBoxDisabledValueArr: _propTypes2.default.array, //需要禁用的复选框Value集合
|
|
367
|
+
filterType: _propTypes2.default.oneOf(["save", "remove"]), //过滤数据类型,save - 保留 remove - 移除
|
|
368
|
+
filterData: _propTypes2.default.array, //过滤数据, save - 保留指定的filterData remove - 移除指定的filterData
|
|
369
|
+
gridLayout: _propTypes2.default.bool, //是否使用响应式布局
|
|
370
|
+
columnsNum: _propTypes2.default.oneOf([1, 2, 3, 4, 6, 8]), //响应式布局每行显示复选框的个数,默认为4个
|
|
371
|
+
style: _propTypes2.default.object, // 样式
|
|
372
|
+
baseUrl: _propTypes2.default.string // 请求路径的前缀,可通过改参数控制访问的后端服务
|
|
373
|
+
};
|
|
374
|
+
|
|
375
|
+
exports.default = HqCheckBox;
|