feat: toast 问题修改

This commit is contained in:
Tim
2025-08-07 22:20:59 +08:00
parent f9a89ae9ef
commit 676e959d4b
7 changed files with 62 additions and 6 deletions

View File

@@ -241,12 +241,16 @@ export default {
} }
.header-content-item-main { .header-content-item-main {
background-color: var(--primary-color);
color: white;
padding: 8px 16px; padding: 8px 16px;
border-radius: 10px; border-radius: 10px;
cursor: pointer; cursor: pointer;
} }
.header-content-item-main:hover { .header-content-item-main:hover {
background-color: var(--primary-color-hover);
} }
.header-content-item-secondary { .header-content-item-secondary {

View File

@@ -4,4 +4,29 @@ export const GOOGLE_CLIENT_ID = '777830451304-nt8afkkap18gui4f9entcha99unal744.a
export const GITHUB_CLIENT_ID = 'Ov23liVkO1NPAX5JyWxJ' export const GITHUB_CLIENT_ID = 'Ov23liVkO1NPAX5JyWxJ'
export const DISCORD_CLIENT_ID = '1394985417044000779' export const DISCORD_CLIENT_ID = '1394985417044000779'
export const TWITTER_CLIENT_ID = 'ZTRTU05KSk9KTTJrTTdrVC1tc1E6MTpjaQ' export const TWITTER_CLIENT_ID = 'ZTRTU05KSk9KTTJrTTdrVC1tc1E6MTpjaQ'
export const toast = { success: () => {}, error: () => {} }
// 导入真实的 toast 功能
import { useToast } from 'vue-toastification'
// 创建一个全局的 toast 实例
let toastInstance = null
// 初始化 toast 实例的函数
export const initToast = () => {
if (!toastInstance) {
toastInstance = useToast()
}
return toastInstance
}
// 导出 toast 对象,提供 success 和 error 方法
export const toast = {
success: (message) => {
const toast = initToast()
toast.success(message)
},
error: (message) => {
const toast = initToast()
toast.error(message)
}
}

View File

@@ -2,7 +2,7 @@ import { defineNuxtConfig } from 'nuxt/config'
export default defineNuxtConfig({ export default defineNuxtConfig({
ssr: true, ssr: true,
css: ['~/assets/global.css', '~/assets/toast.css'], css: ['~/assets/global.css'],
app: { app: {
head: { head: {
link: [ link: [

View File

@@ -14,7 +14,8 @@
"nuxt": "latest", "nuxt": "latest",
"vditor": "^3.11.1", "vditor": "^3.11.1",
"vue-easy-lightbox": "^1.19.0", "vue-easy-lightbox": "^1.19.0",
"vue-echarts": "^7.0.3" "vue-echarts": "^7.0.3",
"vue-toastification": "^2.0.0-rc.5"
} }
}, },
"node_modules/@ampproject/remapping": { "node_modules/@ampproject/remapping": {
@@ -10232,6 +10233,15 @@
"vue": "^3.2.0" "vue": "^3.2.0"
} }
}, },
"node_modules/vue-toastification": {
"version": "2.0.0-rc.5",
"resolved": "https://registry.npmjs.org/vue-toastification/-/vue-toastification-2.0.0-rc.5.tgz",
"integrity": "sha512-q73e5jy6gucEO/U+P48hqX+/qyXDozAGmaGgLFm5tXX4wJBcVsnGp4e/iJqlm9xzHETYOilUuwOUje2Qg1JdwA==",
"license": "MIT",
"peerDependencies": {
"vue": "^3.0.2"
}
},
"node_modules/web-streams-polyfill": { "node_modules/web-streams-polyfill": {
"version": "3.3.3", "version": "3.3.3",
"license": "MIT", "license": "MIT",

View File

@@ -5,7 +5,8 @@
"scripts": { "scripts": {
"dev": "nuxt dev", "dev": "nuxt dev",
"build": "nuxt build", "build": "nuxt build",
"start": "nuxt start" "start": "nuxt start",
"generate": "nuxt generate"
}, },
"dependencies": { "dependencies": {
"cropperjs": "^1.6.2", "cropperjs": "^1.6.2",
@@ -16,6 +17,7 @@
"nuxt": "latest", "nuxt": "latest",
"vditor": "^3.11.1", "vditor": "^3.11.1",
"vue-easy-lightbox": "^1.19.0", "vue-easy-lightbox": "^1.19.0",
"vue-echarts": "^7.0.3" "vue-echarts": "^7.0.3",
"vue-toastification": "^2.0.0-rc.5"
} }
} }

View File

@@ -1,6 +1,8 @@
<template> <template>
<div class="site-stats-page"> <div class="site-stats-page">
<VChart v-if="option" :option="option" :autoresize="true" style="height:400px" /> <ClientOnly>
<VChart v-if="option" :option="option" :autoresize="true" style="height:400px" />
</ClientOnly>
</div> </div>
</template> </template>

View File

@@ -0,0 +1,13 @@
import { defineNuxtPlugin } from '#app'
import Toast, { POSITION } from 'vue-toastification'
import 'vue-toastification/dist/index.css'
import '~/assets/toast.css'
export default defineNuxtPlugin(nuxtApp => {
nuxtApp.vueApp.use(Toast, {
position: POSITION.TOP_RIGHT,
containerClassName: 'open-isle-toast-style-v1',
transition: 'Vue-Toastification__fade',
timeout: 2000,
})
})