## FilterColumnsMenu
### config
参数 | 说明 | 类型 | 默认值 | 是否必填 | 版本
---|---|---|---|---|---
title | 组件标题 |  string / React.ReactNode | '自定义列' | 否 | 3.1.0
style | Popover overlayStyle | object | 无 | 否 | 3.1.0
children | React.Children | - | 无 | 是 | 3.1.0
columns | 表格列的配置描述，类似 antd3 table columnsm | ColumnItem[] | 无 | 是 | 3.1.0
receivePropsUpdate | 接收props是否更新 | boolean | false | 否 | 3.1.0
onChangeKey | 返回自定义后的dataIndex[] | (key: any[]) => void | - | 否 | 3.1.0
initCallback | 初始化后是否需要回调一次,恢复缓存考虑 | boolean | false | 否 | 3.1.0
cacheKey | 缓存在 localStorage 中的键值对名 | string | 无 | 否 | 3.1.0


### 类型
```typescript
// 权重 hasNoRight > required > checked
type ColumnItem = {
    title: string | Function,				//标题
    dataIndex: string,						//index
    group?: string,							//分类组名
    hasNoRight?: boolean,                   // 显示和查看权限， 默认为fasle - 有权限
    required?: boolean,						//是否必选
    checked?: boolean,						//是否选择
}
type FilterColumnsMenuType = {
    title?: string | React.ReactNode;
    style?: any;
    children: React.ReactNode;
    columns: ColumnItem[];
    receivePropsUpdate?: boolean			//接收props是否更新
    onChangeKey?: any;						//返回自定义后的dataIndex[]
    initCallback?: boolean;					//初始化后是否需要回调一次,恢复缓存考虑
    cacheKey?: string;
}
```

### example
```typescript
<FilterColumnsMenu
    columns={[
        {
            title: 'A列',
            dataIndex: 'a',
            width: 190,
            className: 'word-break',
            group: '基本信息',
            render: (val, record) => {
                return <div>example</div>
            }
        },
        {
            title: 'B列',
            dataIndex: 'b',
            width: 190,
            className: 'word-break',
            group: '基本信息',
            hasNoRight: true
        },
    ]}
    onChangeKey={(keys) => {
        console.log(keys, 'keys')
    }}
    cacheKey="aaa-bbb"
    receivePropsUpdate
    initCallback
>
    <Tooltip title='自定义列'>
        <Iconfont type="icon-custom-column" className='mr28' />
    </Tooltip>
</FilterColumnsMenu>
```