PC行内编辑

点击编辑,行内编辑输入框出现,给列表的每条数据定义编辑标记,最后一定记得 v-model双向绑定,使数据回显。
步骤:
1、给行数据定义编辑标记
2、点击行编辑标记(isedit)
3、插槽根据标记渲染表单

 <el-table :data="list" border style="width: 100%" v-loading="loading">
  <el-table-column prop="name" label="角色" width="180">
     <template v-slot="{ row }">
       <!--如果在编辑状态下显示-->
       <el-input
         v-if="row.isEdit"
         size="mini"
         v-model="row.editRow.name"
       ></el-input>
         <!--不在编辑状态下显示-->
       <span v-else>{{ row.name }}</span>
     </template>
   </el-table-column>
   <el-table-column prop="state" label="启用" width="180">
     <template v-slot="{ row }">
       <!--如果在编辑状态下显示-->
       <template v-if="row.isEdit">
         <el-switch
           size="mini"
           :active-value="1"
           :inactive-value="0"
           v-model="row.editRow.state"
         ></el-switch>
       </template>
         <!--不在编辑状态下显示-->
       <template v-else>
         <span>{{
           row.state === 1 ? "已启用" : row.state === 0 ? "未启用" : "无"
         }}</span>
       </template>
     </template>
   </el-table-column>
   <el-table-column prop="description" label="描述">
     <template v-slot="{ row }">
       <!--如果在编辑状态下显示-->
       <el-input
         v-if="row.isEdit"
         size="mini"
         v-model="row.editRow.description"
       ></el-input>
         <!--不在编辑状态下显示-->
       <span v-else>{{ row.description }}</span>
     </template>
   </el-table-column>
   <el-table-column label="操作">
     <template v-slot="{ row }">
       <!--如果在编辑状态下显示-->
       <template v-if="row.isEdit">
         <template>
           <el-button size="mini" type="primary"  @click="btnok(row)">确认</el-button>
         </template>
         <template>
           <el-button size="mini" @click="row.isEdit = false">取消</el-button>
         </template>
       </template>
       <!--不在编辑状态下显示-->
       <template v-else>
         <template>
           <el-button type="text">权限管理</el-button>
         </template>
         <template>
           <el-button type="text" @click="btnEditRow(row)"
             >编辑</el-button
           >
         </template>
          <template>
             <el-popconfirm
               title="这是一段内容确定删除吗?"
               @onConfirm="confirmDel(row.id)"
             >
               <el-button
                 slot="reference"
                 style="margin-left: 10px"
                 size="mini"
                 type="text"
                 >删除</el-button
               >
             </el-popconfirm>
           </template>
       </template>
     </template>
   </el-table-column>
 </el-table>
import { getRoleList, addRole, updateRole, delRole } from "@/api/role.js";
export default {
  data() {
    return {
     formInfo: {
        name: "",
        description: "",
        state: 0,
      },
     }
    },
    methods:{
    async getRoleList() {
      this.loading = true;
      const { rows} = await getRoleList();
      this.list = rows;
      this.loading = false;
      this.list.forEach((item) => {
       // item.isEdit = false // 添加一个属性 初始值为false
        // 数据响应式的问题  数据变化 视图更新 
        // 添加的动态属性 不具备响应式特点
        // this.$set(目标对象, 属性名称, 初始值) 可以针对目标对象 添加的属性 添加响应式
        this.$set(item, "isEdit", false);
        this.$set(item, "editRow", {
          name: item.name,
          state: item.state,
          description: item.description,
        });
      });
    },
    //点击编辑
     btnEditRow(row) {
      row.isEdit = true // 改变行的编辑状态
      // 更新缓存数据
      row.editRow.name = row.name;
      row.editRow.state = row.state;
      row.editRow.description = row.description;
    },
     async btnok(row) {
      if (row.editRow.name && row.editRow.description) {
        await updateRole({ ...row.editRow, id: row.id });
        // 更新成功
        this.$message.success("更新成功");
        // 更新显示数据  退出编辑状态
        // row.name = row.editRow.name // eslint的一校验 误判
        Object.assign(row, {
          ...row.editRow,
          isEdit: false, // 退出编辑模式
        });
      } else {
        this.$message.warning("角色和描述不能为空");
      }
    },
     async confirmDel(id) {
      await delRole(id); // 后端删除
      this.$message.success("删除角色成功");
      // 删除的如果是最后一个,
      if (this.list.length === 1) {
        this.pageParams.page--;
      }
      this.getRoleList();
    },
  }
 }

