Merge branch 'main' of github.com:nagisa77/OpenIsle

This commit is contained in:
tim
2025-09-01 18:50:09 +08:00
7 changed files with 96 additions and 19 deletions

View File

@@ -2,6 +2,9 @@
"name": "frontend_nuxt",
"private": true,
"type": "module",
"engines": {
"node": ">=20.0.0"
},
"scripts": {
"dev": "nuxt dev",
"build": "nuxt build",

View File

@@ -371,11 +371,12 @@ watch(isConnected, (newValue) => {
})
onActivated(async () => {
// 返回页面时:刷新数据与已读,不做强制滚动,保持用户当前位置
// 返回页面时:刷新数据与已读,并滚动到底部
if (currentUser.value) {
await fetchMessages(0)
await markConversationAsRead()
await nextTick()
scrollToBottomSmooth()
updateNearBottom()
if (!isConnected.value) {
const token = getToken()

View File

@@ -14,13 +14,15 @@
<div class="message-control-container">
<div class="message-control-title">通知设置</div>
<div class="message-control-item-container">
<div v-for="pref in notificationPrefs" :key="pref.type" class="message-control-item">
<div class="message-control-item-label">{{ formatType(pref.type) }}</div>
<BaseSwitch
:model-value="pref.enabled"
@update:modelValue="(val) => togglePref(pref, val)"
/>
</div>
<template v-for="pref in notificationPrefs">
<div v-if="canShowNotification(pref.type)" :key="pref.type" class="message-control-item">
<div class="message-control-item-label">{{ formatType(pref.type) }}</div>
<BaseSwitch
:model-value="pref.enabled"
@update:modelValue="(val) => togglePref(pref, val)"
/>
</div>
</template>
</div>
</div>
<div class="message-control-container">
@@ -753,6 +755,14 @@ const formatType = (t) => {
}
}
const isAdmin = computed(() => authState.role === 'ADMIN')
const needAdminSet = new Set(['POST_REVIEW_REQUEST','REGISTER_REQUEST', 'POINT_REDEEM', 'ACTIVITY_REDEEM'])
const canShowNotification = (type) => {
return !needAdminSet.has(type) || isAdmin.value
}
onActivated(async () => {
page.value = 0
await fetchNotifications({ page: 0, size: pageSize, unread: selectedTab.value === 'unread' })