UNPKG

13.7 kBJavaScriptView Raw
1'use strict';
2
3Object.defineProperty(exports, "__esModule", {
4 value: true
5});
6
7var _react = require('react');
8
9var _react2 = _interopRequireDefault(_react);
10
11var _propTypes = require('prop-types');
12
13var _propTypes2 = _interopRequireDefault(_propTypes);
14
15var _beeDropdown = require('bee-dropdown');
16
17var _beeDropdown2 = _interopRequireDefault(_beeDropdown);
18
19var _beeMenus = require('bee-menus');
20
21var _beeMenus2 = _interopRequireDefault(_beeMenus);
22
23var _beeButton = require('bee-button');
24
25var _beeButton2 = _interopRequireDefault(_beeButton);
26
27var _beeIcon = require('bee-icon');
28
29var _beeIcon2 = _interopRequireDefault(_beeIcon);
30
31var _i18n = require('./lib/i18n');
32
33var _i18n2 = _interopRequireDefault(_i18n);
34
35var _tool = require('bee-locale/build/tool');
36
37function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
38
39function _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; }
40
41function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
42
43function _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; }
44
45function _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); } /**
46 * 过滤行功能内的下拉条件
47 */
48
49var Item = _beeMenus2["default"].Item;
50
51var FilterDropDown = function (_Component) {
52 _inherits(FilterDropDown, _Component);
53
54 function FilterDropDown() {
55 _classCallCheck(this, FilterDropDown);
56
57 var _this = _possibleConstructorReturn(this, _Component.call(this));
58
59 _this.onSelectDropdown = function (item) {
60 var _this$props = _this.props,
61 onSelectDropdown = _this$props.onSelectDropdown,
62 filterDropdownType = _this$props.filterDropdownType;
63
64 if (onSelectDropdown) {
65 if (filterDropdownType == 'string') {
66 _this.setState({
67 selectValue: [item.key]
68 }, function () {
69 onSelectDropdown(item);
70 });
71 }
72 if (filterDropdownType == 'number') {
73 _this.setState({
74 selectNumberValue: [item.key]
75 }, function () {
76 onSelectDropdown(item);
77 });
78 }
79 }
80 };
81
82 _this.onClickClear = function () {
83 var onClickClear = _this.props.onClickClear;
84
85 if (onClickClear) {
86 _this.setState({
87 // selectValue: [],
88 // selectNumberValue: []
89 }, function () {
90 onClickClear();
91 });
92 }
93 };
94
95 _this.getMenu = function () {
96 var _this$state = _this.state,
97 selectValue = _this$state.selectValue,
98 selectNumberValue = _this$state.selectNumberValue;
99 var _this$props2 = _this.props,
100 filterDropdownType = _this$props2.filterDropdownType,
101 filterDropdownIncludeKeys = _this$props2.filterDropdownIncludeKeys;
102
103 var locale = (0, _tool.getComponentLocale)(_this.props, _this.context, 'Table', function () {
104 return _i18n2["default"];
105 });
106 var stringEnum = {
107 LIKE: 'include',
108 ULIKE: 'exclusive',
109 EQ: 'equal',
110 UEQ: 'unequal',
111 START: 'begin',
112 END: 'end'
113 };
114 var numberEnum = {
115 GT: 'greater_than',
116 GTEQ: 'great_than_equal_to',
117 LT: 'less_than',
118 LTEQ: 'less_than_equal_to',
119 EQ: 'be_equal_to',
120 UEQ: 'not_equal_to'
121 };
122 if (filterDropdownIncludeKeys != undefined) {
123 switch (filterDropdownType) {
124 case 'string':
125 return _react2["default"].createElement(
126 _beeMenus2["default"],
127 {
128 onClick: _this.onSelectDropdown,
129 selectedKeys: selectValue
130 },
131 filterDropdownIncludeKeys.map(function (item) {
132 return _react2["default"].createElement(
133 Item,
134 { key: item },
135 locale[stringEnum[item]]
136 );
137 })
138 );
139 case 'number':
140 return _react2["default"].createElement(
141 _beeMenus2["default"],
142 {
143 onClick: _this.onSelectDropdown,
144 selectedKeys: selectNumberValue
145 },
146 filterDropdownIncludeKeys.map(function (item) {
147 return _react2["default"].createElement(
148 Item,
149 { key: item },
150 locale[numberEnum[item]]
151 );
152 })
153 );
154 default:
155 return _react2["default"].createElement('div', null);
156 }
157 } else {
158 switch (filterDropdownType) {
159 case 'string':
160 return _react2["default"].createElement(
161 _beeMenus2["default"],
162 {
163 onClick: _this.onSelectDropdown,
164 selectedKeys: selectValue
165 },
166 _react2["default"].createElement(
167 Item,
168 { key: 'LIKE' },
169 locale['include']
170 ),
171 _react2["default"].createElement(
172 Item,
173 { key: 'ULIKE' },
174 locale['exclusive']
175 ),
176 _react2["default"].createElement(
177 Item,
178 { key: 'EQ' },
179 locale['equal']
180 ),
181 _react2["default"].createElement(
182 Item,
183 { key: 'UEQ' },
184 locale['unequal']
185 ),
186 _react2["default"].createElement(
187 Item,
188 { key: 'RLIKE' },
189 locale['begin']
190 ),
191 _react2["default"].createElement(
192 Item,
193 { key: 'LLIKE' },
194 locale['end']
195 )
196 );
197 case 'number':
198 return _react2["default"].createElement(
199 _beeMenus2["default"],
200 {
201 onClick: _this.onSelectDropdown,
202 selectedKeys: selectNumberValue
203 },
204 _react2["default"].createElement(
205 Item,
206 { key: 'GT' },
207 locale['greater_than']
208 ),
209 _react2["default"].createElement(
210 Item,
211 { key: 'GTEQ' },
212 locale['great_than_equal_to']
213 ),
214 _react2["default"].createElement(
215 Item,
216 { key: 'LT' },
217 locale['less_than']
218 ),
219 _react2["default"].createElement(
220 Item,
221 { key: 'LTEQ' },
222 locale['less_than_equal_to']
223 ),
224 _react2["default"].createElement(
225 Item,
226 { key: 'EQ' },
227 locale['be_equal_to']
228 ),
229 _react2["default"].createElement(
230 Item,
231 { key: 'UEQ' },
232 locale['not_equal_to']
233 )
234 );
235 default:
236 return _react2["default"].createElement('div', null);
237 }
238 }
239 };
240
241 _this.state = {
242 selectValue: ['LIKE'],
243 selectNumberValue: ['EQ']
244 };
245 return _this;
246 }
247 /**
248 * 点击下拉菜单
249 *
250 * @param {*} s 选中的selectRecord
251 */
252
253
254 /**
255 * 清除事件
256 *
257 */
258
259
260 /**
261 * 根据props来获得指定的Menu,分为String和Number
262 *
263 * @returns JSX Menu
264 */
265
266
267 FilterDropDown.prototype.render = function render() {
268 var isShowCondition = this.props.isShowCondition;
269
270
271 return _react2["default"].createElement(
272 'div',
273 { className: 'filter-btns' },
274 isShowCondition == 'show' && _react2["default"].createElement(
275 _beeDropdown2["default"],
276 {
277 overlayClassName: 'u-filter-dropdown-menu-wrap',
278 trigger: ['click'],
279 overlay: this.getMenu(),
280 animation: 'slide-up'
281 },
282 _react2["default"].createElement(
283 _beeButton2["default"],
284 {
285 shape: 'border',
286 style: { marginLeft: "2px", minWidth: "0px", width: "26px", lineHeight: "24px", padding: 0 }
287 },
288 _react2["default"].createElement(_beeIcon2["default"], { style: { padding: 0, color: '#585858' }, type: 'uf-filter' })
289 )
290 ),
291 _react2["default"].createElement(
292 _beeButton2["default"],
293 {
294 onClick: this.onClickClear,
295 shape: 'border',
296 style: { marginLeft: "2px", minWidth: "0px", width: "26px", lineHeight: "24px", padding: 0, "visibility": this.props.isShowClear || this.state.selectValue.length > 0 ? "visible" : "hidden" }
297 },
298 _react2["default"].createElement(_beeIcon2["default"], { style: { padding: 0, color: '#585858', "visibility": this.props.isShowClear || this.state.selectValue.length > 0 ? "visible" : "hidden" }, type: 'uf-filterno' })
299 )
300 );
301 };
302
303 return FilterDropDown;
304}(_react.Component);
305
306FilterDropDown.propTypes = {
307 isShowCondition: _propTypes2["default"].string,
308 filterDropdownType: _propTypes2["default"].oneOf(['string', 'number'])
309};
310
311FilterDropDown.defaultProps = {
312 isShowCondition: 'show',
313 filterDropdownType: 'string'
314};
315
316FilterDropDown.contextTypes = {
317 beeLocale: _propTypes2["default"].object
318};
319exports["default"] = FilterDropDown;
320module.exports = exports['default'];
\No newline at end of file