el-table 表格列宽自适应

news2025/1/10 10:50:22

思路:获取当前列的最长数据和表头名称比较,取大值赋值给宽度。

效果图
  • 自适应前
    在这里插入图片描述
  • 自适应后
    在这里插入图片描述
自适应方法
// col 里面包含了表头字段和名称,list 是表格数据
columnWidth(col, list) {
    let prop = col.prop, lab = col.lab;
    let width = 90; // 设定一个最小值
    let maxlenStr = ""; // 最长字符串
    for (let info of list) {
        if (maxlenStr.length < (info[prop] + "").length) maxlenStr = info[prop];
    }
    width = Math.max(width, len(lab), len(maxlenStr));
    // 表格自带的内边距(20px) 自调
    return width + 10; // 这里我加了 10px

    function len(str) {
        // 实际分配长度可根据需要自行调整
        let length = 0;
        for (const char of str) {
            // 英文字符 8px
            if ("A" <= char <= "Z" || "a" <= char <= "z") length += 8;
            // 中文字符 15px
            else if (char >= "\u4e00" && char <= "\u9fa5") length += 15;
            // 其他字符 8px
            else length += 8;
        }
        return length;
    }
},
源码
<template>
  <div class="table">
    <el-table :data="tableData" border>
      <el-table-column
        v-for="(col, inx) in columns"
        :key="inx"
        :label="col.lab"
        :prop="col.prop"
        :width="columnWidth(col, tableData)"
      ></el-table-column>
    </el-table>
  </div>
</template>

<script>
export default {
  components: {},
  data() {
    return {
      columns: [
        { lab: "时间", prop: "date" },
        { lab: "姓名", prop: "name" },
        { lab: "地点", prop: "addr" },
        { lab: "地点", prop: "addr" },
        { lab: "韵", prop: "yu" },
      ],
      tableData: [
        {
          date: "2018-05",
          name: "李",
          addr: "上海市普陀区金沙江路 1518 弄",
          yu: "没去过",
        },
        {
          date: "2018-05-20",
          name: "四六",
          addr: "百草园到三味书屋",
          yu: "目接不暇",
        },
        {
          date: "2018-05-20 05:20",
          name: "龙傲天",
          addr: "黄四娘家坐飞机",
          yu: "一飞冲天",
        },
        {
          date: "2018-05-20 13:14:01",
          name: "慕容堡垒",
          addr: "绣楼有少女",
          yu: "隔墙有耳",
        },
      ],
    };
  },
  methods: {
    // col 里面包含了表头字段和名称,list 是表格数据
    columnWidth(col, list) {
      let prop = col.prop,
        lab = col.lab;
      let width = 90; // 设定一个最小值
      let maxlenStr = ""; // 最长字符串
      for (let info of list) {
        if (maxlenStr.length < (info[prop] + "").length) maxlenStr = info[prop];
      }
      width = Math.max(width, len(lab), len(maxlenStr));
      // 表格自带的内边距(20px) 自调
      return width + 10; // 这里我加了 10px

      function len(str) {
        // 实际分配长度可根据需要自行调整
        let length = 0;
        for (const char of str) {
          // 英文字符 8px
          if ("A" <= char <= "Z" || "a" <= char <= "z") length += 8;
          // 中文字符 16px
          else if (char >= "\u4e00" && char <= "\u9fa5") length += 15;
          // 其他 8px
          else length += 8;
        }
        return length;
      }
    },
  },
};
</script>

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

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

相关文章

数据结构——双向链表及其总结

1.概述 链表根据是否带头、是否双向、是否循环可以分为八种&#xff0c;双向链表是典型的带头双向循环链表。 双向链表的结构可以表示为下&#xff1a; struct ListNode {int data;struct ListNode* next;struct ListNode* prev; } 2.双向链表的实现过程及其解析 双向链表…

Redis 内存淘汰策略

Redis 作为一个内存数据库&#xff0c;必须在内存使用达到配置的上限时采取策略来处理新数据的写入需求。Redis 提供了多种内存淘汰策略&#xff08;Eviction Policies&#xff09;&#xff0c;以决定在内存达到上限时应该移除哪些数据。

如何理解Java的内存模型

希望文章能给到你启发和灵感~ 如果觉得文章对你有帮助的话,点赞 + 关注+ 收藏 支持一下博主吧~ 阅读指南 开篇说明一、内存相关基础了解1.1 硬件的内存架构1.2 缓存一致性问题1.3 内存模型的出现二、Java内存模型2.1 组成部分2.2 模型特性2.4 As-if-serial语义与Happens-bef…

【2024蓝桥杯/C++/B组/前缀总分】

题目 代码 #include<bits/stdc.h> using namespace std;// 定义常量N为210&#xff0c;用于数组的大小 const int N 210; // 声明n为整型变量&#xff0c;用于存储字符串的数量 int n; // 声明一个字符串数组str&#xff0c;大小为N&#xff0c;用于存储字符串 string …

pda条码扫描手持机,数据采集器助力景区售检票

随着科技的发展&#xff0c;景区也在往信息化方向发展&#xff0c;景区为了提升售票、检票入园效率&#xff0c;可采用pda条码扫描手持机售检票系统。pda条码扫描手持机是一种便携式的检票设备&#xff0c;可以随时随地使用。配备5.5寸高清大屏,1440*720分辩率&#xff0c;多点…

安防监控视频融合汇聚平台EasyCVR创建新用户时没有摄像机权限,是什么原因?

国标GB28181/RTSP/ONVIF视频管理系统EasyCVR视频汇聚平台&#xff0c;是一个具备高度集成化、智能化的多协议接入视频监控汇聚管理平台&#xff0c;拥有远程视频监控、录像、云存储、录像检索与回放、语音对讲、云台控制、告警、平台级联等多项核心功能。EasyCVR安防监控视频系…

