uniapp 表格,动态表头表格封装渲染

news2024/9/22 7:32:05

1.接口表格数据:

{
    "headers": [
        {
            "label": "实例名",
            "name": "v1",
            "order": 1,
            "hide": false,
            "dateTypeValue": null
        },
        {
            "label": "所属科室",
            "name": "v4",
            "order": 1,
            "hide": false,
            "dateTypeValue": "/sso-management/department/getDepById?"
        },
        {
            "label": "实例状态",
            "name": "v3",
            "order": 1,
            "hide": false,
            "dateTypeValue": "/cmdb/dict/query?args=example_state&"
        },
        {
            "label": "esc_Ip",
            "name": "v2",
            "order": 1,
            "hide": false,
            "dateTypeValue": null
        },
        {
            "label": "测试1",
            "name": "test1",
            "order": 1,
            "hide": false,
            "dateTypeValue": null
        },
        {
            "label": "测试2",
            "name": "test2",
            "order": 1,
            "hide": false,
            "dateTypeValue": null
        },
        {
            "label": "测试3",
            "name": "test3",
            "order": 1,
            "hide": false,
            "dateTypeValue": null
        }
    ],
    "bodyData": {
        "total": 4,
        "list": [
            {
                "test2": null,
                "test3": null,
                "v1": "ESC_001",
                "v2": "127.0.0.1",
                "v3": null,
                "test1": null,
                "v4": null,
                "ROW_ID": 1
            },
            {
                "test2": null,
                "test3": null,
                "v1": "ESC_002",
                "v2": "127.0.0.1",
                "v3": null,
                "test1": null,
                "v4": null,
                "ROW_ID": 2
            },
            {
                "test2": null,
                "test3": null,
                "v1": "ESC_003",
                "v2": "127.0.0.1",
                "v3": null,
                "test1": null,
                "v4": null,
                "ROW_ID": 3
            },
            {
                "test2": null,
                "test3": null,
                "v1": "ESC_004",
                "v2": "192.168.0.1",
                "v3": null,
                "test1": null,
                "v4": null,
                "ROW_ID": 4
            }
        ],
        "pageNum": 1,
        "pageSize": 4,
        "size": 4,
        "startRow": 0,
        "endRow": 3,
        "pages": 1,
        "prePage": 0,
        "nextPage": 0,
        "isFirstPage": true,
        "isLastPage": true,
        "hasPreviousPage": false,
        "hasNextPage": false,
        "navigatePages": 8,
        "navigatepageNums": [
            1
        ],
        "navigateFirstPage": 1,
        "navigateLastPage": 1,
        "firstPage": 1,
        "lastPage": 1
    }
}

2.结构:(表格内容渲染注意,需要先循环表格数据tr代表有多少行数据,再循环表头数据td取对应的字段内容,渲染)

<view class="tableStyle">
			<table>
				<th>
				<td v-for="(header, index) in tableInfo.columns" :key="index">
					{{ header.label }}
				</td>
				</th>
				<tr v-for="(item, i) in tableInfo.list" :key="i" @click="goToDetail(item)">
					<td v-for="(header, index) in tableInfo.columns" :key="index">
						{{item[header['name']] }}
					</td>
				</tr>
			</table>
		</view>

3.样式

.tableStyle {
			width: 100%;
			margin-top: 40rpx;
			padding-top: 20rpx;
			background-color: #fff;
			overflow-y: hidden;
			overflow-x: auto;

			table {
				width: 100% !important;
			}

			th {
				width: 100%;
				display: flex;
				flex-direction: row;
				justify-content: space-around;
				align-items: center;
				font-weight: 550;
				color: #2F80ED;
				font-size: 14px;
				padding: 12px 4px;
				background: #F3F6FA;

				td {
					display: inline-block;
					min-width: 100px;
					text-align: center;
				}
			}

			tr {
				width: 100%;
				display: flex;
				flex-direction: row;
				justify-content: space-around;
				align-items: center;
				font-size: 14px;
				font-weight: 400;
				padding: 12px 4px;

				td {
					text-align: center;
					font-size: 14px;
					font-weight: 400;
					display: inline-block;
					min-width: 100px;
					text-align: center;
				}
				&:nth-child(2n+1) {
					background: #F3F6FA;
				}
			}
		}

二、第二种方式,用uni-table组件渲染

官网uniapp-table组件地址:uni-app官网

1.结构:

