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

相关文章

Vue和React受控组件的区别小结

《Vue和React受控组件的区别小结》本文主要介绍了Vue和React受控组件的区别小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学... 目录背景React 的实现vue3 的实现写法一:直接修改事件参数写法二:通过ref引用 DOMVu

Java实现将HTML文件与字符串转换为图片

《Java实现将HTML文件与字符串转换为图片》在Java开发中,我们经常会遇到将HTML内容转换为图片的需求,本文小编就来和大家详细讲讲如何使用FreeSpire.DocforJava库来实现这一功... 目录前言核心实现:html 转图片完整代码场景 1:转换本地 HTML 文件为图片场景 2:转换 H

C#使用Spire.Doc for .NET实现HTML转Word的高效方案

《C#使用Spire.Docfor.NET实现HTML转Word的高效方案》在Web开发中,HTML内容的生成与处理是高频需求,然而,当用户需要将HTML页面或动态生成的HTML字符串转换为Wor... 目录引言一、html转Word的典型场景与挑战二、用 Spire.Doc 实现 HTML 转 Word1

Vue3绑定props默认值问题

《Vue3绑定props默认值问题》使用Vue3的defineProps配合TypeScript的interface定义props类型,并通过withDefaults设置默认值,使组件能安全访问传入的... 目录前言步骤步骤1:使用 defineProps 定义 Props步骤2:设置默认值总结前言使用T

Linux实现查看某一端口是否开放

《Linux实现查看某一端口是否开放》文章介绍了三种检查端口6379是否开放的方法:通过lsof查看进程占用,用netstat区分TCP/UDP监听状态,以及用telnet测试远程连接可达性... 目录1、使用lsof 命令来查看端口是否开放2、使用netstat 命令来查看端口是否开放3、使用telnet

MySQL 数据库表操作完全指南:创建、读取、更新与删除实战

《MySQL数据库表操作完全指南:创建、读取、更新与删除实战》本文系统讲解MySQL表的增删查改(CURD)操作,涵盖创建、更新、查询、删除及插入查询结果,也是贯穿各类项目开发全流程的基础数据交互原... 目录mysql系列前言一、Create(创建)并插入数据1.1 单行数据 + 全列插入1.2 多行数据

Python用Flask封装API及调用详解

《Python用Flask封装API及调用详解》本文介绍Flask的优势(轻量、灵活、易扩展),对比GET/POST表单/JSON请求方式,涵盖错误处理、开发建议及生产环境部署注意事项... 目录一、Flask的优势一、基础设置二、GET请求方式服务端代码客户端调用三、POST表单方式服务端代码客户端调用四

mybatisplus的逻辑删除过程

《mybatisplus的逻辑删除过程》:本文主要介绍mybatisplus的逻辑删除过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录myBATisplus的逻辑删除1、在配置文件中添加逻辑删除的字段2、在实体类上加上@TableLogic3、业务层正常删除即

MySQL的触发器全解析(创建、查看触发器)

《MySQL的触发器全解析(创建、查看触发器)》MySQL触发器是与表关联的存储程序,当INSERT/UPDATE/DELETE事件发生时自动执行,用于维护数据一致性、日志记录和校验,优点包括自动执行... 目录触发器的概念:创建触www.chinasem.cn发器:查看触发器:查看当前数据库的所有触发器的定

MybatisPlus中removeById删除数据库未变解决方案

《MybatisPlus中removeById删除数据库未变解决方案》MyBatisPlus中,removeById需实体类标注@TableId注解以识别数据库主键,若字段名不一致,应通过value属... 目录MyBATisPlus中removeBypythonId删除数据库未变removeById(Se