From ffd044cf75ae896187b938e91dbd8fb83abd3615 Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期二, 28 三月 2023 20:58:11 +0800
Subject: [PATCH] 2023-03-28

---
 src/views/appmanage/index.jsx |   33 +++++++++++++++++++++------------
 1 files changed, 21 insertions(+), 12 deletions(-)

diff --git a/src/views/appmanage/index.jsx b/src/views/appmanage/index.jsx
index a54a3b7..ff500da 100644
--- a/src/views/appmanage/index.jsx
+++ b/src/views/appmanage/index.jsx
@@ -508,15 +508,24 @@
           let _href = window.location.href.split('#')[0] + 'app_record'
           let record = localStorage.getItem(_href)
           record = record ? JSON.parse(record) : null
-          
-          if (record) {
-            if (record.activeId) {
-              let index = applist.findIndex(item => item.ID === record.activeId)
-              if (index === -1) {
-                localStorage.setItem(_href, JSON.stringify({preId: '', activeId: ''}))
-              } else if (index !== 0) {
-                applist.unshift(...applist.splice(index, 1))
+
+          if (record && record.dates) {
+            let ids = applist.map(item => item.ID)
+            let reset = false
+
+            Object.keys(record.dates).forEach(key => {
+              if (!ids.includes(key)) {
+                delete record.dates[key]
+                reset = true
               }
+            })
+
+            applist.sort((a, b) => {
+              return (record.dates[b.ID] || 0) - (record.dates[a.ID] || 0)
+            })
+
+            if (reset) {
+              localStorage.setItem(_href, JSON.stringify(record))
             }
           }
         }
@@ -698,11 +707,11 @@
     let record = localStorage.getItem(_href)
     record = record ? JSON.parse(record) : null
 
-    if (!record) {
-      localStorage.setItem(_href, JSON.stringify({preId: selectApp.ID, activeId: ''}))
+    if (!record || !record.dates) {
+      localStorage.setItem(_href, JSON.stringify({preId: selectApp.ID, activeId: selectApp.ID, dates: {[selectApp.ID]: new Date().getTime()}}))
     } else {
-      if (record.preId === selectApp.ID) {
-        localStorage.setItem(_href, JSON.stringify({preId: selectApp.ID, activeId: selectApp.ID}))
+      if (record.preId === selectApp.ID || record.activeId === selectApp.ID) {
+        localStorage.setItem(_href, JSON.stringify({preId: selectApp.ID, activeId: selectApp.ID, dates: {...record.dates, [selectApp.ID]: new Date().getTime()}}))
       } else {
         localStorage.setItem(_href, JSON.stringify({...record, preId: selectApp.ID}))
       }

--
Gitblit v1.8.0