diff --git a/src/App.vue b/src/App.vue index 5916eaa..4497bf4 100644 --- a/src/App.vue +++ b/src/App.vue @@ -1,30 +1,32 @@ diff --git a/src/data/constants.ts b/src/data/constants.ts index c60ef0c..e693dc7 100644 --- a/src/data/constants.ts +++ b/src/data/constants.ts @@ -8,6 +8,8 @@ const failoverAPI = `https://failover-api.vtsuru.suki.club/api/` export const isBackendUsable = ref(true) export const AVATAR_URL = 'https://workers.vrp.moe/api/bilibili/avatar/' +export const FILE_BASE_URL = 'https://files.vtsuru.live' +export const IMGUR_URL = FILE_BASE_URL + '/imgur/' export const apiFail = ref(false) export const BASE_API = () => (process.env.NODE_ENV === 'development' ? debugAPI : apiFail.value ? failoverAPI : releseAPI) diff --git a/src/router/user.ts b/src/router/user.ts index 9bb7cad..b10c1de 100644 --- a/src/router/user.ts +++ b/src/router/user.ts @@ -37,6 +37,15 @@ export default { title: '日程', keepAlive: true, }, + children: [ + { + path: 'ics', + beforeEnter(to: any) { + // 直接重定向到外部 URL + window.location.href = 'https://vtsuru.live/api/schedule/get-ics?id=' + to.query.id + }, + }, + ], }, ], } diff --git a/src/store/useMusicRequest.ts b/src/store/useMusicRequest.ts index 007dcf0..d325317 100644 --- a/src/store/useMusicRequest.ts +++ b/src/store/useMusicRequest.ts @@ -66,18 +66,21 @@ export const useMusicRequestProvider = defineStore('MusicRequest', () => { const message = useMessage() function addWaitingMusic(info: WaitMusicInfo) { + console.log(settings.value.orderMusicFirst + ' ' + isPlayingOrderMusic.value) if ((settings.value.orderMusicFirst && !isPlayingOrderMusic.value) || aplayerRef.value?.audio.paused == true) { playMusic(info.music) + isPlayingOrderMusic.value = true console.log(`正在播放 [${info.from.name}] 点的 ${info.music.name} - ${info.music.author?.join('/')}`) + message.success(`正在播放 [${info.from.name}] 点的 ${info.music.name} - ${info.music.author?.join('/')}`) } else { waitingMusics.value.push(info) message.success(`[${info.from.name}] 点了一首 ${info.music.name} - ${info.music.author?.join('/')}`) } } function onMusicEnd() { + isPlayingOrderMusic.value = false if (!playWaitingMusic()) { - isPlayingOrderMusic.value = false - if (currentOriginMusic) { + if (currentOriginMusic.value) { currentOriginMusic.value = undefined } setTimeout(() => { @@ -139,6 +142,14 @@ export const useMusicRequestProvider = defineStore('MusicRequest', () => { message.error('设置音频输出设备失败: ' + err) } } + function nextMusic() { + if (waitingMusics.value.length > 0) { + onMusicEnd() + } else { + isPlayingOrderMusic.value = false + aplayerRef.value?.onAudioEnded() + } + } return { waitingMusics, @@ -155,6 +166,7 @@ export const useMusicRequestProvider = defineStore('MusicRequest', () => { onMusicEnd, onMusicPlay, pauseMusic, + nextMusic, aplayerRef, } }) diff --git a/src/views/BiliAuthView.vue b/src/views/BiliAuthView.vue index c4064aa..6048879 100644 --- a/src/views/BiliAuthView.vue +++ b/src/views/BiliAuthView.vue @@ -42,6 +42,8 @@ function onStartVerify() { currentStep.value = 1 timer.value = setInterval(checkStatus, 2500) startModel.value = data.data + } else { + message.error('无法开启认证流程: ' + data.message) } }) } @@ -154,7 +156,7 @@ onMounted(async () => { 你的登陆链接为: - 复制登陆链接 + 复制登陆链接 前往个人中心 diff --git a/src/views/ManageLayout.vue b/src/views/ManageLayout.vue index 49bb108..d91b8cc 100644 --- a/src/views/ManageLayout.vue +++ b/src/views/ManageLayout.vue @@ -409,6 +409,9 @@ function logout() { cookie.value = undefined window.location.reload() } +function onNextMusic() { + musicRquestStore.nextMusic(); +} onMounted(() => { if (accountInfo.value?.isEmailVerified == false) { @@ -532,7 +535,7 @@ onMounted(() => { /> 队列: {{ musicRquestStore.waitingMusics.length }} - 下一首 + 下一首 @@ -550,7 +553,7 @@ onMounted(() => { diff --git a/src/views/manage/PointManage.vue b/src/views/manage/PointManage.vue index 2bb77aa..ab208c3 100644 --- a/src/views/manage/PointManage.vue +++ b/src/views/manage/PointManage.vue @@ -1,10 +1,11 @@