Vue电商项目实战之角色列表添加,编辑,删除功能

news2024/9/25 11:20:23

这是黑马vue电商项目后台,自己需要完成的功能,这里仅供参考当然还需要自己去理解.

一.添加功能

在roles.vue中

1.添加角色的对话框

 代码如下: 

  <!-- 添加角色的对话框 -->
    <el-dialog :visible.sync="addRoleDialogVisible" title="添加角色" width="35%" @close="addDialogClosed">
      <!-- 内容主体区域 -->
      <el-form ref="addFormRef" :model="addForm" :rules="addFormRules" label-width="70px">
        <!-- prop=username 对应了 addFormRules中的username校验规则-->
        <el-form-item label="角色名称" label-width="85px" prop="roleName">
          <el-input v-model="addForm.roleName"></el-input>
        </el-form-item>
        <el-form-item label="角色描述" label-width="85px" prop="roleDesc">
          <el-input v-model="addForm.roleDesc"></el-input>
        </el-form-item>
      </el-form>
      <!-- 底部区域 -->
      <span slot="footer" class="dialog-footer">
        <el-button @click="addRoleDialogVisible = false">取 消</el-button>
        <el-button type="primary" @click="addRole">确 定</el-button>
      </span>
    </el-dialog>

2. 控制添加角色的对话框显示与隐藏

      // 控制添加角色对话框的显示与隐藏
      addRoleDialogVisible: false,

3.  双向绑定:module添加角色的值

      // 添加角色
      addForm: {
        roleName: '',
        roleDesc: ''
      },

4. 添加角色的验证规则

 addFormRules: {
        roleName: [
          {
            required: true,
            message: '请输入角色名称',
            trigger: 'blur'
          },
          {
            min: 2,
            max: 6,
            message: '角色名称长度在 2 到 6 个字符',
            trigger: 'blur'
          }
        ],
        roleDesc: [
          {
            required: true,
            message: '请输入角色描述',
            trigger: 'blur'
          }
        ]
      },

5. 添加角色的方法methods下

 代码如下

   /**
     * 添加角色
     */
    async addRole () {
      this.$refs.addFormRef.validate(async valid => {
        if (!valid) {
          return
        }
        // 可以发起添加角色的网络请求
        const { data: res } = await this.$http.post('roles', this.addForm)
        console.log(res)
        if (res.meta.status !== 201) {
          return this.$message.error('添加角色失败!')
        } else {
          this.addRoleDialogVisible = false
          this.getRolesList()
          this.$message.success('添加角色成功!')
        }
      })
    },

6. 添加角色对话框关闭事件

    /**
     * 监听 添加角色对话框的关闭事件
     */
    addDialogClosed () {
      this.$refs.addFormRef.resetFields()
    },

到这里完成了添加角色的功能 .

二. 编辑角色功能

 1.根据上面的步骤差不多

首页写一个编辑角色的对话框

 代码如下: 

    <!-- 编辑角色的对话框 -->
    <el-dialog :visible.sync="editRoleDialogVisible" title="编辑角色" width="35%" @close="editDialogClosed">
      <!-- 内容主体区域 -->
      <el-form ref="editFormRef" :model="editForm" :rules="addFormRules" label-width="70px">
        <!-- prop=username 对应了 addFormRules中的username校验规则-->
        <el-form-item label="角色名称" label-width="85px" prop="roleName">
          <el-input v-model="editForm.roleName"></el-input>
        </el-form-item>
        <el-form-item label="角色描述" label-width="85px" prop="roleDesc">
          <el-input v-model="editForm.roleDesc"></el-input>
        </el-form-item>
      </el-form>
      <!-- 底部区域 -->
      <span slot="footer" class="dialog-footer">
        <el-button @click="editRoleDialogVisible = false">取 消</el-button>
        <el-button type="primary" @click="editRole">确 定</el-button>
      </span>
    </el-dialog>

2. 控制编辑角色的对话框的显示与隐藏

      //控制编辑角色的对话框的显示与隐藏
      editRoleDialogVisible: false

3. 获取值编辑角色的值

// 获取值编辑角色的值     
 editForm: {},

4. 编辑角色的验证规则,这里我说明一下,我使用的是添加角色的验证规则因为是一样的,所以就没有写另外的

所以和上面添加角色的代码是一样的,前面写了, 这里只需要写相同的名称就可以了

5. 编辑角色的methods下方法

展示编辑角色的对话框

    /**
     * 展示编辑角色的对话框
     * @param roleId
     */
    async showEditDialog (roleId) {
      const { data: res } = await this.$http.get(`roles/${roleId}`)
      if (res.meta.status !== 200) {
        return this.$message.error('查询角色信息失败')
      } else {
        this.editForm = res.data
        this.editRoleDialogVisible = true
      }
    },

