SSMP整合案例(13) 在界面中实现编辑操作

news2024/11/24 6:56:08

在这里插入图片描述
做完我们的删除 那肯定是做编辑
其实编辑和添加基本是一个东西

我们打开 src下的 components 下的bookFillIn.vue 组件
之前我们做添加的这个弹窗组件
加一个函数叫 editBook 接收一个参数 id
内容先不管
然后 在data中 加多一个键 id 值 null
在这里插入图片描述
然后 将sensor 展开弹窗函数 更改如下

sensor(name,id){
  this.switchs = true;
  this.title = name?name:"";
  this.id = id !== undefined?id:null;
  if(id !== undefined){
      this.editBook(id);
  }else{
      this.resetting();
  }
},

这里 我们判断 外面调用sensor中有没有传id 如果传了 则 让data中的响应式id也等于传进来的id 否则 就等于 null
然后 我们还是判断外面有没有传id 如果没有 则调用原来请空所有数据的resetting
否则 就以id作为参数 调用editBook
editBook这个参数 我们就用来做编辑数据回显的处理
在这里插入图片描述
然后 我们看到这里的 App.vue组件 这里 修改按钮中确实是绑定了一个事件modify
在这里插入图片描述
我们的参数是 scope.row.id
上文中 我们见过 scope.row 是取的当前用户点击的这一条数据的对象 那么 scope.row.id 就是当前用户点击的这个对象的id
那么 我们在下面将modify内容更改如下

modify(id) {
   this.$refs.bookFill.sensor("编辑图书", id);
},

在这里插入图片描述
这个意思就是 当我们调用 modify 他就会调用bookFill弹窗组件的启动sensor函数 并传入 第一个名称参数 叫 编辑图书 第二个参数 当前数据的id

我们到页面上
在这里插入图片描述
点击 修改 界面上非常明显的是 弹窗出来了 然后控制台 我们在
bookFillIn.vue中写的editBook 通过 console.log 帮我们将传进去的id输出在了控制台上在这里插入图片描述
那么 我们现在要做的就是 根据这个id 查出整条数据的信息

显然 我们之前也写了 根据id查询整条数据
在这里插入图片描述
我们在 src下的api下的bookApi.js中添加这样一个函数

export function getById(id){
    return request({
        url:`/books/${id}`,
        method:'get'
    })
}

在这里插入图片描述
接受一个参数id 用来拼接到路径上 做请求参数

然后 我们在bookFillIn.vue组件中引入这个方法
在这里插入图片描述
然后 我们将 bookFillIn.vue 刚才定义的 editBook 方法改写如下

editBook(id) {
 getById(id).then(res => {
      if(res.state == 200) {
        for(let key in this.formInline) {
          this.formInline[key] = res.data[key]
        }
      }else{
        this.$message.error(res.message);
      }
    })
},

我们在这里 通过接到的id 调用getById
然后 用返回的数据 给formInline复制 这里 我们循环 formInline 将他的每个键循环出来
然后 将 res.data对应键的值 赋值给formInline

然后 我们运行项目
在这里插入图片描述
随便点一个修改 可以看到 我们的数据就回显到表单上去了
在这里插入图片描述
然后 我们在 src 下的 api下的 bookApi.js 下 添加一个这样的函数

export function editBook(data){
    return request({
        url:`/books`,
        method:'put',
        data:data,
    })
}

和添加的函数基本一样 只是类型是put

然后 我们还是在 bookFillIn.vue 中引入一下刚刚定义的editBook
在这里插入图片描述
然后 将这个组件的 submitTo 提交方法更改如下

submitTo(){
this.$refs.formInline.validate((valid) => {
      if (valid) {
        if(this.id !== null){
          let data = {
            id: this.id,
            name: this.formInline.name,
            type: this.formInline.type,
            description: this.formInline.description
          }
          editBook(data).then(res => {
            if(res.state == 200) {
              this.$message({
                message: res.message,
                type: 'success'
              });
              this.bookClose();
              this.$emit('getAll');
            }else{
              this.$message.error(res.message);
            }
          })
        }else{
          AddBook(this.formInline).then(res => {
            if(res.state == 200) {
              this.$message({
                message: res.message,
                type: 'success'
              });
              this.bookClose();
              this.$emit('getAll');
            }else{
              this.$message.error(res.message);
            }
          })
        }
      }
    });
},

