十、vben框架如何使用table来写报表

news2024/11/17 13:56:37

        在项目开发的过程中,有很多特殊的table样式,有的时候后端会用帆软来写报表,但是有的特殊的报表后端就不能支持实现了,那么前端是如何实现的呢,今天我们就来讲讲。

先上效果图:

本次使用的tsx组件来写的报表。

思路:

  1. 将需要展示的参数写入tsx页面,props接受参数
  2. 根据页面划分模块,写几个table。
  3. 将所有模块组合起来进行输出。

下面直接上代码:

//里面的allInTableData和showTargetLeftFlot都为传入的数据

import { defineComponent } from 'vue';
import './index.less';
interface AllInfoData {
  firstTableData: any[];
  sencedTableData: any[];
  footerTableData: any[];
  thirdTable: any[];
  remake: string;
}
export default defineComponent({
  name: 'FrExcel',
  props: {
    allInTableData: {
      type: Object as PropType<AllInfoData>,
      default: () => {
        return {
          firstTableData: [], //一级表格数据
          sencedTableData: [], //二级表格数据
          footerTableData: [], //表格底部数据
          thirdTable: [], //三级表格数据
          remake: '', //备注
        };
      },
    },
    showTargetLeftFlot: {
      type: Boolean,
      default: false,
    },
  },
  setup(props) {
const tableElement = (): JSX.Element =>()
  return { tableElement };
},

  render() {
    return <>{this.tableElement()}</>;
  },
});

在setup写一个table。

 // 一级表格头部
    const tableColumns = (): JSX.Element => (
      <>
        <div class={'table-header-warpper'}>
          <div class={'table-columns'}>
            <div
              class={[
                'unit-card',
                'table-title fixed-white',
                props.showTargetLeftFlot ? 'flot-left' : '',
              ]}
            >
              单位
            </div>
            <div class={'table-title'}>产量</div>
            <div class={'table-title  '}>钢坯网价</div>
            <div class={'table-title table-three-width'}>铁水网价</div>
            <div class={'table-title'}>铁水综合单价</div>
            <div class={'table-card-warpper'}>
              <div class={'table-card-title table-title'}>钢坯炼制费</div>
              <div class={'table-card-row'}>
                <div class={'table-title'}>钢铁料单耗</div>
                <div class={'table-title'}>铁料费用</div>
                <div class={'table-title'}>合金费用</div>
                <div class={'table-title'}>溶剂费用</div>
                <div class={'table-title'}>其他费用</div>
                <div class={'table-title'}>当日合计</div>
              </div>
            </div>
            <div class={'table-title'}>钢坯成本</div>
            <div class={'table-title'}>模拟差额参考值</div>
            <div class={'table-title'}>累计产量</div>
            <div class={'table-title'}>累计炼制费</div>
            <div class={'table-title'}>累计模拟差额参考值</div>
          </div>
        </div>
      </>
    );

组成tableElement进行输出

// 一级表格头部
const tableColumns = (): JSX.Element => (...)
 // 一级表格主体内容
const tableBody = (): JSX.Element => (...)
//二级表格头部
const tableColumnsSenced = (): JSX.Element => (...)
// 二级表格主体内容
const tableUnitBody = (): JSX.Element => (...)
 //备注
const remark = (): JSX.Element => (...)
 //表格底部合计
const tableFooter = (): JSX.Element => (...)
//组合生成页面
    const tableElement = (): JSX.Element => (
      <>
        <div class={'table-warpper-xiaoyi'}>
          {[
            tableColumns(),
            tableBody(),
            tableColumnsSenced(),
            tableUnitBody(),
            tableFooter(),
            remark(),
          ]}
        </div>
      </>
    );
    return { tableElement };

上面就是子页面tsx里写的代码,只需要在父页面引用即可。

以上就是在vben中如何写自定义table的方法,当然这个方法不仅可以写table,像如果传进来不同的参数,输出不同的element,那么就可以做成slot(插槽),验证等等功能,拥有无限的可能。

如果还有什么不懂的,可以留言讨论。

 

 

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

csapp第一章 --- 计算机系统漫游

