Sử dụng filter trong array để làm chức năng tìm kiếm. Vâng việc tìm kiếm trong array với dữ liệu trung bình thì sẽ giúp tấp độ tìm kiếm nhanh hơn so với query vào database và sau đây là ví dụ
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
searchData: { bySelected: 'user_email', keyword: '', options: [ { value: 'user_email', name: 'Email' }, { value: 'user_login', name: 'Tên đăng nhập' }, { value: 'full_name', name: 'Họ và tên' }, { value: 'phone', name: 'Điện thoại' }, { value: 'user_id', name: 'UserID' }, { value: 'domain', name: 'Url hoặc domain' }, ] } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 |
'searchData.keyword' : function(){ let bySelected = this.searchData.bySelected if(this.searchData.keyword.length > 0){ console.log(bySelected) this.list = this.allRows.filter((item)=>{ console.log(item.user[bySelected]) if("user_id" === bySelected){ return this.searchData.keyword == item.user[bySelected] }else if("domain" === bySelected) { //return this.searchData.keyword == item[bySelected] return this.searchData.keyword.toLowerCase().split(' ').every(v => item[bySelected].includes(v)) }else{ return this.searchData.keyword.toLowerCase().split(' ').every(v => item.user[bySelected].toLowerCase().includes(v)) } }) this.totalRecord = this.list.length this.pagination.total = this.list.length this.pagination.max = this.pagination.total/this.pagination.per_page }else{ // console.log('sdfsd') this.list = this.listTemp this.totalRecord = this.list.length } // }, 'searchData.bySelected' : function(){ let bySelected = this.searchData.bySelected if(this.searchData.keyword.length > 0){ this.list = this.allRows.filter((item)=>{ if("user_id" === bySelected){ return this.searchData.keyword == item.user[bySelected] }else if("domain" === bySelected) { //return this.searchData.keyword == item[bySelected] return this.searchData.keyword.toLowerCase().split(' ').every(v => item[bySelected].includes(v)) }else{ return this.searchData.keyword.toLowerCase().split(' ').every(v => item.user[bySelected].toLowerCase().includes(v)) } }) this.totalRecord = this.list.length this.pagination.total = this.list.length this.pagination.max = this.pagination.total/this.pagination.per_page }else{ // console.log('sdfsd') this.list = this.listTemp this.totalRecord = this.list.length } // } |
Mọi sự sao chép xin ghi rõ nguồn là fcwordpress.net
Chuyên trang về wordpress: hướng dẫn thiết kế theme, plugin, thủ thuật wordpress