import React, { Component } from 'react'; import { Button } from 'antd'; import classname from 'classnames'; import Hide from '../hide'; import Filter from '../filter'; import Sort from '../sort'; import Group from '../setgroup'; import FilterCondition from '../filter-condition'; import s from './index.less'; import { OperateConfigProps, ColumnProps } from '../interface'; interface Props { selfClass?: string; operateConfig?: OperateConfigProps; columns: ColumnProps[]; } /** * 操作栏 * @展示格式 未设置 * @显隐控制 Hide * @过滤控制 Filter * @排序控制 Sort * @分组控制 Group */ export default class Operate extends Component { renderOperate = (operate: any) => { const { columns } = this.props; switch (operate.type) { case 'hide': return ; case 'filter': return ; case 'group': return ; case 'sort': return ; default: break; } }; renderBtn = (btn: any) => { const { render, label, onClick, type, ghost, icon, } = btn; if (typeof render === 'function') { return render(btn); } return ( ); }; render() { const { operateConfig, columns, selfClass } = this.props; const { menusGroup, buttonsGroup, renderCustomNode, showCondition }: any = operateConfig || {}; const filter: any = menusGroup && menusGroup.find((item: any) => { return item.type === 'filter'; }); return (
{renderCustomNode && typeof renderCustomNode === 'function' ? renderCustomNode() : null}
{menusGroup && (
{menusGroup.map((item: any, i: number) => { return (
{this.renderOperate(item)}
); })}
)} {buttonsGroup && (
{buttonsGroup.map((item: any, i: number) => { return ( !item.hidden && (
{this.renderBtn(item)}
) ); })}
)}
{showCondition && ( )}
); } }