解决iview table组件里的 固定列 表格不自适应的问题


Posted in Javascript onNovember 13, 2020

当在使用iview Table组件里固定列功能时

出现表格不自适应宽度问题 具体如下

解决iview table组件里的 固定列 表格不自适应的问题

解决这个bug 很简单 把组件里的 width 改为 minWidth 即可

columns: [
  {
   title: '账户名',
   key: 'accountName',
   fixed: 'left',
   minWidth: 150
  },
  {
   title: '订阅名称',
   key: 'subscriptionName',
   minWidth:140
  },
  {
   title: '订阅ID',
   key: 'subscriptionId',
   minWidth:200
  },
  {
   title: '资源组',
   key: 'resourceGroup',
   minWidth:140
  },
  {
   title: '实例名称',
   key: 'instanceName',
   minWidth:140
  },
  {
   title: '实例类型',
   key: 'instanceType',
   minWidth:140
  },
  {
   title: 'CPU',
   key: 'cpu',
   minWidth:140
  },
  {
   title: '内存(GB)',
   key: 'ram',
   minWidth:140
  },
  {
   title: '磁盘容量(GB)',
   key: 'storage',
   minWidth:140
  },
  {
   title: '操作系统',
   key: 'os',
   minWidth:140
  },
  {
   title: '实例状态',
   key: 'stateName',
   minWidth:140
  },
  {
   title: '项目',
   key: 'project',
   minWidth:140
  },
  {
   title: '拥有者',
   key: 'owner',
   minWidth:140
  },
  {
   title: '公有IP',
   key: 'publicIp',
   minWidth:140
  },
  {
   title: '私有IP',
   key: 'privateIp',
   minWidth:140
  },
  {
   title: '虚拟网络/子网',
   key: 'virtualNetworkSubnet',
   minWidth:140
  },
  {
   title: '网络安全组',
   key: 'securityGroup',
   minWidth: 120
  }
 ]

望大家少走弯路~

补充知识:iView中table表格组件使用中的一些问题解决方法

最近在做图层属性信息展示功能时,需要用到表格来展示请求到的属性信息,项目UI时iview,所以我就从iview中拿到表格组件来用。https://iviewui.com/components/table

解决iview table组件里的 固定列 表格不自适应的问题

最终成品是这样一个组件。

iview的组件功能还是很强,但是用起来也相当麻烦,在这个表格设计过程中我遇到了两个难点;

一、怎么拆分以及合并部分单元格;

二、怎么调整某一个单元格的设计宽度;

首先第一个问题,

viewUI里面提供了属性 span-method 可以指定合并行或列的算法。

该方法参数为 4 个对象:

row: 当前行

column: 当前列

rowIndex: 当前行索引

columnIndex: 当前列索引

该函数可以返回一个包含两个元素的数组,第一个元素代表 rowspan,第二个元素代表 colspan。 也可以返回一个键名为 rowspan 和 colspan 的对象。

由于只有合并没有拆分,所以我就在原来列数基础上多增加几列满足拆分需求,行列数据在data中声明。

columns1: [
     {
      title: 'Name',
      key: 'name',
      width: 100
     },
     {
      title: 'Value',
      key: 'value',
      width: 88
     },
     {
      title: 'Other1',
      key: 'other1'
     },
     {
      title: 'Other2',
      key:'other2',
      resiable: true,
      width: 88
     },
     {
      title: 'Other3',
      key:'other3'
     }
    ],
   attribute: [
    {
     name: '图层名称',
     value: 18
    },
    {
     name: '基础地址',
     value: 25
    },
    {
     name: '图层范围',
     value: 'minX:',
     other1: '',
     other2:'minY:',
     other3: '',
     cellClassName: {
      value: 'cellwidth',
      other2: 'cellwidth'
     }
    },
    {
     name: 'maxX:',
     value: '',
     other1: 'maxY:',
     other2: '',
     cellClassName: {
      name: 'cellwidth',
      other1: 'cellwidth'
     }
    },
    {
     name: '字段',
     value: 26
    },
    {
     name: '空间参考',
     value: 11
    },
    {
     name: '要素数量',
     value: 78
    }
   ]

接下来就是写函数来合并单元格了,api里面给是示范代码,看起来不太好懂,但是总结起来就是if 是用来记录开始操作的单元格序号,而不是进行判断,通过if嵌套来实现在指定行列进行合并。

解决iview table组件里的 固定列 表格不自适应的问题

到这一步基本上就把大致表格做好了。

接下来第二个问题

我需要把字段比较短的单元格宽度变窄,在API中也有这些为行列以及单元格设置样式的扩展属性

行:通过属性 row-class-name 可以给某一行指定一个样式名称。

列:通过给列 columns 设置字段 className 可以给某一列指定一个样式。

单元格:通过给数据 data 设置字段 cellClassName 可以给任意一个单元格指定样式。

