Showing
6 changed files
with
27 additions
and
2 deletions
1 | +import { ComputedRef, computed, unref } from 'vue'; | |
2 | + | |
3 | +export function useCardListSelected( | |
4 | + getDataSourceRef: ComputedRef<(Recordable & { checked?: boolean })[]> | |
5 | +) { | |
6 | + const getHasSelectedRecordStatus = computed(() => | |
7 | + unref(getDataSourceRef).find((item) => item.checked) | |
8 | + ); | |
9 | + | |
10 | + // function handlerSelect | |
11 | + | |
12 | + return { | |
13 | + getHasSelectedRecordStatus, | |
14 | + }; | |
15 | +} | ... | ... |
... | ... | @@ -26,6 +26,7 @@ export interface BasicCardListPropsType<T = Recordable> { |
26 | 26 | immediate?: boolean; |
27 | 27 | handleSearchInfoFn?: Fn; |
28 | 28 | baseLayout?: Record<'row' | 'col', number>; |
29 | + selections?: boolean; | |
29 | 30 | } |
30 | 31 | |
31 | 32 | export type ListGridType = Record<'column' | 'xs' | 'sm' | 'md' | 'lg' | 'xl' | 'xxl', number> & { |
... | ... | @@ -50,7 +51,13 @@ export interface CardListEmitType { |
50 | 51 | (eventName: 'fetchError', error: Error): void; |
51 | 52 | } |
52 | 53 | |
53 | -export interface CardListRenderItem<T = Recordable> { | |
54 | +export interface CardListRenderItem<T = Recordable & { checked?: boolean }> { | |
54 | 55 | item: T; |
55 | 56 | totalHeight: number; |
56 | 57 | } |
58 | + | |
59 | +export interface CardListSelectionsType<T = Recordable> { | |
60 | + onSelect?: (record: T, selected: boolean) => any; | |
61 | + onSelectAll: (selectedRecords: T[]) => any; | |
62 | + onSelectInvert: (selectedRecords: T[]) => any; | |
63 | +} | ... | ... |
... | ... | @@ -20,7 +20,7 @@ export interface DefineComponentsBasicExpose<T = Recordable> { |
20 | 20 | } |
21 | 21 | |
22 | 22 | declare global { |
23 | - interface CardListRenderItem<T = Recordable> { | |
23 | + interface CardListRenderItem<T = Recordable & { checked?: boolean }> { | |
24 | 24 | item: T; |
25 | 25 | totalHeight: number; |
26 | 26 | } | ... | ... |