diff --git a/src/components/Controls/Check.vue b/src/components/Controls/Check.vue index aa34257e..e56f811b 100644 --- a/src/components/Controls/Check.vue +++ b/src/components/Controls/Check.vue @@ -8,7 +8,7 @@ {{ df.label }}
13 ? 'var(--w-scrollbar)' : '', }" > -

#

+
+ # +
+
+ +
-

+

{{ i + pageStart + 1 }} -

+
+
+ +
+ , + selectedItems: [] as string[], }; }, computed: { @@ -155,6 +192,11 @@ export default defineComponent({ count() { return this.pageEnd - this.pageStart + 1; }, + isAllSelected(): boolean { + return ( + this.data.length > 0 && this.selectedItems.length === this.data.length + ); + }, columns() { let columns = this.listConfig?.columns ?? []; @@ -261,6 +303,21 @@ export default defineComponent({ })) as RenderData[]; this.$emit('updatedData', filters); }, + toggleItemSelection(itemName: string) { + const index = this.selectedItems.indexOf(itemName); + if (index > -1) { + this.selectedItems.splice(index, 1); + } else { + this.selectedItems.push(itemName); + } + this.$emit('selected-items-changed', this.selectedItems); + }, + toggleSelectAll(checked: boolean) { + this.selectedItems = checked + ? this.data.map((row) => row.name as string) + : []; + this.$emit('selected-items-changed', this.selectedItems); + }, }, }); diff --git a/src/pages/ListView/ListView.vue b/src/pages/ListView/ListView.vue index b1870d97..6325a716 100644 --- a/src/pages/ListView/ListView.vue +++ b/src/pages/ListView/ListView.vue @@ -1,6 +1,32 @@