JavaEE-SSM-订单管理-前端增删改功能实现

3.5 功能2:添加

  • 从列表页面切换到添加页面
    在这里插入图片描述
    编写对应添加页面的路由

在这里插入图片描述
*

  {
    path: '/orderAdd',
    name: '添加订单',
    component: () => import('../views/OrderAdd.vue')
  }
  • 编写添加功能
    在这里插入图片描述
<template>
  <div>
    <table border="1">
      <tr>
        <td>编号</td>
        <td>
          <!-- 使用 v-model 进行表单元素的双向绑定 -->
          <input type="text" v-model="order.oid">
        </td>
      </tr>
      <tr>
        <td>价格</td>
        <td>
          <input type="text" v-model="order.price">
        </td>
      </tr>
      <tr>
        <td>所属用户</td>
        <td>
          <input type="text" v-model="order.userId">
        </td>
      </tr>
      <tr>
        <td></td>
        <td>
          <!-- @click 点击事件 -->
          <input type="submit" value="添加" @click="addOrder">
        </td>
      </tr>
    </table>
    {{order}}
  </div>
</template>

<script>
export default {
  data() {
    return {
      order: {      //用于表单元素数据绑定对象

      }
    }
  },
  methods: {
    async addOrder() {
      // 发送ajax
      let {data} = await this.$http.post('/order', this.order )
      // 根据结果提示
      //console.info(data)
      alert(data)
      //跳转到列表页面
      this.$router.push('/orderList')
    }
  },
}
</script>

<style>

</style>

3.6 功能3:修改

  • 列表页面跳转到更新页面,以参数的方式传递id
    在这里插入图片描述
<router-link :to="'/orderUpdate?oid='+order.oid">修改</router-link>

编写路由
在这里插入图片描述

xxxxxxxxxx   {    path: '/orderUpdate',    name: '修改订单',    component: () => import('../views/OrderUpdate.vue')  }

创建路由对应的vue页面

在这里插入图片描述

  • 编写修改功能:先通过id查询详情,并回显到表单,修改内容后,提交表单

    <template>
      <div>
        <!-- 2.2 表单数据绑定 -->
        <table border="1">
          <tr>
            <td>编号</td>
            <td>
              <!-- 使用 v-model 进行表单元素的双向绑定 -->
              <!-- <input type="text" v-model="order.oid"> -->
              {{order.oid}}
            </td>
          </tr>
          <tr>
            <td>价格</td>
            <td>
              <input type="text" v-model="order.price">
            </td>
          </tr>
          <tr>
            <td>所属用户</td>
            <td>
              <input type="text" v-model="order.userId">
            </td>
          </tr>
          <tr>
            <td></td>
            <td>
              <!-- 3 点击,并进行更新 -->
              <input type="submit" value="修改" @click="updateOrder">
            </td>
          </tr>
        </table>
        {{order}}
      </div>
    </template>
    
    <script>
    export default {
      data() {
        return {
          oid: '',      //1.1 订单id
          order: {      //2.1 用于表单元素数据绑定对象
    
          }
        }
      },
      methods: {
        async selectOrderById() {
          // 发送ajax
          let { data } = await this.$http.get(`/order/${this.oid}`)
          // 将查询结果存放
          this.order = data
        },
        async updateOrder() {
          //发送ajax
          let { data } = await this.$http.put('/order', this.order)
          //提示
          alert(data)
          //跳转
          this.$router.push('/orderList')
        }
      },
      mounted() {       //页面加载成功
        // 1.2 获得查询的id
        // console.info(this.$route)
        this.oid = this.$route.query.oid
        // 1.3 通过id查询
        this.selectOrderById()
      },
    }
    </script>
    
    <style>
    
    </style>
    

3.7 功能4:删除

  • 点击进行删除
    在这里插入图片描述
