保誠-保戶業務員媒合平台
Tomas
2023-12-25 f065760fa7df1f88747395ab4b55349ce8b2faf0
PAMapp/store/localStorage.service.ts
@@ -1,5 +1,4 @@
import { Module, VuexModule, Mutation, Action } from 'vuex-module-decorators';
import _ from 'lodash';
import { Action, Module, Mutation, VuexModule } from 'vuex-module-decorators';
export enum LocalStorageItem {
@@ -32,9 +31,9 @@
   //** 初始物件狀態 **//
  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資料 **/
@@ -42,13 +41,12 @@
    const storageData = localStorage.getItem(keyName);
    const itemType = initialValueOfStorageItemDto[keyName];
    const prepareData = storageData
                          ? _.isEqual(itemType,String)
                          ? typeof itemType === 'string'
                            ? storageData
                            : JSON.parse(storageData)
                          : null;
    return prepareData
  }
  ///////////////////////////////////////////////// Mutation
  /** 儲存進 localStorageDto **/
@@ -64,7 +62,7 @@
  //** 移除全部物件 **//
  @Mutation clearStoreData(): void {
      _.keys(this.localStorageDto)
      Object.keys(this.localStorageDto)
      .forEach(keyName => {
        localStorage.removeItem(keyName);
        this.localStorageDto[keyName]=null;
@@ -75,7 +73,7 @@
  //** 物件儲存 **//
  @Action storeData( data: storageDataDto ): void {
    _.keys(data).forEach(keyName=>{
    Object.keys(data).forEach(keyName=>{
      const newObj = {
        keyName:keyName,
        value:data[keyName]
@@ -87,7 +85,7 @@
  //** 將需要 存進 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);