首页 > 其他分享 >el-table 新增、编辑和删除

el-table 新增、编辑和删除

时间:2023-12-05 23:24:22浏览次数:30  
标签:el 删除 default 新增 addGoodsDate 组件 table 弹窗 row

新增

  • 就是给新增按钮加一个事件,事件包括弹窗的打开(给 el-dialogv-model 值赋为 true)、需要传递给弹窗组件的数据信息等(因为是新增,就传想要新增编写的信息的初始化即可)
    • 关于弹窗的详细编码介绍请参考文章:" vue 弹窗组件 "

编辑、删除

  • 新增按钮随便在哪个地方都可,但是编辑有要求,最常见的就是放在 </el-table> 里,每一条数据的后面,在 <el-table-column> 为操作的一列,如下代码:

    <el-table-column prop="address" label="操作" width="180" align="center" >
        <template #default="scope">
    <el-button size="small" @click="editorHandleClick(scope.row)" :icon="Edit" >修改</el-button>
    <el-button size="small" @click="deleteGoods(scope.row)" type="danger" :icon="Delete">删除</el-button>
        </template>
    </el-table-column>
    
    • 这里就涉及到了 vue 中的插槽(slot)的内容,<template #default="scope"> 是一个具名插槽,名为 "default",而其值 scope 是插槽的默认名称,包含的就是当前所在行的所有数据,所以在按钮的点击事件中传递的 scope.row 就是此行的所有数据信息
      • vue 3 中都可以用 # 作为 v-slot 的简写
  • 然后编辑事件就是同新增一样,只不过不再是空的待填写的数据了,而是以下的初始化方式

    const editorHandleClick = (row) => { // 这里的row就包含了想要修改的那一行的数据
        // 其他打开弹窗等数据信息
        addGoodsDate.value = {
            goodsName: row.goodsName,
            goodsTree: row.goodsTree,
            // ......
        };
    };
    
  • 然后在标签里 :addGoodsDate="addGoodsDate" 就可以在子弹窗组件里获取了

    props: {
      /**
       * 商品信息传参
       */
        addGoodsDate: {
            type: Object,
            default: function() {}
        },
    },
    
    • 表单直接 v-model="addGoodsDate.goodsName" 拿数据即可
    • default: function() {}:对于对象类型的属性,使用函数作为默认值可以确保每个组件实例都有一个独立的对象,而不是多个组件实例共享同一个对象。如果使用对象字面量 {} 作为默认值,多个组件实例可能会共享相同的对象引用,导致一个组件中的状态修改影响其他组件
    • 还有其他类型的默认值,如:
      • default: "":在某些情况下,若是在未提供操作标识时,默认将 xxx 视为空字符串。这可以防止在组件内部出现 nullundefined 的情况,从而使组件更容易处理
      • default: falsetype: Boolean
      • default: 0type: Number
      • default: () => []type: Array
      • default: () => ({}):Object 除了上面的 function(){} 的另一种写法
  • 删除就不用说了,还是 const deleteGoods = (row) => {},然后方法体里 row.goodsId 进行操作即可

标签:el,删除,default,新增,addGoodsDate,组件,table,弹窗,row
From: https://www.cnblogs.com/zhu-ya-zhu/p/17878564.html

相关文章

  • 多选批量删除 + 跨分页保留多选
    批量删除场景普通的批量删除实现:template显示结构<el-buttontype="danger"class="ele-btn-icon":icon="Delete"@click="deleteSomeGoods":disabled="multipleGoodsSelection.length===0">批量删除</el-button><el-......
  • tableau 工作表分页
    原创优阅达数据科技有限公司 https://mp.weixin.qq.com/s?__biz=MzA5MTU3NDI2NQ==&mid=2649465570&idx=1&sn=8211c332bd60ef66953aeb4d6f21a4d9&chksm=88655874bf12d162d32c2d5b5a2461d909dd6e2be840ecea2359fba7f349f2d1f0ef9c6f156a&scene=178&cur_album_id=156......
  • 2023 - LauraHughes - A Novel Method to Determine Probabilistic Tsunami Hazard Us
    概要这篇文章主要讨论了使用基于物理的合成地震目录进行海啸危险评估的首次尝试,并展示了在新西兰海岸附近,近场地震海啸可以产生高达28米的最大海浪高度。文章介绍了使用CornellMulti-gridCoupledTsunami模型(COMCOT)进行海啸生成和传播模拟的方法,并对模拟结果进行了分析。文章还......
  • elasticsearch聚合查询实践
    目录概念聚合分类聚合语法聚合作用范围及排序聚合原理及terms精准度聚合实验桶聚合指标聚合Pipeline聚合实践一:多商户数据权限聚合分页实践二:多维度嵌套聚合实践三:删除ES索引重复数据附:实验环境概念用于聚合的字段必须是exactvalue,即doc_value=true。分词字段不可进行聚......
  • [LeetCode Hot 100] LeetCode19. 删除链表的倒数第N个结点
    题目描述思路一:采用两次遍历第一遍遍历先获取链表的长度length第二次从dummy节点开始走length-n步然后将该节点指向下下个节点思路二:采用一次遍历设置虚拟节点dummyHead指向head设定双指针p和q,初始都指向虚拟节点dummyHead移动q,直到p与q之间相隔的元素个数为n(即q走......
  • ubuntu中vim乱码以及执行shell脚本时出现乱码
    vim打开文件中文出现乱码情况,可以参考如下办法:在vim/usr/share/vim/vimrc文件末尾中加入(这个vimrc文件是Vim的系统级配置文件、文档、插件、语法高亮定义、颜色方案等)setencoding=utf-8setfileencodings=utf-8,gbksettermencoding=utf-8保存退出就ok了 如果还不行......
  • [GraphicBufferSource](id:5cd400000003,api:1,p:1674,c:23764) cancelBuffer: Buffer
    开发中遇到的问题,这个问题吧属于我们公司开发使用的RSR然后我们做好的app就是一个录屏软件将视频推到RSR当中去,可是推送的同时只会在RSR中出现一下我查看日志文件输出的信息唯一出现爆红的地方就是GraphicBufferSourcecancelBuffer:BufferQueuehasbeenabandoned这个,有没有经......
  • Selenium自动化测试
    如果你还想从头学起Selenium,可以看看这个系列的文章哦!https://www.cnblogs.com/xiaoliulalala/p/17878019.html简单介绍seleniumselenium是一个用于测试web网页的自动化测试工具,它直接运行在浏览器中,模拟用户的操作。支持多浏览器:ie、Firefox、Chrome、edge、Safari等跨平......
  • 从 Elasticsearch 到 SelectDB,观测云实现日志存储与分析的 10 倍性价比提升
    导读:在云计算逐渐成熟的当下,越来越多的企业开始将业务迁移到云端,传统的监控和故障排查方法已经无法满足企业的需求。观测云可以实现对云、云原生、应用及业务的统一监测,提供整体数据的分析、洞察、可视化、自动化、监测告警、智能巡查、安全巡查等服务。本文将分享SelectDB如何助......
  • excel 循环
    testxlsx=pd.ExcelWriter('test.xlsx')foriinplat_360:forjinrange(0,len(needcolumns)):ifneedcolumns[j]!='省份':table=pd.pivot_table(data_cgm_360_copy_dropdup[data_cgm_360_copy_dropdup.plati],index='等级',columns=needcolum......