Skip to content

Commit d108a9d

Browse files
committed
feat: 添加新页面和路由,更新状态管理
1 parent a76f899 commit d108a9d

9 files changed

Lines changed: 270 additions & 43 deletions

File tree

src/Root.vue

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
<template>
2+
<router-view />
3+
</template>
4+
5+
<script>
6+
export default {
7+
name: "Root",
8+
};
9+
</script>

src/assets/css/index.less

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,10 @@
3939
flex-wrap: wrap;
4040
gap: 12px;
4141

42+
.u-img {
43+
.size(50px);
44+
}
45+
4246
.m-child-category {
4347
.flex;
4448
width: calc(50% - 15px);

src/assets/data/menus.json

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,20 @@
7878
"icon": "el-icon-files",
7979
"key": "book",
8080
"status": true
81+
},
82+
{
83+
"path": "/codex/adventure",
84+
"label": "奇遇珍卷",
85+
"icon": "el-icon-files",
86+
"key": "codextreature",
87+
"status": true
88+
},
89+
{
90+
"path": "/codex/achievement",
91+
"label": "资历宝典",
92+
"icon": "el-icon-files",
93+
"key": "codexachievement",
94+
"status": true
8195
}
8296
]
8397
},
Lines changed: 18 additions & 0 deletions
Loading
Lines changed: 21 additions & 0 deletions
Loading

src/main.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
// 1.Create APP
22
import { createApp } from "vue";
3-
import App from "./App.vue";
3+
import App from "./Root.vue";
44
const app = createApp(App);
55

66
// 2.Router

src/pages/adventure/router.js

Lines changed: 41 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -25,49 +25,49 @@ const routes = [
2525
},
2626
},
2727
},
28-
{
29-
name: "treasure",
30-
path: "/treasure",
31-
redirect: () => {
32-
const isMobile = window.innerWidth <= 768;
33-
return isMobile ? "/treasure/portrait" : "/treasure/landscape";
34-
},
35-
meta: {
36-
i18n: {
37-
title: "pages.adventure.treasure.title",
38-
keywords: "pages.adventure.treasure.keywords",
39-
description: "pages.adventure.treasure.description",
40-
},
41-
},
28+
// {
29+
// name: "treasure",
30+
// path: "/treasure",
31+
// redirect: () => {
32+
// const isMobile = window.innerWidth <= 768;
33+
// return isMobile ? "/treasure/portrait" : "/treasure/landscape";
34+
// },
35+
// meta: {
36+
// i18n: {
37+
// title: "pages.adventure.treasure.title",
38+
// keywords: "pages.adventure.treasure.keywords",
39+
// description: "pages.adventure.treasure.description",
40+
// },
41+
// },
4242

43-
},
44-
{
45-
name: "landscape",
46-
path: "/treasure/landscape",
47-
component: () => import("@/views/adventure/landscape.vue"),
48-
meta: {
49-
name: "横屏",
50-
i18n: {
51-
title: "pages.adventure.treasure.landscape.title",
52-
keywords: "pages.adventure.treasure.landscape.keywords",
53-
description: "pages.adventure.treasure.landscape.description",
54-
},
43+
// },
44+
// {
45+
// name: "landscape",
46+
// path: "/treasure/landscape",
47+
// component: () => import("@/views/adventure/landscape.vue"),
48+
// meta: {
49+
// name: "横屏",
50+
// i18n: {
51+
// title: "pages.adventure.treasure.landscape.title",
52+
// keywords: "pages.adventure.treasure.landscape.keywords",
53+
// description: "pages.adventure.treasure.landscape.description",
54+
// },
5555

56-
},
57-
},
58-
{
59-
name: "portrait",
60-
path: "/treasure/portrait",
61-
component: () => import("@/views/adventure/portrait.vue"),
62-
meta: {
63-
name: "竖屏",
64-
i18n: {
65-
title: "pages.adventure.treasure.portrait.title",
66-
keywords: "pages.adventure.treasure.portrait.keywords",
67-
description: "pages.adventure.treasure.portrait.description",
68-
},
69-
},
70-
},
56+
// },
57+
// },
58+
// {
59+
// name: "portrait",
60+
// path: "/treasure/portrait",
61+
// component: () => import("@/views/adventure/portrait.vue"),
62+
// meta: {
63+
// name: "竖屏",
64+
// i18n: {
65+
// title: "pages.adventure.treasure.portrait.title",
66+
// keywords: "pages.adventure.treasure.portrait.keywords",
67+
// description: "pages.adventure.treasure.portrait.description",
68+
// },
69+
// },
70+
// },
7171
];
7272

