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

示例:

<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个月,获取数据,表格动态按月份展示,看图

表格还是这么简单

<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>&emsp;至&emsp;
 <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组件宽度只变大不变小的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • vue iview 隐藏Table组件里的某一列操作

    1.假设我要隐藏columns里的 "账户组名称" columns: [ { type: 'selection', width: 60, align: 'center' }, { title: '账号ID', key: 'accountIdString' }, { title: '账号名称', key: 'accountName' }, { title: '账户组名称', key: 'accountGroupName' }] 2.根据各自需求去判断 示例:如果是单账户表标题显示&quo

  • element-ui 中的table的列隐藏问题解决

    element-ui 中的table和bootstrap中的table的某些设置还是有一定的差别的.之前用bootstrap做的表格,想要实现简短列和详细列的切换.因为详细列实在有太多列了,拉动滚动条还有一段距离.所以希望能够切换到简短列可以方便的看见比较重要的几列的内容.用之前的方法<bootstrap>的话,非常简单,直接设置display的显示和隐藏就可以了. 但是放在element-ui中来就不可行了.每一列根本不能直接设置样式,你给每一列设置class-name从而设置样式的话,可能

  • vue 组件中添加样式不生效的解决方法

    如何产生 在开发项目中遇到在组件中添加样式不生效的情况.具体场景如下 //// vue 组件 <template> <div class="box" data-v-33f8ed40></div> <template> //我用js在上面div标签中插入一个<p class='text'>text goes here</p> <script> export default { ... mounted(){

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

    示例: <Table class="my-table"></Table> 打开开发者工具其实你可以发现iView给table标签的宽度加上了一个明确的宽度值,而且在父元素变小的时候这个值并没有相应地变小,所以才会导致的iView Table组件只会变大不会变小. 那么我们就可以根据这个原因才决定解决方案 1.给Table组件的table标签设置一个important的width .my-table table { width: 100% !important;

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

    当在使用iview Table组件里固定列功能时 出现表格不自适应宽度问题 具体如下 解决这个bug 很简单 把组件里的 width 改为 minWidth 即可 columns: [ { title: '账户名', key: 'accountName', fixed: 'left', minWidth: 150 }, { title: '订阅名称', key: 'subscriptionName', minWidth:140 }, { title: '订阅ID', key: 'subscrip

  • 解决Antd Table组件表头不对齐的问题

    背景: 在使用Antd的table组件时,由于表头参数过多,于是设置了scroll属性,在其超出一定宽度后进行滚动 但是在添加了该属性之后,经常会出现表头不对齐的问题: 针对该问题Google 了一下解决方案,但大多不是很完善,为解决问题.现整理下完整的解决方案: 1.对表格的每一行 [columns]设置width属性(留出一行进行宽度自适应): 2.scroll属性中的x选择一个合适的值(或者直接设为 max-content): 如果以上两步仍解决不了对齐问题的话,请继续第三步操作 3.对t

  • Iview Table组件中各种组件扩展的使用

    一.Iview Table 组件 多选框选中和禁选设置 Table添加多选框 通过给 columns 数据设置一项,指定  type: 'selection' ,即可自动开启多选功能. 正确使用好以下事件,可以达到需要的效果: @on-select ,选中某一项触发,返回值为  selection  和  row ,分别为已选项和刚选择的项. @on-select-all ,点击全选时触发,返回值为  selection ,已选项. @on-selection-change ,只要选中项发生变化

  • 详解使用element-ui table组件的筛选功能的一个小坑

    使用element-ui table组件的筛选功能的一个小坑 使用自定义模板和筛选功能,一开始的代码 <el-table-column v-if="key==='isShow'" label="是否在发现页展示" :filters="[{text:'已展示',value: true},{text: '未展示', value: false}]" :filter-method="filterShow"> <tem

  • vue 解决循环引用组件报错的问题

    做项目时遇到使用循环组件,因为模式一样,只有数据不一样.但是按照普通的组件调用格式来做时报错,错误信息为Unknown custom element: <pop> - did you register the component correctly? For recursive components, make sure to provide the "name" option. 查询了官方文档,还有其他的资料,发现是循环调用组件时,组件比vue实例后创建,官方文档里写组件

  • Ant-design-vue Table组件customRow属性的使用说明

    官网示例 使用方式 // 表格中加入customRow属性并绑定一个custom方法 <a-table rowKey="stockOrderCode" :columns="columns" :dataSource="dataSource" :pagination="pagination" :customRow="customRow" > </a-table> // methods中定

  • iview的table组件自带的过滤器实现

    iview的table组件自带的过滤器实现 iview框架的table组件自带的过滤器的使用方法: <script> export default { data () { return { columns: [ { title: 'Name', key: 'name' }, //过滤器 //通过给 columns 数据的项,设置 filters,可进行筛选,filters 接收一个数组,必须指定一个筛选函数filterMethod { title: 'Age', key: 'age', fil

  • Graphics.DrawImage绘制的图像变大的原因分析及解决

    目录 Graphics.DrawImage绘制的图像变大 原因分析 解决方案 C#Graphics.DrawImage的一些问题 Graphics.DrawImage绘制的图像变大 原因分析 DrawImage是设备相关的函数,换言之就是,DrawImage会把屏幕的参数带上,所以,它绘制图像的DPI基本都是96.而我的图片是72DPI的. 例如,假定一个 Image 对象的宽度为 216 像素而存储的水平分辨率值为 72 点/英寸.因为 216 除以 72 等于 3,所以 DrawImage

  • 解决Echarts 显示隐藏后宽度高度变小的问题

    Echarts 是现在程序员做图表用到比较多的一种技术,前段时间,我就用了一下Echarts,我原本是将饼图先隐藏,然后点击按钮让它再显示出来,但是再显示时,饼状图出现了问题,它变得特别小,根本不能用,然后,就此,我找了下原因 原因:Echarts 图表是根据你定义的div 的样式来确定图表的大小,当图表隐藏时,Echarts会找不到div的宽和高,再次显示时它会给自己一个非常小的默认宽高值,所以在隐藏显示后会发现它变得非常非常的小. 解决:将初始化放在click事件里,给一个flag 控制显示

随机推荐