docker笔记5-数据卷

docker笔记5-数据卷 一、数据卷1.1 定义1.2 本质1.3 特点 二、使用数据卷三、案例2.1 安装Mysql 四、匿名挂载和具名挂载4.1 匿名挂载4.2 具名挂载 五、三种挂载方式 一、数据卷 1.1 定义 Docker 容器数据卷是一个可用于存储数据的特殊目录&#xff0c;存在于一个或多个容器的…

免费【2024】springboot 出租车管理网站的设计与实现

博主介绍&#xff1a;✌CSDN新星计划导师、Java领域优质创作者、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和学生毕业项目实战,高校老师/讲师/同行前辈交流✌ 技术范围&#xff1a;SpringBoot、Vue、SSM、HTML、Jsp、PHP、Nodejs、Python、爬虫、数据可视化…

unity2D游戏开发15自我防御

创建子弹 Ammo类来表示自子弹 创建一个GameObject,并命名为AmmoObject 将Ammo.png拖入Object中 属性设置,点击apply 将SpriteRenderer组件添加到AmmoObject,将Sorting Layer设置为Characters,并将Sprite属性设置为Ammo 将CircleCollider2D添加到AmmoObject。确保选中Is Tr…

【C++高阶】哈希的应用(封装unordered_map和unordered_set)

✨ 世事漫随流水&#xff0c;算来一生浮梦 &#x1f30f; &#x1f4c3;个人主页&#xff1a;island1314 &#x1f525;个人专栏&#xff1a;C学习 &#x1f680; 欢迎关注&#xff1a;&#x1f44d;点赞 &#x1f442;&…

KubeSphere部署:(三)MySQL安装

MySQL没有什么特殊的&#xff0c;这里记录一下部署过程(本文示例中安装的版本为5.7.29)。步骤大致如下&#xff1a; 拉取docker镜像 -> 标记并推送至私有harbor -> 创建有状态负载 -> 创建服务 一、拉取镜像&#xff0c;并推送至私有harbor # 拉取镜像 docker pull …

PP氮气柜的特点和使用事项介绍

PP材质&#xff0c;全称为聚丙烯&#xff0c;是一种热塑性塑料&#xff0c;具有质轻、强度高、耐化学腐蚀性好、无毒无味、耐热性佳等优点。它在众多塑料材料中脱颖而出&#xff0c;特别是在需要耐腐蚀和长期使用的应用中&#xff0c;表现尤为出色。 PP材质具有优秀的化学稳定性…

Loadrunner12 回放脚本查看接口响应数据

1、如下图所示&#xff0c;回放脚本后&#xff0c;点击快照-http数据-点击需要查看的接口-点击Json视图&#xff0c;最后点击响应正文&#xff0c;即可查看接口的响应数据

生信初学者教程(癌症转录组学):手把手教你如何发生信文章

网址 生信初学者教程&#xff08;癌症转录组学&#xff09; : https://bioinformatic-learner.github.io/BCT-page/ 提供了预览版本。 该教程包含从开题、数据下载、数据分析、结果解读、串联结果和撰写文章等等&#xff0c;是一份非常好的生信初学者发文章的好材料。 出发点…

【Linux】UDP 协议

目录 1. UDP 协议2. UDP 协议的特点:3. UDP 协议的格式4. UDP 的缓冲区基于UDP的应用层协议 1. UDP 协议 UDP (User Datagram Protocol) 是一种面向数据报的传输层协议, 是传输层的重要协议之一; UDP协议提供了一种无连接, 不可靠的数据传输服务; 适用于要求源主机以恒定速率…

响应式建站陶瓷企业类公司网站源码系统 带完整的安装代码包以及搭建部署教程

系统概述 响应式建站陶瓷企业类公司网站源码系统是一款专为陶瓷企业设计的网站建设解决方案。该系统采用响应式设计&#xff0c;能够自动适应不同设备的屏幕尺寸&#xff0c;为用户提供一致的浏览体验。无论用户是通过电脑、平板还是手机访问网站&#xff0c;都能获得清晰、美…

html+css 实现3D分层悬停按钮

前言&#xff1a;哈喽&#xff0c;大家好&#xff0c;今天给大家分享htmlcss 绚丽效果&#xff01;并提供具体代码帮助大家深入理解&#xff0c;彻底掌握&#xff01;创作不易&#xff0c;如果能帮助到大家或者给大家一些灵感和启发&#xff0c;欢迎收藏关注哦 &#x1f495; 文…

太牛了!恭喜7位毕业急录、评职晋升作者,2天录用,1-8天见刊!

本周投稿推荐 SCI&EI • 4区“水刊”&#xff0c;纯正刊&#xff08;来稿即录&#xff09; • CCF-B类&#xff0c;IEEE一区-Top&#xff08;3天初审&#xff09; EI • 各领域沾边均可&#xff08;2天录用&#xff09; 知网&#xff08;CNKI&#xff09;、谷歌学术 …

posthog,一个超酷的 Python 库!

更多资料获取 &#x1f4da; 个人网站&#xff1a;ipengtao.com 大家好&#xff0c;今天为大家分享一个超酷的 Python 库 - posthog。 Github地址&#xff1a;https://github.com/PostHog/posthog 在现代数据驱动的开发过程中&#xff0c;了解用户行为和应用性能是至关重要的…

this关键字的简明指南与理解

this关键字是执行上下文中的一个属性&#xff0c;它主要用在函数内部&#xff0c;指向最后一次调用该函数的对象。然而&#xff0c;this 的值并不是在函数定义时确定的&#xff0c;而是在函数被调用时根据函数的调用方式动态绑定的。以下是对 this 的一些相关理解。 一、this的…