解决iView Table组件宽度只变大不变小的问题


Posted in Javascript onNovember 13, 2020

示例:

<Table class="my-table"></Table>

打开开发者工具其实你可以发现iView给table标签的宽度加上了一个明确的宽度值,而且在父元素变小的时候这个值并没有相应地变小,所以才会导致的iView Table组件只会变大不会变小。

那么我们就可以根据这个原因才决定解决方案

1、给Table组件的table标签设置一个important的width

.my-table table {
 width: 100% !important;
}

这个方法并不是特别好,因为他可能会出现table慢慢变小(而不是瞬间变小)的情况,所以看起来并不是特别好。

2、给Table组件一个确定的计算值

.my-table {
 width: calc(100% - 100px);
}

这个方法在目前我已知的方法里是最优的。

3、不要给Table组件的columns参数中添加width属性(未验证)

columns: [{
 title: '标题',
 width: 200 // 不加这东西
}]

这个方法是网友给的,我没验证不知道有没有用。

补充知识:iview表格Table表头动态化实现

业务逻辑:根据日期,时间筛选跨度固定为3个月,获取数据,表格动态按月份展示,看图

解决iView Table组件宽度只变大不变小的问题

解决iView Table组件宽度只变大不变小的问题

表格还是这么简单

<Col span="8"> 时 间:
 <Date-picker type="month" format="yyyy-MM" :clearable='false' :editable='false' :options="startOption" v-model="searchParams.sDate" style="width: 200px"></Date-picker> 至 
 <Date-picker type="month" format="yyyy-MM" :clearable='false' :editable='false' :options="endOption" v-model="searchParams.eDate" style="width: 200px"></Date-picker>
</Col>
<Table stripe :columns="tableColumns" :data="tableData"></Table>

思路:固定时间跨度监听解决不赘述,搜索获取数据后,对tableColumns,进行处理,(push,splice,uhshift…都可以)引起DOM刷新,

处理tableColumns的函数

this.$utils.time.formatTime为封装好的时间处理函数,moment.js

// 初始化表头
  columsInit () {
   let timeStr1 = this.$utils.time.formatTime(this.searchParams.sDate, 'YYYY-MM')
   let startMonth = timeStr1 + '月维护企业数'
   let timeStr2 = this.$utils.time.formatAddTime(this.searchParams.sDate, 'YYYY-MM', 1, 'months')
   let midMonth = timeStr2 + '月维护企业数'
   let timeStr3 = this.$utils.time.formatTime(this.searchParams.eDate, 'YYYY-MM')
   let endMonth = timeStr3 + '月维护企业数'
   this.tableColumns.splice(3, 4,
    {
     title: startMonth,
     align: 'center',
     render: (h, params) => {
     //下面业务逻辑直接不用看
      // console.log(timeStr1)
     /*  let arr = params.row.historyDataListDto || [];
      let obj = null
      arr.forEach((item, index) => { //有些人员,有些月份的数据没有
       if (item.month == timeStr1) {
        obj = arr[index]
       }
      })
      if (obj) {
       return h('a', {
        on: {
         click: () => {
          this.toDetail(params.row.uId, params.row.class2Id, obj.month, obj.month, obj.dirId)
         }
        }
       }, obj.whsNum)
      } else {
       return h('span', '--')
      }
     */业务逻辑
     }
    },
    {
     title: midMonth,
     align: 'center',
     render: (h, params) => {
     
     }
    },
    {
     title: endMonth,
     align: 'center',
     render: (h, params) => {
      
     }
    },
    {
     title: '平均',
     align: 'center',
     key: 'avgNum'
    }
   )
  },

