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,6 +26,7 @@ export interface BasicCardListPropsType<T = Recordable> { | ||
| 26 | immediate?: boolean; | 26 | immediate?: boolean; |
| 27 | handleSearchInfoFn?: Fn; | 27 | handleSearchInfoFn?: Fn; |
| 28 | baseLayout?: Record<'row' | 'col', number>; | 28 | baseLayout?: Record<'row' | 'col', number>; |
| 29 | + selections?: boolean; | ||
| 29 | } | 30 | } |
| 30 | 31 | ||
| 31 | export type ListGridType = Record<'column' | 'xs' | 'sm' | 'md' | 'lg' | 'xl' | 'xxl', number> & { | 32 | export type ListGridType = Record<'column' | 'xs' | 'sm' | 'md' | 'lg' | 'xl' | 'xxl', number> & { |
| @@ -50,7 +51,13 @@ export interface CardListEmitType { | @@ -50,7 +51,13 @@ export interface CardListEmitType { | ||
| 50 | (eventName: 'fetchError', error: Error): void; | 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 | item: T; | 55 | item: T; |
| 55 | totalHeight: number; | 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 | +} |
| @@ -31,6 +31,7 @@ | @@ -31,6 +31,7 @@ | ||
| 31 | api: getPage, | 31 | api: getPage, |
| 32 | useSearchForm: true, | 32 | useSearchForm: true, |
| 33 | title: '组态列表', | 33 | title: '组态列表', |
| 34 | + gutter: 4, | ||
| 34 | formConfig: { | 35 | formConfig: { |
| 35 | schemas: searchFormSchema, | 36 | schemas: searchFormSchema, |
| 36 | labelWidth: 80, | 37 | labelWidth: 80, |
| @@ -26,6 +26,7 @@ | @@ -26,6 +26,7 @@ | ||
| 26 | api: getPage, | 26 | api: getPage, |
| 27 | useSearchForm: true, | 27 | useSearchForm: true, |
| 28 | title: '模版列表', | 28 | title: '模版列表', |
| 29 | + gutter: 4, | ||
| 29 | formConfig: { | 30 | formConfig: { |
| 30 | schemas: searchFormSchema, | 31 | schemas: searchFormSchema, |
| 31 | labelWidth: 80, | 32 | labelWidth: 80, |
| @@ -42,6 +42,7 @@ | @@ -42,6 +42,7 @@ | ||
| 42 | api: getPage, | 42 | api: getPage, |
| 43 | title: '数据大屏', | 43 | title: '数据大屏', |
| 44 | useSearchForm: true, | 44 | useSearchForm: true, |
| 45 | + gutter: 4, | ||
| 45 | formConfig: { | 46 | formConfig: { |
| 46 | labelWidth: 80, | 47 | labelWidth: 80, |
| 47 | schemas: searchFormSchema, | 48 | schemas: searchFormSchema, |
| @@ -20,7 +20,7 @@ export interface DefineComponentsBasicExpose<T = Recordable> { | @@ -20,7 +20,7 @@ export interface DefineComponentsBasicExpose<T = Recordable> { | ||
| 20 | } | 20 | } |
| 21 | 21 | ||
| 22 | declare global { | 22 | declare global { |
| 23 | - interface CardListRenderItem<T = Recordable> { | 23 | + interface CardListRenderItem<T = Recordable & { checked?: boolean }> { |
| 24 | item: T; | 24 | item: T; |
| 25 | totalHeight: number; | 25 | totalHeight: number; |
| 26 | } | 26 | } |