解決iview table組件里的 固定列 表格不自適應(yīng)的問題
當(dāng)在使用iview Table組件里固定列功能時
出現(xiàn)表格不自適應(yīng)寬度問題 具體如下

解決這個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: '內(nèi)存(GB)',
key: 'ram',
minWidth:140
},
{
title: '磁盤容量(GB)',
key: 'storage',
minWidth:140
},
{
title: '操作系統(tǒng)',
key: 'os',
minWidth:140
},
{
title: '實例狀態(tài)',
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: '虛擬網(wǎng)絡(luò)/子網(wǎng)',
key: 'virtualNetworkSubnet',
minWidth:140
},
{
title: '網(wǎng)絡(luò)安全組',
key: 'securityGroup',
minWidth: 120
}
]
望大家少走彎路~
補充知識:iView中table表格組件使用中的一些問題解決方法
最近在做圖層屬性信息展示功能時,需要用到表格來展示請求到的屬性信息,項目UI時iview,所以我就從iview中拿到表格組件來用。https://iviewui.com/components/table

最終成品是這樣一個組件。
iview的組件功能還是很強,但是用起來也相當(dāng)麻煩,在這個表格設(shè)計過程中我遇到了兩個難點;
一、怎么拆分以及合并部分單元格;
二、怎么調(diào)整某一個單元格的設(shè)計寬度;
首先第一個問題,
viewUI里面提供了屬性 span-method 可以指定合并行或列的算法。
該方法參數(shù)為 4 個對象:
row: 當(dāng)前行
column: 當(dāng)前列
rowIndex: 當(dāng)前行索引
columnIndex: 當(dāng)前列索引
該函數(shù)可以返回一個包含兩個元素的數(shù)組,第一個元素代表 rowspan,第二個元素代表 colspan。 也可以返回一個鍵名為 rowspan 和 colspan 的對象。
由于只有合并沒有拆分,所以我就在原來列數(shù)基礎(chǔ)上多增加幾列滿足拆分需求,行列數(shù)據(jù)在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: '基礎(chǔ)地址',
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: '要素數(shù)量',
value: 78
}
]
接下來就是寫函數(shù)來合并單元格了,api里面給是示范代碼,看起來不太好懂,但是總結(jié)起來就是if 是用來記錄開始操作的單元格序號,而不是進行判斷,通過if嵌套來實現(xiàn)在指定行列進行合并。

到這一步基本上就把大致表格做好了。
接下來第二個問題
我需要把字段比較短的單元格寬度變窄,在API中也有這些為行列以及單元格設(shè)置樣式的擴展屬性
行:通過屬性 row-class-name 可以給某一行指定一個樣式名稱。
列:通過給列 columns 設(shè)置字段 className 可以給某一列指定一個樣式。
單元格:通過給數(shù)據(jù) data 設(shè)置字段 cellClassName 可以給任意一個單元格指定樣式。
但是我在項目中寫的時候發(fā)現(xiàn)它所能改的樣式只有背景顏色,字體顏色等不影響盒子狀態(tài)的屬性,例如width這樣的屬性即便寫上也是無效的。在調(diào)試了許久還是一無所獲之后,我想用js來寫一個改變寬度的函數(shù),于是在API里發(fā)現(xiàn)了

由于我把表頭隱藏掉了,于是使用時我發(fā)現(xiàn)可以直接來設(shè)置單元格寬度,這樣問題就解決了。
總結(jié)一下:官方組件庫中提供的API能解決我們的大部分問題,所以在遇到問題時候多看官網(wǎng),看看能不能從不同角度去解決。
以上這篇解決iview table組件里的 固定列 表格不自適應(yīng)的問題就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
改變vue請求過來的數(shù)據(jù)中的某一項值的方法(詳解)
下面小編就為大家分享一篇改變vue請求過來的數(shù)據(jù)中的某一項值的方法(詳解),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-03-03
對vue v-if v-else-if v-else 的簡單使用詳解
今天小編就為大家分享一篇對vue v-if v-else-if v-else 的簡單使用詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-09-09
vue3中利用Export2Excel將數(shù)據(jù)導(dǎo)出為excel表格
這篇文章主要給大家介紹了關(guān)于vue3中利用Export2Excel將數(shù)據(jù)導(dǎo)出為excel表格的相關(guān)資料,最近項目需要前端來導(dǎo)出Excel操作,所以給大家總結(jié)下,需要的朋友可以參考下2023-09-09
在vue中實現(xiàn)清除echarts上次保留的數(shù)據(jù)(親測有效)
這篇文章主要介紹了在vue中實現(xiàn)清除echarts上次保留的數(shù)據(jù)(親測有效),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-09-09

