Element UI 自动完成没有结果

guy*_*oni 5 javascript php vue.js element-ui element-io

我在我的项目元素 UI 自动完成组件中使用。

当输入没有结果时,我想显示无结果消息。
在其他项目中,我将其作为建议框中的选项(不可选择):

在此输入图像描述

但是,使用 element-ui 自动完成功能,搜索图标消失后,下拉菜单也会消失:

在此输入图像描述

对于这个组件我无法做到这一点。任何想法?

我的代码如下所示:

模板:

<el-form ref="addressForm" :inline="true" :model="formData">
    <el-form-item prop="city">
        <el-autocomplete
                class="inline-input"
                v-model="formData.cityInput"
                :fetch-suggestions="getCities"
                placeholder="City"
                :trigger-on-focus="false"
                :clearable="true"
                @select="handleSelectCity"
                @clear="clearCity"
                size="small"
        ></el-autocomplete>
    </el-form-item>
        :
        :
    <el-form-item>
        <el-button type="primary" @click="onSubmit" size="small">
            Search
        </el-button>
    </el-form-item>
</el-form>
Run Code Online (Sandbox Code Playgroud)

脚本:

export default {
    data() {
        return {
            formData: {
                cityInput: "",
                city: "",
                :
                :
            },
        }
    },

    methods: {
        getCities(query, callback) {
            this.clearCity();

            // Ajax call to obtain results for autocomplete
            axios.get(
                "/cities", {
                    query: query
                })
                .then(
                    response => {
                        callback(response.data);
                    }
                );

        },

        handleSelectCity(item) {
            this.formData.city = item.value;
        },

        clearCity() {
            this.formData.city = "";
        },

        :
        :
        :
    }
};
Run Code Online (Sandbox Code Playgroud)

PHP 代码:(Laravel)

public function getCities($query)
{
    $res = DB::connection('mainDb')
        ->table('offices')
        ->where('city', 'like', $query . '%')
        ->select('city AS value')
        ->distinct()
        ->get();

    return $res;
}
Run Code Online (Sandbox Code Playgroud)

Dav*_* Go 0

您可以使用 来实现此行为v-select。有一个过滤选项,因此您可以选择选项或使用自动完成功能将其键入。

有两个属性可以控制“无结果”情况:no-match-text过滤没有结果时和no-data-text选择中没有选项时。