以上这篇解决iView Table组件宽度只变大不变小的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
基于jQuery的消息提示插件之旅 DivAlert(三)
Apr 01 Javascript
ASP.NET jQuery 实例17 通过使用jQuery validation插件校验ListBox
Feb 03 Javascript
js window.open弹出新的网页窗口
Jan 16 Javascript
一个css与js结合的下拉菜单支持主流浏览器
Oct 08 Javascript
javascript自动生成包含数字与字符的随机字符串
Feb 09 Javascript
Web Uploader文件上传插件使用详解
May 10 Javascript
基于BootStrap Metronic开发框架经验小结【六】对话框及提示框的处理和优化
May 12 Javascript
Vuejs第十一篇组件之slot内容分发实例详解
Sep 09 Javascript
Node.js通过身份证号验证年龄、出生日期与性别方法示例
Mar 09 Javascript
jQuery输入框密码的显示隐藏【代码分享】
Apr 29 jQuery
详解Vue组件插槽的使用以及调用组件内的方法
Nov 13 Javascript
TypeScript魔法堂之枚举的超实用手册
Oct 29 Javascript
PHP 502bad gateway原因及解决方案
Nov 13 #Javascript
解决iview table组件里的 固定列 表格不自适应的问题
Nov 13 #Javascript
Flexible.js可伸缩布局实现方法详解
Nov 13 #Javascript
vue切换菜单取消未完成接口请求的案例
Nov 13 #Javascript
在vue中嵌入外部网站的实现
Nov 13 #Javascript
如何基于viewport vm适配移动端页面
Nov 13 #Javascript
VueCli生产环境打包部署跨域失败的解决
Nov 13 #Javascript
You might like
PHP正则匹配到2个字符串之间的内容方法
2018/12/24 PHP
Aster vs Newbee BO5 第一场2.19
2021/03/10 DOTA
tagName的使用,留一笔
2006/06/26 Javascript
ExtJs使用IFrame的实现代码
2010/03/24 Javascript
javascript 循环读取JSON数据的代码
2010/07/17 Javascript
IE8下String的Trim()方法失效的解决方法
2013/11/08 Javascript
jquery ajax 简单范例(界面+后台)
2013/11/19 Javascript
JavaScript实现二分查找实例代码
2017/02/22 Javascript
jQuery插件FusionCharts实现的2D饼状图效果【附demo源码下载】
2017/03/03 Javascript
php简单数据库操作类的封装
2017/06/08 Javascript
微信小程序之页面拦截器的示例代码
2017/09/07 Javascript
react-native fetch的具体使用方法
2017/11/01 Javascript
vue环形进度条组件实例应用
2018/10/10 Javascript
详解关于Vuex的action传入多个参数的问题
2019/02/22 Javascript
解决vue跨域axios异步通信问题
2019/04/17 Javascript
Vue分页器实现原理详解
2019/06/28 Javascript
微信小程序点击item使之滚动到屏幕中间位置
2020/03/25 Javascript
快速实现基于Python的微信聊天机器人示例代码
2017/03/03 Python
python递归查询菜单并转换成json实例
2017/03/27 Python
详解Python读取配置文件模块ConfigParser
2017/05/11 Python
Python如何抓取天猫商品详细信息及交易记录
2018/02/23 Python
使用实现pandas读取csv文件指定的前几行
2018/04/20 Python
python面向对象入门教程之从代码复用开始(一)
2018/12/11 Python
python reverse反转部分数组的实例
2018/12/13 Python
python 定时任务去检测服务器端口是否通的实例
2019/01/26 Python
python画图的函数用法以及技巧
2019/06/28 Python
详解用Python进行时间序列预测的7种方法
2020/03/13 Python
Python实现RabbitMQ6种消息模型的示例代码
2020/03/30 Python
解决python多线程报错:AttributeError: Can't pickle local object问题
2020/04/08 Python
Bergfreunde丹麦:登山装备网上零售商
2017/02/26 全球购物
英国最大的高品质珠宝和手表专家:Goldsmiths
2017/03/11 全球购物
质检部岗位职责
2013/11/11 职场文书
本科毕业生的求职信范文
2013/11/20 职场文书
人事任命通知书
2015/04/21 职场文书
mysql的数据压缩性能对比详情
2021/11/07 MySQL
【DOTA2】高能暴走TK秀!PSG LGD vs ASTER - DPC 2022 WINTER TOUR CN
2022/04/02 DOTA