From c85ea17d45adac17b780992e049685d72168fdda Mon Sep 17 00:00:00 2001
From: spring <2396852758@qq.com>
Date: 星期日, 27 四月 2025 14:38:48 +0800
Subject: [PATCH] 工艺文件缓存

---
 src/store/modules/tags.js |   25 +++++++++++++++++++------
 1 files changed, 19 insertions(+), 6 deletions(-)

diff --git a/src/store/modules/tags.js b/src/store/modules/tags.js
index d173fa5..841b5db 100644
--- a/src/store/modules/tags.js
+++ b/src/store/modules/tags.js
@@ -1,6 +1,7 @@
 import { getStore, setStore } from '@/util/store'
 import { diff } from '@/util/util'
 import website from '@/const/website'
+import Vue from 'vue'
 
 const isFirstPage = website.isFirstPage
 const tagWel = website.fistPage
@@ -17,7 +18,7 @@
   if (list.length === 1) {
     list[0].close = false
   } else {
-    list.forEach(ele => {
+    list.forEach((ele) => {
       if (ele.value === tagWel.value && isFirstPage === false) {
         ele.close = false
       } else {
@@ -36,15 +37,24 @@
   actions: {},
   mutations: {
     ADD_TAG: (state, action) => {
+      if (state.tagList.some((ele) => diff(ele, action))) return
+      Vue.prototype.$nextTick(() => {
+        const index = state.tagList.findIndex(
+          (ele) => ele.label == action.label
+        )
+        if (index > -1) {
+          state.tagList[index] = action
+        } else {
+          state.tagList.push(action)
+        }
+      })
       state.tag = action
       setStore({ name: 'tag', content: state.tag, type: 'session' })
-      if (state.tagList.some(ele => diff(ele, action))) return
-      state.tagList.push(action)
       setFistTag(state.tagList)
       setStore({ name: 'tagList', content: state.tagList, type: 'session' })
     },
     DEL_TAG: (state, action) => {
-      state.tagList = state.tagList.filter(item => {
+      state.tagList = state.tagList.filter((item) => {
         return !diff(item, action)
       })
       setFistTag(state.tagList)
@@ -55,10 +65,13 @@
       setStore({ name: 'tagList', content: state.tagList, type: 'session' })
     },
     DEL_TAG_OTHER: (state) => {
-      state.tagList = state.tagList.filter(item => {
+      state.tagList = state.tagList.filter((item) => {
         if (item.value === state.tag.value) {
           return true
-        } else if (!website.isFirstPage && item.value === website.fistPage.value) {
+        } else if (
+          !website.isFirstPage &&
+          item.value === website.fistPage.value
+        ) {
           return true
         }
       })

--
Gitblit v1.9.3