新增信息源
@@ -500,7 +564,7 @@
-
+
@@ -516,6 +580,39 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 取消
+ 确定
+
+
+
@@ -666,7 +763,7 @@
const llmConfigsLoading = ref(false);
const llmConfigDialogVisible = ref(false);
const llmConfigDialogTitle = ref('新增配置');
- const llmConfigForm = reactive({ id: null, name: '', system_prompt: '', user_prompt_template: '', temperature: 0.7, max_tokens: 2000, model: '', provider: 'opencode-go', base_url: '', api_key: '', is_active: true });
+ const llmConfigForm = reactive({ id: null, name: '', system_prompt: '', user_prompt_template: '', temperature: 0.7, max_tokens: 131072, model: '', provider: 'opencode-go', base_url: '', api_key: '', is_active: true });
const editingLLMConfigId = ref(null);
const loadLLMConfigs = async () => {
@@ -679,14 +776,14 @@
llmConfigDialogTitle.value = '编辑配置'; editingLLMConfigId.value = row.id;
llmConfigForm.id = row.id; llmConfigForm.name = row.name; llmConfigForm.provider = row.provider || 'opencode-go';
llmConfigForm.model = row.model || ''; llmConfigForm.base_url = row.base_url || ''; llmConfigForm.api_key = '';
- llmConfigForm.temperature = row.temperature ?? 0.7; llmConfigForm.max_tokens = row.max_tokens ?? 2000;
+ llmConfigForm.temperature = row.temperature ?? 0.7; llmConfigForm.max_tokens = row.max_tokens ?? 131072;
llmConfigForm.system_prompt = row.system_prompt || ''; llmConfigForm.user_prompt_template = row.user_prompt_template || '';
llmConfigForm.is_active = row.is_active ?? true;
} else {
llmConfigDialogTitle.value = '新增配置'; editingLLMConfigId.value = null;
llmConfigForm.id = null; llmConfigForm.name = ''; llmConfigForm.provider = 'opencode-go'; llmConfigForm.model = 'deepseek-v4-pro';
llmConfigForm.base_url = 'https://opencode.ai/zen/go/v1'; llmConfigForm.api_key = ''; llmConfigForm.temperature = 0.7;
- llmConfigForm.max_tokens = 2000; llmConfigForm.system_prompt = ''; llmConfigForm.user_prompt_template = ''; llmConfigForm.is_active = true;
+ llmConfigForm.max_tokens = 131072; llmConfigForm.system_prompt = ''; llmConfigForm.user_prompt_template = ''; llmConfigForm.is_active = true;
}
llmConfigDialogVisible.value = true;
};
@@ -702,6 +799,37 @@
catch (e) { if (e !== 'cancel') ElMessage.error('删除失败: ' + e.message); }
};
+ const platformConfigs = ref([]);
+ const platformConfigsLoading = ref(false);
+ const platformConfigDialogVisible = ref(false);
+ const platformConfigDialogTitle = ref('新增配置');
+ const platformConfigForm = reactive({ platform: '', name: '', icon: '', website_url: '', api_endpoint: '', min_words: 300, max_words: 3000, requires_image: false, image_count_min: 0, image_count_max: 0, default_format: '', is_active: true });
+ const editingPlatformConfigPlatform = ref(null);
+ const loadPlatformConfigs = async () => {
+ platformConfigsLoading.value = true;
+ try { platformConfigs.value = await api.get('/api/platform-config'); } catch (e) { ElMessage.error('加载平台配置失败: ' + e.message); }
+ finally { platformConfigsLoading.value = false; }
+ };
+ const showPlatformConfigDialog = (row = null) => {
+ if (row) {
+ platformConfigDialogTitle.value = '编辑配置'; editingPlatformConfigPlatform.value = row.platform;
+ Object.assign(platformConfigForm, { ...row });
+ } else {
+ platformConfigDialogTitle.value = '新增配置'; editingPlatformConfigPlatform.value = null;
+ platformConfigForm.platform = ''; platformConfigForm.name = ''; platformConfigForm.icon = ''; platformConfigForm.website_url = ''; platformConfigForm.api_endpoint = '';
+ platformConfigForm.min_words = 300; platformConfigForm.max_words = 3000; platformConfigForm.requires_image = false;
+ platformConfigForm.image_count_min = 0; platformConfigForm.image_count_max = 0; platformConfigForm.default_format = ''; platformConfigForm.is_active = true;
+ }
+ platformConfigDialogVisible.value = true;
+ };
+ const savePlatformConfig = async () => {
+ try {
+ if (editingPlatformConfigPlatform.value) { await api.put(`/api/platform-config/${platformConfigForm.platform}`, platformConfigForm); ElMessage.success('更新成功'); }
+ else { await api.post('/api/platform-config', platformConfigForm); ElMessage.success('创建成功'); }
+ platformConfigDialogVisible.value = false; await loadPlatformConfigs();
+ } catch (e) { ElMessage.error('保存失败: ' + e.message); }
+ };
+
const systemConfigs = ref([]);
const systemConfigsLoading = ref(false);
const systemConfigDialogVisible = ref(false);
@@ -841,6 +969,25 @@
catch (e) { if (e !== 'cancel') ElMessage.error('删除失败: ' + e.message); }
};
+ const assistantPrompt = ref('');
+ const assistantEnabled = ref(true);
+ const assistantSaving = ref(false);
+ const loadAssistantConfig = async () => {
+ try {
+ const configs = await api.get('/api/admin/systemconfigs');
+ const cfg = configs.find(c => c.key === 'assistant_system_prompt');
+ assistantPrompt.value = cfg ? (typeof cfg.value === 'string' ? cfg.value : '') : '';
+ } catch (e) { console.error('加载AI助手配置失败', e); }
+ };
+ const saveAssistantPrompt = async () => {
+ assistantSaving.value = true;
+ try {
+ await api.post('/api/admin/systemconfigs', { key: 'assistant_system_prompt', value: assistantPrompt.value, description: 'AI 助手系统提示词' });
+ ElementPlus.ElMessage.success('保存成功');
+ } catch (e) { ElementPlus.ElMessage.error('保存失败: ' + e.message); }
+ finally { assistantSaving.value = false; }
+ };
+
const loadCategories = async () => {
categoriesLoading.value = true;
try { categories.value = await api.get('/api/admin/collector/categories'); } catch (e) { ElMessage.error('加载类别失败: ' + e.message); }
@@ -896,10 +1043,10 @@
const tabLoaders = {
cases: loadCases, tasklogs: loadTaskLogs,
- llmconfigs: loadLLMConfigs, systemconfigs: loadSystemConfigs,
+ llmconfigs: loadLLMConfigs, platformconfigs: loadPlatformConfigs, systemconfigs: loadSystemConfigs,
users: fetchUsers,
categories: loadCategories, sources: loadSources,
- orgs: loadOrgs,
+ orgs: loadOrgs, assistant: loadAssistantConfig,
};
const loadedTabs = new Set(['cases']);
@@ -924,6 +1071,7 @@
casePage, casePageSize, paginatedCases,
taskLogs, taskLogsLoading, loadTaskLogs,
llmConfigs, llmConfigsLoading, llmConfigDialogVisible, llmConfigForm, llmConfigDialogTitle, showLLMConfigDialog, saveLLMConfig, deleteLLMConfig,
+ platformConfigs, platformConfigsLoading, platformConfigDialogVisible, platformConfigForm, platformConfigDialogTitle, showPlatformConfigDialog, savePlatformConfig, editingPlatformConfigPlatform,
systemConfigs, systemConfigsLoading, systemConfigDialogVisible, systemConfigForm, systemConfigDialogTitle, showSystemConfigDialog, saveSystemConfig, deleteSystemConfig,
categories, categoriesLoading, categoryDialogVisible, categoryForm, categoryDialogTitle, showCategoryDialog, saveCategory, deleteCategory,
categoryPage, categoryPageSize, paginatedCategories,
@@ -934,7 +1082,8 @@
logout, currentUser, isAdmin, redirectToPage,
users, usersLoading, userDialogVisible, userSubmitting, userForm, userPage, userPageSize, paginatedUsers,
fetchUsers, addUser, submitUser, deleteUser,
- logType, logDate, logContent, logsLoading, fetchLogs
+ logType, logDate, logContent, logsLoading, fetchLogs,
+ assistantPrompt, assistantEnabled, assistantSaving, saveAssistantPrompt,
};
}
});
@@ -944,5 +1093,6 @@
if (window.installUniNav) { window.installUniNav(app); }
app.mount('#app');
+