<view class="uni-container">
			<uni-table ref="table" border stripe emptyText="暂无更多数据">
				<uni-tr>
					<uni-th align="center" v-for="(header, index) in tableInfo.columns"
						:key="index">{{header.label}}</uni-th>
				</uni-tr>
				<uni-tr v-for="(item, i) in tableInfo.list" :key="i" @click="goToDetail(item)">
					<uni-td align="center" v-for="(header, index) in tableInfo.columns" :key="index">{{item[header['name']] }}</uni-td>
				</uni-tr>
			</uni-table>
		</view>

2.数据同上

3.渲染完成

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

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

相关文章

【Java伴学笔记】Day-01 命令行|环境|编译解释运行|Java的相关分支|Java的特性|字面量

一、关于命令行 图形化界面的缺点 需要加载图片等一系列资源 效率较低 命令行 CMDMicrosoft Learn-CMDWindows CMD常用命令大全&#xff08;值得收藏&#xff09; 二、环境 什么是JDK JDK是Java Development Kit的缩写&#xff0c;意为Java开发工具包。它是一个用于开发Java应用…

分类下两列一组统计

表格 A 列是分类&#xff0c;后面是 2N 个 key-value 列 ABCDEFG1CountryLabel1Count1Label2Count2Label3Count32USA10B9C83USD9C8A74USC8D7B65USA7C6B56CAA10B9C87CAD9C8A78CAC8D7B69INA10C9B810IND9A8B711INA8D7B6 需要对分类、key 分组&#xff0c;对 value 求和&#xff…

【Qt】Qt Creator初使用

目录 一. 创建新项目 二. 认识Qt Creator界面 2.1 main.cpp 代码解释 2.2 mywidget.h 代码解释 2.3 mywidget.cpp 代码解释 2.4 form file —— Forms里的mywidget.ui 2.5 .pro文件 2.6 编译生成的中间文件 Qt Creator是一个跨平台集成开发环境(IDE)&#xff0c;专门用…

Vue3使用markdown编辑器之Bytemd

官网地址&#xff1a;https://bytemd.js.org/playground GitHub地址&#xff1a;https://github.com/bytedance/bytemd ByteMD 是字节跳动出品的富文本编辑器&#xff0c;功能强大&#xff0c;可以免费使用&#xff0c;而且支持很多掘金内置的主题&#xff0c;写作体验很棒。 …

Android约束布局的概念与属性(1)

目录 1&#xff0e;相对定位约束2&#xff0e;居中和偏移约束 约束布局&#xff08;ConstraintLayout&#xff09;是当前Android Studio默认的布局方式&#xff0c;也是最灵活的一种布局方式。约束布局推荐使用所见即所得的模式进行布局&#xff0c;约束布局的大部分布局可以通…

CentOS7下安装Doris

Doris简介 Apache Doris 是一款基于 MPP 架构的高性能、实时的分析型数据库&#xff0c;以高效、简单、统一的特点被人们所熟知&#xff0c;仅需亚秒级响应时间即可返回海量数据下的查询结果&#xff0c;不仅可以支持高并发的点查询场景&#xff0c;也能支持高吞吐的复杂分析场…

SpringBoot升级引发一个循环依赖支持问题

最近有个重要的项目要求使用带自定义表单的工作流。要求灵活配置流程。选用了较稳定的Flowable6.72版本。但面临着一个问题。教材上,Flowable6.7.2要求匹配的SpringBoot版本是2.6.2.需要对项目的Boot版本从2.3releae升到2.6.2,其他还好。不存在有类编译问题或类找不到问题。就是…

互联网银行每日2TB数据量,Apache SeaTunnel集成应用轻松搞定!

在我国&#xff0c;数字化的趋势驱动互联网银行发展走上快车道&#xff0c;近年来互联网银行发展迅速&#xff0c;积极拓展线上业务&#xff0c;并利用大数据技术加强风险控制&#xff0c;积极进行数字化转型。当新兴互联网银行乘着数字化改革的风潮搭档数据集成平台Apache Sea…

Android 15 适配之16K Page Size :为什么它会是最坑的一个适配点

首先什么是 Page Size &#xff1f;一般意义上&#xff0c;页面(Page)指的就是 Linux 虚拟内存管理中使用的最小数据单位&#xff0c;页面大小(Page Size)就是虚拟地址空间中的页面大小&#xff0c; Linux 中进程的虚拟地址空间是由固定大小的页面组成。 Page Size 对于虚拟内…

