当前位置: 首页 > news >正文

24.中医知识问答删除历史对话功能前端代码实现

前端实现对话删除功能的完整指南

功能概述

前篇文章介绍了删除历史对话的后端开发,本篇将介绍如何在前端实现一个完整的对话删除功能,包括用户确认、API调用、状态管理和错误处理等关键环节。

功能拆解

1. 用户确认机制

javascript
const confirmDelete = confirm(“确定要删除这个会话吗?”);
if (!confirmDelete) return;
设计要点:

使用浏览器原生confirm对话框

防止用户误操作

简单直接的交互方式

2. API请求处理

javascript
axios.delete(http://localhost:8080/api/chat/conversations/${convId})
最佳实践:

使用RESTful风格的API端点

明确HTTP方法(DELETE)

包含完整的URL路径

3. 响应成功处理

javascript
this.conversations = this.conversations.filter(conv => conv.id !== convId);

if (this.currentConversation && this.currentConversation.id === convId) {
this.currentConversation = null;
this.messages = [];
}
状态管理:

从对话列表中过滤掉已删除项

检查并清理当前会话状态

保持UI与数据同步

4. 错误处理机制

javascript
.catch((error) => {
const errorMsg = error.response?.data?.message || error.message || “请求失败”;
this.$message.error(删除失败: ${errorMsg});
})
错误处理策略:

网络错误

API返回错误

未知错误兜底

用户友好的错误提示

5. 最终状态清理

javascript
.finally(() => {
this.activeDropdown = null;
});
UI一致性:

无论成功失败都关闭操作菜单

保持界面整洁

完整代码实现

deleteConversation(convId) {// 添加确认对话框const confirmDelete = confirm("确定要删除这个会话吗?");if (!confirmDelete) return; // 用户点击取消axios.delete(`http://localhost:8080/api/chat/conversations/${convId}`).then((response) => {if (response && response.status === 200) {// 更新本地状态this.conversations = this.conversations.filter(conv => conv.id !== convId);// 清理当前会话状态if (this.currentConversation && this.currentConversation.id === convId) {this.currentConversation = null;this.messages = [];}} else {console.error("删除失败,未返回成功响应", response);const errorMsg = response.data?.message || "无法删除此会话";this.$message.error(`删除失败: ${errorMsg}`);}}).catch((error) => {console.error("请求错误", error);const errorMsg = error.response?.data?.message || error.message || "请求失败";this.$message.error(`删除失败: ${errorMsg}`);}).finally(() => {this.activeDropdown = null;});
}

相关文章:

  • 基于Redis实现高并发抢券系统的数据同步方案详解
  • candence allegro 17.4 如何永久更改快捷键
  • LangGraph(一)——QuickStart样例中的第一步
  • Lucky配置反向代理+Https安全访问AxureCloud服务(解决证书续签问题)
  • 基于Hadoop的音乐推荐系统(源码+lw+部署文档+讲解),源码可白嫖!
  • Linux基础学习--linux的文件权限与目录配置
  • C++ 封装成DLL,C#调用
  • Linux卸载删除gitlab
  • JVM内存模型与垃圾回收
  • cgroup threaded功能例子
  • 工厂模式:简单工厂模式
  • 使用纯前端技术html+css+js实现一个蔬果商城的前端模板!
  • 【LeetCode】1.两数之和
  • 重新定义户外防护!基于DeepSeek的智能展开伞棚系统技术深度解析
  • Cpp实现window上cmd执行效果
  • 2025.4.21日学习笔记 JavaScript String、Array、date、math方法的使用
  • linux基础学习--linux文件与目录管理
  • 目标检测篇---Fast R-CNN
  • 四元数转旋转矩阵
  • 第一篇:从哲学到管理——实践论与矛盾论如何重塑企业思维
  • 常方舟评《心的表达》|弗洛伊德式精神分析在我们时代的延展
  • 空山日落雨初收,来文徵明的画中听泉
  • 同济研究生开发AI二维码拿下大奖,新一代00后开发者掀起AI创业潮
  • 海港主场不敌蓉城遭遇联赛首败,好消息是武磊终于复出了
  • 国际市场开心果价格上涨35%,背后助力是一条点击过亿的短视频
  • 泽连斯基称乌克兰全境响起防空警报