-
-
+
+
+
+
+
@@ -79,6 +86,7 @@ import { computed, ref, onMounted, onUnmounted } from 'vue';
import { Icon } from '@iconify/vue';
import { useRoute, useRouter } from 'vue-router';
import { usePlayerStore } from '../stores/player.js';
+import { useSession } from '../composables/useSession.js';
import CoverArt from './CoverArt.vue';
import Queue from './Queue.vue';
@@ -86,6 +94,9 @@ const route = useRoute();
const router = useRouter();
const showQueue = ref(false);
+const { can } = useSession();
+const canControl = computed(() => can('player.control'));
+
const store = usePlayerStore();
const activeBot = computed(() => store.activeBot);
const currentSong = computed(() => store.currentSong);
@@ -133,6 +144,7 @@ function updateProgress() {
}
async function onProgressClick(e: MouseEvent) {
+ if (!canControl.value) return; // seek requires player.control
const bar = progressBarRef.value;
if (!bar) return;
const rect = bar.getBoundingClientRect();
@@ -237,6 +249,14 @@ function cycleMode() {
.progress-bar-bg { height: 4px; }
.progress-bar-thumb { opacity: 1; transform: scale(1); }
}
+
+ &.no-seek {
+ cursor: default;
+ &:hover {
+ .progress-bar-bg { height: 2px; }
+ .progress-bar-thumb { opacity: 0; transform: scale(0); }
+ }
+ }
}
.progress-bar-bg {
diff --git a/web/src/views/Settings.vue b/web/src/views/Settings.vue
index 863c267..4aa2262 100755
--- a/web/src/views/Settings.vue
+++ b/web/src/views/Settings.vue
@@ -50,8 +50,8 @@
{{ ownPwSuccess }}
-
-
+
+
-
-
+
+
音质设置
@@ -967,6 +967,7 @@ async function updateProfile(botId: string, key: keyof ProfileConfig, value: boo
// --- User Management ---
const session = useSession();
+const { can } = session;
// --- Own password change (available to all authenticated users) ---
const ownPw = reactive({ old: '', new: '', confirm: '' });