diff --git a/app/package.json b/app/package.json index 960883b..6925f15 100644 --- a/app/package.json +++ b/app/package.json @@ -22,7 +22,6 @@ "@types/dompurify": "^3.0.5", "axios": "^1.6.0", "dompurify": "^3.0.6", - "echarts": "^5.4.3", "marked": "^10.0.0", "pinia": "^2.1.7", "socket.io-client": "^4.7.1", diff --git a/app/src/components/QuestMap.vue b/app/src/components/QuestMap.vue index 7eb3a2a..680743d 100644 --- a/app/src/components/QuestMap.vue +++ b/app/src/components/QuestMap.vue @@ -1,163 +1,145 @@ - @@ -174,8 +156,94 @@ onMounted(async () => { > 踏上你的Linux冒險之旅吧! -
-
-
+ + + + + + + + + {{ node.title }} + + + + + + diff --git a/app/src/store/userProfile.ts b/app/src/store/userProfile.ts index 7a154db..2a7feaf 100644 --- a/app/src/store/userProfile.ts +++ b/app/src/store/userProfile.ts @@ -12,14 +12,14 @@ interface IProgress { export interface UserProfile { username: string email: string - progress: Map + progress: Record } const useUserProfile = defineStore('userProfile', { state: (): UserProfile => ({ username: '', email: '', - progress: new Map(), + progress: {}, }), actions: { async loadUserProfile() { diff --git a/app/src/utils/api.ts b/app/src/utils/api.ts index 3d22dcc..81f2121 100644 --- a/app/src/utils/api.ts +++ b/app/src/utils/api.ts @@ -43,3 +43,8 @@ export async function getActiveSession( }) return res.data } + +export async function getQuests(): Promise { + const res = await api.get('/quests') + return res.data +} diff --git a/packages/utils/src/dag.ts b/packages/utils/src/dag.ts index b5ef439..e5ffc1b 100644 --- a/packages/utils/src/dag.ts +++ b/packages/utils/src/dag.ts @@ -5,12 +5,12 @@ interface Node { export default class DAG { private nodes = new Map() - private edges = new Set() + private edges = new Set<[string, string]>() private layers: number[] = [] constructor(nodes: Node[]) { this.nodes = new Map(nodes.map((node) => [node._id, node])) - this.edges = new Set() + this.edges = new Set<[string, string]>() this.nodes.forEach((_, id) => { this.setLayer(id) this.addEdges(id) @@ -42,7 +42,7 @@ export default class DAG { if (!node) { throw new Error(`Node ${id} not found`) } - return this.layers[node.layer - 1] + return this.layers[node.layer - 1] || 0 } private setLayer(id: string) { diff --git a/yarn.lock b/yarn.lock index 643f242..e79df65 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3817,14 +3817,6 @@ ecdsa-sig-formatter@1.0.11: dependencies: safe-buffer "^5.0.1" -echarts@^5.4.3: - version "5.5.0" - resolved "https://registry.yarnpkg.com/echarts/-/echarts-5.5.0.tgz#c13945a7f3acdd67c134d8a9ac67e917830113ac" - integrity sha512-rNYnNCzqDAPCr4m/fqyUFv7fD9qIsd50S6GDFgO1DxZhncCsNsG7IfUlAlvZe5oSEQxtsjnHiUuppzccry93Xw== - dependencies: - tslib "2.3.0" - zrender "5.5.0" - ee-first@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" @@ -7896,11 +7888,6 @@ tsconfig-paths@^3.15.0: minimist "^1.2.6" strip-bom "^3.0.0" -tslib@2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.3.0.tgz#803b8cdab3e12ba581a4ca41c8839bbb0dacb09e" - integrity sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg== - tslib@^2.1.0, tslib@^2.4.0, tslib@^2.6.2: version "2.6.2" resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.2.tgz#703ac29425e7b37cd6fd456e92404d46d1f3e4ae" @@ -8479,10 +8466,3 @@ zod@^3.23.8: version "3.23.8" resolved "https://registry.yarnpkg.com/zod/-/zod-3.23.8.tgz#e37b957b5d52079769fb8097099b592f0ef4067d" integrity sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g== - -zrender@5.5.0: - version "5.5.0" - resolved "https://registry.yarnpkg.com/zrender/-/zrender-5.5.0.tgz#54d0d6c4eda81a96d9f60a9cd74dc48ea026bc1e" - integrity sha512-O3MilSi/9mwoovx77m6ROZM7sXShR/O/JIanvzTwjN3FORfLSr81PsUGd7jlaYOeds9d8tw82oP44+3YucVo+w== - dependencies: - tslib "2.3.0"