From d907a37c2d2bf4187d0010827b709fbfabb282b4 Mon Sep 17 00:00:00 2001 From: houakang Date: Sun, 12 Apr 2026 14:58:12 +0800 Subject: [PATCH] =?UTF-8?q?refactor(http):=20=E9=87=8D=E6=9E=84=E7=99=BB?= =?UTF-8?q?=E5=BD=95=E5=92=8C=E8=AF=B7=E6=B1=82=E5=9F=BA=E7=A1=80URL?= =?UTF-8?q?=E5=A4=84=E7=90=86=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 移除loginAction的sparkBaseUrl参数,改为通过请求拦截器统一处理 优化设备地址显示逻辑,优先使用非IPv6地址 --- src/renderer/components/LoginDialog.vue | 4 ++-- src/renderer/http/api.js | 3 +-- src/renderer/http/index.js | 6 ++++-- 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/src/renderer/components/LoginDialog.vue b/src/renderer/components/LoginDialog.vue index 9700dc5..b7d5bbd 100644 --- a/src/renderer/components/LoginDialog.vue +++ b/src/renderer/components/LoginDialog.vue @@ -16,7 +16,7 @@ @@ -119,7 +119,7 @@ async function handleLogin() { console.log('[Login] spark device:', device); console.log('[Login] target url:', url); - await loginAction({ email: form.value.username, password: form.value.password }, url); + await loginAction({ email: form.value.username, password: form.value.password }); ElMessage.success(`登录成功 | ${url ?? '未选择设备'}`); emit('login-success', { username: form.value.username, device }); visible.value = false; diff --git a/src/renderer/http/api.js b/src/renderer/http/api.js index bbd340e..b06b458 100644 --- a/src/renderer/http/api.js +++ b/src/renderer/http/api.js @@ -6,8 +6,7 @@ import { encryptPassword } from '@/utils/crypto.js'; export const getHealthAction = () => getAction(url.health); // 用户登录 -export const loginAction = (data, sparkBaseUrl) => - postAction(url.user.login, { email: data.email, password: encryptPassword(data.password) }, {}, sparkBaseUrl); +export const loginAction = (data) => postAction(url.user.login, { email: data.email, password: encryptPassword(data.password) }); // 会话 export const createSessionAction = (data) => postAction(url.session.create, data); diff --git a/src/renderer/http/index.js b/src/renderer/http/index.js index ab11f8d..f148dae 100644 --- a/src/renderer/http/index.js +++ b/src/renderer/http/index.js @@ -1,6 +1,7 @@ import axios from 'axios'; import { ElMessage } from 'element-plus'; import { getBaseUrl } from './url.js'; +import { useSparkStore } from '@/stores/spark'; // baseURL 由主进程动态分配端口,通过 getBaseUrl() 运行时获取 const axiosInstance = axios.create({ @@ -12,9 +13,10 @@ const axiosInstance = axios.create({ responseType: 'json', }); -// 每次请求前动态更新 baseURL,确保服务启动后端口变更能被感知 +// 每次请求前动态更新 baseURL:优先用选中的 spark 设备地址,否则回退到 opencode 地址 axiosInstance.interceptors.request.use((config) => { - config.baseURL = getBaseUrl(); + const sparkStore = useSparkStore(); + config.baseURL = sparkStore.selectedDeviceUrl || getBaseUrl(); return config; });