| | |
| | | import { Module, VuexModule, Mutation, Action } from 'vuex-module-decorators'; |
| | | import _ from 'lodash'; |
| | | import { Action, Module, Mutation, VuexModule } from 'vuex-module-decorators'; |
| | | |
| | | |
| | | export enum LocalStorageItem { |
| | |
| | | //** 初始物件狀態 **// |
| | | private getInitLocalStorageDto(): storageDataDto { |
| | | const initLocalStorageDto = {} as storageDataDto; |
| | | _.forEach( LocalStorageItem , keyName => |
| | | initLocalStorageDto[keyName] = this.processOfStorageGetItem(keyName) |
| | | ) |
| | | Object.values(LocalStorageItem).forEach(keyName => { |
| | | initLocalStorageDto[keyName] = this.processOfStorageGetItem(keyName); |
| | | }); |
| | | return initLocalStorageDto; |
| | | } |
| | | //** 取得 localStorage資料 **/ |
| | |
| | | const storageData = localStorage.getItem(keyName); |
| | | const itemType = initialValueOfStorageItemDto[keyName]; |
| | | const prepareData = storageData |
| | | ? _.isEqual(itemType,String) |
| | | ? itemType === String |
| | | ? storageData |
| | | : JSON.parse(storageData) |
| | | : null; |
| | | return prepareData |
| | | } |
| | | |
| | | ///////////////////////////////////////////////// Mutation |
| | | |
| | | /** 儲存進 localStorageDto **/ |
| | |
| | | |
| | | //** 移除全部物件 **// |
| | | @Mutation clearStoreData(): void { |
| | | _.keys(this.localStorageDto) |
| | | Object.keys(this.localStorageDto) |
| | | .forEach(keyName => { |
| | | localStorage.removeItem(keyName); |
| | | this.localStorageDto[keyName]=null; |
| | |
| | | |
| | | //** 物件儲存 **// |
| | | @Action storeData( data: storageDataDto ): void { |
| | | _.keys(data).forEach(keyName=>{ |
| | | Object.keys(data).forEach(keyName=>{ |
| | | const newObj = { |
| | | keyName:keyName, |
| | | value:data[keyName] |
| | |
| | | //** 將需要 存進 localStorage 格式 **// |
| | | @Action localStorageSet( setItem:SetItemDto ): void { |
| | | const itemType = initialValueOfStorageItemDto[setItem.keyName]; |
| | | const prepareData = _.isEqual(itemType,String) |
| | | const prepareData = typeof itemType === 'string' |
| | | ? setItem.value |
| | | : JSON.stringify(setItem.value); |
| | | localStorage.setItem(setItem.keyName,prepareData); |