当前位置: 首页 > ds >正文

VUE3 el-table 主子表 显示

在Vue 3中,实现主子表(主从表)的显示通常涉及到两个组件:一个是主表(Master Table),另一个是子表(Detail Table)。我们可以使用el-table组件来实现这一功能。这里,我将通过一个示例来展示如何结合使用Element Plus(一个基于Vue 3的UI库,类似于Element UI,但专为Vue 3设计)来展示主子表结构。

1. 安装Element Plus

首先,确保你已经安装了Element Plus。如果还没有安装,可以通过npm或yarn来安装:

npm install element-plus --save
# 或者
yarn add element-plus

2. 引入Element Plus

在你的Vue项目中,引入Element Plus的样式和组件:

import { createApp } from 'vue'
import App from './App.vue'
import ElementPlus from 'element-plus'
import 'element-plus/dist/index.css'const app = createApp(App)
app.use(ElementPlus)
app.mount('#app')

3. 创建主子表组件

在你的Vue组件中,你可以使用el-table来创建主表和子表。这里是一个基本的示例:

主表组件 (MasterTable.vue)
<template><el-table :data="masterData" style="width: 100%"><el-table-column prop="name" label="Name"></el-table-column><el-table-column label="Details"><template #default="scope"><el-button @click="showDetails(scope.$index)">Show Details</el-button></template></el-table-column></el-table><el-dialog :visible.sync="dialogVisible" title="Details"><el-table :data="currentDetails" style="width: 100%"><el-table-column prop="detail" label="Detail"></el-table-column></el-table></el-dialog>
</template><script setup>
import { ref } from 'vue';const masterData = ref([{ name: 'Item 1', details: [{ detail: 'Detail 1.1' }, { detail: 'Detail 1.2' }] },{ name: 'Item 2', details: [{ detail: 'Detail 2.1' }, { detail: 'Detail 2.2' }] }
]);
const dialogVisible = ref(false);
const currentDetails = ref([]);function showDetails(index) {dialogVisible.value = true;currentDetails.value = masterData.value[index].details;
}
</script>

4. 使用主表组件

在你的父组件或者任何其他地方使用MasterTable组件:

<template><MasterTable/>
</template><script setup>
import MasterTable from './components/MasterTable.vue';
</script>

在这个示例中,我们创建了一个主表和一个详情弹窗。点击“Show Details”按钮时,会显示一个包含详细信息的子表。我们使用了Vue的ref来管理数据状态,并通过点击事件来控制弹窗的显示和数据的传递。这种方式使得主子表的交互变得简单而直观。你可以根据需要调整样式和功能。

http://www.xdnf.cn/news/15355.html

相关文章:

  • 【极客日常】后端任务动态注入执行策略的一种技术实现
  • 解决bash终端的路径名称乱码问题
  • Spring之【写一个简单的IOC容器EasySpring】
  • 批量自动运行多个 Jupyter Notebook 文件的方法!!!
  • 创建Spring Boot项目
  • 基于 Redisson 实现分布式系统下的接口限流
  • 网络安全初级第一次作业
  • MacOS环境下运行EasySearch报错无法信任Java包的解决方案
  • ServiceNow Portal前端页面实战讲解
  • GGE Lua 详细教程
  • 【6.1.1 漫画分库分表】
  • c#中生成随机数的三种方法
  • pgsql模板是什么?
  • Kafka——聊聊Kafka的版本号
  • 【理念●体系】从零打造 Windows + WSL + Docker + Anaconda + PyCharm 的 AI 全链路开发体系
  • 1Panel V1 无缝升级到 V2 版本 实现多个 PHP 网站共享一个容器
  • Spring Boot整合MyBatis+MySQL实战指南(Java 1.8 + 单元测试)
  • AIStarter新版重磅来袭!永久订阅限时福利抢先看
  • ARM架构CPU的市场和生态
  • 使用云虚拟机搭建hadoop集群环境
  • Claude Code是什么?国内如何使用到Claude Code?附国内最新使用教程
  • 四、神经网络——正则化方法
  • 喷涂机器人cad【1张】+三维图+设计说明书+降重
  • redis数据结构和数据类型
  • vector之动态二维数组的底层
  • 2025年亚太中文赛B题第一版本超详细解题思路
  • C++:非类型模板参数,模板特化以及模板的分离编译
  • Java大厂面试故事:谢飞机的互联网医疗系统技术面试(Spring Boot、MyBatis、Kafka、Spring Security、AI等)
  • FastAPI + SQLAlchemy (异步版)连接数据库时,对数据进行加密
  • 【字节跳动】数据挖掘面试题0016:解释AUC的定义,它解决了什么问题,优缺点是什么,并说出工业界如何计算AUC。