網站首頁 編程語言 正文
幾種場景
- 所有列均不設置寬度,(初次加載和拖拽時)列寬自適應,不會出現空白(列)
- 部分列設置寬度,(初次加載和拖拽時)列寬自適應,不會出現空白(列)
- 所有列都設置寬度,(初次加載和拖拽時)列寬總和沒有超出容器寬度時,會出現空白(列)
解決方式
簡單處理
- 至少一列設置
min-width
- 如果包含固定列,直接設置固定列
min-width
即可(當前面列寬較小時,固定列會充滿剩余寬度,排版可能不好看)
修改源碼
實際開發中我們使用的是avue
,通過json
動態生成列。最初我們提出了兩種修改方法:
- 固定操作列寬度改為
min-width
,但在某些字段較少的列表中表現較差,固定操作列過長(被產品pass) - 保證左右兩側固定列寬度不變,中間列寬度自適應,即在配置列的時候保證至少有一列不要設置
width
(由于一些現實問題,開發團隊較多且有外包參與,很難執行,pass)
最終我們決定修改element-ui
源碼,實現思路:
- 固定列不允許拖拽寬度
// packages/table/src/store/index.js insertColumn(states, column, index, parent) { //... // -46行-如果是固定列,則不允許拖拽寬度。 if (column.fixed) { column.resizable = false; } //... }
- 非固定列的最后一列寬度自適應(不管有沒有配置
width
)// packages/table/src/store/watch.js updateColumns() { //... // -106行-如果右側存在固定列,則中間最后一列不允許拖拽且寬度要自適應(如果最后一列非數據展示列,則倒數第二列寬度自適應) // 在avue中,列表會默認插入一個寬度為1的列,所以這里要判斷一下 if (states.rightFixedLeafColumnsLength > 0 && states.leafColumnsLength > 0) { let lastColumn1 = leafColumns[states.leafColumnsLength - 1]; let lastColumn2 = leafColumns[states.leafColumnsLength - 2]; lastColumn1.resizable = false; if (!lastColumn1.property && lastColumn2) { lastColumn2.resizable = false; lastColumn2.width = undefined; } } //... }
- 非
resize
列不允許拖拽// packages/table/src/table-header.js handleMouseDown(event, column) { // -345行-非resize不允許拖拽寬度。 if (!column || !column.resizable) return; //... }
- 打包,項目通過
cdn
引入(當然也可以使用patch-package
定制node_modules
)
原文鏈接:https://blog.csdn.net/a736755244/article/details/126425092
- 上一篇:沒有了
- 下一篇:沒有了
相關推薦
- 2023-02-18 Flow轉LiveData數據丟失原理詳解_Android
- 2022-06-22 Android實現歡迎滑動頁面_Android
- 2022-12-13 Android之rk3588?開發環境準備及問題解決方法_Android
- 2022-11-05 一文教你如何使用Databinding寫一個關注功能_Android
- 2022-07-09 docker安裝nginx并部署前端項目的全過程_docker
- 2022-05-20 Spring注入bean的常用的六種方式
- 2021-12-18 linux下安裝redis圖文詳細步驟_Redis
- 2023-01-29 Redis配置外網可訪問(redis遠程連接不上)的方法_Redis
- 欄目分類
-
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支