解決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: '實(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ǔ)充知識:iView中table表格組件使用中的一些問題解決方法
最近在做圖層屬性信息展示功能時,需要用到表格來展示請求到的屬性信息,項(xiàng)目UI時iview,所以我就從iview中拿到表格組件來用。https://iviewui.com/components/table
最終成品是這樣一個組件。
iview的組件功能還是很強(qiáng),但是用起來也相當(dāng)麻煩,在這個表格設(shè)計(jì)過程中我遇到了兩個難點(diǎn);
一、怎么拆分以及合并部分單元格;
二、怎么調(diào)整某一個單元格的設(shè)計(jì)寬度;
首先第一個問題,
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: '要素?cái)?shù)量', value: 78 } ]
接下來就是寫函數(shù)來合并單元格了,api里面給是示范代碼,看起來不太好懂,但是總結(jié)起來就是if 是用來記錄開始操作的單元格序號,而不是進(jìn)行判斷,通過if嵌套來實(shí)現(xiàn)在指定行列進(jìn)行合并。
到這一步基本上就把大致表格做好了。
接下來第二個問題
我需要把字段比較短的單元格寬度變窄,在API中也有這些為行列以及單元格設(shè)置樣式的擴(kuò)展屬性
行:通過屬性 row-class-name 可以給某一行指定一個樣式名稱。
列:通過給列 columns 設(shè)置字段 className 可以給某一列指定一個樣式。
單元格:通過給數(shù)據(jù) data 設(shè)置字段 cellClassName 可以給任意一個單元格指定樣式。
但是我在項(xiàng)目中寫的時候發(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ù)中的某一項(xiàng)值的方法(詳解)
下面小編就為大家分享一篇改變vue請求過來的數(shù)據(jù)中的某一項(xiàng)值的方法(詳解),具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-03-03對vue v-if v-else-if v-else 的簡單使用詳解
今天小編就為大家分享一篇對vue v-if v-else-if v-else 的簡單使用詳解,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-09-09vue3中利用Export2Excel將數(shù)據(jù)導(dǎo)出為excel表格
這篇文章主要給大家介紹了關(guān)于vue3中利用Export2Excel將數(shù)據(jù)導(dǎo)出為excel表格的相關(guān)資料,最近項(xiàng)目需要前端來導(dǎo)出Excel操作,所以給大家總結(jié)下,需要的朋友可以參考下2023-09-09在vue中實(shí)現(xiàn)清除echarts上次保留的數(shù)據(jù)(親測有效)
這篇文章主要介紹了在vue中實(shí)現(xiàn)清除echarts上次保留的數(shù)據(jù)(親測有效),具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-09-09axios實(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)常會用到axios來請求數(shù)據(jù),那么首先肯定需要對這個請求方法進(jìn)行一個二次封裝,這篇文章主要給大家介紹了關(guān)于項(xiàng)目中Axios二次封裝的相關(guān)資料,需要的朋友可以參考下2021-06-06