重要内容大纲 1.1 C程序实现过程 一个由用户编写的“hello world”源代码到可以在屏幕上看见可执行文件经过一下过程&#xff1a; C语言翻译的阶段介绍 1.预处理cpp&#xff1a;头文件展开、宏定义替换 将 .c 文件&#xff08;源程序&#xff09;变成 .i 文件&#xff08;修改…

一文搞懂如何在 React 中使用 防抖(Debounce)和 节流(Throttle)

在前端的日常开发中&#xff0c;经常会使用到两个函数防抖&#xff08;Debounce&#xff09;和节流&#xff08;Throttle&#xff09;&#xff0c;防抖函数可以有效控制在一段时间内只执行最后一次请求&#xff0c;例如搜索框输入时&#xff0c;只在输入完成后才进行请求接口。…

linux环境下打包c++的Qt应用程序装载vtk和itk

文章目录一、QT安装安装前准备1.1 方法一 源码编译安装(实践缺少xcb依赖)&#xff1a;1.2 方法二 run文件安装&#xff1a;二、迁移windows下qt应用到linux三、VTK安装3.1 安装ccmake 和 VTK 的依赖项3.2 linux下VTK库下载安装四、QT应用基础上引入VTK依赖五、ITK安装六、QT应用…

sikuli+eclipse对于安卓app自动化测试的应用

Sikuli是什么&#xff1f; 下面是来自于官网的介绍&#xff1a;Sikuli is a visual technology to automate and test graphical user interfaces (GUI) using images (screenshots). Sikuli includes Sikuli Script, a visual scripting API for Jython, and Sikuli IDE, an …

入门Java第十五天 线程

一、多线程 1.1进程和线程 进程&#xff1a;进程就是操作系统中运行的每一个应用程序。例如&#xff1a;微信&#xff0c;QQ 线程&#xff1a;线程是进程中的每一个任务。 多线程&#xff1a;在一个进程中&#xff0c;可以同时执行多个线程。同时完成多个任务。 并发&#x…

投票的链接怎么做出来的网上那些投票链接怎么做的网上投票器

用户在使用微信投票的时候&#xff0c;需要功能齐全&#xff0c;又快捷方便的投票小程序。而“活动星投票”这款软件使用非常的方便&#xff0c;用户可以随时使用手机微信小程序获得线上投票服务&#xff0c;很多用户都很喜欢“活动星投票”这款软件。“活动星投票”小程序在使…

【踩坑记录】使用OpenCV报错“ undefined symbol: TIFFReadRGBATileExt, version LIBTIFF_4.0”

问题描述 例如&#xff1a;使用OpenCV报错&#xff0c;找不到相关动态库&#xff1a; ImportError: /lib/libgdal.so.26: undefined symbol: TIFFReadRGBATileExt, version LIBTIFF_4.0解决方案&#xff1a; 运行前&#xff0c;先执行或者在./bashrc &#xff08;根目录下ctr…

【图像分类】卷积神经网络之ZFNet网络模型结构详解

写在前面: 首先感谢兄弟们的关注和订阅,让我有创作的动力,在创作过程我会尽最大能力,保证作品的质量,如果有问题,可以私信我,让我们携手共进,共创辉煌。 1. 前言 由于AlexNet的提出,大型卷积网络开始变得流行起来,但是人们对于网络究竟为什么能表现的这么好,以及怎…

Python编写GUI界面案例:实现免费下载器

前言 嗨喽~大家好呀&#xff0c;这里是魔王呐 ❤ ~! 本次网站&#xff1a; 本文所有模块\环境\源码\教程皆可点击文章下方名片获取此处跳转 开发环境: python 3.8 运行代码 pycharm 2022.3 辅助敲代码 模块使用&#xff1a; import parsel >>> pip install parsel…

从0开始学python -41

Python3 命名空间和作用域 命名空间 先看看官方文档的一段话&#xff1a; A namespace is a mapping from names to objects.Most namespaces are currently implemented as Python dictionaries。 命名空间(Namespace)是从名称到对象的映射&#xff0c;大部分的命名空间都是…