6. 编辑角色的方法

 代码如下

 /**
     * 编辑角色
     */
    async editRole () {
      this.$refs.editFormRef.validate(async valid => {
        if (!valid) {
          return
        }
        const { data: res } = await this.$http.put(`roles/${this.editForm.roleId}`,
          {
            roleName: this.editForm.roleName,
            roleDesc: this.editForm.roleDesc
          }
        )
        if (res.meta.status !== 200) {
          this.$message.error('更新角色信息失败!')
        } else {
          this.editRoleDialogVisible = false
          this.getRolesList()
          this.$message.success('更新角色成功!')
        }
      })
    },

7. 监听修改角色对话框的关闭事件

    /**
     * 监听 修改角色对话框的关闭事件
     */
    editDialogClosed () {
      this.$refs.editFormRef.resetFields()
    }

三. 删除功能

根据ID删除角色

 

    /**
     * 根据角色id删除角色
     * @param roleId
     */
    async removeRoleById (roleId) {
      // 弹框询问用户是否直接删除数据
      const confirmResult = await this.$confirm('此操作将永久删除该角色, 是否继续?', '提示', {
        confirmButtonText: '确定',
        cancelButtonText: '取消',
        type: 'warning'
      }).catch(() => {
        this.$message({
          type: 'info',
          message: '已取消删除'
        })
      })

      if (confirmResult === 'confirm') {
        console.log('确认了删除')
        const { data: res } = await this.$http.delete(`roles/${roleId}`)
        if (res.meta.status !== 200) {
          return this.$message.error('删除角色失败!')
        } else {
          this.getRolesList()
          return this.$message.success('删除角色成功!')
        }
      }
    },

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

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

相关文章

【C++技能树】原来比C方便这么多 --缺省参数、函数重载、引用讲解

Halo&#xff0c;这里是Ppeua。平时主要更新C语言&#xff0c;C&#xff0c;数据结构算法......感兴趣就关注我吧&#xff01;你定不会失望。 &#x1f308;个人主页&#xff1a;主页链接 &#x1f308;算法专栏&#xff1a;专栏链接 我会一直往里填充内容哒&#xff01; &…

DPCNN分类模型

论文 Deep Pyramid Convolutional Neural Networks for Text Categorization 提出深层金字塔卷积网&#xff08;DPCNN&#xff09;是 word-level 的广泛有效的深层文本分类卷积神经网络&#xff0c;比 TextCNN&#xff08;浅层CNN&#xff09;性能明显提高。 TextCNN 不能通过卷…

Unity InputSystem (一)

什么是InputSystem InputSystem 是 2019 年 Unity 新推出的插件&#xff0c;输入系统包实现了一个系统来使用任何类型的输入设备来控制你的 Unity 内容。它旨在成为 Unity 的经典输入管理器更强大、更灵活、更可配置的替代品。 新输入系统基于事件&#xff0c;输入设备和动作逻…

Redis 哨兵和集群

文章目录1. 单机模式2. 主从架构3. 哨兵4. 集群模式5. 哈希槽是什么&#xff1f;1. 单机模式 Redis 单副本&#xff0c;采用单个 Redis 节点部署架构&#xff0c;没有备用节点实时同步数据&#xff0c;不提供数据持久化和备份策略&#xff0c;适用于数据可靠性要求不高的纯缓存…

【硬件外设使用】——SPI

【硬件外设使用】——SPI SPI基本概念SPI通信协议SPI使用方法pyb.spimachine.spi SPI可用的传感器 SPI基本概念 SPI是一种串行端口通信接口&#xff0c;它是一种同步的全双工协议&#xff0c;用于在数字电路之间传输数据。SPI代表串行外设接口&#xff0c;是一种非常流行的数字…

UDS诊断测试

UDS&#xff08;Unified Diagnostic Services&#xff0c;统一的诊断服务&#xff09;诊断协议是在汽车电子ECU环境下的一种诊断通信协议。这种通信协议被用在几乎所有由OEM一级供应商所制造的新ECU上面。这些ECU控制车辆的各种功能&#xff0c;包括电控燃油喷射系统&#xff0…

TI在物联网和AI边缘计算中落伍了吗?

摘要&#xff1a;本文介绍一下TI在边缘计算工作中所做的努力。 发明“人工智能”这个term的老头儿也不会想到人工智能在中国有多火。 不管是懂还是不懂&#xff0c;啥东西披上“人工智能“的面纱都能瞬间成为大项目。 学习AI 的年轻人认识NVIDIA&#xff0c;可能不太知道DSP是…

金毅:10x HTAP,企业级关系型数据库内核技术创新与演进

导语4月8日下午&#xff0c;为期两天的第十二届数据技术嘉年华&#xff08;DTC 2023&#xff09;在北京新云南皇冠假日酒店圆满落下帷幕。大会以“开源融合数字化——引领数据技术发展&#xff0c;释放数据要素价值”为主题&#xff0c;汇聚产学研各界精英到场交流。作为大会的…

网络原理之UDP

