SpringBoot + Vue项目(显示+删除+回显家居)

news2024/11/27 16:49:59

文章目录

    • 1.显示家居信息
        • 1.com/sun/furn/controller/FurnController.java 添加方法
        • 2.postman测试
        • 3.src/views/HomeView.vue 修改el-table 并清空数据池tableData
        • 4.src/views/HomeView.vue 发送请求并取出数据
          • 1.方法池
          • 2.created阶段调用list方法
          • 3.结果展示
        • 5.src/utils/request.js 添加response 拦截器,对返回结果拦截,统一处理
        • 6.src/views/HomeView.vue 修改取数据方式
        • 7.src/views/HomeView.vue 添加家居之后刷新家居信息
    • 2.修改家居
        • 1.需求分析
        • 2.思路分析
        • 3.后端实现
          • 1.com/sun/furn/controller/FurnController.java 添加方法
          • 2.postman测试
        • 4.前端实现
          • 1.src/views/HomeView.vue 点击编辑回显表单数据
            • 1.方法池
            • 2.结果展示
          • 2.src/views/HomeView.vue 修改家居
            • 1.方法池 save方法根据form的id来判断是添加家居还是修改家居
            • 2.异步问题
        • 5.结果展示
    • 3.删除家居
        • 1.需求分析
        • 2.com/sun/furn/controller/FurnController.java 添加方法
        • 3.postman测试
        • 4.前端实现
          • 1.src/views/HomeView.vue 添加确认删除提示框
          • 2.src/views/HomeView.vue 方法池添加方法
        • 5.结果展示

1.显示家居信息

1.com/sun/furn/controller/FurnController.java 添加方法
    /*
    * 返回所有家居信息*/
    @RequestMapping("/furns")
    public Result listFurns() {
        List<Furn> list = furnService.list();
        return Result.success(list);
    }
2.postman测试

image-20240319090625391

3.src/views/HomeView.vue 修改el-table 并清空数据池tableData
    <el-table :data="tableData" stripe style="width: 100%">
      <el-table-column
          prop="id"
          label="ID" sortable
      >
      </el-table-column>
      <el-table-column
          prop="name"
          label="家居名" >
      </el-table-column>
      <el-table-column
          prop="maker"
          label="厂家">
      </el-table-column>
      <el-table-column
          prop="price"
          label="价格">
      </el-table-column>
      <el-table-column
          prop="sales"
          label="销量">
      </el-table-column>
      <el-table-column
          prop="stock"
          label="库存">
      </el-table-column>
      <el-table-column fixed="right" label="操作" width="100">
        <template #default="scope">
          <el-button @click="handleEdit(scope.row)" type="text">编辑</el-button>
          <el-button type="text">删除</el-button>
        </template>
      </el-table-column>
    </el-table>
4.src/views/HomeView.vue 发送请求并取出数据
1.方法池
    // 显示家居信息
    list() {
      request.post("/api/furns").then(
          res => {
            // 将返回的json对象数据赋值给tableData
            this.tableData = res.data.data
          }
      )
    }
2.created阶段调用list方法

image-20240319092556900

3.结果展示

image-20240319092615390

5.src/utils/request.js 添加response 拦截器,对返回结果拦截,统一处理
// response 拦截器
// 可以在接口响应后统一处理结果
request.interceptors.response.use(
    response => {
        //取出返回 data 的内容
        let res = response.data;
        // 如果是返回的文件
        if (response.config.responseType === 'blob') {
            return res
        }
        // 如果返回的是 string ,就转成 json 对象
        if (typeof res === 'string') {
            res = res ? JSON.parse(res) : res
        }
        return res;
    }, error => {
        console.log('err' + error) // 输出错误信息
        return Promise.reject(error)
    }
)
6.src/views/HomeView.vue 修改取数据方式

image-20240319093315273

7.src/views/HomeView.vue 添加家居之后刷新家居信息

