antd下来组件支持多条件检索

直接上代码

import React, { useEffect, useState } from 'react';
import { Select } from 'antd';
import Resource from '@/services/Resource';

const Option = Select.Option;

export default props => {
    const [creatorList, setCreatorList] = useState([]);
    useEffect(() => {
        Resource.fetchCreatorList().then(res => {
            if (res?.XCmdrCode === 0) {
                const data = res?.XCmdrResult;
                setCreatorList(data);
            }
        });
    }, []);
    let value = [];
    if (typeof props.value !== 'number') {
        value = props.value;
    }
    const { mode, onChange, placeholder, disabled = false, displayMinusOne = false, showAll = false, style } = props;
    const handleFilterOption = (input, option) => {
        const { data_item } = option.props;
        return data_item?.nick_name.indexOf(input) >= 0 || data_item?.unique_name.indexOf(input) >= 0;
    };

    return (
        <Select
            mode={mode}
            disabled={disabled}
            placeholder={placeholder || '请选择指派人员'}
            style={style || { width: '100%' }}
            allowClear
            showSearch
            filterOption={(input, option) => handleFilterOption(input, option)}
            value={value}
            onChange={onChange}
        >
            {displayMinusOne ? (
                <Option value="-1" key="-1">
                    未分配
                </Option>
            ) : null}
            {showAll && creatorList[0] && creatorList[0].nick_name !== '全部' && (
                <Option value="" key="0">
                    全部
                </Option>
            )}
            {creatorList.map(item => (
                <Option value={item.id.toString()} key={item.id} data_item={item}>
                    {item.nick_name}
                </Option>
            ))}
        </Select>
    );
};

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值