## FilterConfigMenu
### config
参数 | 说明 | 类型 | 默认值 | 是否必填 | 版本
---|---|---|---|---|---
title | 组件标题 |  string / React.ReactNode | '自定义列' | 否 | 3.1.0
leftTitle | 左侧标题 |  string / React.ReactNode | '可选择的列' | 否 | 3.1.0
minLength | 最少需要选中的数据个数 |  number | 无 | 否 | 3.1.0
maxLength | 最多能选中的数据个数 |  number | 无 | 否 | 3.1.0
noGroup | 是否分组 |  boolean| false | 否 | 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 FilterConfigMenuType = {
    title?: string | React.ReactNode;
    leftTitle?: string | React.ReactNode;
    minLength?: number;
    maxLength?: number;
    noGroup?: boolean;
    style?: any;
    children: React.ReactNode;
    columns: ColumnItem[];
    receivePropsUpdate?: boolean			//接收props是否更新
    onChangeKey?: (key: any[])=> void;		//返回自定义后的dataIndex[]
    initCallback?: boolean;					//初始化后是否需要回调一次,恢复缓存考虑
    cacheKey?: string;
}
```

### example
```typescript
<FilterConfigMenu
    title='更换指标'
    leftTitle='可选择的指标'
    minLength={5}
    maxLength={10}
    noGroup={true}
    columns={[
        {
            title: 'A列',
            dataIndex: 'a', 
            render: (val, record) => {
                return <div>example</div>
            }
        },
        {
            title: 'B列',
            dataIndex: 'b',
            hasNoRight: true
        },
    ]}
    onChangeKey={(keys) => {
        console.log(keys, 'keys')
    }}
    cacheKey="aaa-bbb"
    receivePropsUpdate
    initCallback
>
    <Button size='small' block className={styles['extra-change-config']}>更换指标</Button>
</FilterConfigMenu>
```