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

news/2025/2/5 19:47:58/

前言

上节回顾

上一节,我们针对图书列表做了实战练习,主体内容包括顶部的检索区域,中间的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.ppmy.cn/news/991826.html

相关文章

Golang之路---02 基础语法——数组与切片(slice)

数组 数组是一个由固定长度的特定类型元素组成的序列&#xff0c;一个数组可以由零个或多个元素组成。因为数组的长度是固定的。 func main() {//1.声明数组&#xff0c;并给数组的每个元素赋值var arr [3]float32arr[0]1.1arr[1]2.2arr[2]3.3//2.声明并初始化数组//2.1var a…

vue3+ts未使用变量报错的解决

实例 问题原因 tsconfig.json文件中开启了ts语法检查 "strict": true, // 开启严格模式&#xff0c;检查类型声明和赋值...是否合法 "noUnusedLocals": true, // 检查是否存在未使用的变量 "noUnusedParameters": true, // 检查是否存在会使…

AD21原理图的高级应用(五)自定义原理图模板及调用

&#xff08;五&#xff09;自定义原理图模板及调用 1.创建原理图模板2.调用原理图模板 1.创建原理图模板 利用 Altium Designer 软件在原理图中创建自己的模板,可以在图纸的右下角绘制一个表格用于显示图纸的一些参数,例如文件名、作者、修改时间、审核者、公司信息、图纸总数…

一维(1D)CNN模型下轴承故障诊断(Python,TensorFlow框架下,很容易改为其它模型,解压缩后可以直接运行,无需修改任何目录)

1.数据集 使用凯斯西储大学轴承数据集&#xff0c;一共有4种负载下采集的数据&#xff0c;每种负载下有10种 故障状态&#xff1a;三种不同尺寸下的内圈故障、三种不同尺寸下的外圈故障、三种不同尺寸下的滚动体故障和一种正常状态。 2.模型&#xff08;1DCNN&#xff09; 使…

类与对象(上-2)

类与对象&#xff08;上-2&#xff09; 6、类的实例化7、计算类空间的大小8、this指针 6、类的实例化 Test.cpp //用类类型创建对象的过程&#xff0c;称为类的实例化。 //类是对对象进行描述的&#xff0c;是一个 模型 一样的东西&#xff0c;来限定了类有哪些成员&#xff…

一文搞懂mysql(安装、基础命令、存储文件)

1、安装 除此之外&#xff0c;windows在安装前需要额外补加两个东西 dxwebsetup.exe、 vcredist_x64.exe 这俩随便一搜就能找到 在安装前者时要注意取消勾选bing工具栏 mysql下载链接 2、初始化 管理员身份打开cmd >> "path_to_mysql/bin/msqld.exe" --initi…

二叉树中的深搜

一)计算布尔二叉树的值 2331. 计算布尔二叉树的值 - 力扣&#xff08;LeetCode&#xff09; 1)计算布尔二叉树需要从叶子节点向上进行计算&#xff0c;从下向上进行计算 2)完整二叉树是同时拥有左孩子和右孩子&#xff0c;或者是完全没有右孩子 3)当我只是盯着根节点来看的时候…

.Net Core上传组件_.Net Core图片上传组件_Uploader7.0

一、.Net Core上传组件Uploader7.0简介 1.当前版本v7.0&#xff0c;前端框架丰富升级 2.前端jquery框架封装,cover.js, 腾讯云cos-js-sdk-v5.min.js 3.后端&#xff0c;支持Asp.Net 和 Asp.Net Core 矿建 4.数据传输模式支持&#xff1a;WebScoket 、Ajax、Form 模式上传到…