2.8 KiB
2.8 KiB
替换提示词管理页面的模拟数据为API调用
目标
将 AdminPromptManagement.vue 组件中的模拟数据替换为真实的 API 调用,使用 AdminPromptManagement 类中定义的方法。
实现步骤
1. 导入 API 类并创建实例
- 在
AdminPromptManagement.vue中导入AdminPromptManagement类 - 创建 API 实例用于调用方法
2. 替换模拟数据结构
- 移除
prompts模拟数据数组 - 添加响应式数据:
prompts(用于存储所有提示词)、loading(加载状态) - 调整
formData结构以匹配 API 要求(将referenceImage改为imageUrls)
3. 实现数据获取逻辑
- 创建
fetchPrompts方法,调用getPromptList获取所有提示词- 调用时设置
pageSize: 99以获取所有数据(不分页) - 无需按
isActive区分调用,获取所有数据后在前端过滤
- 调用时设置
- 在组件挂载时调用
fetchPrompts初始化数据
4. 更新计算属性
inactivePrompts:过滤prompts中isActive === 0的数据activePrompts:过滤prompts中isActive === 1的数据sortedActivePrompts:排序逻辑保持不变,但使用sortOrder字段替代sortIndex
5. 更新组件方法
- savePrompt:根据
isEditing状态调用updatePrompt或createPrompt- 将
formData.imageUrls转换为数组格式
- 将
- deletePrompt:调用
deletePromptAPI 方法,成功后重新获取数据 - removeFromActive:调用
deactivatePromptAPI 方法,成功后重新获取数据 - handleDrop:调用
activatePromptAPI 方法,成功后重新获取数据 - handleSortUpdate:调用
batchUpdateSortAPI 方法,传递排序后的提示词列表
6. 调整拖拽功能
- 确保拖拽排序后正确调用
batchUpdateSort更新后端数据 - 转换数据格式以匹配 API 要求(
sortOrder字段)
7. 处理 API 响应
- 确保 API 返回的数据格式与组件期望的格式匹配
- 处理 API 调用的错误情况
- 添加适当的加载状态提示
注意事项
- API 方法返回的是 Promise,需要使用
async/await处理 - API 数据结构与模拟数据略有不同,需要调整:
isActive是数字类型(0/1),而非布尔值imageUrls是数组,而非单个字符串- 排序字段是
sortOrder,而非sortIndex
- 需要添加错误处理和加载状态管理
- 确保所有数据更新操作后重新获取最新数据
预期效果
- 页面初始加载时从 API 获取所有提示词(不分页,pageSize=99)
- 左侧显示
isActive=0的提示词,右侧显示isActive=1的提示词 - 所有操作(添加、编辑、删除、激活、取消激活、排序)都会调用相应的 API 方法
- 页面数据与后端保持同步
- 提供良好的加载状态和错误提示