el-select下拉框 添加 el-checkbox 多選框,支持全選、取消全選

el-select下拉框 添加 el-checkbox 多選框,支持全選、取消全選

  • 前言
  • 一、實現思路
  • 二、實現代碼
    • 1.模板代碼
    • 2. css 樣式
    • 3.js 代碼
  • DEMO 演示
  • 總結


前言

實現效果預覽
在這里插入圖片描述


提示:本內容基于element-ui 組件實現,如果使用其他組件庫、可參考下面實現方式的思路

一、實現思路

準備直接使用 el-select 組件的 multiple 屬性實現 多選,添加el-checkbox 組件實現全選,以及數據項的選框展示

二、實現代碼

1.模板代碼

el-select 中加入了全選 el-checkbox,以及在 el-option 中加入了 el-checkbox 控制樣式。

<el-select v-model="data" multiple popper-class="select-popover-class"><el-checkbox :value="selectAll" :indeterminate="indeterminate" @change="selectAllHandle">全選</el-checkbox><el-option v-for="item in options" :key="item.value" :value="item.value":label="item.label"><el-checkbox :value="data.includes(item.value)" :label="item.label"></el-option>
</el-select>

2. css 樣式

重點在第二個樣式,我們這里只取 el-checkbox 的樣式,所以取消事件的觸發。

/* 控制全選按鈕樣式 */
.select-popover-class .el-scrollbar__view > .el-checkbox{padding: 5px 20px;
}/* 取消多選框觸發事件 */
.select-popover-class .el-scrollbar__view > li .el-checkbox {pointer-events: none;
}/* 隱藏多選框選中勾選樣式 √ */
.select-popover-class .el-scrollbar__view > li::after {display: none;
}

3.js 代碼

從頭到尾只有 data 屬性是雙向綁定的,其他 包括selectAllindeterminate、以及選項上的el-checkbox是否選中 都是根據data 屬性判斷計算的。

使用的是vue2.xJavaScript 實現,使用vue3.xTypeScript,參考實現就好。

{data: {data: [],options: [{label: '選項1',value: 1},{label: '選項2',value: 2},{label: '選項3',value: 3}]},computed: {selectAll() {if(this.data.length){return this.data.length === this.options.length;}return false;},indeterminate() {if(this.data.length){return this.data.length !== this.options.length;}return false;}},methods: {selectAllHandle(bool) {this.data = bool ? this.options.map(v => v.value) : [];}},
}

DEMO 演示

demo中引用了 vueelement-ui 的cdn 資源,可能加載較慢,如果加載不成功自行更換其他可用資源嘗試。

多選演示demo


總結

因為整個交互都是使用的el-select 多選模式自帶的功能,所以結構還是比較清晰的。

注意: 多選框都是使用 :value="" 綁定數據、無須雙向綁定。

以上信息如有問題或疏漏,歡迎指正,謝謝。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/13143.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/13143.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/13143.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

「AIGC算法」線性回歸模型

線性回歸是統計學和機器學習中一種常用的監督學習算法&#xff0c;用于預測連續數值型的輸出。線性回歸模型試圖找到特征變量&#xff08;或稱自變量&#xff09;與目標變量&#xff08;因變量&#xff09;之間的線性關系。 線性回歸的兩種主要類型&#xff1a; 簡單線性回歸&a…

學習Nginx(三):命令與信號

命令及選項 1. 顯示幫助信息&#xff1a; [rootRockyLinux9 ~]# nginx -h nginx version: nginx/1.26.0 Usage: nginx [-?hvVtTq] [-s signal] [-p prefix][-e filename] [-c filename] [-g directives]選項:-?,-h : 顯示幫助信息-v : 顯示版本信息-V …

Error in debuggerConnector: connect ECONNREFUSED問題解決

最近重新開始electron開發&#xff0c;兩三年前寫的代碼幾乎看不懂了。。然后debug一下&#xff0c;直接報錯了&#xff1a; Debugger listening on ws://127.0.0.1:20793/d146ffdb-c3b8-4480-a8d8-d04bb643c7c1 For help, see: https://nodejs.org/en/docs/inspector Error i…

關于GitHub倉庫建立及提交問題

文章目錄 前言GitHub倉庫創建token令牌的獲取GitHub克隆到本地GitHub上傳文件 前言 為了整一個GitHub倉庫然后上傳文件&#xff0c;筆者看了不下100篇博客&#xff0c;20段教程&#xff0c;最后在兩位大佬的幫助下&#xff0c;才整明白了&#x1f62d; 先提前說一嘴從 2021年8月…

網絡爬蟲安全:90后小伙,用軟件非法搬運他人原創視頻被判刑

目錄 違法視頻搬運軟件是網絡爬蟲 如何發現偷盜視頻的爬蟲&#xff1f; 攔截違法網絡爬蟲 央視《今日說法》欄目近日報道了一名程序員開發非法視頻搬運軟件獲利超700多萬&#xff0c;最終獲刑的案例。 國內某知名短視頻平臺報警稱&#xff0c;有人在網絡上售賣一款視頻搬運…

劉邦的創業團隊是沛縣人,朱元璋的則是鳳陽;要創業,一個縣人才就夠了

當人們回顧劉邦和朱元璋的創業經歷時&#xff0c;總是會感慨他們起于微末&#xff0c;都創下了偌大王朝&#xff0c;成就無上榮譽。 尤其是我們查閱史書時&#xff0c;發現這二人的崛起班底都是各自的家鄉人&#xff0c;例如劉邦的班底就是沛縣人&#xff0c;朱元璋的班底是鳳…

大模型技術介紹和實現流程以及向量庫的介紹