hi,大家好,又见面了,今天为大家介绍一下UDP的网络原理&#x1f437;&#x1f437;&#x1f437; 文章目录认识UDP报文格式UDP特点TCP,UDP应用场景基于UDP的应用层协议认识UDP报文格式 UDP特点 TCP,UDP应用场景 基于UDP的应用层协议 1.认识UDP报文格式 其实在真正传输的…

批量记录收支明细:手把手教你如何查看上个月的收支明细并打印。

记录收支明细太久&#xff0c;想要快速查看并筛选出上个月的某一个明细要如何进行查询&#xff0c;还要进行打印要如何操作&#xff1f;今天就由小编来教教大家要如何操作。 首先第一步&#xff0c;我们要进入晨曦记账本主页面&#xff0c;点击主页面上方功能栏里的“添加收支…

聚焦云原生安全|安全狗云甲荣膺CSA 2022安全金盾奖

4月13日&#xff0c;第六届云安全联盟大中华区大会“年度颁奖典礼”表彰仪式顺利开展。作为国内云原生安全领导厂商&#xff0c;安全狗也收到邀请出席此次活动。​ 此次活动上&#xff0c;“年度颁奖典礼”作为重要环节之一&#xff0c;获得业界的关注。安全狗旗下云原生安全产…

zabbix介绍及部署(超详细讲解)

目录 1.zabbix的基本概述 2.zabbix的构成 1、Server 2、web页面 3、数据库 4、proxy 5、Agent 3.zabbix的监控对象 4.zabbix的常用术语 5.zabbix的工作流程 1、主动模式 2、被动模式 6.zabbix进程详解 7.zabbix的监控框架 1、server_client架构 2、zabbix_prox…

一文搞懂C#工程中程序数据库文件.pdb(符号文件)的作用,延伸搞懂Debug/Release、AnyCPU(首选32位)/x86/x64/ARM的区别

一、准备工作 MS引用&#xff1a;在 Visual Studio 调试器&#xff08;C#、C、Visual Basic、F#&#xff09;中指定符号 (.pdb) 和源文件 MS引用&#xff1a;为 C#、ASP.NET 或 Visual Basic 项目 &#xff08;.NET Framework&#xff09; 生成符号文件 MS引用&#xff1a;用…

ASP.NET动态Web开发技术第6章续

第6章续ASP.NET内置对象一.预习笔记 1.ASP.NET提供了七大内置对象&#xff0c;Page、Request、Response、Application、Session、Server和Cookies。这些对象使用户更容易收集通过浏览器请求发送的信息、响应浏览器以及存储用户信息&#xff0c;以实现其他特定的状态管理和页面…

【动力节点】杜老师Vue笔记——Vue程序初体验

目录 一、Vue程序初体验 1.1 下载并安装vue.js 1.2 第一个Vue程序 1.3 Vue的data配置项 1.4 Vue的template配置项 一、Vue程序初体验 可以先不去了解Vue框架的发展历史、Vue框架有什么特点、Vue是谁开发的&#xff0c;对我们编写Vue程序起不到太大的作用&#xff0c;…

云HIS源码 基层卫生健康云HIS源码

云HIS全称为基于云计算的医疗卫生信息系统&#xff08;Cloud-BasedHealthcareInformationSystem&#xff09;&#xff0c;是运用云计算、大数据、物联网等新兴信息技术&#xff0c;按照现代医疗卫生管理要求&#xff0c;在一定区域范围内以数字化形式提供医疗卫生行业数据收集、…

正版软件 Directory Opus 12 Pro Windows 平台上的资源管理器,定是功能完全、可定制化程度高的那款。

Directory Opus 是一款 Windows 平台上的资源管理器&#xff0c;定是功能最完全、可定制化程度最高的那款。你可以通过它完成几乎所有操作&#xff0c;包括查看图片元信息、预览图片、阅读文本文件内容、批量重命名、操作压缩文件以及 FTP 同步请求等。 Directory Opus 是一款由…

QGIS数据可视化学习笔记00——为什么用QGIS以及QGIS设置中文界面

一、为什么用QGIS&#xff1f; 1、qgis的概念 qgis原称Quantum GIS&#xff0c;是开源的桌面地理信息系统软件。 qgis是一款桌面版gis软件&#xff0c;他是基于qt平台使用c开发出来gis软件。 2、qgis的主要特点 1.支持多种GIS数据文件格式 2.集成或支持其他开源GIS&#…

rust的并发以及kv server网络处理和网络安全部分

理解并发和并行 Golang 的创始人之一&#xff0c;对此有很精辟很直观的解释&#xff1a;并发是一种同时处理很多事情的能力&#xff0c;并行是一种同时执行很多事情的手段。 我们把要做的事情放在多个线程中&#xff0c;或者多个异步任务中处理&#xff0c;这是并发的能力。在多…

postman同时传递文件和对象参数

属性 required true 意思为 必填对象属性 /*** descroptions: 再保临分请求* author: c* date: 2023/1/9 14:26* version: 1.0*/public class UwReinsureReportReqDTO extends BaseInfoReqDTO implements Serializable {private static final long serialVersionUID -59047…