Skip to content

AutoComplete 自动完成

规则

基础示例

js
const rule = {
    type: "autoComplete",
    title: "自动完成",
    field: "auto",
    value: "xaboy",
    inject: true,
    props: {}
}

Props 配置示例

静态选项

js
const rule = {
    type: "autoComplete",
    title: "商品名称",
    field: "product",
    value: "",
    props: {
        data: [
            { value: "iPhone 15 Pro" },
            { value: "MacBook Pro" },
            { value: "iPad Air" },
            { value: "AirPods Pro" },
        ],
        placeholder: "请输入或选择商品",
    }
}

远程搜索

js
const rule = {
    type: "autoComplete",
    title: "搜索商品",
    field: "keyword",
    value: "",
    props: {
        data: [],
        placeholder: "请输入商品名称",
    },
    inject: true,
    on: {
        search: ($inject, value) => {
            if (value && value.length >= 2) {
                // 调用搜索接口
                searchProducts(value).then(res => {
                    $inject.api.updateRule('keyword', {
                        props: {
                            data: res.data.map(item => ({ value: item.name }))
                        }
                    });
                });
            }
        },
    },
}

Events 事件示例

监听输入和选择

js
const rule = {
    type: "autoComplete",
    title: "商品名称",
    field: "product",
    value: "",
    props: {
        data: [
            { value: "iPhone 15 Pro" },
            { value: "MacBook Pro" },
        ],
        placeholder: "请输入或选择商品",
    },
    on: {
        change: (value) => {
            console.log('输入值改变:', value);
        },
        select: (value) => {
            console.log('选择选项:', value);
        },
        search: (value) => {
            console.log('搜索值:', value);
        },
    },
}

选择后联动更新

js
const rule = [
    {
        type: "autoComplete",
        title: "商品名称",
        field: "product",
        value: "",
        props: {
            data: [],
            placeholder: "请输入或选择商品",
        },
        inject: true,
        on: {
            select: ($inject, value) => {
                // 根据选择的商品名称,自动填充商品信息
                getProductInfo(value).then(res => {
                    $inject.api.setValue('price', res.data.price);
                    $inject.api.setValue('stock', res.data.stock);
                });
            },
        },
    },
    {
        type: "input-number",
        field: "price",
        title: "价格",
        props: {
            disabled: true,
        },
    },
    {
        type: "input-number",
        field: "stock",
        title: "库存",
        props: {
            disabled: true,
        },
    },
]

完整配置项:arco-design_AutoComplete

value :String

Props

参数名描述类型默认值版本
disabled是否禁用booleanfalse
data用于自动提示的数据Option[][]
popup-container弹出框的挂载容器string | HTMLElement | null | undefined-
strict是否为严格校验模式booleanfalse
filter-option自定义选项过滤方法FilterOptiontrue
trigger-propstrigger 组件属性object-2.14.0

Events

事件名描述参数
change绑定值发生改变时触发value: string
search用户搜索时触发value: string
select选择选项时触发value: string

FormCreate 是一个开源项目,基于 MIT 许可证发布,欢迎个人和企业用户免费使用