From 2ae3bfb6fbcc8d19c4980e3f2c7939628377bfff Mon Sep 17 00:00:00 2001 From: kronecker <2026692687@qq.com> Date: Mon, 5 Oct 2026 01:49:58 +0800 Subject: [PATCH] feat(frontend): build homepage dashboard and interactive tag sphere Present announcements, submission trends, recent problems, contests and solver rankings. Arrange blue pill labels in a TagCanvas sphere with adaptive sizing, mouse-follow and drag modes. Allow tag selection to filter the problem list and provide keyboard-accessible links. --- frontend/public/images/home-banner.svg | 11 + frontend/public/images/practice-space.svg | 10 + frontend/src/components/TagSphere.vue | 270 ++++++++++ frontend/src/views/HomeView.vue | 574 ++++++++++++++++++++-- 4 files changed, 835 insertions(+), 30 deletions(-) create mode 100644 frontend/public/images/home-banner.svg create mode 100644 frontend/public/images/practice-space.svg create mode 100644 frontend/src/components/TagSphere.vue diff --git a/frontend/public/images/home-banner.svg b/frontend/public/images/home-banner.svg new file mode 100644 index 0000000..483f2f0 --- /dev/null +++ b/frontend/public/images/home-banner.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/frontend/public/images/practice-space.svg b/frontend/public/images/practice-space.svg new file mode 100644 index 0000000..626ae81 --- /dev/null +++ b/frontend/public/images/practice-space.svg @@ -0,0 +1,10 @@ + + + + + + solution.cppint main() {cin >> a >> b;cout << a + b;} + 01 / SIMPLE START1 + 2 = 3 + A + THINK / BUILD / REPEAT + diff --git a/frontend/src/components/TagSphere.vue b/frontend/src/components/TagSphere.vue new file mode 100644 index 0000000..03cea6f --- /dev/null +++ b/frontend/src/components/TagSphere.vue @@ -0,0 +1,270 @@ + + + + + diff --git a/frontend/src/views/HomeView.vue b/frontend/src/views/HomeView.vue index feec2ac..b200cf3 100644 --- a/frontend/src/views/HomeView.vue +++ b/frontend/src/views/HomeView.vue @@ -1,36 +1,550 @@ - +