image-20240319094110982

2.修改家居

1.需求分析

image-20240319094217854

2.思路分析

image-20240319094336314

3.后端实现
1.com/sun/furn/controller/FurnController.java 添加方法
    /**
     * 根据id修改家居信息
     * @param furn
     * @return
     */
    @PutMapping("/update")
    public Result update(@RequestBody Furn furn) {
        furnService.updateById(furn);
        return Result.success();
    }
2.postman测试

image-20240319095522862

4.前端实现
1.src/views/HomeView.vue 点击编辑回显表单数据
1.方法池
    handleEdit(row) {
      // 转换为json并且给提示框赋值
      let row_string = JSON.stringify(row);
      this.form = JSON.parse(row_string)
      //显示提示框
      this.dialogVisible = true
    }
2.结果展示

image-20240319102046851

2.src/views/HomeView.vue 修改家居
1.方法池 save方法根据form的id来判断是添加家居还是修改家居
    // 点击确定时触发,提交添加信息的表单
    save() {
      //根据id来区分是添加还是修改
      //添加逻辑
      if (!this.form.id) {
        request.post("/api/save", this.form).then(
            res => {
              console.log("res", res)
              this.dialogVisible = false
              // 刷新家居信息
              this.list()
            }
        )
      }
      else {
        //修改逻辑
        request.put("/api/update", this.form).then(
            res => {
              //修改成功则弹出提示框
              if (res.code === "200") {
                this.$message({
                  type: "success",
                  message: "更新成功!"
                })
              } else  {
                this.$message({
                  type: "error",
                  message: "更新失败!"
                })
              }
              this.dialogVisible = false
              // 刷新家居信息
              this.list()
            }
        )
      }
    }
2.异步问题
  • 这里的添加逻辑和修改逻辑,有重复的代码,但是不能够提到if-else后
  • 原因是axios请求是异步的,必须保证请求操作的原子性,否则会出问题
  • 只要发送一个axios请求,主程序会跟axios请求并发执行
5.结果展示

image-20240319105626984

image-20240319105641082

3.删除家居

1.需求分析

image-20240319105742480

2.com/sun/furn/controller/FurnController.java 添加方法
    /**
     * 根据id删除家居
     * @return
     */
    @DeleteMapping("/del/{id}") //这里使用路径变量的方式
    public Result delete(@PathVariable("id") Integer id) {
        furnService.removeById(id);
        return Result.success();
    }
3.postman测试

image-20240319110413891

4.前端实现
1.src/views/HomeView.vue 添加确认删除提示框
      <el-table-column fixed="right" label="操作" width="245">
        <template #default="scope">
          <el-button size="mini" @click="handleEdit(scope.row)" type="primary">编辑</el-button>
          <!-- 增加 popcomfirm 控件,确认删除 -->
          <el-popconfirm
              title="确定删除吗?" @confirm="handleDel(scope.row.id)">
            <template #reference>
              <el-button size="mini" type="danger">删除</el-button>
            </template>
          </el-popconfirm>
        </template>
      </el-table-column>
2.src/views/HomeView.vue 方法池添加方法
    //处理删除逻辑
    handleDel(id) {
      request.delete(`/api/del/${id}`).then(
        res  => {
          if (res.code === "200") {
            this.$message({
              type: "success",
              message: "删除成功!"
            })
          } else {
            this.$message({
              type: "error",
              message: "删除失败!"
            })
          }
          //刷新页面
          this.list()
        }
    )
    }
5.结果展示

image-20240319112448832

image-20240319112503818

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

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

相关文章

【python】flask服务端响应与重定向处理

✨✨ 欢迎大家来到景天科技苑✨✨ &#x1f388;&#x1f388; 养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; &#x1f3c6; 作者简介&#xff1a;景天科技苑 &#x1f3c6;《头衔》&#xff1a;大厂架构师&#xff0c;华为云开发者社区专家博主&#xff0c;…