<a href="" @click.prevent="deleteOrderById(order.oid)">删除</a>
  • 删除操作

            async deleteOrderById(oid) {
                // 需确认是否删除
                if(confirm("您确认要删除么?")) {
                    // ajax删除
                    let { data } = await this.$http.delete(`/order/${oid}`)
                    // 提示
                    alert(data)
                    // 刷新结果:重新查询
                    this.selectAllOrder()
                }
            }
    
  • 列表页面的完整代码

    <template>
      <div>
          <table border="1">
              <tr>
                  <td>编号</td>
                  <td>价格</td>
                  <td>所属用户名</td>
                  <td>操作</td>
              </tr>
              <tr v-for="(order,index) in orderList" :key="index">
                  <td>{{order.oid}}</td>
                  <td>{{order.price}}</td>
                  <td>{{order.user !=null ? order.user.username : '无所属用户'}}</td>
                  <td>
                      <router-link :to="'/orderUpdate?oid='+order.oid">修改</router-link> | 
                      <a href="" @click.prevent="deleteOrderById(order.oid)">删除</a>
                      
                  </td>
              </tr>
          </table>
          <!-- 添加 -->
          <router-link to="/orderAdd">添加订单</router-link>
      </div>
    </template>
    
    <script>
    export default {
        data() {
            return {
                orderList: []
            }
        },
        methods: {
            async selectAllOrder() {
                // let response = await this.$http.get("/order")
                // this.orderList = response.data
                let {data} = await this.$http.get("/order")
                this.orderList = data
            },
            async deleteOrderById(oid) {
                // 需确认是否删除
                if(confirm("您确认要删除么?")) {
                    // ajax删除
                    let { data } = await this.$http.delete(`/order/${oid}`)
                    // 提示
                    alert(data)
                    // 刷新结果:重新查询
                    this.selectAllOrder()
                }
            }
        },
        mounted() {     //页面加载成功
            //查询所有订单
            this.selectAllOrder()
        },
    }
    </script>
    
    <style>
    
    </style>
    

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

mysql临时表简述

概述 业务中经常会对一些表进行聚合组装信息&#xff0c;然后筛选&#xff0c;有些表比较数据量大的时候&#xff0c;会对拖慢查询&#xff1b; 常用的mybatis的分页查询&#xff0c;在查询时会先count一下所有数据&#xff0c;然后再limit分页&#xff0c;即使分页也会有深度…

数美滑块协议解析2024/01/24

文章目录 网址分析请求定位代码看算法扣代码传参和轨迹暗坑网址 aHR0cHM6Ly93d3cuaXNodW1laS5jb20vbmV3L3Byb2R1Y3QvdHcvY29kZQ==分析请求 我比较简单,我直接过一下滑块然后看一下请求栈,是一堆混淆后的代码,直接全部拿下来,简单做一下解混淆,方便自己看,不会解混淆的也…

.kann勒索病毒解密方法|勒索病毒解决|勒索病毒恢复|数据库修复

导言&#xff1a; 随着网络犯罪日益猖獗&#xff0c;恶意软件攻击也呈现多样化趋势。.kann勒索病毒是一种采用高级加密技术的勒索软件&#xff0c;它能够使用户的个人文件和企业数据变得无法访问。本文91数据恢复将介绍.kann勒索病毒的特点、数据恢复方法以及预防策略。如果您…

Onvif协议1:gSOAP是什么

目录 1.简介 2. Web Services 2.1 Web Services常用的几种框架 3. SOAP简介 3.1如此理解SOAP 4. WSDL文档 5. gsoap编译 5.1 gSOAP工具转换原理 1.简介 gSOAP工具基于编译器技术为C/C提供自动的SOAP和XML数据绑定。该工具使用自动生成代码以及先进的映射方法&#xff…

springboot118共享汽车管理系统

简介 【毕设源码推荐 javaweb 项目】基于springbootvue 的共享汽车管理系统 适用于计算机类毕业设计&#xff0c;课程设计参考与学习用途。仅供学习参考&#xff0c; 不得用于商业或者非法用途&#xff0c;否则&#xff0c;一切后果请用户自负。 看运行截图看 第五章 第四章 获…

如何在Linux上部署Docker容器

一、什么是docker&#xff1f; Docker 是一个开源的应用容器引擎&#xff0c;让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中&#xff0c;然后发布到任何流行的 Linux或Windows 机器上&#xff0c;也可以实现虚拟化。容器是完全使用沙箱机制&#xff0c;相互之间不…

Vue+Element(el-upload+el-form的使用)+springboot

目录 1、编写模板 2、发请求调接口 3、后端返回数据 1.编写实体类 2.Controller类 3、interface接口&#xff08;Service层接口&#xff09; 4.Service&#xff08;接口实现&#xff09; 5、interface接口&#xff08;Mapper层接口&#xff09; 6、xml 4、upload相关参…

别不信❗️你离数据专家只差一个CDMP证书

1⃣️为什么选择CDMP证书&#xff1f; &#x1f31f;&#x1f31f;亲爱的朋友们&#xff0c;如果你在寻找一个能让你在数据管理领域大展拳脚的证书&#xff0c;那么CDMP&#xff08;Certified Data Management Professional&#xff09;证书就是你的不二之选&#xff01;&#…

【数据结构】链表的分类和双向链表

本篇是基于上篇单链表所作&#xff0c;推荐与上篇配合阅读&#xff0c;效果更加 http://t.csdnimg.cn/UhXEj 1.链表的分类 链表的结构非常多样&#xff0c;以下情况组合起来就有8种&#xff08;2 x 2 x 2&#xff09;链表结构&#xff1a; 我们一般叫这个头为哨兵位 我们上回…

树,二叉树及其相关知识

1.树概念及结构 1.1树的概念 树是一种非线性的数据结构&#xff0c;它是由n&#xff08;n>0&#xff09;个有限结点组成一个具有层次关系的集合。把它叫做树是因 为它看起来像一棵倒挂的树&#xff0c;也就是说它是根朝上&#xff0c;而叶朝下的。 有一个特殊的结点&#…

搭建《幻兽帕鲁》服务器需要怎样配置的云服务器?

随着《幻兽帕鲁》这款游戏的日益流行&#xff0c;越来越多的玩家希望能够在自己的服务器上体验这款游戏。然而&#xff0c;搭建一个稳定、高效的游戏服务器需要仔细的规划和配置。本文将分享搭建《幻兽帕鲁》服务器所需的配置及搭建步骤&#xff0c;助力大家获得更加畅快的游戏…

【教学类-综合练习-09】20240105 大4班 综合材料(美术类:骰子、面具、AB手环)

背景需求 年终了&#xff0c;清理库存&#xff0c;各种打印的题型纸都拿出来&#xff0c;当个别化学习材料 教学过程&#xff1a; 时间&#xff1a;2024年1月2日下午 班级&#xff1a;大4班 人数&#xff1a;16人

微博处罚造谣账号只是”罚酒三杯“?

1月11日&#xff0c;一则#近视眼从800度降到100度的过程#话题登上微博热搜榜第一位。有博主称通过“视觉恢复的闪现技巧”可逐渐恢复视力。在9个小时时间内&#xff0c;该话题达到2.4亿阅读量&#xff0c;6.2万讨论量。 不过&#xff0c;遗憾的是&#xff0c;相关内容实际上是伪…

np.bincount函数的用法

官网写的非常清晰了&#xff0c; 返回数组的数量比x中的最大值大1&#xff0c;它给出了每个索引值在x中出现的次数。下面&#xff0c;我举个例子让大家更好的理解一下&#xff1a; np.bincount(np.array([0, 1, 1, 3, 2, 1, 7])) array([1, 3, 1, 1, 0, 0, 0, 1])最大值是7&a…

SQL提示与索引终章

✨博客主页&#xff1a;小小恶斯法克的博客 &#x1f388;该系列文章专栏&#xff1a;重拾MySQL-进阶篇 &#x1f4dc; 感谢大家的关注&#xff01; ❤️ 可以关注黑马IT&#xff0c;进行学习 目录 &#x1f680;SQL提示 &#x1f680;覆盖索引 &#x1f680;前缀索引 &…

Modelsim10.4安装

简介&#xff08;了解&#xff0c;可跳过&#xff09; modelsim是Mentor公司开发的优秀的HDL语言仿真软件。 它能提供友好的仿真环境&#xff0c;采用单内核支持VHDL和Verilog混合仿真的仿真器。它采用直接优化的编译技术、Tcl/Tk技术和单一内核仿真技术&#xff0c;编译仿真速…

基于springboot+vue的墙绘产品展示交易平台系统(前后端分离)

博主主页&#xff1a;猫头鹰源码 博主简介&#xff1a;Java领域优质创作者、CSDN博客专家、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战 主要内容&#xff1a;毕业设计(Javaweb项目|小程序等)、简历模板、学习资料、面试题库、技术咨询 文末联系获取 研究背景…

MySQL建表练习

练习题目&#xff1a;通过所提供的E-R图和数据库模型图完成库表的创建&#xff0c;并插入适量的数据.要求必须使用SQL命令进行构建。 已知如下&#xff1a; 1、创建客户信息表&#xff1a; 代码&#xff1a; CREATE DATABASE Bank; //建库CREATE TABLE Userinfo(Cust…

aop介绍

AOP&#xff08;Aspect-Oriented Programming&#xff0c;面向方面编程&#xff09;&#xff0c;可以说是OOP&#xff08;Object-Oriented Programing&#xff0c;面向对象编程&#xff09;的补充和完善。OOP引入封装、继承和多态性等概念来建立一种对象层次结构&#xff0c;用…

ORBSLAM3安装

0. C11 or C0x Compiler sudo apt-get install gccsudo apt-get install gsudo apt-get install build-essentialsudo apt-get install cmake1. 依赖 在该目录终端。 1. 1.Pangolin git clone https://github.com/stevenlovegrove/Pangolin.git sudo apt install libglew-d…