12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- import { defineStore } from 'pinia'
- interface FilterValues {
- [x: string]: string[]
- }
- export const useTableSettingsStore = defineStore('tableSettings', () => {
- const route = useRoute()
- const savedHiddenColumnKeysMap = ref<{ [fullTableName: string]: string[] }>(
- JSON.parse(localStorage.getItem('savedHiddenColumnKeysMap') ?? '{}')
- )
- const saveHiddenColumnKeys = (columnKeys: string[] = [], tableName?: string) => {
- const fullTableName = route.path + (tableName ? `/${tableName}` : '')
- savedHiddenColumnKeysMap.value[fullTableName] = columnKeys
- localStorage.setItem(
- 'savedHiddenColumnKeysMap',
- JSON.stringify(savedHiddenColumnKeysMap.value)
- )
- }
- const savedTableFilterValueMap = ref<{
- [fullTableName: string]: FilterValues
- }>(JSON.parse(localStorage.getItem('savedTableFilterValueMap') ?? '{}'))
- const saveTableFilterValues = (
- filterValues: FilterValues,
- tableName?: string
- ) => {
- const fullTableName = route.path + (tableName ? `/${tableName}` : '')
- savedTableFilterValueMap.value[fullTableName] = filterValues
- localStorage.setItem(
- 'savedTableFilterValueMap',
- JSON.stringify(savedTableFilterValueMap.value)
- )
- }
- return {
- savedHiddenColumnKeysMap,
- saveHiddenColumnKeys,
- savedTableFilterValueMap,
- saveTableFilterValues,
- }
- })
|