Files
cursor-byok/frontend/src/views/Config.vue
T
2026-08-07 01:50:20 +08:00

85 lines
2.5 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<script setup>
import Button from "@/components/ui/Button.vue";
import Card from "@/components/ui/Card.vue";
import LocaleSelect from "@/components/LocaleSelect.vue";
import { useMessage } from "@/composables/useMessage";
import {
appState,
openModelConfigWindow,
persistUserConfig,
reloadUserConfig,
toUserError,
} from "@/state/appState";
import { onMounted } from "vue";
const message = useMessage();
function showActionError(title, error) {
const detail = String(error || "服务错误").trim() || "服务错误";
message(`${title}${detail}`);
}
async function handleSaveConfig() {
const result = await persistUserConfig();
if (!result.ok) {
showActionError("保存失败", result.error);
return;
}
message("本地配置已保存");
}
async function handleOpenModelConfig() {
try {
await openModelConfigWindow();
} catch (error) {
showActionError("打开失败", toUserError(error));
}
}
onMounted(async () => {
await reloadUserConfig().catch(() => {});
});
</script>
<template>
<div class="flex h-full min-h-0 flex-col gap-4 overflow-y-auto p-4 pt-0 text-[#e5e5e5]">
<Card>
<div class="flex items-center justify-between gap-4">
<div>
<h2 class="text-base font-medium text-white">本地配置</h2>
<div class="text-sm text-[#a3a3a3]">
可配置模型渠道运行日志位于 <code>~/.cursor-local-assistant-v2/logs/</code>
</div>
</div>
<Button variant="primary" :disabled="appState.configSaving" @click="handleSaveConfig">
{{ appState.configSaving ? "保存中..." : "保存配置" }}
</Button>
</div>
</Card>
<Card>
<div class="flex items-center justify-between gap-4">
<div>
<h2 class="text-base font-medium text-white">界面语言</h2>
<div class="text-sm text-[#a3a3a3]">
切换当前界面显示语言设置会立即生效并保存在本机
</div>
</div>
<LocaleSelect wrapper-class="w-[220px] max-w-full" />
</div>
</Card>
<Card>
<div class="flex items-center justify-between gap-4">
<div>
<h2 class="text-base font-medium text-white">模型配置</h2>
<div class="text-sm text-[#a3a3a3]">
已配置 {{ appState.modelAdapters.length }} 个模型适配器
</div>
</div>
<Button variant="primary" @click="handleOpenModelConfig">打开模型配置</Button>
</div>
</Card>
</div>
</template>