如何把harmonos项目修改为openharmony项目

一开始分不清harmonyos和openharmony&#xff0c;在harmonyos直接下载的开发软件&#xff0c;后面发现不对劲&#xff0c;打脑阔 首先你要安装对应版本的开发软件&#xff0c;鸿蒙开发是由harmonyos和openharmony官网两个的&#xff0c;找到对应的地方下载对应版本的开发软件&…

rocketmq实现限流

目录 问题背景 技术方向 方案确认 消息队列&#xff08;√&#xff09; 分布式锁&#xff08;&#xff09; 方案实现 监控方向 业务方向 问题背景 公司邮件服务token有 分钟内超200封的熔断机制&#xff0c;当前token被熔断后&#xff0c;系统发邮件操作会被忽略&…

关于微信支付-商户平台:查询订单提示“查询失败:操作失败,请稍候重试”的分析

目录 引子 分析 应对 小结 引子 在开发和实施微信 JSAPI 支付的应用后&#xff0c;我们遇到了一些问题&#xff0c;订单的状态更新不正常&#xff0c;当然我们首先需要从自身寻找原因和完善解决问题的办法和方案。在支付的过程中&#xff0c;客户会给我们一些反馈&#xf…

K8S篇之Ingress详解以及用法说明

一、Ingress简介 Ingress 是 Kubernetes 中用于管理和配置从集群外部访问集群内部服务的资源对象。它通过定义路由规则来控制外部流量的访问方式&#xff0c;支持基于 HTTP 和 HTTPS 的高级路由功能和安全性配置。 Ingress是一种HTTP方式的路由转发机制&#xff0c;为K8S服务配…

【力扣高频题】014.最长公共前缀

经常刷算法题的小伙伴对于 “最长”&#xff0c;“公共” 两个词一定不陌生。与此相关的算法题目实在是太多了 &#xff01;&#xff01;&#xff01; 之前的 「动态规划」 专题系列文章中就曾讲解过两道相关的题目&#xff1a;最长公共子序列 和 最长回文子序列 。 关注公众…

SpringCloud 负载均衡

目录 一、负载均衡 1、问题 2、什么是负载均衡 服务端负载均衡 客户端负载均衡 二、Spring Cloud LoadBalance 1、使用 Spring Cloud LoadBalance 2、负载均衡策略 3、LoadBalancer 原理 一、负载均衡 1、问题 我们来看一下前面写的代码&#xff1a; List<Serv…

【易捷海购-注册安全分析报告】

前言 由于网站注册入口容易被黑客攻击&#xff0c;存在如下安全问题&#xff1a; 暴力破解密码&#xff0c;造成用户信息泄露短信盗刷的安全问题&#xff0c;影响业务及导致用户投诉带来经济损失&#xff0c;尤其是后付费客户&#xff0c;风险巨大&#xff0c;造成亏损无底洞…

Drools开源业务规则引擎(五)- jBPM流程图元素介绍

文章目录 Drools开源业务规则引擎&#xff08;五&#xff09;- jBPM流程图元素介绍1.process2.startEvent3.Connections3.1.sequenceFlow3.2.Association 4.Activities4.1.businessRuleTask4.2.scriptTask 5.Gateways5.1.exclusiveGateway 6.endEvent Drools开源业务规则引擎&a…

Windows netstat命令详解,Windows查看网络连接

「作者简介」&#xff1a;冬奥会网络安全中国代表队&#xff0c;CSDN Top100&#xff0c;就职奇安信多年&#xff0c;以实战工作为基础著作 《网络安全自学教程》&#xff0c;适合基础薄弱的同学系统化的学习网络安全&#xff0c;用最短的时间掌握最核心的技术。 netstat 常用来…

支持图片识别语音输入的LobeChat保姆级本地部署流程

文章目录 前言1. LobeChat对我们有哪些帮助?2. 本地安装LobeChat3. 如何使用LobeChat工具4. 安装Cpolar内网穿透5. 实现公网访问LobeChat6. 固定LobeChat公网地址 前言 本文主要介绍如何在Windows系统电脑本地部署LobeChat&#xff0c;一款高颜值的开源AI大模型智能应用&…

【删库跑路】一次删除pip下载的所有第三方库方法

进入命令行&#xff0c;先list看下库存 pip list导出所有的第三方库至一文件列表 pip freeze >requirements.txt按照列表卸载所有库 pip uninstall -r requirements.txt -y再list看下&#xff0c;可见库存已清空