|
|
@@ -1,10 +1,11 @@
|
|
1
|
1
|
import cache from "@/utils/cache";
|
|
2
|
|
-import { diff } from "@/utils/util";
|
|
3
|
2
|
import website from "@/const/website";
|
|
4
|
|
-import { ITagType } from "@/const/interface_type";
|
|
|
3
|
+
|
|
5
|
4
|
import { ref } from "vue";
|
|
|
5
|
+import { diff } from "@/utils/util";
|
|
|
6
|
+import { ITagType } from "@/const/interface_type";
|
|
|
7
|
+import store from "..";
|
|
6
|
8
|
|
|
7
|
|
-const isFirstPage = website.isFirstPage;
|
|
8
|
9
|
const tagWel = website.fistPage;
|
|
9
|
10
|
const tagObj = ref<ITagType>({
|
|
10
|
11
|
label: "", // 标题名称
|
|
|
@@ -14,20 +15,6 @@ const tagObj = ref<ITagType>({
|
|
14
|
15
|
// group: [] // 分组
|
|
15
|
16
|
});
|
|
16
|
17
|
|
|
17
|
|
-// 处理首个标签
|
|
18
|
|
-function setFistTag(list: ITagType[]) {
|
|
19
|
|
- if (list.length === 1) {
|
|
20
|
|
- list[0].close = false;
|
|
21
|
|
- } else {
|
|
22
|
|
- list.forEach((ele) => {
|
|
23
|
|
- if (ele.value === tagWel.value && isFirstPage === false) {
|
|
24
|
|
- ele.close = false;
|
|
25
|
|
- } else {
|
|
26
|
|
- ele.close = true;
|
|
27
|
|
- }
|
|
28
|
|
- });
|
|
29
|
|
- }
|
|
30
|
|
-}
|
|
31
|
18
|
export default {
|
|
32
|
19
|
state: () => ({
|
|
33
|
20
|
tagList: cache.session.getJSON("tagList") || [],
|
|
|
@@ -40,29 +27,31 @@ export default {
|
|
40
|
27
|
cache.session.setJSON("tag", state.tag);
|
|
41
|
28
|
if (state.tagList.some((ele: any) => diff(ele, action))) return;
|
|
42
|
29
|
state.tagList.push(action);
|
|
43
|
|
- setFistTag(state.tagList);
|
|
44
|
30
|
cache.session.setJSON("tagList", state.tagList);
|
|
45
|
31
|
},
|
|
46
|
32
|
DEL_TAG: (state: any, action: ITagType) => {
|
|
|
33
|
+ const query = store.getters.detailQuery;
|
|
|
34
|
+ const isDel = Object.keys(query).find((item) => action.value.includes(item));
|
|
|
35
|
+ if (isDel) store.commit("DEL_QUERY", isDel);
|
|
47
|
36
|
state.tagList = state.tagList.filter((item: ITagType) => {
|
|
48
|
37
|
return !diff(item, action);
|
|
49
|
38
|
});
|
|
50
|
|
- setFistTag(state.tagList);
|
|
51
|
39
|
cache.session.setJSON("tagList", state.tagList);
|
|
52
|
40
|
},
|
|
53
|
41
|
DEL_ALL_TAG: (state: any) => {
|
|
54
|
42
|
state.tagList = [];
|
|
|
43
|
+ store.commit("DEL_ALL_QUERY");
|
|
55
|
44
|
cache.session.setJSON("tagList", state.tagList);
|
|
56
|
45
|
},
|
|
57
|
46
|
DEL_TAG_OTHER: (state: any) => {
|
|
|
47
|
+ const query = store.getters.detailQuery;
|
|
|
48
|
+ const isRetain = Object.keys(query).find((item) => state.tag.value.includes(item));
|
|
|
49
|
+ if (isRetain) store.commit("DEL_OTHER_QUERY", isRetain);
|
|
58
|
50
|
state.tagList = state.tagList.filter((item: ITagType) => {
|
|
59
|
51
|
if (item.value === state.tag.value) {
|
|
60
|
52
|
return true;
|
|
61
|
|
- } else if (!website.isFirstPage && item.value === website.fistPage.value) {
|
|
62
|
|
- return true;
|
|
63
|
53
|
}
|
|
64
|
54
|
});
|
|
65
|
|
- setFistTag(state.tagList);
|
|
66
|
55
|
cache.session.setJSON("tagList", state.tagList);
|
|
67
|
56
|
}
|
|
68
|
57
|
},
|