feat: 处理页面报错

This commit is contained in:
Tim
2025-08-07 21:18:21 +08:00
parent d19cfc0797
commit 9c59277023
12 changed files with 12 additions and 35 deletions

View File

@@ -10,28 +10,26 @@
<div class="about-tabs-item-label">{{ tab.label }}</div>
</div>
</div>
<div class="about-content" v-html="renderMarkdown(content)" @click="handleContentClick"></div>
<div class="about-loading" v-if="isFetching">
<l-hatch-spinner size="100" stroke="10" speed="1" color="var(--primary-color)" />
</div>
<div v-else class="about-content" v-html="renderMarkdown(content)" @click="handleContentClick"></div>
</div>
</template>
<script>
import { ref, onMounted } from 'vue'
import { renderMarkdown, handleMarkdownClick } from '../utils/markdown'
import { hatch } from 'ldrs'
hatch.register()
export default {
name: 'AboutPageView',
setup() {
const isFetching = ref(false)
const tabs = [
{ name: 'about', label: '关于', file: '/about_markdown/about.md' },
{ name: 'agreement', label: '用户协议', file: '/about_markdown/agreement.md' },
{ name: 'guideline', label: '创作准则', file: '/about_markdown/guideline.md' },
{ name: 'privacy', label: '隐私政策', file: '/about_markdown/privacy.md' },
{ name: 'about', label: '关于', file: 'https://openisle-1307107697.cos.ap-guangzhou.myqcloud.com/assert/about/about.md' },
{ name: 'agreement', label: '用户协议', file: 'https://openisle-1307107697.cos.ap-guangzhou.myqcloud.com/assert/about/agreement.md' },
{ name: 'guideline', label: '创作准则', file: 'https://openisle-1307107697.cos.ap-guangzhou.myqcloud.com/assert/about/guideline.md' },
{ name: 'privacy', label: '隐私政策', file: 'https://openisle-1307107697.cos.ap-guangzhou.myqcloud.com/assert/about/privacy.md' },
]
const selectedTab = ref(tabs[0].name)
const content = ref('')
@@ -47,8 +45,9 @@ export default {
}
} catch (e) {
content.value = '# 内容加载失败'
} finally {
isFetching.value = false
}
isFetching.value = false
}
const selectTab = (name) => {

View File

@@ -33,8 +33,6 @@
import { API_BASE_URL } from '../main'
import TimeManager from '../utils/time'
import MilkTeaActivityComponent from '../components/MilkTeaActivityComponent.vue'
import { hatch } from 'ldrs'
hatch.register()
export default {
name: 'ActivityListPageView',

View File

@@ -303,9 +303,7 @@ import { markNotificationsRead, fetchUnreadCount, notificationState } from '../u
import { toast } from '../main'
import { stripMarkdownLength } from '../utils/markdown'
import TimeManager from '../utils/time'
import { hatch } from 'ldrs'
import { reactionEmojiMap } from '../utils/reactions'
hatch.register()
export default {
name: 'MessagePageView',

View File

@@ -119,11 +119,9 @@ import { renderMarkdown, handleMarkdownClick, stripMarkdownLength } from '../uti
import { API_BASE_URL, toast } from '../main'
import { getToken, authState } from '../utils/auth'
import TimeManager from '../utils/time'
import { hatch } from 'ldrs'
import { useRouter } from 'vue-router'
import { isMobile } from '../utils/screen'
import Dropdown from '../components/Dropdown.vue'
hatch.register()
export default {
name: 'PostPageView',

View File

@@ -66,8 +66,6 @@ import { getToken, fetchCurrentUser, setToken } from '../utils/auth'
import BaseInput from '../components/BaseInput.vue'
import Dropdown from '../components/Dropdown.vue'
import AvatarCropper from '../components/AvatarCropper.vue'
import { hatch } from 'ldrs'
hatch.register()
export default {
name: 'SettingsPageView',
components: { BaseInput, Dropdown, AvatarCropper },

View File

@@ -260,8 +260,6 @@ import LevelProgress from '../components/LevelProgress.vue'
import { stripMarkdown, stripMarkdownLength } from '../utils/markdown'
import TimeManager from '../utils/time'
import { prevLevelExp } from '../utils/level'
import { hatch } from 'ldrs'
hatch.register()
export default {
name: 'ProfileView',