但是我在项目中写的时候发现它所能改的样式只有背景颜色,字体颜色等不影响盒子状态的属性,例如width这样的属性即便写上也是无效的。在调试了许久还是一无所获之后,我想用js来写一个改变宽度的函数,于是在API里发现了

解决iview table组件里的 固定列 表格不自适应的问题

由于我把表头隐藏掉了,于是使用时我发现可以直接来设置单元格宽度,这样问题就解决了。

总结一下:官方组件库中提供的API能解决我们的大部分问题,所以在遇到问题时候多看官网,看看能不能从不同角度去解决。

以上这篇解决iview table组件里的 固定列 表格不自适应的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
httpclient模拟登陆具体实现(使用js设置cookie)
Dec 11 Javascript
jquery实现input输入框实时输入触发事件代码
Jan 28 Javascript
jQuery中选择器小问题(新人难免遇到)
Mar 31 Javascript
JavaScript实现简洁的俄罗斯方块完整实例
Mar 01 Javascript
jQuery+CSS实现一个侧滑导航菜单代码
May 09 Javascript
微信小程序实现全局搜索代码高亮的示例
Mar 30 Javascript
vue权限路由实现的方法示例总结
Jul 29 Javascript
详解Vue前端生产环境发布配置实战篇
May 07 Javascript
全面分析JavaScript 继承
May 30 Javascript
Vue.js项目实战之多语种网站的功能实现(租车)
Aug 07 Javascript
利用JavaScript的Map提升性能的方法详解
Aug 14 Javascript
Vue-cli 移动端布局和动画使用详解
Aug 10 Javascript
Flexible.js可伸缩布局实现方法详解
Nov 13 #Javascript
vue切换菜单取消未完成接口请求的案例
Nov 13 #Javascript
在vue中嵌入外部网站的实现
Nov 13 #Javascript
如何基于viewport vm适配移动端页面
Nov 13 #Javascript
VueCli生产环境打包部署跨域失败的解决
Nov 13 #Javascript
Vue使用Proxy代理后仍无法生效的解决
Nov 13 #Javascript
vue iview 隐藏Table组件里的某一列操作
Nov 13 #Javascript
You might like
THINKPHP+JS实现缩放图片式截图的实现
2010/03/07 PHP
php初始化对象和析构函数的简单实例
2014/03/11 PHP
Windows下的PHP安装文件线程安全和非线程安全的区别
2014/04/23 PHP
php版微信公众平台开发之验证步骤实例详解
2016/09/23 PHP
PHP 扩展Memcached命令用法实例总结
2020/06/04 PHP
用tip解决Ext列宽度不够的问题
2008/12/13 Javascript
基于jquery的无刷新分页技术
2011/06/11 Javascript
Javascript中 关于prototype属性实现继承的原理图
2013/04/16 Javascript
js获取或设置当前窗口url参数的小例子
2013/10/14 Javascript
ECMAScript6的新特性箭头函数(Arrow Function)详细介绍
2014/06/07 Javascript
JS实现兼容各种浏览器的获取选择文本的方法【测试可用】
2016/06/21 Javascript
bootstrap table 表格中增加下拉菜单末行出现滚动条的快速解决方法
2017/01/05 Javascript
Vue.js 60分钟快速入门教程
2017/03/28 Javascript
基于vue.js实现的分页
2018/03/13 Javascript
深入分析jQuery.one() 函数
2020/06/03 jQuery
JavaScript常用工具函数汇总(浏览器环境)
2020/09/17 Javascript
PySide和PyQt加载ui文件的两种方法
2019/02/27 Python
使用python3调用wxpy模块监控linux日志并定时发送消息给群组或好友
2019/06/05 Python
Python Pandas实现数据分组求平均值并填充nan的示例
2019/07/04 Python
python破解bilibili滑动验证码登录功能
2019/09/11 Python
解决Python命令行下退格,删除,方向键乱码(亲测有效)
2020/01/16 Python
Python3 Click模块的使用方法详解
2020/02/12 Python
使用Python第三方库pygame写个贪吃蛇小游戏
2020/03/06 Python
删除pycharm鼠标右键快捷键打开项目的操作
2021/01/16 Python
工程造价专业大学生自荐信
2013/10/01 职场文书
专科文秘应届生求职信
2013/11/18 职场文书
2014年两会学习心得体会
2014/03/17 职场文书
学雷锋活动总结范文
2014/04/25 职场文书
贯彻落实“八项规定”思想汇报
2014/09/13 职场文书
2014年全国法制宣传日宣传活动方案
2014/11/02 职场文书
2014年图书馆工作总结
2014/11/25 职场文书
2015年超市工作总结
2015/04/09 职场文书
2016年寒假生活小结
2015/10/10 职场文书
高一作文之暖冬
2019/11/09 职场文书
导游词之无锡丝业博物馆
2019/11/12 职场文书
MySQL 原理与优化之Limit 查询优化
2022/08/14 MySQL