From 2a3cc4e6cecfc6dab8b60adf93f7fde898ddc939 Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期二, 25 七月 2023 16:36:23 +0800
Subject: [PATCH] 2023-07-25

---
 src/api/cacheutils.js |   24 ++++++++++++++++++------
 1 files changed, 18 insertions(+), 6 deletions(-)

diff --git a/src/api/cacheutils.js b/src/api/cacheutils.js
index f175333..bd14fa5 100644
--- a/src/api/cacheutils.js
+++ b/src/api/cacheutils.js
@@ -7,7 +7,7 @@
    */
   static openIndexDB (db) {
     try {
-      let request = window.indexedDB.open(db, 2)
+      let request = window.indexedDB.open(db, 3)
       request.onerror = () => {
         console.warn('IndexedDB 鍒濆鍖栧け璐ワ紒')
       }
@@ -27,7 +27,7 @@
         if (!window.GLOB.IndexDB.objectStoreNames.contains('caches')) {
           window.GLOB.IndexDB.createObjectStore('caches', { keyPath: 'menuid' })
         }
-        if (window.GLOB.systemType === '' && !window.GLOB.IndexDB.objectStoreNames.contains('funcs')) {
+        if (!window.GLOB.IndexDB.objectStoreNames.contains('funcs')) {
           window.GLOB.IndexDB.createObjectStore('funcs', { keyPath: 'id' })
         }
       }
@@ -72,6 +72,7 @@
       new Promise((resolve) => {
         let request = window.GLOB.IndexDB.transaction(['configs']).objectStore('configs').openCursor()
         let menus = []
+        let ids = []
 
         request.onerror = () => {
           resolve(menus)
@@ -80,7 +81,10 @@
         request.onsuccess = (e) => {
           let cursor = e.target.result
           if (cursor) {
-            menus.push(`'${cursor.value.menuid}','${cursor.value.open_edition || 'mk'}'`)
+            if (cursor.value.menuid && !ids.includes(cursor.value.menuid)) {
+              menus.push(`'${cursor.value.menuid}','${cursor.value.open_edition || 'mk'}'`)
+              ids.push(cursor.value.menuid)
+            }
             cursor.continue()
           } else {
             resolve(menus)
@@ -200,7 +204,7 @@
   /**
    * @description 鑾峰彇IndexedDB涓殑閰嶇疆淇℃伅
    */
-  static getIndexDBCacheConfig (MenuID) {
+  static getIndexDBCacheConfig (MenuID, limit) {
     if (!window.GLOB.IndexDB) return Promise.resolve()
     
     return new Promise((resolve, reject) => {
@@ -211,7 +215,15 @@
       }
 
       request.onsuccess = () => {
-        resolve(request.result)
+        if (limit && request.result) {
+          if (request.result.CreateDate > limit) {
+            resolve(request.result)
+          } else {
+            resolve()
+          }
+        } else {
+          resolve(request.result)
+        }
       }
     })
   }
@@ -230,7 +242,7 @@
       request.onsuccess = (e) => {
         let cursor = e.target.result
         if (cursor) {
-          if (cursor.value.CreateDate < date) {
+          if (cursor.value.CreateDate < date || cursor.value.CreateDate.length === 10) {
             cursor.delete()
           }
           cursor.continue()

--
Gitblit v1.8.0