因为按我们之前的逻辑 如果是添加 调用sensor 没有传id 那么 id应该就是undefined
所以 this.id就会被赋值为null
在这里插入图片描述
所以 简单说 我们就判断 this.id 是不是null 如果不是 调用编辑 如果是 调用添加
然后 我们现在点击第一条数据的修改
在这里插入图片描述
记号这条数据的信息 然后我们将他的内容都改一改
改完之后 我们点击确定
在这里插入图片描述
可以看到 我们这样 操作就成功了
在这里插入图片描述
但是 也还是不要 捡了芝麻,丢了西瓜
我们来试一下添加
在这里插入图片描述
也是没有任何问题

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/723402.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C# PaddleInference 文字检测(只检测不识别)

效果 项目 Demo下载 代码 using OpenCvSharp.Extensions; using OpenCvSharp; using Sdcb.PaddleInference.Native; using Sdcb.PaddleInference; using System; using System.Collections.Generic; using System.Data; using System.Drawing; using System.Linq; using Syst…

【完整代码】电商购物系统Python,基于Flask框架实现

一、介绍 电商购物系统Python,基于Flask框架实现。 实现用户查看商品、购买商品、添加购物车、商城订单、编辑个人信息、点击喜欢不喜欢等、商品评论、登录注册、查看物流信息等功能。 实现商家发布商品、查看销售列表、管理商品、物流信息更新、个人信息修改等功能…

腾讯游戏服务器外包二面

1.基础问题 2.网络协议 3.数据结构 3.1二叉树的前序遍历 3.2实现二叉树的前序遍历 https://www.nowcoder.com/practice/5e2135f4d2b14eb8a5b06fab4c938635?tpId295&tqId2291302&ru/exam/oj&qru/ta/format-top101/question-ranking&sourceUrl%2Fexam%2Foj…

如何查找电脑蓝屏原因之详解

一、电脑蓝屏存储位置 电脑蓝屏日志是一种非常常见的错误提示,它经常发生在Windows操作系统中。当Windows系统遇到无法处理的错误时,会自动将错误信息记录在蓝屏日志文件中。这些日志文件通常存储在C盘的目录下windows文件中的Minidump文件夹中。 以dmp格…

Openlayers实战:绘制矩形,正方形,正六边形

