소스 검색

:sparkles: Introducing new features.add store key

lishangbu 6 년 전
부모
커밋
b01db7c93f
3개의 변경된 파일62개의 추가작업 그리고 37개의 파일을 삭제
  1. 1 0
      src/const/website.js
  2. 7 1
      src/store/modules/tags.js
  3. 54 36
      src/util/store.js

+ 1 - 0
src/const/website.js

@@ -1,6 +1,7 @@
 export default {
   title: 'PigX',
   logo: 'PigX',
+  key: 'pigx',   //配置主键,目前用于存储
   indexTitle: 'PigX Pro 快速开发框架',
   whiteList: ['/login', '/404', '/401', '/lock'], // 配置无权限可以访问的页面
   whiteTagList: ['/login', '/404', '/401', '/lock' ], // 配置不添加tags页面 ('/advanced-router/mutative-detail/*'——*为通配符)

+ 7 - 1
src/store/modules/tags.js

@@ -55,7 +55,13 @@ const navs = {
       setStore({ name: 'tagList', content: state.tagList, type: 'session' })
     },
     DEL_TAG_OTHER: (state) => {
-      state.tagList = state.tagList.filter(item => item.value === state.tag.value)
+      state.tagList = state.tagList.filter(item => {
+        if (item.value === state.tag.value) {
+          return true;
+        } else if (!website.isFirstPage && item.value === website.fistPage.value) {
+          return true;
+        }
+      })
       setFistTag(state.tagList)
       setStore({ name: 'tagList', content: state.tagList, type: 'session' })
     }

+ 54 - 36
src/util/store.js

@@ -1,5 +1,9 @@
-import { validatenull } from '@/util/validate'
+import {
+  validatenull
+} from '@/util/validate'
+import website from '@/const/website'
 
+const keyName = website.key + '-'
 /**
  * 存储localStorage
  */
@@ -7,16 +11,17 @@ export const setStore = (params) => {
   let {
     name,
     content,
-    type
-  } = params
+    type,
+  } = params;
+  name = keyName + name
   let obj = {
     dataType: typeof (content),
     content: content,
     type: type,
     datetime: new Date().getTime()
   }
-  if (type) window.sessionStorage.setItem(name, JSON.stringify(obj))
-  else window.localStorage.setItem(name, JSON.stringify(obj))
+  if (type) window.sessionStorage.setItem(name, JSON.stringify(obj));
+  else window.localStorage.setItem(name, JSON.stringify(obj));
 }
 /**
  * 获取localStorage
@@ -26,49 +31,59 @@ export const getStore = (params) => {
   let {
     name,
     debug
-  } = params
-  let obj = {}
-
-  let content
-  obj = window.sessionStorage.getItem(name)
-  if (validatenull(obj)) obj = window.localStorage.getItem(name)
-  if (validatenull(obj)) return
-  obj = JSON.parse(obj)
+  } = params;
+  name = keyName + name
+  let obj = {},
+    content;
+  obj = window.sessionStorage.getItem(name);
+  if (validatenull(obj)) obj = window.localStorage.getItem(name);
+  if (validatenull(obj)) return;
+  try {
+    obj = JSON.parse(obj);
+  } catch{
+    return obj;
+  }
   if (debug) {
-    return obj
+    return obj;
   }
   if (obj.dataType == 'string') {
-    content = obj.content
+    content = obj.content;
   } else if (obj.dataType == 'number') {
-    content = Number(obj.content)
+    content = Number(obj.content);
   } else if (obj.dataType == 'boolean') {
-    content = eval(obj.content)
+    content = eval(obj.content);
   } else if (obj.dataType == 'object') {
-    content = obj.content
+    content = obj.content;
   }
-  return content
+  return content;
 }
 /**
  * 删除localStorage
  */
 export const removeStore = params => {
   let {
-    name
-  } = params
-  window.localStorage.removeItem(name)
-  window.sessionStorage.removeItem(name)
+    name,
+    type
+  } = params;
+  name = keyName + name
+  if (type) {
+    window.sessionStorage.removeItem(name);
+  } else {
+    window.localStorage.removeItem(name);
+  }
+
 }
 
 /**
  * 获取全部localStorage
  */
 export const getAllStore = (params) => {
-  let list = []
+  let list = [];
   let {
     type
-  } = params
-  for (let i = 1; i <= window.sessionStorage.length; i++) {
-    if (type) {
+  } = params;
+  if (type) {
+    for (let i = 0; i <= window.sessionStorage.length; i++) {
       list.push({
         name: window.sessionStorage.key(i),
         content: getStore({
@@ -76,17 +91,20 @@ export const getAllStore = (params) => {
           type: 'session'
         })
       })
-    } else {
-      list.push(getStore({
+    }
+  } else {
+    for (let i = 0; i <= window.localStorage.length; i++) {
+      list.push({
         name: window.localStorage.key(i),
         content: getStore({
-          name: window.localStorage.key(i)
+          name: window.localStorage.key(i),
         })
-      }))
+      })
+
     }
   }
+  return list;
 
-  return list
 }
 
 /**
@@ -95,10 +113,10 @@ export const getAllStore = (params) => {
 export const clearStore = (params) => {
   let {
     type
-  } = params
+  } = params;
   if (type) {
-    window.sessionStorage.clear()
-    return
+    window.sessionStorage.clear();
+  } else {
+    window.localStorage.clear()
   }
-  window.localStorage.clear()
 }