+
{{ title }}
diff --git a/src/components/loading/LoadingState.vue b/src/components/loading/LoadingState.vue
new file mode 100644
index 0000000..363f5a3
--- /dev/null
+++ b/src/components/loading/LoadingState.vue
@@ -0,0 +1,145 @@
+
+
+
+
+
+
+
+
![error]()
+
{{ errorText }}
+
+
+
+
+
+
+
+
![empty]()
+
{{ emptyText }}
+
+
+
+
+
+
+
+
diff --git a/src/router/index.ts b/src/router/index.ts
index ae5a815..e3cfa5a 100644
--- a/src/router/index.ts
+++ b/src/router/index.ts
@@ -9,6 +9,24 @@ const router = createRouter({
name: 'subjects',
component: () => import('@/views/Subjects/index.vue'),
},
+ {
+ path: '/subjects/:subject',
+ name: 'subject-detail',
+ component: () => import('@/views/Subjects/SubjectDetail.vue'),
+ meta: { hideLayout: true },
+ },
+ {
+ path: '/subjects/:subject/book/:bookId',
+ name: 'textbook-detail',
+ component: () => import('@/views/Subjects/TextbookDetail.vue'),
+ meta: { hideLayout: true },
+ },
+ {
+ path: '/subjects/:subject/wrong-questions',
+ name: 'wrong-questions',
+ component: () => import('@/views/Subjects/WrongQuestions.vue'),
+ meta: { hideLayout: true },
+ },
{
path: '/tasks',
name: 'tasks',
diff --git a/src/styles/global.scss b/src/styles/global.scss
index 59d7cc0..728b6e4 100644
--- a/src/styles/global.scss
+++ b/src/styles/global.scss
@@ -39,4 +39,5 @@ body {
background: rgba(255, 255, 255, 0.3);
border: 2px solid rgba(255, 255, 255, 0.6);
border-radius: 12px;
+ padding: 32px;
}
diff --git a/src/views/EnglishTools/index.vue b/src/views/EnglishTools/index.vue
index 9a23f24..429ebc1 100644
--- a/src/views/EnglishTools/index.vue
+++ b/src/views/EnglishTools/index.vue
@@ -1,33 +1,171 @@
-
+
+
+
diff --git a/src/views/Insights/index.vue b/src/views/Insights/index.vue
index d641e29..c057e3e 100644
--- a/src/views/Insights/index.vue
+++ b/src/views/Insights/index.vue
@@ -1,33 +1,63 @@
-
+
+
+
diff --git a/src/views/Subjects/TextbookDetail.vue b/src/views/Subjects/TextbookDetail.vue
new file mode 100644
index 0000000..2ef508f
--- /dev/null
+++ b/src/views/Subjects/TextbookDetail.vue
@@ -0,0 +1,519 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/Subjects/WrongQuestions.vue b/src/views/Subjects/WrongQuestions.vue
new file mode 100644
index 0000000..658dbd6
--- /dev/null
+++ b/src/views/Subjects/WrongQuestions.vue
@@ -0,0 +1,592 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
{{ q.content }}
+
+
+
+
+
+ 做题数:
+ {{ q.count }}
+ 次
+
+
+ 正确率:
+
+ {{ q.accuracy }}%
+
+
+
+
+
+
+ {{ q.subject }}
+ {{ q.type }}
+ {{ q.level }}
+ {{ q.time }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/Subjects/components/BookCoverCard.vue b/src/views/Subjects/components/BookCoverCard.vue
new file mode 100644
index 0000000..72c6559
--- /dev/null
+++ b/src/views/Subjects/components/BookCoverCard.vue
@@ -0,0 +1,166 @@
+
+
+
+
+
+
+
+ {{ book.year }}
+ {{ book.level }}
+
+
ENGLISH
+
+
{{ book.name }}
+
{{ book.subtitle }}
+
+
+
+
+
+
diff --git a/src/views/Subjects/components/PracticeRecordCard.vue b/src/views/Subjects/components/PracticeRecordCard.vue
new file mode 100644
index 0000000..cb70af8
--- /dev/null
+++ b/src/views/Subjects/components/PracticeRecordCard.vue
@@ -0,0 +1,180 @@
+
+
+
+
{{ record.title }}
+
+
+
+
+ 做题数:{{ record.count }}次
+
+ 正确率:
+ {{ record.accuracy }}%
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/Subjects/components/SelectBookDrawer.vue b/src/views/Subjects/components/SelectBookDrawer.vue
new file mode 100644
index 0000000..695ce56
--- /dev/null
+++ b/src/views/Subjects/components/SelectBookDrawer.vue
@@ -0,0 +1,326 @@
+
+
+
+
+
+
+
+
+
+
+
+ {{ p }}
+
+
+
+
+
+
+
+
+
+
+ {{ y }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/Subjects/index.vue b/src/views/Subjects/index.vue
index cf3a380..39a6bc9 100644
--- a/src/views/Subjects/index.vue
+++ b/src/views/Subjects/index.vue
@@ -16,8 +16,9 @@ const subjects = ['英语', '语文', '数学', '科学']
display: grid;
grid-template-columns: repeat(2, 1fr);
grid-template-rows: repeat(2, 1fr);
- gap: 33px;
+ gap: 32px;
border-radius: 12px;
padding: 33px;
}
+
\ No newline at end of file
diff --git a/src/views/Tasks/index.vue b/src/views/Tasks/index.vue
index 1ab147a..2535634 100644
--- a/src/views/Tasks/index.vue
+++ b/src/views/Tasks/index.vue
@@ -73,7 +73,7 @@ const currentTasks = computed(() => {
min-height: 0;
flex-direction: column;
border-radius: 12px;
- padding: 16px;
+ // padding: 16px;
}
.tasks-panel {