蓝牙耳机适合跑步戴吗,五款适合跑步蓝牙耳机推荐

音乐是坚持运动下去的不懈动力&#xff0c;在运动当中佩戴蓝牙耳机&#xff0c;能够让我们远离枯燥无味&#xff0c;运动更有律动感&#xff0c;运动更为畅快。运动当中佩戴的蓝牙耳机&#xff0c;佩戴舒适度以及牢固度是我们十分需要注意的&#xff0c;下面这几款比较热门的运…

IP-GUARD控制台账户输入多次错误密码锁定后该如何解锁?

其他管理员账户给锁定了,暂时只能等其锁定时间到了才可以再次输入,默认是设置是锁定30min; 1、如果急需此账户查看,可以使用admin系统管理员账户登录控制台,在工具-账户中清除这个账户的密码,重新登录设置密码。

idea远程调试线上jar包

有时候本地代码没问题但在线上运行会报错&#xff0c;这时候可以使用idea的remote功能调试线上jar包 步骤1 步骤2&#xff1a;新建remote 步骤3&#xff1a;配置服务器ip和端口 并复制生成的JVM参数供之后使用 步骤4&#xff1a;打jar包&#xff0c;并将生成的jar包放到服务…

想招到实干派程序员?你需要这种面试法

技术招聘中最痛的点其实是不精准。技术面试官或CTO们常常会向我们吐槽&#xff1a; “我经常在想&#xff0c;能不能把我们项目中的代码打印出来&#xff0c;作为候选人的面试题的一部分&#xff1f;” “能不能把一个Bug带上环境&#xff0c;让候选人来试试怎么解决&#xf…

电信网上用户资管理系统的设计与实现

技术&#xff1a;Java、JSP等摘要&#xff1a;在对目前市面上已经拥有的营业厅功能分析和整理后&#xff0c;为了保证营业厅中多种功能的分层次处理设计了一个的电信网上用户自管理系统&#xff0c;以web页面方式实现了与用户的交互&#xff0c;同时保证了移动电话计费管理系统…

数据结构期末复习总结(后章)

作者的话 作为一名计算机类的学生&#xff0c;我深知数据结构的重要性。在期末复习前&#xff0c;我希望通过这篇博客给大家一些复习建议。希望能帮助大家夯实数据结构的基础知识&#xff0c;并能够更好地掌握数据结构和算法的应用。 一、树与二叉树 1.基本概念 结点的度&am…

Google的中国用户注意!黑客正利用搜索结果投放恶意软件

2月16日研究人员发现&#xff0c;Google搜索结果中含有冒充知名软件的恶意软件下载链接。 研究人员通过测试后表示&#xff0c;攻击者为了增加浏览量&#xff0c;甚至通过在Google搜索结果中购买误导性广告&#xff0c;诱骗受害者下载安装恶意程序。 据悉&#xff0c;这些被冒…

【JavaSE】集合(Collection类)

文章目录1.集合框架1.1 collection1.2 map2. collection2.1.集合迭代2.2.contains和remove2.3集合中元素的删除3.List4.ArrayList5.LinkList6.Vector7.泛型7.1泛型初步7.2自动类型推断机制7.3 自定义泛型8.增强for循环9.Set9.1HashSet9.2 TreeSet1.集合框架 1.1 collection 1.…

4G模块DTU网关远程抄表方案(二):DL645/698协议国网电表

4G模块DTU网关远程抄表方案(二):DL645/698协议国网电表 1 DL 645协议简介 DL645协议是一种用于智能电能表的远程抄读通讯标准。制定该标准是为统一和规范多功能电能表与数据终端设备进行数据交换时的物理连接和通信链路及应用技术规范。DL645协议可用于远程监测电力传输和使用…

【2223sW1】LOG2

写在前面 好好学习&#xff0c;走出宿舍&#xff0c;走向毕设&#xff01; 一些心路历程记录&#xff0c;很少有代码出现 因为鬼知道哪条代码到时候变成毕设的一部分了咧&#xff0c;还是不要给自己的查重挖坑罢了 23.2.22 今儿收获挺多&#xff0c;所以就把上一个LOG给发了…