fix: 修复 AILogo 噪音、设置页滚动与供应商批量伪内置脏数据

- AILogo: `custom` 名称为合法兜底场景,不再以 console.error 上报;其余未匹配名称降级为 console.warn
- SettingPage/Model: 双栏加 `min-h-0 overflow-y-auto`,让供应商列表与右侧表单各自可滚动
- ProviderService.add_provider: API 创建一律落到 `type='custom'`,并对同名供应商抛 ValueError,避免再产生伪内置行
- CLAUDE.md: 补充 v2.0.0 子系统(RAG/Chat、可选 Nacos+RabbitMQ、i18n、cookie/transcriber 管理器)

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
huangjianwu
2026-05-07 11:10:15 +08:00
parent 2cd43770eb
commit 108ad270bf
5 changed files with 35 additions and 13 deletions

View File

@@ -8,9 +8,11 @@ interface AILogoProps {
}
const AILogo = ({ name, style = 'Color', size = 24 }: AILogoProps) => {
const Icon = Icons[name as keyof typeof Icons]
const Icon = name ? Icons[name as keyof typeof Icons] : undefined
if (!Icon) {
console.error(`❌ 图标组件不存在: ${name}`)
if (name && name !== 'custom') {
console.warn(`AILogo: 未匹配到图标,使用自定义占位: ${name}`)
}
return (
<span style={{ fontSize: size }}>
<img src={CustomLogo} alt="CustomLogo" style={{ width: size, height: size }} />

View File

@@ -7,9 +7,11 @@ interface AILogoProps {
}
const AILogo = ({ name, style = 'Color', size = 24 }: AILogoProps) => {
const Icon = Icons[name as keyof typeof Icons];
const Icon = name ? Icons[name as keyof typeof Icons] : undefined;
if (!Icon) {
console.error(`❌ 图标组件不存在: ${name}`);
if (name && name !== 'custom') {
console.warn(`AILogo: 未匹配到图标,使用占位: ${name}`);
}
return <span style={{ fontSize: size }}>🚫</span>;
}

View File

@@ -3,11 +3,11 @@ import { Outlet } from 'react-router-dom'
const Model = () => {
return (
<div className={'flex h-full bg-white'}>
<div className={'flex-1/5 border-r border-neutral-200 p-2'}>
<div className={'flex h-full min-h-0 bg-white'}>
<div className={'flex-1/5 min-h-0 overflow-y-auto border-r border-neutral-200 p-2'}>
<Provider></Provider>
</div>
<div className={'flex-4/5'}>
<div className={'flex-4/5 min-h-0 overflow-y-auto'}>
<Outlet />
</div>
</div>