diff --git a/src/App.vue b/src/App.vue index 1045013..2e9a08f 100644 --- a/src/App.vue +++ b/src/App.vue @@ -1,13 +1,23 @@ @@ -54,7 +64,8 @@ const router = useRouter() --> + class="text-white w-9 h-9 bg-neutral-800/80 border border-[#ffffff39] rounded-full text-center backdrop-blur-3xl flex justify-center items-center" + @click="presentPreferencePanel = true"> @@ -64,5 +75,6 @@ const router = useRouter() + \ No newline at end of file diff --git a/src/components/PreferencePanel.vue b/src/components/PreferencePanel.vue new file mode 100644 index 0000000..7aacc0a --- /dev/null +++ b/src/components/PreferencePanel.vue @@ -0,0 +1,144 @@ + + + + + + + + 偏好设置 + + + + + + + + + 播放间 + + + + + 播放进度条右侧显示剩余时间 + 而非歌曲总时长 + + + + 开启 + 关闭 + + + + + + + 显示滚动歌词文本 + 当歌词文本可用时 + + + + 开启 + 关闭 + + + + + + + + + + + 行为 + + + + + 自动重定向 + 当尝试访问塞壬唱片官网时,重定向到 MSR Mod + + + + 开启 + 关闭 + + + + + 即使此项目关闭,随时都可以通过点按 MSR Mod 扩展图标启动 MSR Mod。 + + + + + + 关于 + + + + + MSR Mod + 版本号 0.0.1 + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/stores/usePreferences.ts b/src/stores/usePreferences.ts index 7590a73..dd074a9 100644 --- a/src/stores/usePreferences.ts +++ b/src/stores/usePreferences.ts @@ -11,6 +11,7 @@ declare global { export const usePreferences = defineStore('preferences', () => { const displayTimeLeft = ref(false) const presentLyrics = ref(false) + const autoRedirect = ref(true) const isLoaded = ref(false) const storageType = ref<'chrome' | 'localStorage' | 'memory'>('chrome') @@ -18,7 +19,8 @@ export const usePreferences = defineStore('preferences', () => { // 默认偏好设置 const defaultPreferences = { displayTimeLeft: false, - presentLyrics: false + presentLyrics: false, + autoRedirect: true } // 检测可用的 API @@ -140,7 +142,8 @@ export const usePreferences = defineStore('preferences', () => { const savePreferences = async () => { const preferences = { displayTimeLeft: displayTimeLeft.value, - presentLyrics: presentLyrics.value + presentLyrics: presentLyrics.value, + autoRedirect: autoRedirect.value } await setStoredValue('preferences', preferences) } @@ -151,16 +154,18 @@ export const usePreferences = defineStore('preferences', () => { const preferences = await getPreferences() displayTimeLeft.value = preferences.displayTimeLeft presentLyrics.value = preferences.presentLyrics + autoRedirect.value = preferences.autoRedirect isLoaded.value = true } catch (error) { displayTimeLeft.value = false presentLyrics.value = false + autoRedirect.value = true isLoaded.value = true } } // 监听变化并保存 - watch([displayTimeLeft, presentLyrics], async () => { + watch([displayTimeLeft, presentLyrics, autoRedirect], async () => { if (isLoaded.value) { try { await savePreferences() @@ -176,6 +181,7 @@ export const usePreferences = defineStore('preferences', () => { return { displayTimeLeft, presentLyrics, + autoRedirect, isLoaded, storageType, initializePreferences,