修复权限操作

This commit is contained in:
2025-12-08 21:36:03 +08:00
parent a4479971a8
commit 0a3c1a2735
5 changed files with 175 additions and 39 deletions
+63 -7
View File
@@ -28,9 +28,17 @@ export function useChatApps() {
const loadChatApps = useCallback(async () => {
setLoadingChatApps(true);
setError(null);
try {
console.log('[useChatApps] 开始加载对话应用列表...');
const response = await getMyChatApps();
console.log('[useChatApps] 加载完成,返回数据:', response);
console.log('[useChatApps] 应用列表:', response.data.map(app => ({
app_id: app.app_id,
app_name: app.app_name,
is_default: app.is_default
})));
setChatApps(response.data);
return response.data;
} catch (err: any) {
@@ -48,13 +56,40 @@ export function useChatApps() {
const loadDefaultChatApp = useCallback(async () => {
setLoadingDefault(true);
setError(null);
try {
console.log('[useChatApps] 开始加载默认对话应用...');
const response = await getDefaultChatApp();
// 如果加载所有应用失败,但成功加载了默认应用,将默认应用添加到chatApps数组中
setChatApps(prev => [...prev, response.data]);
setCurrentChatApp(response.data);
return response.data;
const defaultApp = response.data;
console.log('[useChatApps] 默认应用加载完成:', {
app_id: defaultApp.app_id,
app_name: defaultApp.app_name,
is_default: defaultApp.is_default
});
// 检查是否已经存在相同的应用
setChatApps(prev => {
console.log('[useChatApps] 准备添加默认应用,当前列表长度:', prev.length);
console.log('[useChatApps] 当前列表应用ID:', prev.map(app => app.app_id));
console.log('[useChatApps] 要添加的默认应用ID:', defaultApp.app_id);
const exists = prev.some(app => app.app_id === defaultApp.app_id);
console.log('[useChatApps] 应用是否存在检查结果:', exists);
if (!exists) {
console.log('[useChatApps] 应用不存在,添加到列表');
const newList = [...prev, defaultApp];
console.log('[useChatApps] 添加后的列表长度:', newList.length);
return newList;
}
console.log('[useChatApps] 应用已存在,返回原列表');
return prev;
});
console.log('[useChatApps] 设置当前应用为默认应用');
setCurrentChatApp(defaultApp);
return defaultApp;
} catch (err: any) {
console.error('[useChatApps] 加载默认对话应用失败:', err);
setError(err.message || '加载默认对话应用失败');
@@ -70,14 +105,26 @@ export function useChatApps() {
* @param onAppChanged 切换完成后的回调函数
*/
const handleChatAppChange = useCallback((appId: string, onAppChanged?: (app: ChatApp) => void) => {
console.log('[useChatApps] 开始切换对话应用,目标ID:', appId);
const app = chatApps.find(chatApp => chatApp.app_id === appId);
console.log('[useChatApps] 查找应用结果:', app ? {
app_id: app.app_id,
app_name: app.app_name,
found: true
} : { found: false });
if (app) {
console.log('[useChatApps] 切换对话应用:', app.app_name, app.app_id);
console.log('[useChatApps] 找到应用,准备切换:', app.app_name, app.app_id);
setCurrentChatApp(app);
console.log('[useChatApps] 设置currentChatApp完成');
// 切换应用后,调用回调函数
if (onAppChanged) {
console.log('[useChatApps] 调用onAppChanged回调');
onAppChanged(app);
}
} else {
console.warn('[useChatApps] 未找到应用ID:', appId, '可用应用:', chatApps.map(a => ({ id: a.app_id, name: a.app_name })));
}
}, [chatApps]);
@@ -91,21 +138,30 @@ export function useChatApps() {
try {
try {
console.log('[useChatApps] ==================== 开始初始化对话应用 ====================');
// 尝试加载可用应用列表
console.log('[useChatApps] 步骤1: 调用loadChatApps()加载我的应用列表...');
const apps = await loadChatApps();
console.log('[useChatApps] 步骤1完成: 加载到', apps.length, '个应用');
if (apps.length > 0) {
// 查找默认应用
const defaultApp = apps.find((item) => item.is_default) || apps[0];
console.log('[useChatApps] 步骤2: 找到默认应用:', defaultApp?.app_name);
console.log('[useChatApps] 步骤2: 设置当前应用为:', defaultApp?.app_name);
setCurrentChatApp(defaultApp);
console.log('[useChatApps] ==================== 初始化完成(路径1 ====================');
} else {
// 如果没有配置应用,尝试获取默认应用
console.log('[useChatApps] 应用列表为空,调用loadDefaultChatApp()...');
await loadDefaultChatApp();
console.log('[useChatApps] ==================== 初始化完成(路径2 ====================');
}
} catch (err) {
// 加载应用列表失败,尝试获取默认应用
console.warn('[useChatApps] 加载应用列表失败,尝试获取默认应用:', err);
await loadDefaultChatApp();
console.log('[useChatApps] ==================== 初始化完成(路径3 ====================');
}
} catch (err: any) {
console.error('[useChatApps] 初始化失败:', err);