Skip to content

Commit a56ae11

Browse files
committed
refactor(ui): 重构测试控制栏布局并清理废弃代码
- TestControlBar: 使用 CSS Grid 重构布局,确保右侧控制按钮不被遮挡 - TestControlBar: 添加响应式断点,900px 隐藏标签,640px 改为单列布局 - SelectWithConfig: 添加默认 minWidth: 160px 防止下拉框被压缩 - useFunctionModelManager: 修复单例模式下 globalOptimizeModelKey 参数更新问题 - 移除废弃组件: BasicTestMode.vue, ModelSelect.vue - 移除废弃 props: modelProvider, controlBarLayout, testModelProvider - ImageWorkspace: 简化模型信息显示,移除提供商和能力标签 - 更新文档: SelectWithConfig 替代 ModelSelectUI
1 parent fbbf069 commit a56ae11

File tree

14 files changed

+158
-811
lines changed

14 files changed

+158
-811
lines changed

packages/extension/src/App.vue

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1003,6 +1003,7 @@ import {
10031003
useAggregatedVariables,
10041004
useContextEditorUIState,
10051005
useEvaluationHandler,
1006+
useFunctionModelManager,
10061007
10071008
// i18n functions
10081009
initializeI18nWithStorage,
@@ -1290,6 +1291,10 @@ const modelSelectRefs = useModelSelectRefs();
12901291
// 使用类型断言解决类型不匹配问题
12911292
// 模型管理器
12921293
const modelManager = useModelManager(services as any, modelSelectRefs);
1294+
const functionModelManager = useFunctionModelManager(
1295+
services as any,
1296+
computed(() => modelManager.selectedOptimizeModel),
1297+
);
12931298
12941299
// 提示词优化器
12951300
const optimizer = usePromptOptimizer(
@@ -1375,7 +1380,7 @@ const evaluationHandler = useEvaluationHandler({
13751380
optimizedPrompt: toRef(optimizer, "optimizedPrompt") as any,
13761381
testContent,
13771382
testResults: testResults as any,
1378-
evaluationModelKey: computed(() => modelManager.selectedOptimizeModel),
1383+
evaluationModelKey: computed(() => functionModelManager.effectiveEvaluationModel.value),
13791384
functionMode: functionMode as any,
13801385
subMode: currentSubMode as any,
13811386
});
@@ -1555,9 +1560,9 @@ const selectedTestModelInfo = computed(() => {
15551560
if (!option?.raw) return null;
15561561
return {
15571562
// 提供商名称(如 OpenAI、DeepSeek)
1558-
provider: option.raw.providerMeta?.name || null,
1559-
// 实际模型ID(如 gpt-4、deepseek-chat
1560-
model: option.raw.modelMeta?.id || null,
1563+
provider: option.raw.providerMeta?.name || option.raw.providerMeta?.id || null,
1564+
// 实际模型名称(优先 name,回退到 id
1565+
model: option.raw.modelMeta?.name || option.raw.modelMeta?.id || null,
15611566
};
15621567
});
15631568
@@ -1906,8 +1911,8 @@ const handleTemplateManagerClosed = () => {
19061911
}
19071912
};
19081913
1909-
// 提供 openModelManager 接口,支持直接定位到文本/图像页签
1910-
const openModelManager = (tab: "text" | "image" = "text") => {
1914+
// 提供 openModelManager 接口,支持直接定位到文本/图像/功能页签
1915+
const openModelManager = (tab: "text" | "image" | "function" = "text") => {
19111916
modelManager.showConfig = true;
19121917
// 等模态渲染后再切换页签
19131918
setTimeout(() => {

packages/ui/README.md

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,12 @@ const { naiveTheme, themeOverrides } = useNaiveTheme()
7171
@test="handleTest"
7272
>
7373
<template #model-select>
74-
<ModelSelectUI v-model="selectedModel" />
74+
<SelectWithConfig
75+
v-model="selectedModel"
76+
:options="modelOptions"
77+
:getPrimary="(o) => o.label"
78+
:getValue="(o) => o.value"
79+
/>
7580
</template>
7681
</TestAreaPanel>
7782
</template>
@@ -89,7 +94,12 @@ const { naiveTheme, themeOverrides } = useNaiveTheme()
8994
```vue
9095
<template>
9196
<!-- 模型选择器 -->
92-
<ModelSelectUI v-model="selectedModel" />
97+
<SelectWithConfig
98+
v-model="selectedModel"
99+
:options="modelOptions"
100+
:getPrimary="(o) => o.label"
101+
:getValue="(o) => o.value"
102+
/>
93103
94104
<!-- 模型管理器 -->
95105
<ModelManagerUI @model-updated="handleModelUpdate" />
@@ -248,11 +258,11 @@ export { default as OutputDisplayCore } from './components/OutputDisplayCore.vue
248258

249259
// 管理组件
250260
export { default as ModelManagerUI } from './components/ModelManager.vue'
251-
export { default as ModelSelectUI } from './components/ModelSelect.vue'
252261
export { default as TemplateManagerUI } from './components/TemplateManager.vue'
253262
export { default as TemplateSelectUI } from './components/TemplateSelect.vue'
254263
export { default as DataManagerUI } from './components/DataManager.vue'
255264
export { default as VariableManager } from './components/VariableManager.vue'
265+
export { default as FunctionModelManagerUI } from './components/FunctionModelManager.vue'
256266

257267
// 功能组件
258268
export { default as ActionButtonUI } from './components/ActionButton.vue'
@@ -433,4 +443,4 @@ GNU Affero General Public License v3.0 (AGPL-3.0-only)
433443
---
434444

435445
**最后更新:** 2025-01-20
436-
**版本:** 1.4.4
446+
**版本:** 1.4.4

0 commit comments

Comments
 (0)