-
-
Notifications
You must be signed in to change notification settings - Fork 6.9k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
fix(VDataTable): make custom filter function more user friendly (#7885)
also added docs example of custom-filter and header filtering
- Loading branch information
1 parent
9f12df7
commit 132ac8e
Showing
10 changed files
with
206 additions
and
36 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,18 @@ | ||
const deepmerge = require('deepmerge') | ||
|
||
function arrayMerge (a, b) { | ||
const arr = a.slice() | ||
for (let i = 0; i < b.length; i++) { | ||
const found = a.findIndex(item => item.name === b[i].name) | ||
if (found >= 0) { | ||
arr[found] = deepmerge(a[found], b[i]) | ||
} else { | ||
arr.push(b[i]) | ||
} | ||
} | ||
return arr | ||
} | ||
|
||
module.exports = function merge (a, b) { | ||
return deepmerge(a, b, { arrayMerge }) | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
151 changes: 151 additions & 0 deletions
151
packages/docs/src/examples/data-tables/intermediate/custom-filter.vue
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,151 @@ | ||
<template> | ||
<div> | ||
<v-data-table | ||
:headers="headers" | ||
:items="desserts" | ||
item-key="name" | ||
class="elevation-1" | ||
:search="search" | ||
:custom-filter="filterOnlyCapsText" | ||
> | ||
<template v-slot:top> | ||
<v-text-field v-model="search" label="Search (UPPER CASE ONLY)" class="mx-4"></v-text-field> | ||
</template> | ||
<template v-slot:body.append> | ||
<tr> | ||
<td></td> | ||
<td> | ||
<v-text-field v-model="calories" type="number" label="Less than"></v-text-field> | ||
</td> | ||
<td colspan="4"></td> | ||
</tr> | ||
</template> | ||
</v-data-table> | ||
</div> | ||
</template> | ||
|
||
<script> | ||
export default { | ||
data () { | ||
return { | ||
search: '', | ||
calories: '', | ||
desserts: [ | ||
{ | ||
name: 'Frozen Yogurt', | ||
calories: 159, | ||
fat: 6.0, | ||
carbs: 24, | ||
protein: 4.0, | ||
iron: '1%', | ||
}, | ||
{ | ||
name: 'Ice cream sandwich', | ||
calories: 237, | ||
fat: 9.0, | ||
carbs: 37, | ||
protein: 4.3, | ||
iron: '1%', | ||
}, | ||
{ | ||
name: 'Eclair', | ||
calories: 262, | ||
fat: 16.0, | ||
carbs: 23, | ||
protein: 6.0, | ||
iron: '7%', | ||
}, | ||
{ | ||
name: 'Cupcake', | ||
calories: 305, | ||
fat: 3.7, | ||
carbs: 67, | ||
protein: 4.3, | ||
iron: '8%', | ||
}, | ||
{ | ||
name: 'Gingerbread', | ||
calories: 356, | ||
fat: 16.0, | ||
carbs: 49, | ||
protein: 3.9, | ||
iron: '16%', | ||
}, | ||
{ | ||
name: 'Jelly bean', | ||
calories: 375, | ||
fat: 0.0, | ||
carbs: 94, | ||
protein: 0.0, | ||
iron: '0%', | ||
}, | ||
{ | ||
name: 'Lollipop', | ||
calories: 392, | ||
fat: 0.2, | ||
carbs: 98, | ||
protein: 0, | ||
iron: '2%', | ||
}, | ||
{ | ||
name: 'Honeycomb', | ||
calories: 408, | ||
fat: 3.2, | ||
carbs: 87, | ||
protein: 6.5, | ||
iron: '45%', | ||
}, | ||
{ | ||
name: 'Donut', | ||
calories: 452, | ||
fat: 25.0, | ||
carbs: 51, | ||
protein: 4.9, | ||
iron: '22%', | ||
}, | ||
{ | ||
name: 'KitKat', | ||
calories: 518, | ||
fat: 26.0, | ||
carbs: 65, | ||
protein: 7, | ||
iron: '6%', | ||
}, | ||
], | ||
} | ||
}, | ||
computed: { | ||
headers () { | ||
return [ | ||
{ | ||
text: 'Dessert (100g serving)', | ||
align: 'left', | ||
sortable: false, | ||
value: 'name', | ||
}, | ||
{ | ||
text: 'Calories', | ||
value: 'calories', | ||
filter: value => { | ||
if (!this.calories) return true | ||
return value < parseInt(this.calories) | ||
}, | ||
}, | ||
{ text: 'Fat (g)', value: 'fat' }, | ||
{ text: 'Carbs (g)', value: 'carbs' }, | ||
{ text: 'Protein (g)', value: 'protein' }, | ||
{ text: 'Iron (%)', value: 'iron' }, | ||
] | ||
}, | ||
}, | ||
methods: { | ||
filterOnlyCapsText (value, search, item) { | ||
return value != null && | ||
search != null && | ||
typeof value === 'string' && | ||
value.toString().toLocaleUpperCase().indexOf(search) !== -1 | ||
}, | ||
}, | ||
} | ||
</script> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters