解决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 相关文章推荐
用javascript将数据库中的TEXT类型数据动态赋值到TEXTAREA中
Apr 20 Javascript
ASP中用Join和Array,可以加快字符连接速度的代码
Aug 22 Javascript
精解window.setTimeout()&window.setInterval()使用方式与参数传递问题!
Nov 23 Javascript
jQuery 浮动广告实现代码
Dec 25 Javascript
自己的js工具 Event封装
Aug 21 Javascript
简单实用的js调试logger组件实现代码
Nov 20 Javascript
JavaScript中Date.toSource()方法的使用教程
Jun 12 Javascript
jQuery EasyUI之DataGrid使用实例详解
Jan 04 Javascript
DOM中事件处理概览与原理的全面解析
Aug 16 Javascript
jQuery移除或禁用html元素点击事件常用方法小结
Feb 10 Javascript
Angularjs验证用户输入的字符串是否为日期时间
Jun 01 Javascript
vue-cli与webpack处理静态资源的方法及webpack打包的坑
May 15 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
js+php实现静态页面实时调用用户登陆状态的方法
2015/01/04 PHP
smarty的section嵌套循环用法示例
2016/05/28 PHP
php微信公众号开发之秒杀
2018/10/20 PHP
laravel-admin 后台表格筛选设置默认的查询日期方法
2019/10/03 PHP
JQuery 拾色器插件发布-jquery.icolor.js
2010/10/20 Javascript
JQuery实现用户名无刷新验证的小例子
2013/03/22 Javascript
jquery实现省市select下拉框的替换(示例代码)
2014/02/22 Javascript
使用Node.js实现HTTP 206内容分片的教程
2015/06/23 Javascript
jquery插件格式实例分析
2016/06/16 Javascript
微信小程序 欢迎页面的制作(源码下载)
2017/01/09 Javascript
使用JS在浏览器中判断当前网络连接状态的几种方法
2017/05/05 Javascript
详解使用create-react-app添加css modules、sasss和antd
2018/07/31 Javascript
如何基于JavaScript判断图片是否加载完成
2019/12/28 Javascript
VUE实现自身整体组件销毁的示例代码
2020/01/13 Javascript
vue2.* element tabs tab-pane 动态加载组件操作
2020/07/19 Javascript
vue中的.$mount('#app')手动挂载操作
2020/09/02 Javascript
vue3中轻松实现switch功能组件的全过程
2021/01/07 Vue.js
详解Python pygame安装过程笔记
2017/06/05 Python
python 实现上传图片并预览的3种方法(推荐)
2017/07/14 Python
django 2.0更新的10条注意事项总结
2018/01/05 Python
对python中执行DOS命令的3种方法总结
2018/05/12 Python
Numpy 将二维图像矩阵转换为一维向量的方法
2018/06/05 Python
python3实现windows下同名进程监控
2018/06/21 Python
python进行文件对比的方法
2018/12/24 Python
Python使用统计函数绘制简单图形实例代码
2019/05/15 Python
python django 原生sql 获取数据的例子
2019/08/14 Python
Python实现加密接口测试方法步骤详解
2020/06/05 Python
html5的pushstate以及监听浏览器返回事件的实现
2020/08/11 HTML / CSS
采用冷却技术的超自然舒适度:GhostBed床垫
2018/09/18 全球购物
Bally巴利中国官网:经典瑞士鞋履、手袋及配饰奢侈品牌
2018/10/09 全球购物
马来西亚最热门的在线时尚商店:FashionValet
2018/11/11 全球购物
乌克兰第一的珠宝网上商店:Gold.ua
2019/11/29 全球购物
娇韵诗俄罗斯官方网站:Clarins俄罗斯
2020/10/03 全球购物
中学家长会邀请函
2014/02/03 职场文书
安踏广告词改编版
2014/03/21 职场文书
python 标准库原理与用法详解之os.path篇
2021/10/24 Python