17 反显、修改、提交图书信息功能实战

news2024/11/19 10:37:10

前言

上节回顾

上一节,我们针对图书列表做了实战练习,主体内容包括顶部的检索区域,中间的el-table数据区域,和底部的el-pagination分页区域,并针对每一块做了讲解,还不太明白上下文的同学可以回过头去看一下:16 使用Vue + 列表检索 + el-table + el-pagination 实现图书列表实战

本节介绍

这是本专栏的第15篇实战内容了,这一小节也是图书管理模块最后一篇文章了,一个模块就算是结束了。这一小节针对修改图书详情信息展开。

目录

前言

一、信息反显

1. 列表页到详情页传参

2. 面包屑的注意事项

3. 信息项的反显 

二、信息提交

最后


一、信息反显

修改详情信息,第一步做的就是先将图书信息反显过来,然后用户再针对自己的需求,对需要做出修改的信息项做出修改。

1. 列表页到详情页传参

上一节我们说到,详情页需要用图书id查询反显信息,所以列表页就需要把id传递到详情页去。我们使用了这种方式:

handleEdit(row) {
      this.$router.push('/create-book?id='+row.id);
},

而在详情页获取这种传参的方式有两种,一种是路由数据里完全使用纯路由的方式,那么在列表给详情页传参的时候,就可以以参数的形式,url?key=value的形式,而详情页这种方式获取参数的方式是:

this.id = this.$route.query.id;

还有一种是路由数据里类似这种定时方式


{
        path: '/create-book/:id',                     
        component: () => import("@/views/bookManager/Create"),
        meta: {
          title: '新建图书'
        },
        fatherTitle: '图书管理',
        fatherTitleCode: 1,
},

那么在列表页跳转的时候,就需要这样传参:

handleEdit(row) {
    this.$router.push({
       path: '/create-book/' + row.id,
    })
},

而第二种方式传参,在详情页获取的时候,就需要这么获取

this.id = this.$route.params.id;

2. 面包屑的注意事项

我们在开发录入页的时候,面包屑的展示信息是“新建图书”,那么到了修改信息的时候呢,很显然,面包屑的内容还是“新建图书”就不那么合适了,所以需要做出修改,代码如下

<div class="crumbs-box">
      <a href="/#/index">首页</a>&gt;
      <a href="/#/book-manager">图书管理</a>&gt;
      <span>{{ crumbsVal }}</span>
</div>

// js部分

created() {
    this.id = this.$route.query.id;
    if (this.id) {
      this.crumbsVal = '修改图书';
      this.getBookDetailInfo();
    }
  },

3. 信息项的反显 

当提前预备的数据依赖id有值的时候,表示是修改页面了,我们初始化定义id的值为空,然后定义获取图书信息的axios请求

 在 src\views\bookManager\Create.vue 中引入 getBookInfo 请求方法,

 

 在录入信息的时候,我们已经将form数据做了整理,而本案例中,返回数据与显示依赖是比较对应的,所以直接赋值即刻,代码如下:

getBookDetailInfo() {
      let params = {
        id: this.id
      }
      getBookInfo(params).then((res) => {
        this.form = res.data;
      })
    },

二、信息提交

反显既然已经做完了,其实修改数据和之前新建数据的时候操作是相同的,而且修改后,点击提交按钮,还是会做相同的验证操作,所以只要和服务端定义好,新建和修改的区别即可。

本案例中,修改详细和新建信息的接口是相同的,只是修改的时候,入参需要有id,新建则不需要id。所以判断好id是否有值即可。代码如下:

handleSubmit() {
      this.$refs.form.validate((valid) => {
        if (valid) {
          console.log('已验证通过');
          this.isLoading = true;

          let params = this.form;

          // 修改图书
          if (this.id) {
            params['id'] = this.id;
          }

          enterBook(params).then((res) => {
            console.log(res);
            if (res.code != 200) {
              this.isLoading = false;
              this.$message.error(res.message);
              return;
            }

            this.isLoading = false;
            this.$message({
              message: this.id ? '修改成功' : '提交成功',
              type: 'success'
            });

            let enterTimeout = setTimeout(() => {
              window.clearTimeout(enterTimeout);
              enterTimeout = null;
              this.$router.push('/book-manager');
            }, 1500)
          })
        }
      })
    },

