vue實(shí)現(xiàn)多條件和模糊搜索功能
本文實(shí)例為大家分享了vue實(shí)現(xiàn)多條件和模糊搜索的具體代碼,供大家參考,具體內(nèi)容如下
html
<div class="content">
<div class="right">
<select name="sex" width='100' v-model="formData.sex">
<option value="" selected>請(qǐng)選擇</option>
<option value="1">男</option>
<option value="2">女</option>
<option value="3">不是人</option>
</select>
<input type="text" v-model="formData.phone" placeholder="電話(精準(zhǔn)搜索)">
<input type="text" v-model="formData.name" placeholder="姓名(模糊搜索)">
<button @click="search(formData)">提交數(shù)據(jù)</button>
</div>
<div class="left">
<ul>
<li v-for="(item,index) in realList" :key="index">
{{item.name}} || {{item.phone}} || {{item.sex | filterSex}}
</li>
</ul>
</div>
</div>
js
export default {
name: 'styleTest',
data() {
return {
formData: {
name: '',
phone: '',
sex: '',
},
realList: [],
list: [
{
name: '張址',
phone: 18715023011,
sex: 1,
},
{
name: '張三',
phone: 18715023012,
sex: 2,
},
{
name: '李四',
phone: 18715023013,
sex: 1,
},
{
name: '趙武',
phone: 18715023014,
sex: 2,
},
{
name: '晉南',
phone: 18715023015,
sex: 1,
},
{
name: '張東',
phone: 18715023016,
sex: 2,
},
],
};
},
filters: {
filterSex(val) {
switch (val) {
case 1:
return '男';
break;
case 2:
return '女';
break;
case 3:
return '不是人';
break;
default:
return '男';
}
},
},
computed: {
// realList() {
// let { name, phone, sex } = this.formData;
// if (name && phone && sex) {
// return this.list;
// }
// },
},
created() {
this.search({});
},
methods: {
search({ name, phone, sex }) {
this.realList = this.list.filter(item => {
let matchName = true; // 姓名 篩選
let matchSex = true; // 性別 篩選
let matchPhone = true; // 號(hào)碼 篩選
if (sex) {
matchSex = item.sex == sex;
}
if (phone) {
// console.info(Object.prototype.toString.call(phone));
matchPhone = item.phone == phone;
}
if (name) {
// 模糊搜索;
const keys = name
.toUpperCase() // 轉(zhuǎn)大寫
.replace(' ', '') // 刪掉空格
.split(''); // 切割成 單個(gè)字
matchName = keys.every(key => item.name.toUpperCase().includes(key));
}
return matchName && matchPhone && matchSex;
});
},
},
};
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
vue實(shí)現(xiàn)導(dǎo)出word文檔功能實(shí)例(含多張圖片)
項(xiàng)目需要導(dǎo)出word,于是乎又是查閱資料,然后自己寫,下面這篇文章主要給大家介紹了關(guān)于vue實(shí)現(xiàn)導(dǎo)出word文檔功能(含多張圖片)的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-09-09
Vue中實(shí)現(xiàn)回車鍵切換焦點(diǎn)的方法
這篇文章主要介紹了在Vue中實(shí)現(xiàn)回車鍵切換焦點(diǎn)的方法,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-02-02
vue結(jié)合axios與后端進(jìn)行ajax交互的方法
本篇文章主要介紹了vue結(jié)合axios與后端進(jìn)行ajax交互的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-07-07
vite+vue3搭建的工程實(shí)現(xiàn)批量導(dǎo)入store的module
這篇文章主要介紹了vite+vue3搭建的工程實(shí)現(xiàn)批量導(dǎo)入store的module方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-03-03
Vue3通過hooks方式封裝節(jié)流和防抖的代碼詳解
vue3 中的 hooks 就是函數(shù)的一種寫法,就是將文件的一些單獨(dú)功能的js代碼進(jìn)行抽離出來,放到單獨(dú)的js文件中,或者說是一些可以復(fù)用的公共方法/功能,本文給大家介紹了Vue3通過hooks方式封裝節(jié)流和防抖,需要的朋友可以參考下2024-10-10
vue管理系統(tǒng)項(xiàng)目中的一些核心技能匯總
Vue是當(dāng)今增長(zhǎng)最快的前端框架,Vue 平易近人、用途廣泛且性能卓越,它的語(yǔ)法非常直觀,并且具有友好的學(xué)習(xí)曲線,是開發(fā)人員最想學(xué)習(xí)的頂級(jí)前端庫(kù)之一,下面這篇文章主要給大家介紹了關(guān)于vue管理系統(tǒng)項(xiàng)目中的一些核心技能,需要的朋友可以參考下2022-05-05
vue3在構(gòu)建時(shí)使用魔法糖語(yǔ)法時(shí)defineProps和defineEmits的注意事項(xiàng)小結(jié)
在 Vue 3.2+ 版本中,可以使用 <script setup> 替代傳統(tǒng)的 script標(biāo)簽來編寫組件,它提供了更簡(jiǎn)潔的語(yǔ)法來編寫 Composition API 代碼,這篇文章主要介紹了vue3在構(gòu)建時(shí)使用魔法糖語(yǔ)法時(shí)defineProps和defineEmits的注意事項(xiàng)小結(jié),需要的朋友可以參考下2024-04-04

