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

解決這個(gè)bug 很簡(jiǎn)單 把組件里的 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: '實(shí)例名稱',
key: 'instanceName',
minWidth:140
},
{
title: '實(shí)例類型',
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: '實(shí)例狀態(tài)',
key: 'stateName',
minWidth:140
},
{
title: '項(xiàng)目',
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
}
]
望大家少走彎路~
補(bǔ)充知識(shí):iView中table表格組件使用中的一些問(wèn)題解決方法
最近在做圖層屬性信息展示功能時(shí),需要用到表格來(lái)展示請(qǐng)求到的屬性信息,項(xiàng)目UI時(shí)iview,所以我就從iview中拿到表格組件來(lái)用。https://iviewui.com/components/table

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

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

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

