天天看點

自研元件<十一>表格,固定表頭/列

這個元件相對其他元件看起來比較簡單,遇到的坑卻是很多。

适應場景:

1、可配置排序

2、可配置列寬度

3、可配置總計及其位置(第一行/最後一行)

4、可配置固定頭、固定列

5、單元格可插槽

效果圖:

自研元件<十一>表格,固定表頭/列
排序

點選排序,是按照NONE->DESC->ASC->NONE的循環順序排序

插槽

作用域插槽,将單元格資料傳遞給父元件,父元件在做一個不同的填充

作用域插槽見:《作用域插槽的那些事》

固定頭和列

方案一:

用三個表格拼接,三個scroll-view滾動時關聯,橫向滾動時沒有太大問題,豎向滾動時,會出現延遲,裂縫,不能達到一體的效果--->PASS
           

方案二:

用樣式position: sticky, table-head和table-row中的table-column設定

-----------------------------------------填坑----------------------------------------------------

1、當with不傳或with=百分比, 某一列資料很長,會出現border不等

自研元件<十一>表格,固定表頭/列

解決:table-head和table-row設定width: fit-content, 因為with不傳或with=百分比時,表格是不需産生滾動條,所有列合起來是100%

當with=xxpx時,是可能産生橫向滾動條,table-head和table-row設定width: max-content,會根據内容撐開,讓scroll-view形成滾動條

2、固定列, 滾動時會發現固定列的底是镂空的,因為第二列的資料很多,它的table-column高度是>第一列的table-column的

自研元件<十一>表格,固定表頭/列

解決:table-row flex布局設定align-items: stretch,讓同行的table-column等高

效果:

自研元件<十一>表格,固定表頭/列

至于單元格内未垂直居中,可在單元格中設定

3、固定列時,橫向滾動時可看到最左側會有一條1px左右的縫隙,會镂空其他資料

自研元件<十一>表格,固定表頭/列

解決:固定列用::before僞類填充那條縫隙