7373
const router = createRouter({

src/router/index.js

Lines changed: 149 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import { createRouter, createWebHistory } from "vue-router";
2+
import { isMiniProgram, isApp } from "@jx3box/jx3box-common/js/utils";
23

34
const routes = [
45
{
@@ -13,6 +14,154 @@ const routes = [
1314
},
1415
},
1516
},
17+
// ===== 奇遇珍卷 =====
18+
{
19+
name: "adventure",
20+
path: "/codex/adventure",
21+
redirect: () => {
22+
const isMobile = window.innerWidth <= 768;
23+
return isMobile ? "/codex/adventure/portrait" : "/codex/adventure/landscape";
24+
},
25+
meta: {
26+
i18n: {
27+
title: "pages.adventure.treasure.title",
28+
keywords: "pages.adventure.treasure.keywords",
29+
description: "pages.adventure.treasure.description",
30+
},
31+
},
32+
33+
},
34+
{
35+
name: "landscape",
36+
path: "/codex/adventure/landscape",
37+
component: () => import("@/views/adventure/landscape.vue"),
38+
meta: {
39+
name: "横屏",
40+
i18n: {
41+
title: "pages.adventure.treasure.landscape.title",
42+
keywords: "pages.adventure.treasure.landscape.keywords",
43+
description: "pages.adventure.treasure.landscape.description",
44+
},
45+
46+
},
47+
},
48+
{
49+
name: "portrait",
50+
path: "/codex/adventure/portrait",
51+
component: () => import("@/views/adventure/portrait.vue"),
52+
meta: {
53+
name: "竖屏",
54+
i18n: {
55+
title: "pages.adventure.treasure.portrait.title",
56+
keywords: "pages.adventure.treasure.portrait.keywords",
57+
description: "pages.adventure.treasure.portrait.description",
58+
},
59+
},
60+
},
61+
62+
// ===== 资历宝典 =====
63+
{
64+
name: "achievement",
65+
path: "/codex/achievement",
66+
component: () => import("@/views/wiki/index.vue"),
67+
redirect: "/codex/achievement/overview",
68+
children: [
69+
{
70+
name: "overview",
71+
path: "overview",
72+
component:
73+
isMiniProgram() || isApp()
74+
? () => import("@/views/wiki/miniprogram/overview.vue")
75+
: () => import("@/views/wiki/overview.vue"),
76+
meta: {
77+
i18n: {
78+
title: "pages.wiki.overview.title",
79+
keywords: "pages.wiki.overview.keywords",
80+
description: "pages.wiki.overview.description",
81+
},
82+
},
83+
},
84+
{
85+
name: "compare",
86+
path: "compare",
87+
component:
88+
isMiniProgram() || isApp()
89+
? () => import("@/views/wiki/miniprogram/compare.vue")
90+
: () => import("@/views/wiki/compare.vue"),
91+
meta: {
92+
i18n: {
93+
title: "pages.wiki.compare.title",
94+
keywords: "pages.wiki.compare.keywords",
95+
description: "pages.wiki.compare.description",
96+
},
97+
},
98+
},
99+
{
100+
name: "leap",
101+
path: "leap",
102+
component: () => import("@/views/wiki/leap.vue"),
103+
meta: {
104+
i18n: {
105+
title: "pages.wiki.leap.title",
106+
keywords: "pages.wiki.leap.keywords",
107+
description: "pages.wiki.leap.description",
108+
},
109+
},
110+
},
111+
{
112+
name: "catalogue",
113+
path: "catalogue",
114+
meta: {
115+
title: "目录列表",
116+
i18n: {
117+
title: "pages.wiki.catalogue.title",
118+
keywords: "pages.wiki.catalogue.keywords",
119+
description: "pages.wiki.catalogue.description",
120+
},
121+
},
122+
component: () => import("@/views/wiki/miniprogram/catalogue.vue"),
123+
},
124+
{
125+
name: "list",
126+
path: "list",
127+
meta: {
128+
title: "成就列表",
129+
i18n: {
130+
title: "pages.wiki.list.title",
131+
keywords: "pages.wiki.list.keywords",
132+
description: "pages.wiki.list.description",
133+
},
134+
},
135+
component: () => import("@/views/wiki/miniprogram/achievement.vue"),
136+
},
137+
{
138+
name: "compare/catalogue",
139+
path: "compare/catalogue",
140+
meta: {
141+
title: "对比目录列表",
142+
i18n: {
143+
title: "pages.wiki.compare.catalogue.title",
144+
keywords: "pages.wiki.compare.catalogue.keywords",
145+
description: "pages.wiki.compare.catalogue.description",
146+
},
147+
},
148+
component: () => import("@/views/wiki/miniprogram/compare/compare_catalogue.vue"),
149+
},
150+
{
151+
name: "compare/achievement",
152+
path: "compare/achievement",
153+
meta: {
154+
title: "对比成就列表",
155+
i18n: {
156+
title: "pages.wiki.compare.achievement.title",
157+
keywords: "pages.wiki.compare.achievement.keywords",
158+
description: "pages.wiki.compare.achievement.description",
159+
},
160+
},
161+
component: () => import("@/views/wiki/miniprogram/compare/compare_achievement.vue"),
162+
},
163+
],
164+
},
16165
];
17166

18167
const router = createRouter({
@@ -21,4 +170,3 @@ const router = createRouter({
21170
});
22171

23172
export default router;
24-

src/store/index.js

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,24 @@ import { createStore } from "vuex";
33
let store = {
44
state: {
55
client: location.href.includes("origin") ? "origin" : "std",
6+
achievements: [],
7+
achievementsVirtual: [],
8+
role: null,
9+
viewAchievementsName: "",
10+
generalTotal: 0,
11+
armorTotal: 0,
12+
is_fold: false,
613
faceSingle: {},
714
isCollapse: false,
815
timezone: "Asia/Shanghai", // 时区
916
},
1017
mutations: {
18+
SET_STATE(state, payload) {
19+
if (payload.isSession) {
20+
sessionStorage.setItem(payload.key, JSON.stringify(payload.value));
21+
}
22+
state[payload.key] = payload.value;
23+
},
1124
toState(state, data) {
1225
Object.keys(data).forEach((item) => {
1326
state[item] = data[item];

0 commit comments

Comments
 (0)