-
-
![]()
+
+
+
+
+
-
-
+
+
+
+
+
+
+
+
+
+
+
+
![]()
+
+
+
+
+
+ {{
+ ch.lastMessage
+ ? stripMarkdownLength(ch.lastMessage.content, 100)
+ : ch.description
+ }}
+
+
成员 {{ ch.memberCount }}
+
+
+
+
+
+
+
@@ -132,6 +135,7 @@ import TimeManager from '~/utils/time'
import { stripMarkdownLength } from '~/utils/markdown'
import SearchPersonDropdown from '~/components/SearchPersonDropdown.vue'
import BasePlaceholder from '~/components/BasePlaceholder.vue'
+import BaseTabs from '~/components/BaseTabs.vue'
const config = useRuntimeConfig()
const conversations = ref([])
@@ -152,6 +156,10 @@ const channels = ref([])
const loadingChannels = ref(false)
const isFloatMode = computed(() => route.query.float === '1')
const floatRoute = useState('messageFloatRoute')
+const tabs = [
+ { name: 'messages', label: '站内信' },
+ { name: 'channels', label: '频道' },
+]
async function fetchConversations() {
const token = getToken()
@@ -216,16 +224,6 @@ async function fetchChannels() {
}
}
-function switchToMessage() {
- activeTab.value = 'messages'
- fetchConversations()
-}
-
-function switchToChannels() {
- activeTab.value = 'channels'
- fetchChannels()
-}
-
async function goToChannel(id) {
const token = getToken()
if (!token) {
@@ -285,6 +283,14 @@ watch(isConnected, (newValue) => {
}
})
+watch(activeTab, (val) => {
+ if (val === 'messages') {
+ fetchConversations()
+ } else {
+ fetchChannels()
+ }
+})
+
onUnmounted(() => {
if (subscription) {
subscription.unsubscribe()
@@ -323,22 +329,10 @@ function minimize() {
cursor: pointer;
}
-.tabs {
- display: flex;
- border-bottom: 1px solid var(--normal-border-color);
+.messages-container :deep(.base-tabs-header) {
margin-bottom: 16px;
}
-.tab {
- padding: 10px 20px;
- cursor: pointer;
-}
-
-.tab.active {
- border-bottom: 2px solid var(--primary-color);
- color: var(--primary-color);
-}
-
.loading-message {
display: flex;
justify-content: center;
@@ -500,7 +494,7 @@ function minimize() {
display: block;
}
- .tabs,
+ .base-tabs-wrapper,
.loading-message,
.error-container,
.search-container,
diff --git a/frontend_nuxt/pages/message.vue b/frontend_nuxt/pages/message.vue
index d694b1b2d..10c787bbe 100644
--- a/frontend_nuxt/pages/message.vue
+++ b/frontend_nuxt/pages/message.vue
@@ -1,545 +1,527 @@
-
-
-
-
-
通知设置
-
-
-
{{ formatType(pref.type) }}
-
togglePref(pref, val)"
- />
+
+
+
-
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {{ item.comment.author.username }}
-
- 对我的评论
-
-
- {{ stripMarkdownLength(item.parentComment.content, 100) }}
-
-
- 回复了
-
-
- {{ stripMarkdownLength(item.comment.content, 100) }}
-
-
-
-
-
-
- {{ item.comment.author.username }}
-
- 对我的文章
-
-
- {{ stripMarkdownLength(item.post.title, 100) }}
-
-
- 回复了
-
-
- {{ stripMarkdownLength(item.comment.content, 100) }}
-
-
-
-
-
-
- {{ item.fromUser.username }}
- 申请进行奶茶兑换,联系方式是:{{ item.content }}
-
-
-
-
- {{ item.fromUser.username }}
- 申请积分兑换,联系方式是:{{ item.content }}
-
-
-
-
- {{ item.fromUser.username }} 对我的文章
-
-
- {{ stripMarkdownLength(item.post.title, 100) }}
-
-
- 进行了表态
-
-
-
-
- {{ item.fromUser.username }}
-
- 对我的评论
-
-
- {{ stripMarkdownLength(item.comment.content, 100) }}
-
-
- 进行了表态
-
-
-
-
-
- {{ item.fromUser.username }}
-
- 查看了您的帖子
-
- {{ stripMarkdownLength(item.post.title, 100) }}
-
-
-
-
-
- 恭喜你在抽奖贴
-
- {{ stripMarkdownLength(item.post.title, 100) }}
-
- 中获奖
-
-
-
-
- 您的抽奖贴
-
- {{ stripMarkdownLength(item.post.title, 100) }}
-
- 已开奖
-
-
-
-
- 您关注的帖子
-
- {{ stripMarkdownLength(item.post.title, 100) }}
-
- 下面有新评论
-
- {{ stripMarkdownLength(item.comment.content, 100) }}
-
-
-
-
-
- 你关注的
-
- {{ item.comment.author.username }}
-
- 在 对评论
-
- {{ stripMarkdownLength(item.parentComment.content, 100) }}
-
- 回复了
-
- {{ stripMarkdownLength(item.comment.content, 100) }}
-
-
-
-
-
- 你关注的
-
- {{ item.comment.author.username }}
-
- 在文章
-
- {{ stripMarkdownLength(item.post.title, 100) }}
-
- 下面评论了
-
- {{ stripMarkdownLength(item.comment.content, 100) }}
-
-
-
-
-
-
- {{ item.fromUser.username }}
-
- 在评论中提到了你:
-
- {{ stripMarkdownLength(item.comment.content, 100) }}
-
-
-
-
-
-
- {{ item.fromUser.username }}
-
- 在帖子
-
- {{ stripMarkdownLength(item.post.title, 100) }}
-
- 中提到了你
-
-
-
-
-
- {{ item.fromUser.username }}
-
- 开始关注你了
-
-
-
-
-
- {{ item.fromUser.username }}
-
- 取消关注你了
-
-
-
-
- 你关注的
-
- {{ item.fromUser.username }}
-
- 发布了文章
-
- {{ stripMarkdownLength(item.post.title, 100) }}
-
-
-
-
-
-
- {{ item.fromUser.username }}
-
- 订阅了你的文章
-
- {{ stripMarkdownLength(item.post.title, 100) }}
-
-
-
-
-
-
- {{ item.fromUser.username }}
-
- 取消订阅了你的文章
-
- {{ stripMarkdownLength(item.post.title, 100) }}
-
-
-
-
-
-
- {{ item.fromUser.username }}
-
- 发布了帖子
-
- {{ stripMarkdownLength(item.post.title, 100) }}
-
- ,请审核
-
-
-
-
- 您发布的帖子
-
- {{ stripMarkdownLength(item.post.title, 100) }}
-
- 已提交审核
-
-
-
-
- {{ item.fromUser.username }} 希望注册为会员,理由是:{{ item.content }}
-
-
- 已读
-
-
-
-
-
- 您发布的帖子
-
- {{ stripMarkdownLength(item.post.title, 100) }}
-
- 已审核通过
-
-
-
-
- 您发布的帖子
-
- {{ stripMarkdownLength(item.post.title, 100) }}
-
- 已被管理员拒绝
-
-
-
-
- 您的文章
-
- {{ stripMarkdownLength(item.post.title, 100) }}
-
- 被收录为精选
-
-
-
-
- 管理员
-
-
- {{ item.fromUser.username }}
-
-
- 删除了您的帖子
-
- {{ stripMarkdownLength(item.content, 100) }}
-
-
-
-
-
- {{ formatType(item.type) }}
-
-
-
-
{{ TimeManager.format(item.createdAt) }}
+
+
+
+
通知设置
+
+
+
{{ formatType(pref.type) }}
+
togglePref(pref, val)"
+ />
+
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ item.comment.author.username }}
+
+ 对我的评论
+
+
+ {{ stripMarkdownLength(item.parentComment.content, 100) }}
+
+
+ 回复了
+
+
+ {{ stripMarkdownLength(item.comment.content, 100) }}
+
+
+
+
+
+
+ {{ item.comment.author.username }}
+
+ 对我的文章
+
+
+ {{ stripMarkdownLength(item.post.title, 100) }}
+
+
+ 回复了
+
+
+ {{ stripMarkdownLength(item.comment.content, 100) }}
+
+
+
+
+
+
+ {{ item.fromUser.username }}
+ 申请进行奶茶兑换,联系方式是:{{ item.content }}
+
+
+
+
+ {{ item.fromUser.username }}
+ 申请积分兑换,联系方式是:{{ item.content }}
+
+
+
+
+ {{ item.fromUser.username }} 对我的文章
+
+
+ {{ stripMarkdownLength(item.post.title, 100) }}
+
+
+ 进行了表态
+
+
+
+
+ {{ item.fromUser.username }}
+
+ 对我的评论
+
+
+ {{ stripMarkdownLength(item.comment.content, 100) }}
+
+
+ 进行了表态
+
+
+
+
+
+ {{ item.fromUser.username }}
+
+ 查看了您的帖子
+
+ {{ stripMarkdownLength(item.post.title, 100) }}
+
+
+
+
+
+ 恭喜你在抽奖贴
+
+ {{ stripMarkdownLength(item.post.title, 100) }}
+
+ 中获奖
+
+
+
+
+ 您的抽奖贴
+
+ {{ stripMarkdownLength(item.post.title, 100) }}
+
+ 已开奖
+
+
+
+
+ 您关注的帖子
+
+ {{ stripMarkdownLength(item.post.title, 100) }}
+
+ 下面有新评论
+
+ {{ stripMarkdownLength(item.comment.content, 100) }}
+
+
+
+
+
+ 你关注的
+
+ {{ item.comment.author.username }}
+
+ 在 对评论
+
+ {{ stripMarkdownLength(item.parentComment.content, 100) }}
+
+ 回复了
+
+ {{ stripMarkdownLength(item.comment.content, 100) }}
+
+
+
+
+
+ 你关注的
+
+ {{ item.comment.author.username }}
+
+ 在文章
+
+ {{ stripMarkdownLength(item.post.title, 100) }}
+
+ 下面评论了
+
+ {{ stripMarkdownLength(item.comment.content, 100) }}
+
+
+
+
+
+
+ {{ item.fromUser.username }}
+
+ 在评论中提到了你:
+
+ {{ stripMarkdownLength(item.comment.content, 100) }}
+
+
+
+
+
+
+ {{ item.fromUser.username }}
+
+ 在帖子
+
+ {{ stripMarkdownLength(item.post.title, 100) }}
+
+ 中提到了你
+
+
+
+
+
+ {{ item.fromUser.username }}
+
+ 开始关注你了
+
+
+
+
+
+ {{ item.fromUser.username }}
+
+ 取消关注你了
+
+
+
+
+ 你关注的
+
+ {{ item.fromUser.username }}
+
+ 发布了文章
+
+ {{ stripMarkdownLength(item.post.title, 100) }}
+
+
+
+
+
+
+ {{ item.fromUser.username }}
+
+ 订阅了你的文章
+
+ {{ stripMarkdownLength(item.post.title, 100) }}
+
+
+
+
+
+
+ {{ item.fromUser.username }}
+
+ 取消订阅了你的文章
+
+ {{ stripMarkdownLength(item.post.title, 100) }}
+
+
+
+
+
+
+ {{ item.fromUser.username }}
+
+ 发布了帖子
+
+ {{ stripMarkdownLength(item.post.title, 100) }}
+
+ ,请审核
+
+
+
+
+ 您发布的帖子
+
+ {{ stripMarkdownLength(item.post.title, 100) }}
+
+ 已提交审核
+
+
+
+
+ {{ item.fromUser.username }} 希望注册为会员,理由是:{{ item.content }}
+
+
+ 已读
+
+
+
+
+
+ 您发布的帖子
+
+ {{ stripMarkdownLength(item.post.title, 100) }}
+
+ 已审核通过
+
+
+
+
+ 您发布的帖子
+
+ {{ stripMarkdownLength(item.post.title, 100) }}
+
+ 已被管理员拒绝
+
+
+
+
+ 您的文章
+
+ {{ stripMarkdownLength(item.post.title, 100) }}
+
+ 被收录为精选
+
+
+
+
+ 管理员
+
+
+ {{ item.fromUser.username }}
+
+
+ 删除了您的帖子
+
+ {{ stripMarkdownLength(item.content, 100) }}
+
+
+
+
+
+ {{ formatType(item.type) }}
+
+
+
+
{{ TimeManager.format(item.createdAt) }}
+
+
+
+
+
+
+
+
-