Openlayers地图中,绘制图形是非常重要的一个功能。Openlayers主要使用draw类来绘制图形,在实际项目中有时候会绘制矩形和正多边形。 下面的示例是绘制矩形,正方形,正多边形。 效果图 源代码 /* * @Author: 大剑师兰特(xiaozhuanlan),还是大剑师兰特(CSDN) * @此源代…

基于Python爬虫+KNN数字验证码识别系统——机器学习算法应用(含全部工程源码)+训练数据集

目录 前言总体设计系统整体结构图系统流程图 运行环境Python 环境 模块实现1. 数据爬取2. 去噪与分割3. 模型训练及保存4. 准确率验证 系统测试工程源代码下载其它资料下载 前言 本项目利用Python爬虫技术,通过网络爬取验证码图片,并通过一系列的处理步…

QT5项目程序打包成可执行exe程序(绿色版)

一、QT在release模式下编译生成.exe 二、然后新建一个空白文件夹package,再将在release模式下生成的.exe文件复制到新建的文件夹中package。 三、打开QT5的命令行(选择项目所使用的的环境) 查找项目使用环境 打开命令行 四、在命令行输入命令…

马斯克:未来会涌现大量机器人,与人类比例有望超过1比1

在世界人工智能大会上,特斯拉的马斯克通过网络发表了视频演讲,涵盖了特斯拉人形机器人Optimus、自动驾驶和人工智能等话题。他赞扬了中国的AI产业,并表示中国在决心和实施方面非常出色,包括AI产业发展在内。 特斯拉的人型机器人目…

数学美学:探索“既不是最小值也不是最大值”的魅力

本篇博客会讲解力扣“2733. 既不是最小值也不是最大值”的解题思路,这是题目链接。 本题的思路是: 若数组只有2个元素,显然任意一个元素不是最小值就是最大值。若数组有3个以上的元素,由于提示中的第3点:数组中的所有…

中国首家外资独资期货公司,摩根大通期货持仓龙虎榜的持仓动向和盈亏状况

摩根大通期货,为什么持仓量长期排在期货龙虎榜前列 摩根大通是一家全球领先的金融服务机构,拥有超过200年的历史,业务遍及全球100多个国家和地区。这个期货公司比较神秘,只有上海一个营业部,在业务方向上以机构客户为服…

YOLOv5、YOLOv8改进教程:7. 添加SK-Net注意力机制

论文地址:Selective Kernel NetworksGithub:https://github.com/implus/SKNet如果你是深度学习小白,阅读本文前建议先学习一下 📖《新手入门深度学习》如果你有一定基础,但是缺乏实战经验,可通过 📖《深度学习100例》 补齐基础另外,我们正在通过 🔥365天深度学习训…

ATM模拟-管理员登录用户查询

项目来源:新星计划2023【JavaWeb实现ATM机存取款项目实战】 学习方向报名入口-CSDN社区 目录 管理员登录 管理员登录逻辑 管理员登录主程序 功能实现 代码如下: 用户信息封装 实现功能 代码实现: 业务层代码具体实现 功能实现 业…

linux查看内存总结

参考博客: https://www.atlantic.net/vps-hosting/find-top-10-running-processes-by-memory-and-cpu-usage/ 最简单的命令 free -g 查看还有多少可用的内存 但是有的时候这个提供的信息实在是太少了,例如我今天发现服务器上可用的内存只有50G, 我想知…

第2章 SSD主控和全闪存阵列

通过第一章可知,SSD主要由两大模块组成:主控和闪存介质。其中,主控的作用包括: (1)实现标准主机接口与主机通信; (2)实现与闪存的通信; (1&#x…

算法与数据结构-队列

文章目录 什么是队列队列和栈的区别 队列的类型顺序队列链式队列循环队列阻塞队列并发队列 总结 什么是队列 队列跟栈一样,也是一种操作受限的线性表数据结构。不过,队列是先进者先出。 队列和栈的区别 栈只支持两个基本操作:入栈 push()和出…

【Kafka】Kafka consumer lag 为负数

前言 最近对Kafka 集群部署了 Kafka_exporter 监控,并集成了 granfana 图标展示。 发现 Consumer Group Lag 有时候为负数。 于是进行一番查询,并总结整理下。 具体情形 从下图可以看出,consumer group 值有时候出现负数的情况。 具体原…

Python 使用 pyc 解决明文密钥问题

文章目录 前言1. pyc 介绍2. py 代码编译2.1 使用命令行编译2.2 使用代码编译 3. 避免名为密钥案例3.1 创建密钥存储代码文件3.2 编译密钥代码3.3 调用密钥代码 前言 写代码过程中,可能遇到一些敏感信息不想明文暴露在代码中的情况,本篇文章介绍使用 py…

多tab之间的sessionStorage能不能直接共享访问?

首先,先理解下一个页面的sessionStorage是怎么回事。 1、当前A页面有sessionStorage值为123,我F5强刷页面,sessionStorage值还在不在? 答:在。 2、当前A页面有sessionStorage值为123,我复制A页面地址在浏览…

浏览器console发送get或post请求

浏览器console发送get或post请求 get请求 var url "http://******:8080/base/testapi/testcurl?urlhttps%3A%2F%2Fwww.baidu.com%2F"; var xhr new XMLHttpRequest(); xhr.open("GET", url, true); xhr.setRequestHeader("Content-Type", &…

RPG++——游戏编辑器的开发

完整资料进入【数字空间】查看——baidu搜索"writebug" 随着当下电子设备的普及以及人们对娱乐需求的上升,电子游戏逐渐走进千家万户。RPG(角色扮演)游戏作为最经典的游戏种类之一,因其游戏形式多样,自由度…