工作笔记ft(bug整理-修改组件源码):行政区划VtxZtreeSelect没有maxTagCount类似属性,导致选中过多时,样式错乱

antd4环境下

<Form.Item

                            label=" 行政区划"

                            name="divisionIds"

                            initialValue={[initialDivisionId]}

                            getValueFromEvent={({ nodes, keys, leafKeys, names }) => {

                                actOpByDivisionId(keys?.length > 0 ? keys : [initialDivisionId]);

                                console.log('keys', keys, initialDivisionId);

                                return keys;

                            }}

                        >

                            <VtxZtreeSelect

                                data={test(divisionTree)}

                                treeDefaultExpandAll={true}

                                treeCheckable

                                multiple

                                // allowClear={false}

                                placeholder="请选择行政区划"

                                style={{

                                    width: '400px',

                                }}

                                maxTagCount={5}

                                refreshFlag={flag}//改变initialValue时,树没变,要用refreshFlag刷新一下

                            />

                        </Form.Item>

复制出组件源码,在多选组件处加上限制选中数目

   // 多选组件

        const MultiSelect = (

            <div

                className={classnames('ant-input', `${prefixCls}-multiple`, {

                    [`${prefixCls}-multiple-disabled`]: disabled,

                })}

                style={{ height: 'auto', minHeight: '28px', ...style }}

            >

                {selectedNodes.length > 0 ? (

                    t.props.maxTagCount && selectedNodes.length > t.props.maxTagCount ? (

                        [

                            selectedNodes?.slice(0, t.props.maxTagCount).map(item => (

                                <Tag

                                    key={item.id}

                                    closable={!disabled}

                                    onClose={e => {

                                        e.stopPropagation();

                                        t.clearKey(item.id);

                                    }}

                                >

                                    {item.name.length > 20

                                        ? `${item.name.slice(0, 20)}...`

                                        : item.name}

                                </Tag>

                            )),

                            <Tag

                                key={'item.id'}

                                closable={disabled}

                                // onClose={e => {

                                //     e.stopPropagation();

                                //     t.clearKey(item.id);

                                // }}

                            >

                                ...

                            </Tag>,

                            disabled ? null : (

                                // <Icon

                                //     key={'icon'}

                                //     className={`${prefixCls}-multiple-close-icon`}

                                //     type="close-circle"

                                //     theme="filled"

                                //     onClick={e => {

                                //         e.stopPropagation();

                                //         t.clear();

                                //     }}

                                // />

                                <CloseCircleOutlined

                                    style={{ color: 'rgba(0,0,0,0.6)' }}

                                    className={`${prefixCls}-multiple-close-icon`}

                                    onClick={e => {

                                        e.stopPropagation();

                                        t.clear();

                                    }}

                                />

                            ),

                        ]

                    ) : (

                        [

                            selectedNodes.map(item => (

                                <Tag

                                    key={item.id}

                                    closable={!disabled}

                                    onClose={e => {

                                        e.stopPropagation();

                                        t.clearKey(item.id);

                                    }}

                                >

                                    {item.name.length > 20

                                        ? `${item.name.slice(0, 20)}...`

                                        : item.name}

                                </Tag>

                            )),

                            disabled ? null : (

                                <Icon

                                    key={'icon'}

                                    className={`${prefixCls}-multiple-close-icon`}

                                    type="close-circle"

                                    theme="filled"

                                    onClick={e => {

                                        e.stopPropagation();

                                        t.clear();

                                    }}

                                />

                            ),

                        ]

                    )

                ) : (

                    <span className={`${prefixCls}-placehoder`}>{t.props.placeholder}</span>

                )}

            </div>

        );

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值