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冒險之旅吧!
-
+
+
+
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"