11import { ref , computed , type Ref } from 'vue' ;
22import { defineStore } from 'pinia' ;
33import { useCoreStore } from './core' ;
4+ import type { FilterParams } from '@/types/Common' ;
5+ import type { AdminforthFilterStore , sortType } from '../spa_types/core' ;
46
57export const useFiltersStore = defineStore ( 'filters' , ( ) => {
6- const filters : Ref < any [ ] > = ref ( [ ] ) ;
7- const sort : Ref < any > = ref ( { } ) ;
8+ const filters : Ref < FilterParams [ ] > = ref ( [ ] ) ;
9+ const sort : Ref < sortType > = ref ( null ) ;
810 const coreStore = useCoreStore ( ) ;
911
10- const setSort = ( s : any ) => {
12+ const setSort = ( s : sortType ) : void => {
1113 sort . value = s ;
1214 }
13- const getSort = ( ) => {
15+ const getSort = ( ) : sortType => {
1416 return sort . value ;
1517 }
16- const setFilter = ( filter : any ) => {
18+ const setFilter = ( filter : FilterParams ) => {
1719 const index = filters . value . findIndex ( f => f . field === filter . field ) ;
18- if ( filters . value [ index ] && filters . value [ index ] . operator === filter . value . operator ) {
20+ if ( filters . value [ index ] && filters . value [ index ] . operator === filter . operator ) {
1921 filters . value [ index ] = filter ;
2022 return ;
2123 }
2224 filters . value . push ( filter ) ;
2325 }
24- const setFilters = ( f : any ) => {
26+ const setFilters = ( f : FilterParams [ ] ) => {
2527 filters . value = f ;
2628 }
27- const getFilters = ( ) => {
29+ const getFilters = ( ) : FilterParams [ ] => {
2830 return filters . value ;
2931 }
30- const clearFilter = ( fieldName : string ) => {
32+ const clearFilter = ( fieldName : string ) : void => {
3133 filters . value = filters . value . filter ( f => f . field !== fieldName ) ;
3234 }
33- const clearFilters = ( ) => {
35+ const clearFilters = ( ) : void => {
3436 filters . value = [ ] ;
3537 }
3638
37- const shouldFilterBeHidden = ( fieldName : string ) => {
39+ const shouldFilterBeHidden = ( fieldName : string ) : boolean => {
3840 if ( coreStore . resource ?. columns ) {
3941 const column = coreStore . resource . columns . find ( ( col : any ) => col . name === fieldName ) ;
4042 if ( column ?. showIn ?. filter !== true ) {
@@ -48,7 +50,7 @@ export const useFiltersStore = defineStore('filters', () => {
4850 return filters . value . filter ( f => ! shouldFilterBeHidden ( f . field ) ) . length ;
4951 } ) ;
5052
51- return {
53+ const store = {
5254 setFilter,
5355 getFilters,
5456 clearFilters,
@@ -60,4 +62,6 @@ export const useFiltersStore = defineStore('filters', () => {
6062 shouldFilterBeHidden,
6163 clearFilter
6264 }
65+
66+ return store as AdminforthFilterStore ;
6367} )
0 commit comments