Use given default char limit to fetch data

This commit is contained in:
benguozakinci@gmail.com 2021-07-27 10:25:40 +03:00
parent 935c53a5d9
commit d363b111f2

View File

@ -33,7 +33,7 @@
</div> </div>
<ul class="aka-select-menu-options"> <ul class="aka-select-menu-options">
<div class="aka-select-menu-option" v-for="(item, index) in sortItems" :key="index" @click="onItemSeleted(index, item.id)"> <div class="aka-select-menu-option" v-for="(item, index) in sortedItems" :key="index" @click="onItemSeleted(index, item.id)">
<div class="item-select w-100"> <div class="item-select w-100">
<div class="item-select-column item-select-info w-75"> <div class="item-select-column item-select-info w-75">
<b class="item-select-info-name"><span>{{ item.name }}</span></b> <b class="item-select-info-name"><span>{{ item.name }}</span></b>
@ -52,7 +52,7 @@
</div> </div>
</div> </div>
<div class="aka-select-menu-option" v-if="!sortItems.length"> <div class="aka-select-menu-option" v-if="!sortedItems.length">
<div> <div>
<strong class="text-strong" v-if="!items.length && !search"> <strong class="text-strong" v-if="!items.length && !search">
<span>{{ noDataText }}</span> <span>{{ noDataText }}</span>
@ -128,7 +128,6 @@ export default {
default: () => [], default: () => [],
description: 'List of Items' description: 'List of Items'
}, },
addNew: { addNew: {
type: Object, type: Object,
default: function () { default: function () {
@ -187,18 +186,22 @@ export default {
}, },
description: "Default currency" description: "Default currency"
}, },
searchCharLimit: {
type: Number,
default: 3,
description: "Character limit for item search input"
}
}, },
data() { data() {
return { return {
item_list: [], item_list: [],
selected_items: [], selected_items: [],
search: '', // search cloumn model search: '', // search coLumn model
show: { show: {
item_selected: false, item_selected: false,
item_list: false, item_list: false,
}, },
form: {}, form: {},
add_new: { add_new: {
text: this.addNew.text, text: this.addNew.text,
@ -266,7 +269,11 @@ export default {
}, },
onInput() { onInput() {
if (!this.search) { if (this.search.length < this.searchCharLimit) {
this.setItemList(this.items);
this.sortItems();
this.$emit('input', this.search);
return; return;
} }
@ -496,13 +503,6 @@ export default {
this.setItemList(this.items); this.setItemList(this.items);
} }
}, },
},
created() {
this.setItemList(this.items);
},
computed: {
sortItems() { sortItems() {
this.item_list.sort(function (a, b) { this.item_list.sort(function (a, b) {
var nameA = a.value.toUpperCase(); // ignore upper and lowercase var nameA = a.value.toUpperCase(); // ignore upper and lowercase
@ -520,9 +520,21 @@ export default {
return 0; return 0;
}); });
return this.item_list.filter(item => { const sortedItemList = this.item_list.filter(item =>
return item.value.toLowerCase().includes(this.search.toLowerCase()) item.value.toLowerCase().includes(this.search.toLowerCase())
}); );
return sortedItemList;
},
},
created() {
this.setItemList(this.items);
},
computed: {
sortedItems() {
return this.sortItems();
}, },
}, },