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

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;});
}

相关文章:

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

前端实现对话删除功能的完整指南 功能概述 前篇文章介绍了删除历史对话的后端开发,本篇将介绍如何在前端实现一个完整的对话删除功能,包括用户确认、API调用、状态管理和错误处理等关键环节。 功能拆解 1. 用户确认机制 javascript const confirmDe…...

git忽略已跟踪的文件/指定文件

在项目开发中,有时候我们并不需要git跟踪所有文件,而是需要忽略掉某些指定的文件或文件夹,怎么操作呢?我们分两种情况讨论: 1. 要忽略的文件之前并未被git跟踪 这种情况常用的方法是在项目的根目录下创建和编辑.gitig…...

RAG(检索增强生成)、ReAct(推理与行动) 和 多模态AI 的详细解析,包括三者的定义、工作原理、应用场景及协同关系

以下是 RAG(检索增强生成)、ReAct(推理与行动) 和 多模态AI 的详细解析,包括三者的定义、工作原理、应用场景及协同关系: 一、RAG(Retrieval-Augmented Generation) 1. 核心原理 …...

6.QT-常用控件-QWidget|windowTitle|windowIcon|qrc机制|windowOpacity|cursor(C++)

windowTitle API说明windowTitle()获取到控件的窗⼝标题.setWindowTitle(const QString& title)设置控件的窗⼝标题. 注意!上述设置操作针对不同的widget可能会有不同的⾏为. 如果是顶层widget(独⽴窗⼝),这个操作才会有效. 如果是⼦widget,这个操作⽆任何效果. 代码⽰例…...

Excel/WPS表格中图片链接转换成对应的实际图片

Excel 超链图变助手(点击下载可免费试用) 是一款将链接转换成实际图片,批量下载表格中所有图片的转换工具,无需安装,双击打开即可使用。 表格中链接如下图所示: 操作方法: 1、双击以下图标&a…...

PostgreSQL基础

一、PostgreSQL介绍 PostgreSQL是一个功能强大的 开源 的关系型数据库。底层基于C实现。 PostgreSQL的开源协议和Linux内核版本的开源协议是一样的。。BDS协议,这个协议基本和MIT开源协议一样,说人话,就是你可以对PostgreSQL进行一些封装&a…...

win11修改文件后缀名

一、问题描述 win11系统中,直接添加.py后缀后仍然是txt文本文件 二、处理方式: 点击上方三个小点点击“选项”按钮 点击“查看”取消“隐藏已知文件类型的扩展名”选项点击“应用” 此时,“.txt”文件后缀显示出来了。将txt删去&#xff0c…...

【python实用小脚本系列】用Python打造你的专属智能语音助手

用Python打造你的专属智能语音助手 在科技飞速发展的今天,语音助手已经成为了我们生活中的“小帮手”。无论是苹果的Siri,还是亚马逊的Alexa,它们都能通过语音指令帮我们完成各种任务。今天,我来给大家分享一个用Python打造的简单…...

《Java工程师面试核心突破》专栏简介

《Java工程师面试核心突破》专栏简介 🔥 大厂Offer收割机 | 源码级技术纵深 | 90%高频考点覆盖 专栏定位 「拒绝八股文,直击技术本质」 本专栏专为Java中高级工程师量身定制,通过6大核心模块、30个硬核专题,系统性拆解大厂面试…...

Navicat连接数据库密码忘了如何解析

1、首先打开Navicat导出密码 打开文件---》导出链接----》选择连接并勾选导出密码 2、用编辑器打开复制密码 把password后面的密码复制出来 3、打开php编辑器,我这边因为平时不用就在网上找了一个在线编辑器 地址: https://www.w3cschool.cn/tryrun/runcode?la…...

OpenStack Yoga版安装笔记(22)Swift笔记20250418

一、官方文档 https://docs.openstack.org/swift/yoga/admin/objectstorage-components.html#https://docs.openstack.org/swift/yoga/admin/objectstorage-components.html# 二、对象存储简介(Introduction to Object Storage) OpenStack 对象存储&a…...

基于若依的ruoyi-vue-plus的nbmade-boot在线表单的设计(七)后端方面的设计

希望大家一起能参与我的新开源项目nbmade-boot: 宁波智能制造低代码实训平台 主要目标是类似设计jeecgboot那样的online表单功能,因为online本身没有开源这部分代码,而我设计这个是完全开源的,所以希望大家支持支持,开源不容易。 今天主要是讲后端部门之前漏的文件。 下面主…...

18、TimeDiff论文笔记

TimeDiff **1. 背景与动机****2. 扩散模型基础****3. TimeDiff 模型****3.1 前向扩散过程****3.2 后向去噪过程** 4、TimeDiff(架构)原理训练推理其他关键点解释 DDPM(相关数学)1、正态分布2、条件概率1. **与多个条件相关**&…...

【Rust 精进之路之第11篇-借用·实践】切片 (Slices):安全、高效地引用集合的一部分

系列: Rust 精进之路:构建可靠、高效软件的底层逻辑 作者: 码觉客 发布日期: 2025年4月20日 引言:不止整个借用,我们还能“借”片段! 在上一篇【借用规则】中,我们深入理解了 Rust 的引用 (&T, &mut T) 和借用规则。我们知道,引用允许我们在不获取所有权的情…...

Linux环境下使用ADB命令做嵌入式开发

介绍 adb一般是给Android开发用的,但是换个思路也能做嵌入式Linux开发 安装 以Ubuntu20.04为例 sudo apt install android-tools-adb android-tools-fastboot安装成功可以查看adb版本号 命令 查看adb设备 登录shell 上传文件到设备指定目录 拉取设备上的文件到…...

