# 测试区域重构迁移指南 ## 概述 TestPanel.vue 和基于条件的 AdvancedTestPanel 使用已被新的统一 TestAreaPanel 组件替代。本指南帮助您迁移现有代码。 ## 主要变化 ### 1. 组件统一 - **旧方式**: TestPanelUI (基础模式) + AdvancedTestPanel (高级模式) - **新方式**: TestAreaPanel (统一组件,自动处理模式差异) ### 2. 接口简化 - **移除冗余**: showTestInput 属性已移除,自动从 optimizationMode 推导 - **响应式**: 自动适配不同屏幕尺寸 - **统一样式**: 严格遵循 Naive UI 设计规范 ## 迁移步骤 ### Web 包 (已完成) packages/web/src/App.vue 已经完成迁移,作为参考示例。 ### Extension 包 (已完成) packages/extension/src/App.vue 已经完成迁移到新的TestAreaPanel统一组件。 主要变更: - 移除了条件渲染的TestPanelUI和AdvancedTestPanel - 采用统一的TestAreaPanel组件,自动处理模式差异 - 添加了响应式布局配置和测试模式配置 - 实现了新的事件处理机制 #### 1. 更新导入语句 ```vue // 旧代码 import { TestPanelUI, AdvancedTestPanel } from '@prompt-optimizer/ui' // 新代码 import { TestAreaPanel, useResponsiveTestLayout, useTestModeConfig } from '@prompt-optimizer/ui' ``` #### 2. 添加状态管理 ```vue // 新增测试内容状态 const testContent = ref('') const isCompareMode = ref(true) // 新增响应式配置 const responsiveLayout = useResponsiveTestLayout() const testModeConfig = useTestModeConfig(selectedOptimizationMode) ``` #### 3. 替换模板代码 ```vue ``` #### 4. 添加事件处理函数 ```vue const handleTestAreaTest = async () => { // 测试逻辑 } const handleTestAreaCompareToggle = () => { isCompareMode.value = !isCompareMode.value } ``` ## 关键优势 ### 1. 消除接口冗余 - showTestInput 自动从 optimizationMode 推导 - 统一的组件接口,减少条件判断 ### 2. 响应式支持 - 自动屏幕尺寸适配 - 智能布局模式切换 - 防抖窗口监听 ### 3. 样式统一 - 完全遵循 Naive UI 设计系统 - 移除所有硬编码 CSS - 与左侧优化区域视觉一致 ### 4. 类型安全 - 完整的 TypeScript 类型定义 - IDE 智能提示支持 - 编译时类型检查 ## 向后兼容性 ### 保留的组件 - AdvancedTestPanel.vue 暂时保留,供其他包使用 - TestPanel.vue 已重命名为 TestPanel.vue.backup ### 导出更新 - TestPanelUI 导出已移除 - 新增 TestAreaPanel 导出 - 新增相关 composables 和类型导出 ## 测试建议 1. **功能测试**: 确保测试、对比模式、模型选择等功能正常 2. **响应式测试**: 在不同屏幕尺寸下测试布局 3. **兼容性测试**: 确保高级模式和基础模式切换正常 4. **样式测试**: 验证与现有 UI 的视觉一致性 ## 注意事项 1. **渐进迁移**: 建议逐个包进行迁移,确保稳定性 2. **测试充分**: 迁移后进行完整的功能测试 3. **备份文件**: 旧组件文件已备份,可在需要时恢复 4. **文档更新**: 更新相关文档和使用说明 ## 支持 如果在迁移过程中遇到问题,请参考: - Web 包的 App.vue 作为完整示例 - 组件类型定义:`packages/ui/src/components/types/test-area.ts` - 样式规范:`docs/components/test-area-style-guide.md`