多模態大模型&#xff1a;&#xff08;Multimodal Models&#xff09;指能夠處理和生成多種類型數據&#xff08;如文本、圖像、音頻等&#xff09;的機器學習模型。該模型整合了來自不同模態的數據&#xff0c;從而提高了任務執行的準確性和廣度。 一、多模態大模型 任務步驟…

分布式搜索-elaticsearch基礎 概念

什么是elaticsearch: 倒排索引&#xff1a;就是將要查詢的內容分成一個個詞條&#xff0c;在將詞條文檔id存入&#xff0c;詞條是唯一的。 文檔詞條總結: mysql和Elasticsearch概念對比: 架構: 基本概念總結:

Linux上執行內存中的腳本和程序

在Linux中可以不需要有腳本或者二進制程序的文件在文件系統上實際存在&#xff0c;只需要有對應的數據在內存中&#xff0c;就有辦法執行這些腳本和程序。 原理其實很簡單&#xff0c;Linux里有辦法把某塊內存映射成文件描述符&#xff0c;對于每一個文件描述符&#xff0c;Lin…

一線互聯網大數據面試題核心知識庫(100萬字)

本面試寶典涵蓋大數據面試高頻的所有技術棧&#xff0c;包括Liunx&Shell基礎&#xff0c;Hadoop&#xff0c;Zookpeer&#xff0c;Flume&#xff0c;Kafka&#xff0c;Hive&#xff0c;Datax&#xff0c;Maxwell&#xff0c;DolphinScheduler&#xff0c;Spark Core&SQ…

光伏行業該如何起步?

隨著全球對可再生能源的需求日益增長&#xff0c;光伏行業作為其中的佼佼者&#xff0c;正迎來前所未有的發展機遇。然而&#xff0c;對于新進入者或希望在這一領域有所建樹的企業來說&#xff0c;如何起步并穩健發展是一個值得深思的問題。以下是一些關于光伏行業起步的建議。…

MySQL-事務篇

文章目錄 何為事務&#xff1f;什么是事務的ACID特性&#xff1f;并發事務帶來了哪些問題&#xff1f;不可重復讀和幻讀有什么區別&#xff1f;并發事務的控制方式有哪些&#xff1f;SQL標準定義了哪些事務隔離級別&#xff1f;MYSQL的隔離級別是基于鎖實現的嗎&#xff1f; 何…

微服務- protobuf 安裝

這里寫自定義目錄標題 1&#xff1a;下載鏈接2 &#xff1a;下載對應的包3&#xff1a;解壓到目錄4&#xff1a;設置環境變量5: 查看版本 1&#xff1a;下載鏈接 https://github.com/protocolbuffers/protobuf/releases 2 &#xff1a;下載對應的包 3&#xff1a;解壓到目錄 4&…

從RTTR談Reflection機制

雖然C11引入了RTTI、Metaprogramming 等技術&#xff0c;但C在Reflection編程方面依舊功能有限。在社區上&#xff0c;RTTR則提供了一套C編寫的反射庫&#xff0c;補充了C在Reflection方面的缺陷。 零、環境 操作系統Windows 11Visual StudioVisual Studio Community 2022 CMa…

git 命令 - rebase

簡介 git rebase 是一個用于重新應用一系列提交到另一個基礎的 Git 命令。 它可以用來整合來自不同分支的更改&#xff0c;同時保持項目歷史的整潔。 操作流程 開始變基&#xff1a; 要開始一個變基操作&#xff0c;你需要指定一個基礎分支。通常&#xff0c;這個基礎分支是…

2024.05.14 Diffusion 代碼學習筆記

配環境 我個人用的是Geowizard的環境&#xff1a;https://github.com/fuxiao0719/GeoWizard。 出于方便考慮&#xff0c;用的pytorch官方的docker容器&#xff0c;因此python版本&#xff08;3.10&#xff09;和原作者&#xff08;3.9&#xff09;不同&#xff0c;其余都是一…

一文說通用戶故事點數是什么?

一文說通用戶故事點數是什么&#xff1f; 第26期&#xff1a;一文說通用戶故事點數是什么&#xff1f; 用戶故事點數是一種采用相對估算法進行估算的一種工具&#xff0c;一般采用斐波那契數列表征用戶故事里說的大小&#xff0c;采用0 1 2 3 5 8 13這樣的一些數字來表征用戶…

【漏洞復現】Secnet-智能路由系統 actpt_5g.data信息泄露

0x01 產品簡介 Secnet安網智能AC管理系統是廣州安網通信技術有限公司(簡稱“安網通信”)的無線AP管理系統 0x02 漏洞描述 Secnet智能路由系統 acipt 5g.data 接口存在信息泄露漏洞&#xff0c;未經身份驗證的遠程攻擊者可以利用此漏洞獲取系統賬戶名密碼等重要憑據&#xff…

全流程TOUGH系列軟件實踐技術應用

TOUGH系列軟件是由美國勞倫斯伯克利實驗室開發的&#xff0c;旨在解決非飽和帶中地下水、熱運移的通用模擬軟件。和傳統地下水模擬軟件Feflow和Modflow不同&#xff0c;TOUGH系列軟件采用模塊化設計和有限積分差網格剖分方法&#xff0c;通過配合不同狀態方程&#xff08;EOS模…

永磁同步電機的脈振高頻注入無速度傳感器simulink仿真模型

整理了永磁同步電機的脈振高頻注入無速度傳感器simulink仿真模型&#xff0c;該模型高頻注入仿真pmsm&#xff0c;無感控制&#xff0c;解決0速轉矩輸出問題&#xff0c;插入式永磁同步電機&#xff0c;凸極&#xff0c;高頻注入。MATLAB/simulink仿真&#xff0c;適合研究學習…