Ubuntu20.04安装Pangolin遇到的几种报错的解决方案

1.添加两个编译选项 /usr/include/OpenEXR/half.h:121:13: note: because ‘half’ has user-provided ‘half& half::operator(half)’121 | half & operator (half h);| ^~~~~~~~ 解决方案: 在CMakeList中添加以下两句: …...

SQL问题分析与诊断(8)——分析方法2

8.4. 方法 8.4.2. 目测评估方法 8.4.2.1. 方法说明 与Oracle等其他关系库类似,SQL Server中,作为其最核心、最重要的组件之一,CBO内置了相当复杂而高级的模型和算法,当将SQL语句及其相关统计数据等信息作为参数输入其中后,CBO会对该SQL语句各候选查询计划及其中各节点的…...

自动驾驶最新算法进展

自动驾驶技术的算法进展迅速,涵盖感知、预测、规划、端到端学习等多个领域。以下是2023年至2024年的关键进展及实例: 1. ‌感知与融合‌ ‌BEVTransformer的进化‌:特斯拉的Occupancy Networks升级至支持动态场景建模,结合NeRF技术…...

深度学习方向急出成果,是先广泛调研还是边做实验边优化?

目录 有限资源下本科生快速发表深度学习顶会论文的实战策略 1.短周期内可出成果的研究路径 2.论文阅读与复现的优先顺序 3.无一对一指导时的调研与实验组织 4.成功案例:本科生顶会论文经验 5.快速上手的研究子方向推荐 大家好这里是AIWritePaper官方账号&…...

级联vs端到端、全双工、轮次检测、方言语种、商业模式…语音 AI 开发者都在关心什么?丨Voice Agent 学习笔记

编者按: A16Z在《AI Voice Agents: 2025 Update》中提到: 语音是 AI 应用公司最强大的突破之一。 它是人类沟通中最频繁(也是信息密度最高的)形式,AI 也让其首次变得“可编程”。 在13期Z沙龙,我们聚焦AI…...

阿里云镜像加速仅支持阿里云产品了

最近在拉取docker镜像时一直报超时的错误: docker pull hello-world Using default tag: latest Error response from daemon: Get "https://registry-1.docker.io/v2/": net/http: request canceled while waiting for connection (Client.Timeout exce…...

深入理解 DML 和 DQL:SQL 数据操作与查询全解析

深入理解 DML 和 DQL:SQL 数据操作与查询全解析 在数据库管理中,SQL(结构化查询语言)是操作和查询数据的核心工具。其中,DML(Data Manipulation Language,数据操作语言) 和 DQL&…...

05--MQTT物联网协议

一、MQTT的概念 MQTT 协议快速入门 2025:基础知识和实用教程 | EMQ 1.MQTT(Message Queuing Telemetry Transport)是一种轻量级、基于发布-订阅模式的消息传输协议,适用于资源受限的设备和低带宽、高延迟或不稳定的网络环境。它…...

学习设计模式《二》——外观模式

一、基础概念 1.1、外观模式的简介 外观模式的本质是【封装交互、简化调用】; 外观模式的说明:就是通过引入一个外观类,在这个类里面定义客户端想要的简单方法,然后在这些方法里面实现;由外观类再去分别调用内部的多个…...

永磁同步电机控制算法-VF控制

一、原理介绍 V/F 控制又称为恒压频比控制,给定VF 控制曲线 电压是频率的tt例函数 即控制电压跟随频率变化而变化以保持磁通恒定不变。 二、仿真模型 在MATLAB/simulink里面验证所提算法,搭建仿真。采用和实验中一致的控制周期1e-4,电机部分计算周期为…...

qt 配置 mysql 驱动问题:Cannot load library qsqlmysql;QMYSQL driver not loaded

项目场景: 环境版本: qt :5.14.2 mysql:8.0 windows:10 提示:qt 配置 mysql 驱动: 项目场景:qt 配置 mysql 驱动 问题描述 提示:这里描述项目中遇到的问题:…...

MyBatis-Plus 实战:优雅处理 JSON 字段映射(以 JSONArray 为例)

🎯MyBatis-Plus 实战:优雅处理 JSON 字段映射(以 JSONArray 为例) 👨‍💻 作者:William Dawson |📅 更新日期:2025-04-21 🚀 标签:MyB…...

线性代数 | 知识点整理 Ref 2

注:本文为 “线性代数 | 知识点整理” 相关文章合辑。 因 csdn 篇幅合并超限分篇连载,本篇为 Ref 2。 略作重排,未整理去重。 图片清晰度限于引文原状。 如有内容异常,请看原文。 【数学】线性代数知识点总结 阿巴 Jun 于 2024-…...

PyTorch深度学习框架60天进阶学习计划 - 第47天:模型压缩蒸馏技术(一)

PyTorch深度学习框架60天进阶学习计划 - 第47天:模型压缩蒸馏技术(一) 第一部分:知识蒸馏的温度调节机制详解 欢迎来到我们学习计划的第47天!今天我们将深入探讨模型压缩技术中的两个重要方法:知识蒸馏和…...

华为OD机试真题——最小的调整次数/特异性双端队列(2025A卷:100分)Java/python/JavaScript/C++/C语言/GO六种最佳实现

2025 A卷 100分 题型 本文涵盖详细的问题分析、解题思路、代码实现、代码详解、测试用例以及综合分析; 并提供Java、python、JavaScript、C、C语言、GO六种语言的最佳实现方式! 2025华为OD真题目录全流程解析/备考攻略/经验分享 华为OD机试真题《最小的调…...