From 4f770a1eeacd831b42054bed9076774ef8a16c2c Mon Sep 17 00:00:00 2001 From: mofeng-git Date: Sun, 26 Jul 2026 23:13:47 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E5=AE=8C=E5=96=84=20=20MSD=20=E9=94=99?= =?UTF-8?q?=E8=AF=AF=E6=8F=90=E7=A4=BA=EF=BC=9B=E8=A7=A3=E5=86=B3=20MSD=20?= =?UTF-8?q?=E6=96=87=E4=BB=B6=E5=90=8D=E7=A7=B0=E8=BF=87=E9=95=BF=E9=97=AE?= =?UTF-8?q?=E9=A2=98=EF=BC=9B=E4=BC=98=E5=8C=96=E7=B2=98=E8=B4=B4=E6=96=87?= =?UTF-8?q?=E6=9C=AC=E6=A0=B7=E5=BC=8F=EF=BC=9B=E4=BC=98=E5=8C=96=E6=89=80?= =?UTF-8?q?=E6=9C=89=E4=B8=8B=E6=8B=89=E6=A1=86=E6=A0=B7=E5=BC=8F=EF=BC=9B?= =?UTF-8?q?=E5=88=A0=E9=99=A4=E2=80=9C=E7=94=BB=E9=9D=A2=E9=9D=99=E6=AD=A2?= =?UTF-8?q?=E6=97=B6=E4=BC=9A=E8=87=AA=E5=8A=A8=E9=99=8D=E5=B8=A7=E2=80=9D?= =?UTF-8?q?=E6=8F=90=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- web/src/components/AudioConfigPopover.vue | 34 +-- .../components/MicrophoneTransferControls.vue | 32 +-- web/src/components/PasteModal.vue | 30 +-- web/src/i18n/en-US.ts | 3 - web/src/i18n/zh-CN.ts | 3 - web/src/views/ConsoleView.vue | 7 - web/src/views/SettingsView.vue | 226 ++++++++++++------ web/src/views/SetupView.vue | 126 +++++++--- 8 files changed, 284 insertions(+), 177 deletions(-) diff --git a/web/src/components/AudioConfigPopover.vue b/web/src/components/AudioConfigPopover.vue index b9aa9c8a..045103b1 100644 --- a/web/src/components/AudioConfigPopover.vue +++ b/web/src/components/AudioConfigPopover.vue @@ -7,7 +7,7 @@ import { Loader2, RefreshCw, Volume2 } from 'lucide-vue-next' import { audioApi, configApi } from '@/api' import { Button } from '@/components/ui/button' import { Label } from '@/components/ui/label' -import { NativeSelect, NativeSelectOption } from '@/components/ui/native-select' +import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '@/components/ui/select' import { Popover, PopoverContent, @@ -48,6 +48,7 @@ const applying = ref(false) const audioEnabled = ref(false) const selectedDevice = ref('') const selectedQuality = ref<'voice' | 'balanced' | 'high'>('balanced') +const EMPTY_SELECT_VALUE = '__one-kvm-empty-select-value__' async function handleVolumeChange(value: number[] | undefined) { if (!value || value.length === 0 || value[0] === undefined) return @@ -226,23 +227,26 @@ onUnmounted(() => {
- - {{ t('actionbar.selectAudioDevice') }} - - {{ device.description || device.name }} - - + + + + + {{ t('actionbar.selectAudioDevice') }} + + {{ device.description || device.name }} + + +
diff --git a/web/src/components/MicrophoneTransferControls.vue b/web/src/components/MicrophoneTransferControls.vue index c0570fc7..1cb4256e 100644 --- a/web/src/components/MicrophoneTransferControls.vue +++ b/web/src/components/MicrophoneTransferControls.vue @@ -5,7 +5,7 @@ import { toast } from 'vue-sonner' import { Loader2, Mic, MicOff, RefreshCw } from 'lucide-vue-next' import { Button } from '@/components/ui/button' -import { NativeSelect, NativeSelectOption } from '@/components/ui/native-select' +import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '@/components/ui/select' import { getMicrophone } from '@/composables/useMicrophone' const { t } = useI18n() @@ -69,25 +69,25 @@ async function selectDevice(value: unknown) {
- - - {{ t('actionbar.noMicrophoneDevices') }} - - - {{ device.label }} - - + + + + + + {{ device.label }} + + +