From 062c044295ff78b8c975260a72ca363145bdfd93 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=94=A6=E9=BA=9F=20=E7=8E=8B?= Date: Thu, 18 Jun 2026 11:28:50 +0800 Subject: [PATCH] =?UTF-8?q?feat(mobile):=20stage=2010=20-=20bulletin=20boa?= =?UTF-8?q?rd=20(group=20detail=20'=E5=85=AC=E5=91=8A'=20tab)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - new BulletinListMobile.vue: pinned section + normal list + publish button + unread dots + realtime subscription + mark-all-read - new BulletinPostSheetMobile.vue: 3-in-1 bottom sheet (detail / edit / create) with priority/pinned/expires + permission-based edit/delete (owner/admin/creator) - GroupViewMobile: add '公告' tab (after 动态), wire BulletinListMobile - reuses uat bulletin store (posts/pinnedPosts/normalPosts/isRead/create/update/remove) build verified: vue-tsc + vite build pass --- .../bulletin/BulletinListMobile.vue | 285 ++++++++++++++++++ .../bulletin/BulletinPostSheetMobile.vue | 276 +++++++++++++++++ frontend/src/views-mobile/GroupViewMobile.vue | 9 +- 3 files changed, 567 insertions(+), 3 deletions(-) create mode 100644 frontend/src/components-mobile/bulletin/BulletinListMobile.vue create mode 100644 frontend/src/components-mobile/bulletin/BulletinPostSheetMobile.vue diff --git a/frontend/src/components-mobile/bulletin/BulletinListMobile.vue b/frontend/src/components-mobile/bulletin/BulletinListMobile.vue new file mode 100644 index 0000000..a9b832f --- /dev/null +++ b/frontend/src/components-mobile/bulletin/BulletinListMobile.vue @@ -0,0 +1,285 @@ + + + + + + + diff --git a/frontend/src/components-mobile/bulletin/BulletinPostSheetMobile.vue b/frontend/src/components-mobile/bulletin/BulletinPostSheetMobile.vue new file mode 100644 index 0000000..3835290 --- /dev/null +++ b/frontend/src/components-mobile/bulletin/BulletinPostSheetMobile.vue @@ -0,0 +1,276 @@ + + + + + + + + + + diff --git a/frontend/src/views-mobile/GroupViewMobile.vue b/frontend/src/views-mobile/GroupViewMobile.vue index e99710a..0605cd5 100644 --- a/frontend/src/views-mobile/GroupViewMobile.vue +++ b/frontend/src/views-mobile/GroupViewMobile.vue @@ -12,6 +12,7 @@ import PollListMobile from '@/components-mobile/poll/PollListMobile.vue' import BetListMobile from '@/components-mobile/bet/BetListMobile.vue' import MemoryGridMobile from '@/components-mobile/memory/MemoryGridMobile.vue' import StatsPanelMobile from '@/components-mobile/stats/StatsPanelMobile.vue' +import BulletinListMobile from '@/components-mobile/bulletin/BulletinListMobile.vue' import Placeholder from '@/views-mobile/Placeholder.vue' import { Wallet, Box, Warning } from '@element-plus/icons-vue' @@ -57,10 +58,10 @@ onUnmounted(async () => { }) // 标签配置 -// 注:polls/bets/memories/stats 子组件阶段 6/9 迁移后接入; -// bulletin/events 阶段 10/11 新增 +// polls/bets/memories/stats 子组件已迁移;bulletin 阶段 10 新增;events 阶段 11 新增 const tabs = [ { name: 'activity', label: '动态' }, + { name: 'bulletin', label: '公告' }, { name: 'polls', label: '投票' }, { name: 'bets', label: '竞猜' }, { name: 'members', label: '成员' }, @@ -133,7 +134,9 @@ function goBlacklist() { - + + +