C语言经典算法-8

文章目录 其他经典例题跳转链接41.基数排序法42.循序搜寻法&#xff08;使用卫兵&#xff09;43.二分搜寻法&#xff08;搜寻原则的代表&#xff09;44.插补搜寻法45.费氏搜寻法 其他经典例题跳转链接 C语言经典算法-1 1.汉若塔 2. 费式数列 3. 巴斯卡三角形 4. 三色棋 5. 老鼠…

01 JDBC介绍

文章目录 JDBC本质版本使用核心APIDriverDriverManager驱动注册连接对象获取 Connection获取执行对象事务管理 Statement概述 ResultSet概述 JDBC本质 官方&#xff08;sun公司&#xff09;定义的一套操作所有关系型数据库的规则&#xff0c;即接口各个数据库厂商去实现这套接…

爬虫逆向实战(37)-某保险超市(AES,SHA256)

一、数据接口分析 主页地址&#xff1a;某保险超市 1、抓包 通过抓包可以发现数据接口是/tacpc/tiananapp/marketing_product_commodity/commodityList 2、判断是否有加密参数 请求参数是否加密&#xff1f; 通过查看“载荷”模块可以发现&#xff0c;有一个jsonKey加密参…

Servlet使用

文章目录 简介一、快速入门二、Servlet 执行流程三、Servlet 生命周期四、Servlet 方法介绍五、Servlet 体系结构六、Servlet urlPattern配置七、XML 配置方式编写 Servlet 简介 一、快速入门 <dependencies><dependency><groupId>javax.servlet</groupId…

绝地求生:[更新周报] 3/20 不停机更新:商城无上新、23号七周年HOT TIME!

大家好&#xff0c;我是闲游盒。本周三3月20号&#xff0c;绝地求生不会有停机时间&#xff0c;大家可以随便玩~ ▲本周可选地图池 亚服/东南亚服&#xff1a;艾伦格、米拉玛、泰戈、荣都、卡拉金&#xff1b; 日服/韩服KAKAO服&#xff1a;艾伦格、泰戈、萨诺、荣都、卡拉金&a…

数据分析-Pandas序列滑动窗口配置参数

数据分析-Pandas序列滑动窗口配置参数 数据分析和处理中&#xff0c;难免会遇到各种数据&#xff0c;那么数据呈现怎样的规律呢&#xff1f;不管金融数据&#xff0c;风控数据&#xff0c;营销数据等等&#xff0c;莫不如此。如何通过图示展示数据的规律&#xff1f; 数据表&…

【保姆级】VsCode 安装GitHub Copilot实操教程

0. 前言 GitHub Copilot&#xff0c;俗称“副驾驶”&#xff0c;是GitHub携手OpenAI共同打造的一款革命性的人工智能代码辅助工具。通过将其插件化集成至编辑器&#xff08;如VS Code&#xff09;&#xff0c;Copilot能够为用户提供强大的代码自动补全功能&#xff0c;并根据用…

图神经网络实战(5)——常用图数据集

图神经网络实战&#xff08;5&#xff09;——常用图数据集 0. 前言0. 图数据集介绍2. Cora 数据集3. Facebook Page-Page 数据集小结系列链接 0. 前言 图数据集往往比单纯的连接集合更丰富&#xff0c;节点和边也可以具有表示分数、颜色、单词等的特征。在输入数据中包含这些…

get_local_ip.bat:快速获取IPv4地址

批处理脚本&#xff0c;用于在Windows命令提示符下获取本地计算机的IPv4地址。 echo off ipconfig | findstr IPv4 pause - echo off&#xff1a;这会关闭命令提示符窗口中的命令回显&#xff0c;使得在运行脚本时不会显示每条命令的执行结果。 - ipconfig&#xff1a;这是一…

IDEA 配置阿里规范检测