点击编辑,数据回显
在这里插入图片描述
确认,取消
在这里插入图片描述

删除
在这里插入图片描述

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

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

相关文章

Redis大key与热Key

什么是 bigkey&#xff1f; 简单来说&#xff0c;如果一个 key 对应的 value 所占用的内存比较大&#xff0c;那这个 key 就可以看作是 bigkey。具体多大才算大呢&#xff1f;有一个不是特别精确的参考标准&#xff1a; bigkey 是怎么产生的&#xff1f;有什么危害&#xff1f;…

408—电子笔记分享

一、笔记下载 链接&#xff1a;https://pan.baidu.com/s/1bFz8IX6EkFMWTfY9ozvVpg?pwddeng 提取码&#xff1a;deng b站视频&#xff1a;408-计算机网络-笔记分享_哔哩哔哩_bilibili 包含了408四门科目&#xff08;数据结构、操作系统、计算机组成原理、计算机网络&#xff09…

Python交互式解释器及用法

为了让开发者能快速学习、测试 Python 的各种功能&#xff0c;Python 提供的“python”命令不仅能用于运行 Python 程序&#xff0c;也可作为一个交互式解释器一一开发者逐行输入 Python 代码&#xff0c;它逐行解释执行。 当输入“python”命令时&#xff0c;可以看到如下输出…

如何生成唯一ID:探讨常用方法与技术应用

文章目录 1. UUID&#xff08;Universally Unique Identifier&#xff09;2. 数据库自增ID3. Twitter的Snowflake算法4. 数据库全局唯一ID&#xff08;Global Unique Identifier&#xff0c;GUID&#xff09;结语 &#x1f389;如何生成唯一ID&#xff1a;探讨常用方法与技术应…

steam搬砖如何选品?选品软件和教程靠谱吗?

说到steam搬砖项目&#xff0c;目前平台最火的就是CSGO游戏搬砖。在steam搬砖项目中&#xff0c;选品是一个至关重要的环节&#xff0c;直接影响到利润。而选品软件可以帮助我们更快地了解市场变化、计算成本利润等关键信息&#xff0c;提高选品的效率和准确性。可靠的选品软件…

MySQL学习day03

一、SQL图形化界面工具 常用比较常用的图形化界面有sqlyog、mavicat、datagrip datagrip工具使用相当方便&#xff0c;功能比前面两种都要强大。 DataGrip工具的安装和使用请查看这篇文档&#xff1a;DataGrip 安装教程 DML-介绍 DML全称是Data Manipulation Language(数据…

硬质金属件去毛刺技术,机械臂去毛刺主轴是核心

作为一种先进且高效的自动化去毛刺技术&#xff0c;机械臂去毛刺主轴在制造业中&#xff0c;特别是金属加工和汽车零部件加工中得到了广泛的应用&#xff0c;通过高速旋转的主轴和精确控制的机械臂实现高精度、高效率、高质量的自动化去毛刺作业。机械臂去毛刺技术是通过主轴的…

40.0/jdbc/Java数据连接/jar包运用增删改

目录 40.1. 回顾 40.2. 正文 40.1 为什么需要jdbc 40.2 如何连接mysql数据库 40 .3 jdbc容易出现的错误 40.4 完成删除 40.5 完成修改 40.1. 回顾 1. 自联查询: 自己连接自己的表。注意:一定要为表起别名。 2. 嵌套查询: 把一个查询的结果作为另一个查询的条件值。 3. 组…

基于C#实现十字链表

上一篇我们看了矩阵的顺序存储&#xff0c;这篇我们再看看一种链式存储方法“十字链表”&#xff0c;当然目的都是一样&#xff0c;压缩空间。 一、概念 既然要用链表节点来模拟矩阵中的非零元素&#xff0c;肯定需要如下 5 个元素(row,col,val,down,right)&#xff0c;其中&…

Unity之NetCode多人网络游戏联机对战教程(10)--玩家动画同步

文章目录 前言NetworkAnimation服务端权威客户端权威 前言 这次的动画同步与位置同步&#xff0c;可以说实现思路是一样的&#xff0c;代码相似度也非常高 NetworkAnimation 如果直接挂载这个脚本只有Host&#xff08;服务端&#xff09;才可以同步&#xff0c;Client是没有…

