2018-05-11 09:29:43 +08:00
"use strict" ;
Object . defineProperty ( exports , "__esModule" , {
value : true
} ) ;
var _extends = Object . assign || function ( target ) { for ( var i = 1 ; i < arguments . length ; i ++ ) { var source = arguments [ i ] ; for ( var key in source ) { if ( Object . prototype . hasOwnProperty . call ( source , key ) ) { target [ key ] = source [ key ] ; } } } return target ; } ;
exports [ "default" ] = filterColumn ;
var _react = require ( "react" ) ;
var _react2 = _interopRequireDefault ( _react ) ;
2018-06-25 00:44:05 +08:00
var _beeCheckbox = require ( "bee-checkbox" ) ;
var _beeCheckbox2 = _interopRequireDefault ( _beeCheckbox ) ;
var _beeIcon = require ( "bee-icon" ) ;
var _beeIcon2 = _interopRequireDefault ( _beeIcon ) ;
2018-05-11 09:29:43 +08:00
function _interopRequireDefault ( obj ) { return obj && obj . _ _esModule ? obj : { "default" : obj } ; }
function _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 ; }
function _classCallCheck ( instance , Constructor ) { if ( ! ( instance instanceof Constructor ) ) { throw new TypeError ( "Cannot call a class as a function" ) ; } }
function _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 ; }
function _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 ) ; }
/ * *
* 参数 : 过滤表头
* @ param { * } Table
2018-05-22 19:38:15 +08:00
* @ param { * } Checkbox
* @ param { * } Popover
* @ param { * } Icon
2018-05-11 09:29:43 +08:00
* /
2018-06-25 00:44:05 +08:00
function filterColumn ( Table , Popover ) {
2018-05-11 09:29:43 +08:00
var _class , _temp , _initialiseProps ;
return _temp = _class = function ( _Component ) {
2018-05-22 19:38:15 +08:00
_inherits ( FilterColumn , _Component ) ;
2018-05-11 09:29:43 +08:00
2018-05-22 19:38:15 +08:00
function FilterColumn ( props ) {
_classCallCheck ( this , FilterColumn ) ;
2018-05-11 09:29:43 +08:00
var _this = _possibleConstructorReturn ( this , _Component . call ( this , props ) ) ;
_initialiseProps . call ( _this ) ;
var columns = props . columns ;
var _column = [ ] ;
_extends ( _column , columns ) ;
_column . forEach ( function ( da ) {
da . checked = true ;
da . disable = true ;
} ) ;
_this . state = {
columns : _column ,
showModal : false ,
screenY : 0
} ;
return _this ;
}
2018-06-25 00:44:05 +08:00
FilterColumn . prototype . componentWillReceiveProps = function componentWillReceiveProps ( nextProps ) {
this . setState ( {
showPopover : false
} ) ;
} ;
2018-05-22 19:38:15 +08:00
FilterColumn . prototype . render = function render ( ) {
2018-05-14 11:27:16 +08:00
var _props = this . props ,
data = _props . data ,
prefixCls = _props . prefixCls ;
2018-05-11 09:29:43 +08:00
var _state = this . state ,
columns = _state . columns ,
2018-06-25 00:44:05 +08:00
showModal = _state . showModal ;
2018-05-11 09:29:43 +08:00
var _columns = [ ] ;
columns . forEach ( function ( da ) {
if ( da . disable ) {
_columns . push ( da ) ;
}
} ) ;
var content = _react2 [ "default" ] . createElement (
"div" ,
2018-05-14 11:27:16 +08:00
{ className : prefixCls + "-pop-cont" } ,
2018-05-11 09:29:43 +08:00
_react2 [ "default" ] . createElement (
"span" ,
2018-05-14 11:27:16 +08:00
{ className : prefixCls + "-clear-setting" , onClick : this . clear } ,
2018-05-11 09:29:43 +08:00
"\u6E05\u9664\u8BBE\u7F6E"
) ,
_react2 [ "default" ] . createElement (
"div" ,
null ,
this . getCloumItem ( )
)
) ;
return _react2 [ "default" ] . createElement (
"div" ,
2018-05-14 11:27:16 +08:00
{ className : prefixCls + "-cont" } ,
2018-05-11 09:29:43 +08:00
_react2 [ "default" ] . createElement ( Table , _extends ( { } , this . props , { columns : _columns , data : data } ) ) ,
_react2 [ "default" ] . createElement (
2018-06-25 00:44:05 +08:00
"div" ,
{ className : prefixCls + "-filter-icon" } ,
2018-05-11 09:29:43 +08:00
_react2 [ "default" ] . createElement (
2018-06-25 00:44:05 +08:00
Popover ,
{
id : "filter_column_popover" ,
placement : "leftTop" ,
content : content ,
show : showModal } ,
_react2 [ "default" ] . createElement (
"div" ,
2018-06-25 09:11:12 +08:00
{ className : prefixCls + "-pop-column-filter-cont" } ,
2018-06-25 00:44:05 +08:00
_react2 [ "default" ] . createElement ( _beeIcon2 [ "default" ] , { type : "uf-navmenu" , onClick : this . openCloumList } )
)
2018-05-11 09:29:43 +08:00
)
)
) ;
} ;
2018-05-22 19:38:15 +08:00
return FilterColumn ;
2018-05-14 11:27:16 +08:00
} ( _react . Component ) , _class . defaultProps = {
prefixCls : "u-table-filter-column"
} , _initialiseProps = function _initialiseProps ( ) {
2018-05-11 09:29:43 +08:00
var _this2 = this ;
this . getShowModal = function ( event ) {
var showModal = _this2 . state . showModal ;
if ( showModal ) {
_this2 . setState ( {
showModal : false
} ) ;
}
} ;
this . checkedColumItemClick = function ( da ) {
da . checked = da . checked ? false : true ;
da . disable = da . checked ? true : false ;
_this2 . setState ( _extends ( { } , _this2 . state ) ) ;
} ;
this . openCloumList = function ( ev ) {
var oEvent = ev || event ;
_this2 . setState ( {
showModal : true
} ) ;
} ;
this . getCloumItem = function ( ) {
2018-05-14 11:27:16 +08:00
var prefixCls = _this2 . props . prefixCls ;
2018-05-11 09:29:43 +08:00
var columns = _this2 . state . columns ;
return columns . map ( function ( da , i ) {
return _react2 [ "default" ] . createElement (
"div" ,
2018-05-14 11:27:16 +08:00
{ key : da . key + "_" + i , className : prefixCls + "-pop-cont-item" , onClick : function onClick ( ) {
2018-05-11 09:29:43 +08:00
_this2 . checkedColumItemClick ( da ) ;
} } ,
2018-06-25 00:44:05 +08:00
_react2 [ "default" ] . createElement ( _beeCheckbox2 [ "default" ] , { id : da . key , checked : da . checked } ) ,
2018-05-11 09:29:43 +08:00
_react2 [ "default" ] . createElement (
"span" ,
null ,
da . title
)
) ;
} ) ;
} ;
this . clear = function ( ) {
var columns = _this2 . state . columns ;
columns . forEach ( function ( da ) {
da . checked = true ;
da . disable = true ;
} ) ;
_this2 . setState ( _extends ( { } , _this2 . state ) ) ;
} ;
} , _temp ;
}
module . exports = exports [ "default" ] ;