IDEA中安装插件 配置代码风格检查规范 使用代码风格检测 在代码类中&#xff0c;右键 然后会给出一些不符合规范的修改建议&#xff1a; 保存代码时自动格式化代码 安装插件&#xff1a; 配置插件&#xff1a;

探索未来教育:在线教育微服务的革新之路

随着互联网技术的不断发展&#xff0c;在线教育已经成为现代教育领域的重要组成部分。而在在线教育的发展过程中&#xff0c;微服务架构的应用正逐渐引起人们的关注和探讨。本文将深入探讨在线教育微服务的概念、优势以及未来发展趋势。 ## 什么是在线教育微服务&#xff1f; …

【how2j练习题】JS部分阶段练习

练习一 <!--练习&#xff0c;做一个简单的加法计算器--><html><input type"text" size "2" id "num1" ><input type"text" size "2" id "num2" ><input type"text" siz…

FSP40罗德与施瓦茨FSP40频谱分析仪

181/2461/8938产品概述&#xff1a; 频率范围:9千赫至40千兆赫 分辨率带宽:1赫兹至10兆赫 显示的平均噪音水平:-155分贝&#xff08;1赫兹&#xff09; 相位噪声:10 kHz时为-113 dB&#xff08;1Hz&#xff09; 附加滤波器:100 Hz至5 MHz的通道滤波器和RRC滤波器、1 Hz至3…

html5cssjs代码 029 CSS计数器

html5&css&js代码 029 CSS计数器 一、代码二、解释 该HTML代码定义了一个网页的结构和样式。在头部&#xff0c;通过CSS样式定义了body和h1-h2元素的样式。body元素的样式包括文本居中、计数器重置、字体颜色和背景颜色。h2元素的样式使用了CSS计数器来自动在标题前添加…

Visio 2003简体中文版软件安装教程(附软件下载地址)

软件简介&#xff1a; 软件【下载地址】获取方式见文末。注&#xff1a;推荐使用&#xff0c;更贴合此安装方法&#xff01; Visio 2003简体中文版是一款独立的专业绘图软件&#xff0c;适用于复制、可视化处理、分析和交流信息、系统和流程。不论是哪个版本的Visio&#xff…

石油炼化5G智能制造工厂数字孪生可视化平台,推进行业数字化转型

石油炼化5G智能制造工厂数字孪生可视化平台&#xff0c;推进行业数字化转型。在石油炼化行业&#xff0c;5G智能制造工厂数字孪生可视化平台的出现&#xff0c;为行业的数字化转型注入了新的活力。石油炼化行业作为传统工业的重要领域&#xff0c;面临着资源紧张、环境压力、安…

拓展商城系统的未来:微服务维度的创新之路

随着电子商务的快速发展&#xff0c;传统的单体式商城系统在应对日益复杂的业务需求和用户体验方面逐渐显露出局限性。而基于微服务架构的商城系统&#xff0c;通过多维度的拆分和组合&#xff0c;正在为商城行业带来全新的创新和发展机遇。本文将深入探讨微服务维度下的商城系…

stm32之GPIO电路介绍

文章目录 1 GPIO介绍2 GPIO的工作模式2.1 浮空输入2.2 上拉输入2.3 下拉输入2.4 模拟输入2.5 开漏输出2.6 推挽输出2.7 复用开漏输出2.8 复用推挽输出2.9 其他 3 应用方式4 常用库函数 1 GPIO介绍 保护二极管&#xff1a;保护引脚&#xff0c;让引脚的电压位于正常的范围施密特…

Docker 从0安装 nacos集群

前提条件 Docker支持一下的CentOs版本 Centos7(64-bit)&#xff0c;系统内核版本为 3.10 以上Centos6.5(64-bit) 或者更高版本&#xff0c;系统内核版本为 2.6.32-431 或者更高版本 安装步骤 使用 yum 安装&#xff08;CentOS 7下&#xff09; 通过 uname -r 命令查看你当…