视频封面:视频图片提取技巧,从指定时长中捕捉需求的图片

在当今的数字时代&#xff0c;视频已成为日常生活中不可或缺的一部分。无论是社交媒体、博客&#xff0c;视频都发挥着重要的作用。而一个吸引的视频封面往往能吸引更多的观众点击观看&#xff0c;选择清晰度高、色彩鲜艳且能吸引人的图片。同时&#xff0c;确保图片与视频内容…

MySQL的Linux安装

在MySQL官网下载压缩包MySQL :: Download MySQL Community Server (Archived Versions) 下载完成后将压缩包上传到Linux中。我这里是下的CentOS的压缩包。 并且用的是FinalShell连接工具&#xff0c;可以选择压缩包直接上传。 ​ 上传完毕后&#xff0c;新建mysql文件夹&…

计算机视觉面试题-03

1、简单介绍一下sigmoid&#xff0c;relu&#xff0c;softplus&#xff0c;tanh&#xff0c;RBF及其应用场景 这里简单介绍几个激活函数及其应用场景&#xff1a; Sigmoid 函数&#xff08;Logistic 函数&#xff09;&#xff1a; 公式&#xff1a; s i g m a ( x ) 1 1 e …

【香橙派】实战记录2——烧录安卓镜像及基本功能

文章目录 一、安卓烧录二、安卓基本功能1、蓝牙2、相机功能3、投屏 一、安卓烧录 检查环境&#xff1a;检查PC系统&#xff0c;确保有Microsoft Visual C 2008 Redistrbutable - x86&#xff0c;否则在官网下载的官方工具 - 安卓镜像烧录工具里运行vcredist_x86.exe。 插入存储…

模板上新|2023年10月DataEase模板市场上新动态

DataEase开源数据可视化分析平台于2022年6月正式发布模板市场&#xff08;https://dataease.io/templates/&#xff09;。模板市场旨在为DataEase用户提供专业、美观、拿来即用的仪表板模板&#xff0c;方便用户根据自身的业务需求和使用场景选择对应的仪表板模板&#xff0c;并…

Authing CEO 谢扬来信 |我的原则

从忙碌的工作中短暂抽身&#xff0c;有很多感想&#xff0c;不吐不快&#xff0c;借此机会&#xff0c;倾我所有&#xff0c;诉我原则。 原则一&#xff1a;坚强信念&#xff0c;坚定意志 商人大多「无利不起早」&#xff0c;而创业者的反馈周期比商人长非常非常多。 相比「商品…

【转】C代码利用CPU L1 cache一秒内算出十亿以内质数的个数

我去年发表了一篇 Python 代码&#xff0b;Numpy 库 Sieve算法实现一秒内计算出一亿以内的质数的个数&#xff1a; https://blog.csdn.net/Scott0902/article/details/128193368 今天在 GitHub 上找到国外牛人在三年前已经用 C 语言编写出利用 CPU L1 cache 来进行超高速计算…

Java 之 lambda 表达式(二)---- Stream 操作 API

目录 一. 前言 二. Stream 创建 2.1. 使用集合来创建 Stream 2.2. 使用数组创建 Stream 2.3. 由值创建 Stream 2.4. 由函数创建无限流 Stream 2.5. 代码示例 三. Stream 操作 3.1. 中间型操作 3.1.1. filter() 3.1.2. map() 3.1.3. mapToInt()、mapToLong()、mapTo…

Zookeeper 实战 | Zookeeper 和Spring Cloud相结合解决分布式锁、服务注册与发现、配置管理

专栏集锦&#xff0c;大佬们可以收藏以备不时之需&#xff1a; Spring Cloud 专栏&#xff1a;http://t.csdnimg.cn/WDmJ9 Python 专栏&#xff1a;http://t.csdnimg.cn/hMwPR Redis 专栏&#xff1a;http://t.csdnimg.cn/Qq0Xc TensorFlow 专栏&#xff1a;http://t.csdni…

HarmonyOS-Service服务开发(一)

文章目录 创建新项目启动Serviceets获取service的bundleName DataAbility开发指导开发Data步骤创建Data 创建新项目 ServiceAbility开发指导 在config.json中也有配置出现 启动Service ets获取service的bundleName 项目的bundleName service的bundleName 这里serviceAbil…