添加会话模型和API Key配置功能
- 在模型模块中新增会话开关状态字段,支持会话模型的管理。 - 更新模型选择器,增加系统模型的API Key配置弹窗,提升用户体验。 - 优化错误处理逻辑,确保接口错误由全局拦截器处理,减少冗余提示。 - 更新相关样式以增强界面可读性和美观性。
This commit is contained in:
@@ -32,6 +32,25 @@
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="httpMethod" label="请求方式" width="100"></el-table-column>
|
||||
<el-table-column label="会话模型" width="100" align="center">
|
||||
<template #default="{ row }">
|
||||
<el-tag :type="Number(row.isChatModel) === 1 ? 'success' : 'info'" size="small">
|
||||
{{ Number(row.isChatModel) === 1 ? '是' : '否' }}
|
||||
</el-tag>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="会话开关" width="110" align="center">
|
||||
<template #default="{ row }">
|
||||
<template v-if="Number(row.isChatModel) === 1">
|
||||
<el-switch
|
||||
size="small"
|
||||
:model-value="chatSessionSwitchOn(row)"
|
||||
:before-change="() => onChatSessionSwitchRequest(row)"
|
||||
/>
|
||||
</template>
|
||||
<span v-else class="text-muted">—</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="enabled" label="状态" width="100">
|
||||
<template #default="scope">
|
||||
<el-tag :type="scope.row.enabled === 1 ? 'success' : 'danger'">{{ scope.row.enabled === 1 ? '启用' : '禁用' }}</el-tag>
|
||||
@@ -94,6 +113,16 @@ const state = reactive({
|
||||
},
|
||||
});
|
||||
|
||||
/** 列表行与会话开关接口约定字段 chatSessionEnabled(0/1);接口未就绪前占位 */
|
||||
const chatSessionSwitchOn = (row: { chatSessionEnabled?: number }) => Number(row.chatSessionEnabled) === 1;
|
||||
|
||||
const onChatSessionSwitchRequest = (_row: { id?: number | string }) => {
|
||||
return new Promise<boolean>((resolve) => {
|
||||
ElMessage.info('会话开关接口接入后即可生效');
|
||||
resolve(false);
|
||||
});
|
||||
};
|
||||
|
||||
const resolveModelTypeLabel = (modelsType: number | string | undefined | null) => {
|
||||
if (modelsType === undefined || modelsType === null || modelsType === '') {
|
||||
return '—';
|
||||
@@ -108,8 +137,8 @@ const loadModelTypes = async () => {
|
||||
if (res.code === 0) {
|
||||
state.modelTypes = normalizeModelTypeOptions(res);
|
||||
}
|
||||
} catch (e) {
|
||||
ElMessage.error('获取模型类型失败:');
|
||||
} catch {
|
||||
// 接口错误由 request 全局提示后端 message
|
||||
}
|
||||
};
|
||||
|
||||
@@ -122,8 +151,8 @@ const getTableData = async () => {
|
||||
state.tableData.data = res.data.list || [];
|
||||
state.tableData.total = res.data.total || 0;
|
||||
}
|
||||
} catch (error) {
|
||||
ElMessage.error('获取模型列表失败');
|
||||
} catch {
|
||||
// 接口错误由 request 全局提示后端 message
|
||||
} finally {
|
||||
state.tableData.loading = false;
|
||||
}
|
||||
@@ -151,8 +180,8 @@ const onRowDel = (row: any) => {
|
||||
await deleteModelModule(row.id);
|
||||
ElMessage.success('删除成功');
|
||||
getTableData();
|
||||
} catch (error) {
|
||||
ElMessage.error('删除失败');
|
||||
} catch {
|
||||
// 接口错误由 request 全局提示后端 message
|
||||
}
|
||||
})
|
||||
.catch(() => {});
|
||||
@@ -178,6 +207,10 @@ onMounted(async () => {
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss">
|
||||
.text-muted {
|
||||
color: var(--el-text-color-placeholder);
|
||||
}
|
||||
|
||||
.system-user-container {
|
||||
:deep(.el-card__body) {
|
||||
display: flex;
|
||||
|
||||
Reference in New Issue
Block a user