最后

本专栏是由我和天哥(天哥主页)共同打造的从0到1的 Vue + SpringBoot前后端分离项目实战,订阅专栏后可以添加我的微信,我会为每一位用户进行针对性指导!

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

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

相关文章

Linux标准库API

目录 1.字符串函数 2.数据转换函数 3.格式化输入输出函数 4.权限控制函数 5.IO函数 6.进程控制函数 7.文件和目录函数 1.字符串函数 2.数据转换函数 3.格式化输入输出函数 #include<stdarg.h>void test(const char * format , ...){va_list ap;va_start(ap,format…

自监督去噪:Noise2Noise原理及实现(Pytorch)

文章地址&#xff1a;https://arxiv.org/abs/1803.04189 ICML github 代码: https://github.com/NVlabs/noise2noise 本文整理和参考代码: https://github.com/shivamsaboo17/Deep-Restore-PyTorch 文章目录 1. 理论背景2. 实验结果3. 代码实现(1) 网络结构(2) 数据加载(3) 网络…

Linux--验证命令行上运行的程序的父进程是bash

1.输入以下代码&#xff1a; #include <stdio.h> #include <unistd.h> int main() {printf("hello world: pid: %d, ppid: %d\n",getpid(),getppid());return 0; }2.编译得到可执行程序​​​ 3.运行得到ppid 4.输入指令 ps axj | head -1 &&am…

Stable Diffusion ControlNet 完全指南

ControlNet 是 Stable Diffusion中的一种扩展模型&#xff0c;通过这种扩展模型&#xff0c;我们能够将参考图像的构图&#xff08;compositions &#xff09;或者人体姿势迁移到目标图像。 资深 Stable Diffusion 用户都知道&#xff0c;很难精准控制Stable Diffusion生成的图…

protobuf配置过程

一、配置过程 vs2022 第一次下载cmake 3.17 x64.msi &#xff0c; 发现没有vs2022选项。 第二次下载最新版本cmake 3.27 x64.msi &#xff0c; 发现不兼容vs2022 &#xff0c; 会闪退&#xff1b; 第三次下载了倒数第二新的版本cmake 3.26 x64.msi &#xff0c; 这次完美gen…

简单认识redis高可用实现方法

文章目录 一、redis群集三种模式二、 Redis 主从复制1、简介2、作用&#xff1a;3、流程&#xff1a;4.配置主从复制 三、Redis 哨兵模式1、简介2、原理:3、作用&#xff1a;4、哨兵结构由两部分组成&#xff0c;哨兵节点和数据节点&#xff1a;5、故障转移机制&#xff1a;6、…

C/C++ 线程池工作原理 C代码实现

1. 线程池作用 如果多次使用线程&#xff0c;那么就需要多次的创建并撤销线程。但是创建/撤销的过程会消耗资源。线程池是一种数据结构&#xff0c;其中维护着多个线程&#xff0c;这避免了在处理短时间任务时&#xff0c;创建与销毁线程的代价。即在程序开始运行前预先创建一…

day15 | 110.平衡二叉树 257.二叉树的所有路径 404.左叶子之和

文章目录 一、平衡二叉树二、[回溯小难]二叉树的所有路径三、左叶子之和 一、平衡二叉树 110.平衡二叉树 依旧是使用后序遍历来统计高度。 递归过程中&#xff0c;发现某节点的左右子树的高度差超过了1&#xff0c;我们就直接返回-1&#xff0c;不返回节点的高度了。 递归函…

C/C++开发,opencv与qt结合播放视频

目录 一、qt_ui创建 1.1 ui设置 1.2 ui及代码输出保存 二、创建工程 2.1 工程目录及编译设置 2.2 源码设计 三、编译及测试 3.1 程序编译 3.2 程序运行 首先声明&#xff0c;这是一个OpenCV 3学习文档的案例&#xff0c;但是说明有些过于省略&#xff0c;只有一些简短的代码…

ubuntu20.04终端中文显示乱码

