elementPlus下拉框实现自定义模糊查询且100%匹配的优先展示

博客介绍了如何在ElementPlus的下拉框中实现自定义模糊查询,并确保100%匹配的选项优先展示。通过匹配度排序,即使在搜索后也能保证高匹配度的项如‘创建人’超越‘创建时间’显示在前面。
摘要由CSDN通过智能技术生成

 效果:

我们可以看到,本来创建时间在创建人之上,但经过我们搜索创建进行匹配度排序后,创建人的匹配度更高,因此搜索之后,创建人就会显示在创建时间之上。

当然如果100%匹配的同样会优先展示在最上面。

第一步:

 (1)加入模糊查询属性 filterable

 (2) 写入自定义模糊查询方法 :filter-method="(v:any)
好的,以下是一个简单的示例代码: 首先,安装 `element-plus` 和 `axios`: ``` npm install element-plus axios --save ``` 然后,在 `main.js` 中引入并注册 `ElementPlus`: ```javascript import { createApp } from 'vue' import App from './App.vue' import ElementPlus from 'element-plus' import 'element-plus/lib/theme-chalk/index.css' createApp(App) .use(ElementPlus) .mount('#app') ``` 接下来,创建一个 `Search.vue` 组件,用于显示查询结果: ```vue <template> <div> <el-input v-model="keyword" placeholder="请输入关键字" @change="search" /> <el-table :data="products" style="width: 100%"> <el-table-column prop="name" label="名称" /> <el-table-column prop="price" label="价格" /> <el-table-column prop="description" label="描述" /> </el-table> </div> </template> <script> import axios from 'axios' export default { name: 'Search', data() { return { keyword: '', products: [] } }, methods: { async search() { try { const response = await axios.get(`/api/products?keyword=${this.keyword}`) this.products = response.data } catch (error) { console.error(error) } } } } </script> ``` 这个组件包含了一个输入框和一个表格,用户可以在输入框中输入关键字进行查询,然后表格会显示符合条件的产品。 接下来,在 `App.vue` 中引入 `Search` 组件: ```vue <template> <div id="app"> <Search /> </div> </template> <script> import Search from './components/Search.vue' export default { name: 'App', components: { Search } } </script> ``` 最后,在后端创建一个 API 接口,用于处理查询请求。这里使用 Express 框架来创建 API 接口: ```javascript const express = require('express') const app = express() const products = [ { id: 1, name: '苹果', price: 5.0, description: '新鲜的苹果' }, { id: 2, name: '香蕉', price: 3.0, description: '甜美的香蕉' }, { id: 3, name: '橙子', price: 4.0, description: '酸甜可口的橙子' }, { id: 4, name: '西瓜', price: 10.0, description: '清凉解暑的西瓜' } ] app.get('/api/products', (req, res) => { const keyword = req.query.keyword const result = products.filter(product => product.name.includes(keyword)) res.send(result) }) app.listen(3000, () => { console.log('Server is listening on port 3000') }) ``` 以上就是一个简单的模糊查询农产品的功能的示例代码,你可以根据实际需求进行修改和扩展。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

suoh's Blog

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值