From 433a29ccc97d11a2b5cc6eef53fd0c0788ac4080 Mon Sep 17 00:00:00 2001 From: tim Date: Sun, 6 Jul 2025 20:24:32 +0800 Subject: [PATCH] feat: update home page view --- open-isle-cli/src/views/HomePageView.vue | 39 ++++++++++++++++++++++-- open-isle-cli/src/views/PostPageView.vue | 8 +++-- open-isle-cli/vue.config.js | 5 ++- package-lock.json | 14 ++++++++- package.json | 5 +++ 5 files changed, 64 insertions(+), 7 deletions(-) create mode 100644 package.json diff --git a/open-isle-cli/src/views/HomePageView.vue b/open-isle-cli/src/views/HomePageView.vue index e1b18b6a7..50548ce74 100644 --- a/open-isle-cli/src/views/HomePageView.vue +++ b/open-isle-cli/src/views/HomePageView.vue @@ -39,6 +39,16 @@ +
+ +
+ +
+
+
暂时没有帖子 :( 点击发帖发送第一篇相关帖子吧!
+
+
+
@@ -86,6 +96,9 @@ import { stripMarkdown } from '../utils/markdown' import { API_BASE_URL } from '../main' import CategorySelect from '../components/CategorySelect.vue' import TagSelect from '../components/TagSelect.vue' +import { hatch } from 'ldrs' +hatch.register() + export default { name: 'HomePageView', @@ -96,10 +109,11 @@ export default { data() { return { selectedCategory: '', - selectedTags: [] + selectedTags: [], } }, setup() { + const isLoadingPosts = ref(false) const topics = ref(['最新', '排行榜', '热门', '类别']) const selectedTopic = ref('最新') @@ -107,7 +121,9 @@ export default { const fetchPosts = async () => { try { + isLoadingPosts.value = true const res = await fetch(`${API_BASE_URL}/api/posts`) + isLoadingPosts.value = false if (!res.ok) return const data = await res.json() articles.value = data.map(p => ({ @@ -130,7 +146,7 @@ export default { const sanitizeDescription = (text) => stripMarkdown(text) - return { topics, selectedTopic, articles, sanitizeDescription } + return { topics, selectedTopic, articles, sanitizeDescription, isLoadingPosts } } } @@ -191,6 +207,25 @@ export default { margin-left: 10px; } +.loading-container { + display: flex; + justify-content: center; + align-items: center; + height: 200px; +} + +.no-posts-container { + display: flex; + justify-content: center; + align-items: center; + height: 200px; +} + +.no-posts-text { + font-size: 14px; + opacity: 0.7; +} + .topic-container { display: flex; flex-direction: row; diff --git a/open-isle-cli/src/views/PostPageView.vue b/open-isle-cli/src/views/PostPageView.vue index 5158659fb..2a7781fbc 100644 --- a/open-isle-cli/src/views/PostPageView.vue +++ b/open-isle-cli/src/views/PostPageView.vue @@ -2,7 +2,7 @@
-
请不要把互联网上的戾气带来这里!
+
{{ title }}