我在配置好ubuntu20.04虚拟机以后&#xff0c;用xshell连接到终端&#xff0c;发现中文来不能显示&#xff0c;尝试过设置xshell的显示格式&#xff0c;不能解决问题。 经过研究&#xff0c;发现要修改ubuntu20.04本身的字体格式&#xff0c;解决方式如下&#xff1a; 1.修改~…

JavaBean

一、JavaBean的概念 1、JavaBean就是MVC设计模式中的model层 2、种类&#xff1a;数据bean&#xff08;pojo&#xff09;&#xff0c;逻辑bean 数据bean分为&#xff1a; 表单bean 封装表单里的参数&#xff0c;属性名字、个数和类型要和表单的参数的名字、个数和类型一致…

我对排序算法理解

排序算法一直是一个很困惑我的问题&#xff0c;早在刚开始接触 数据结构的时候&#xff0c;这个地方就很让我不解。就是那种&#xff0c;总是感觉少了些什么的感觉。一开始&#xff0c;重新来过&#xff0c;认真来学习这一部分&#xff0c;也总是学着学着就把概念记住了。过了一…

【Rust学习 | 基础系列3 | Hello, Rust】编写并运行第一个Rust程序

文章目录 前言一&#xff0c;创建项目二&#xff0c;两种编译方式1. 使用rustc编译器编译2. 使用Cargo编译 总结 前言 在开始学习任何一门新的编程语言时&#xff0c;都会从编写一个简单的 “Hello, World!” 程序开始。在这一章节中&#xff0c;将会介绍如何在Rust中编写并运…

Elasticsearch搜索引擎系统入门

目录 【认识Elasticsearch】 Elasticsearch主要应用场景 Elasticsearch的版本与升级 【Elastic Stack全家桶】 Logstash Kibana Beats Elasticsearch在日志场景的应用 Elasticsearch与数据库的集成 【安装Elasticsearch】 安装插件 安装Kibana 安装Logstash 【认…

Day01-作业(HTMLCSS)

作业1&#xff1a;通过HTML的标签及CSS样式&#xff0c;完成如下企业简介html页面的制作。 【必做】 A. 最终效果如下&#xff1a; B. 文字素材如下&#xff1a; 企业简介传智教育(股票代码 003032)&#xff0c;隶属江苏传智播客教育科技股份有限公司&#xff0c;注册资本4亿元…

【NVIDIA CUDA】2023 CUDA夏令营编程模型(一)

博主未授权任何人或组织机构转载博主任何原创文章&#xff0c;感谢各位对原创的支持&#xff01; 博主链接 本人就职于国际知名终端厂商&#xff0c;负责modem芯片研发。 在5G早期负责终端数据业务层、核心网相关的开发工作&#xff0c;目前牵头6G算力网络技术标准研究。 博客…

【Git】Git GitHub

1. Git1.1 Git基本操作1.2 Git版本回退1.3 Git分支操作 2. Git 配合GitHub2.1 生成密钥2.2 GitHub添加公钥2.3 Git连接GitHub2.4 本地仓库关联远程仓库2.5 本地代码push远程仓库2.6 本地clone远程仓库2.7 本地fetch和pull 1. Git 1.1 Git基本操作 touch test.py 工作区创建文…

全网最细,Postman接口测试实战详细总结,一篇进阶...

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 Postman是一款功能…

【力扣每日一题】2023.7.30 环形链表2

题目&#xff1a; 示例&#xff1a; 分析&#xff1a; 这道题属于是那种知道解法就很简单&#xff0c;不知道解法就很难独立想出来的那种&#xff0c;我们只需要稍微记住这类题的固定解法就可以。 所以接下来我先说解法&#xff0c;再解释为什么解法可以解出来。 那么我们都…

nginx使用-(想学nginx,这篇就够了)

nginx使用-&#xff08;想学nginx&#xff0c;这篇就够了&#xff09; upstream wgz{server 127.0.0.1:8081 ;server 127.0.0.1:8082 ;fair;}反向代理 动静分离 负载均衡 高可用集群配置 反向代理 upstream要转发的地址的配置proxy_pass请求转发的地址 location /user{proxy_…