vue3+el-tale封装(编辑、删除、查看详情按钮一起封装)

本文主要是介绍vue3+el-tale封装(编辑、删除、查看详情按钮一起封装),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

// 封装源码(子组件)
<template><el-table :data="tableData" style="width: 100%"><el-table-columnv-for="(column, index) in tableDataHeader":label="column.label":key="index":prop="column.prop":width="column.width"><template #default="scope" v-if="column.operate"><el-buttonv-for="item in column.children":key="item.prop":type="item.type"@click="btnClick(item.method, scope.row, scope.$index)">{{ item.label }}</el-button></template></el-table-column></el-table>
</template><script setup lang="ts">
const props = defineProps<{tableData: Array<any>tableDataHeader: Array<any>
}>()const emits = defineEmits(['deleteRow', 'editRow', 'detailRow'])const btnClick = (method, row, index) => {console.log('method: ', method)emits(method, row, index)
}
</script><style scoped></style>
// 父组件调用
<template><CustomTable:tableData="tableData":tableDataHeader="tableDataHeader"@deleteRow="deleteRow"@editRow="edit"@detailRow="detail"></CustomTable>
</template><script setup lang="ts">
import { onMounted, reactive, ref, type Ref } from 'vue'
import CustomTable from '@/components/Custom-table.vue'
import { data } from '@/data/data.ts'const tableData: Ref<Array> = ref(data.tableData)
const tableDataHeader = ref(data.tableDataHeader)const deleteRow = (row: any, index: number) => {tableData.value.splice(index, 1)console.log('this tableData: ', tableData)pagenation.value.total = tableData.value.length
}
const edit = (row, index) => {console.log('row: ', row, index)
}
const detail = (row, index) => {console.log('row: ', row, index)
}
</script><style scoped></style>

对应的tableData和tableDataHeader文件(实际开发中,应该从后端拿tableData,tableHeader根据情况自定义)

export const data = {tableData: [{name: 'knife1',date: '2024-09-22',type: 'butterfly'},{name: 'knife2',date: '2024-09-22',type: 'M9'},{name: 'knife3',date: '2024-09-22',type: 'butterfly'}],tableDataHeader: [{label: 'Knife Name',prop: 'name',width: 180},{label: 'Favorite Date',prop: 'date',width: 180},{label: 'Knife Type',prop: 'type',width: 180},{label: 'Operation',operate: true,prop: 'Operation',width: '280',children: [{label: 'edit',prop: 'edit',method: 'editRow',type: 'primary'},{label: 'Delete',prop: 'Delete',method: 'deleteRow',type: 'warning'},{label: 'Detail',prop: 'Detail',method: 'detailRow',type: 'info'}]}]
}

这篇关于vue3+el-tale封装(编辑、删除、查看详情按钮一起封装)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


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

相关文章

使用C#删除Excel表格中的重复行数据的代码详解

《使用C#删除Excel表格中的重复行数据的代码详解》重复行是指在Excel表格中完全相同的多行数据,删除这些重复行至关重要,因为它们不仅会干扰数据分析,还可能导致错误的决策和结论,所以本文给大家介绍... 目录简介使用工具C# 删除Excel工作表中的重复行语法工作原理实现代码C# 删除指定Excel单元

Linux查看系统盘和SSD盘的容量、型号及挂载信息的方法

《Linux查看系统盘和SSD盘的容量、型号及挂载信息的方法》在Linux系统中,管理磁盘设备和分区是日常运维工作的重要部分,而lsblk命令是一个强大的工具,它用于列出系统中的块设备(blockde... 目录1. 查看所有磁盘的物理信息方法 1:使用 lsblk(推荐)方法 2:使用 fdisk -l(

MySQL查看表的最后一个ID的常见方法

《MySQL查看表的最后一个ID的常见方法》在使用MySQL数据库时,我们经常会遇到需要查看表中最后一个id值的场景,无论是为了调试、数据分析还是其他用途,了解如何快速获取最后一个id都是非常实用的技... 目录背景介绍方法一:使用MAX()函数示例代码解释适用场景方法二:按id降序排序并取第一条示例代码解

查看MySql主从同步的偏移量方式

《查看MySql主从同步的偏移量方式》:本文主要介绍查看MySql主从同步的偏移量方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 1.mysql的主从同步方案mysqlphp为了在实现读写分离,主库写,从库读mysql的同步方案主要是通过从库读取主库的binl

使用Python和Tkinter实现html标签去除工具

《使用Python和Tkinter实现html标签去除工具》本文介绍用Python和Tkinter开发的HTML标签去除工具,支持去除HTML标签、转义实体并输出纯文本,提供图形界面操作及复制功能,需... 目录html 标签去除工具功能介绍创作过程1. 技术选型2. 核心实现逻辑3. 用户体验增强如何运行

CSS 样式表的四种应用方式及css注释的应用小结

《CSS样式表的四种应用方式及css注释的应用小结》:本文主要介绍了CSS样式表的四种应用方式及css注释的应用小结,本文通过实例代码给大家介绍的非常详细,详细内容请阅读本文,希望能对你有所帮助... 一、外部 css(推荐方式)定义:将 CSS 代码保存为独立的 .css 文件,通过 <link> 标签

Python对PDF书签进行添加,修改提取和删除操作

《Python对PDF书签进行添加,修改提取和删除操作》PDF书签是PDF文件中的导航工具,通常包含一个标题和一个跳转位置,本教程将详细介绍如何使用Python对PDF文件中的书签进行操作... 目录简介使用工具python 向 PDF 添加书签添加书签添加嵌套书签Python 修改 PDF 书签Pytho

使用Vue-ECharts实现数据可视化图表功能

《使用Vue-ECharts实现数据可视化图表功能》在前端开发中,经常会遇到需要展示数据可视化的需求,比如柱状图、折线图、饼图等,这类需求不仅要求我们准确地将数据呈现出来,还需要兼顾美观与交互体验,所... 目录前言为什么选择 vue-ECharts?1. 基于 ECharts,功能强大2. 更符合 Vue

Vue中插槽slot的使用示例详解

《Vue中插槽slot的使用示例详解》:本文主要介绍Vue中插槽slot的使用示例详解,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录一、插槽是什么二、插槽分类2.1 匿名插槽2.2 具名插槽2.3 作用域插槽三、插槽的基本使用3.1 匿名插槽

springboot+vue项目怎么解决跨域问题详解

《springboot+vue项目怎么解决跨域问题详解》:本文主要介绍springboot+vue项目怎么解决跨域问题的相关资料,包括前端代理、后端全局配置CORS、注解配置和Nginx反向代理,... 目录1. 前端代理(开发环境推荐)2. 后端全局配置 CORS(生产环境推荐)3. 后端注解配置(按接口