diff --git a/components.d.ts b/components.d.ts
index 42efaad..d6c4598 100644
--- a/components.d.ts
+++ b/components.d.ts
@@ -8,6 +8,7 @@ export {}
/* prettier-ignore */
declare module 'vue' {
export interface GlobalComponents {
+ Corner: typeof import('./src/components/Corner.vue')['default']
Editor: typeof import('./src/components/Editor.vue')['default']
Editors: typeof import('./src/components/Editors.vue')['default']
Login: typeof import('./src/components/Login.vue')['default']
diff --git a/src/App.vue b/src/App.vue
index c1d0b06..8218dcc 100644
--- a/src/App.vue
+++ b/src/App.vue
@@ -25,7 +25,7 @@ watch(authed, (v) => {
-
+
diff --git a/src/api.ts b/src/api.ts
index 62d062f..7e8b351 100644
--- a/src/api.ts
+++ b/src/api.ts
@@ -73,6 +73,11 @@ export class Tutorial {
return res.data
}
+ static async togglePublic(display: number) {
+ const res = await http.put(`/tutorial/public/${display}`)
+ return res.data
+ }
+
static async remove(display: number) {
await http.delete(`/tutorial/${display}`)
}
diff --git a/src/components/Corner.vue b/src/components/Corner.vue
new file mode 100644
index 0000000..e8b8362
--- /dev/null
+++ b/src/components/Corner.vue
@@ -0,0 +1,80 @@
+
+
+
+ 提交
+
+ {{ user.username }}
+
+
+
+ 登录
+
+
+
+
+
diff --git a/src/components/Editors.vue b/src/components/Editors.vue
index 9946ccc..9851115 100644
--- a/src/components/Editors.vue
+++ b/src/components/Editors.vue
@@ -67,69 +67,15 @@
-
-
- 提交
-
- {{ user.username }}
-
-
-
- 登录
-
-
+
diff --git a/src/components/Tutorial.vue b/src/components/Tutorial.vue
index 55f0d19..9dd0ace 100644
--- a/src/components/Tutorial.vue
+++ b/src/components/Tutorial.vue
@@ -4,10 +4,10 @@
教程(测试版)
-
+
-
+
@@ -29,10 +29,13 @@ const displays = ref([])
const content = ref("")
const $content = useTemplateRef("$content")
+const hideNav = computed(() => displays.value.length <= 1)
+
const prevDisabled = computed(() => {
const i = displays.value.indexOf(step.value)
return i <= 0
})
+
const nextDisabled = computed(() => {
const i = displays.value.indexOf(step.value)
return i === displays.value.length - 1
diff --git a/src/pages/Markdown.vue b/src/pages/Markdown.vue
index a4d1476..6bde09c 100644
--- a/src/pages/Markdown.vue
+++ b/src/pages/Markdown.vue
@@ -7,16 +7,20 @@
:key="item.display"
@click="show(item.display)"
style="cursor: pointer"
+ :embedded="!item.is_public"
>
-
+
+
+
【{{ item.display }}】{{ item.title }}
@@ -143,6 +147,15 @@ async function show(display: number) {
content.value = await marked.parse(item.content, { async: true })
}
+async function togglePublic(display: number) {
+ const data = await Tutorial.togglePublic(display)
+ message.success(data.message)
+ list.value = list.value.map((item) => {
+ if (item.display === display) item.is_public = !item.is_public
+ return item
+ })
+}
+
watch(
() => tutorial.value.content,
async (v: string) => {