mirror of
https://github.com/wahyd4/ant-design.git
synced 2026-08-23 03:36:30 +10:00
101 lines
2.8 KiB
JavaScript
101 lines
2.8 KiB
JavaScript
'use strict';
|
|
|
|
Object.defineProperty(exports, '__esModule', {
|
|
value: true
|
|
});
|
|
|
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
|
|
|
|
var _react = require('react');
|
|
|
|
var _react2 = _interopRequireDefault(_react);
|
|
|
|
var _rcMenu = require('rc-menu');
|
|
|
|
var _rcMenu2 = _interopRequireDefault(_rcMenu);
|
|
|
|
exports['default'] = _react2['default'].createClass({
|
|
displayName: 'filterMenu',
|
|
|
|
getInitialState: function getInitialState() {
|
|
return {
|
|
selectedFilters: []
|
|
};
|
|
},
|
|
getDefaultProps: function getDefaultProps() {
|
|
return {
|
|
handleFilter: function handleFilter() {},
|
|
column: null
|
|
};
|
|
},
|
|
handleSelectFilter: function handleSelectFilter(selected) {
|
|
this.state.selectedFilters.push(selected);
|
|
this.setState({
|
|
selectedFilters: this.state.selectedFilters
|
|
});
|
|
},
|
|
handleDeselectFilter: function handleDeselectFilter(key) {
|
|
var index = this.state.selectedFilters.indexOf(key);
|
|
if (index !== -1) {
|
|
this.state.selectedFilters.splice(index, 1);
|
|
}
|
|
this.setState({
|
|
selectedFilters: this.state.selectedFilters
|
|
});
|
|
},
|
|
handleClearFilters: function handleClearFilters() {
|
|
this.setState({
|
|
selectedFilters: []
|
|
});
|
|
},
|
|
renderMenus: function renderMenus(items) {
|
|
var menuItems = items.map(function (item) {
|
|
return _react2['default'].createElement(
|
|
_rcMenu2['default'].Item,
|
|
{ key: item.value },
|
|
item.text
|
|
);
|
|
});
|
|
return menuItems;
|
|
},
|
|
render: function render() {
|
|
var column = this.props.column;
|
|
column.selectedFilters = this.state.selectedFilters;
|
|
return _react2['default'].createElement(
|
|
_rcMenu2['default'],
|
|
{ multiple: true,
|
|
prefixCls: "ant-dropdown-menu",
|
|
className: "ant-table-filter-dropdown",
|
|
onSelect: this.handleSelectFilter,
|
|
onDeselect: this.handleDeselectFilter,
|
|
selectedKeys: column.selectedFilters },
|
|
this.renderMenus(column.filters),
|
|
_react2['default'].createElement(_rcMenu2['default'].Divider, null),
|
|
_react2['default'].createElement(
|
|
_rcMenu2['default'].Item,
|
|
{ disabled: true },
|
|
_react2['default'].createElement(
|
|
'a',
|
|
{ className: "ant-table-filter-dropdown-link confirm",
|
|
style: {
|
|
cursor: 'pointer',
|
|
pointerEvents: 'visible'
|
|
},
|
|
onClick: this.props.confirmFilter },
|
|
'确定'
|
|
),
|
|
_react2['default'].createElement(
|
|
'a',
|
|
{ className: "ant-table-filter-dropdown-link clear",
|
|
style: {
|
|
cursor: 'pointer',
|
|
pointerEvents: 'visible'
|
|
},
|
|
onClick: this.handleClearFilters },
|
|
'清空'
|
|
)
|
|
)
|
|
);
|
|
}
|
|
});
|
|
module.exports = exports['default']; |