Vue3+Ant design 實現Select下拉框一鍵全選/清空

最近在做后臺管理系統項目的時候,產品增加了一個讓人非常苦惱的需求,讓在Select選擇器中添加一鍵全選和清空的功能,剛開始聽到的時候真是很懵,他又不讓在外部增加按鈕,其實如果說在外部增加按鈕實現全選或者清空的話,功能相對來說還是比較簡單的。咱也是沒辦法啊公司的牛馬,只能按照需求來修改了。好在通過查找了資料自己又進行了總結之后,實現了讓人惱火的需求,因為在查找資料的時候發現對于這一塊的知識點,網上的還是少之又少的,基本上都是vue2的方式,所以咱既然已經實現了,就分享給大家一起共享咯。

一、搭建頁面

在項目中安裝和引用ant design組件這里就不在細說了,前面的很多案例中都有講解這一塊,不會的小伙伴可以進行查看即可,當然去ant design官網也有這些操作哦。

<template><div class="test"><a-form-item label="營運單位" style="width: 16vw; margin: 15px"><a-selectmode="multiple":max-tag-count="1"allowClearv-model:value="valueGlc"@change="changeUnit":options="optionsGlc"><template #maxTagPlaceholder="omittedValues"><span class="allSelsct" v-if="optionsGlc.length === omittedValues.length + 1">全選</span><span v-else>+ {{ omittedValues.length }} ...</span></template><!-- 全選---這里就是實現一鍵全選和清空的細節操作 --><template #dropdownRender="{ menuNode: menu }"><v-nodes :vnodes="menu" /><a-divider style="margin: 4px 0" /><div style="padding: 4px 8px; margin-left: 50px; cursor: pointer" @mousedown="e => e.preventDefault()"><a-button type="link" @click="selectAll">全選</a-button><a-button type="link" @click="clearAll">清空</a-button></div></template></a-select></a-form-item></div>
</template><script setup>
//所選擇的營運單位
const valueGlc=ref('')
//營運單位選項列表
const optionsGlc=ref([])
//下拉菜單組件不可少,不然后續不顯示菜單
const VNodes = (_, { attrs }) => {return attrs.vnodes
}
//選擇營運單位事件
const changeUnit=()=>{}
// 一鍵全選
const selectAll=()=>{}
// 一鍵清空
const clearAll=()=>{}
</script><style lang='less' scoped>
.test{}
</style>

二、獲取select菜單中的數據

提示: 在這里獲取數據是使用了公司封裝后的框架

<script setup>
//來源于封裝后的數據地址--僅供參考
import { selectorRoadDeptLists } from '@/api/tjfx.js'
//所選擇的營運單位
const valueGlc=ref('')
//營運單位選項列表
const optionsGlc=ref([])
//下拉菜單組件不可少,不然后續不顯示菜單
const VNodes = (_, { attrs }) => {return attrs.vnodes
}
//選擇營運單位事件
const changeUnit=()=>{}
// 一鍵全選
const selectAll=()=>{}
// 一鍵清空
const clearAll=()=>{}
// 獲取下拉框數據-營運單位
const getOptionsGlc = () => {return new Promise((resolve, reject) => {selectorRoadDeptLists().then(res => {if (res.code === 200 && res.data) {res.data.forEach((item, index) => {optionsGlc.value.push({value: item.code,code: item.code,label: item.name})valueGlc.value.push(item.code)})}})})
}
onMounted(() => {getOptionsGlc()
})

三、一鍵全選

在操作完以上的步驟后,select中已經有對應的數據了,但是最重要的步驟還未實施,下面是實現一鍵全選的代碼

// 一鍵全選
const selectAll=()=>{valueGlc.value = optionsGlc.value.map(option => option.value)
}

?

四、一鍵清空

// 一鍵清空
const clearAll=()=>{valueGlc.value = []
}

?

五、詳細代碼

以上就是實現一鍵全選和一鍵清空的詳細步驟啦,沒看懂的小伙伴最后附上全部代碼

<template><div class="test"><a-form-item label="營運單位" style="width: 16vw; margin: 15px"><a-selectmode="multiple":max-tag-count="1"allowClearv-model:value="valueGlc"@change="changeUnit":options="optionsGlc"><template #maxTagPlaceholder="omittedValues"><span class="allSelsct" v-if="optionsGlc.length === omittedValues.length + 1">全選</span><span v-else>+ {{ omittedValues.length }} ...</span></template><!-- 全選---這里就是實現一鍵全選和清空的細節操作 --><template #dropdownRender="{ menuNode: menu }"><v-nodes :vnodes="menu" /><a-divider style="margin: 4px 0" /><div style="padding: 4px 8px; margin-left: 50px; cursor: pointer" @mousedown="e => e.preventDefault()"><a-button type="link" @click="selectAll">全選</a-button><a-button type="link" @click="clearAll">清空</a-button></div></template></a-select></a-form-item></div>
</template><script setup>
import { selectorRoadDeptLists } from '@/api/tjfx.js'
//所選擇的營運單位
const valueGlc=ref('')
//營運單位選項列表
const optionsGlc=ref([])
//下拉菜單組件不可少,不然后續不顯示菜單
const VNodes = (_, { attrs }) => {return attrs.vnodes
}
//選擇營運單位事件
const changeUnit=()=>{}
// 一鍵全選
const selectAll=()=>{valueGlc.value = optionsGlc.value.map(option => option.value)
}
// 一鍵清空
const clearAll=()=>{valueGlc.value = []
}
// 獲取下拉框數據-營運單位
const getOptionsGlc = () => {return new Promise((resolve, reject) => {selectorRoadDeptLists().then(res => {if (res.code === 200 && res.data) {res.data.forEach((item, index) => {optionsGlc.value.push({value: item.code,code: item.code,label: item.name})valueGlc.value.push(item.code)})}})})
}
onMounted(() => {getOptionsGlc()
})
</script><style lang='less' scoped>
.test{}
</style>

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

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

相關文章

3、python安裝-linux系統下

安裝前置依賴軟件&#xff0c;安裝完成后&#xff0c;打開官網&#xff0c;下載linux系統下的python安裝包&#xff1a; 選擇最新的版本 點擊最新版本&#xff0c;進入版本對應的界面&#xff0c; 選擇第一個進行源碼的編譯&#xff0c;右鍵選擇復制連接地址&#xff0c; 回到終…

HTML+CSS+JS(web前端大作業)~致敬鳥山明簡略版

HTMLCSSJS【動漫網站】網頁設計期末課程大作業 web前端開發技術 web課程設計 文章目錄 一、網站題目 二、網站描述 三、網站介紹 四、網站效果 五、 網站代碼 文章目錄 一、 網站題目 動漫網站-鳥山明-龍珠超 二、 網站描述 頁面分為頁頭、菜單導航欄&#xff08;最好可下拉&…

CDC 數據實時同步入湖的技術、架構和方案(截至2024年5月的現狀調研)

近期&#xff0c;對 “實時攝取 CDC 數據同步到數據湖” 這一技術主題作了一系列深入的研究和驗證&#xff0c;目前這部分工作已經告一段落&#xff0c;本文把截止目前&#xff08;2024年5月&#xff09;的研究結果和重要結論做一下梳理和匯總。為了能給出針對性的技術方案&…

Redis和MySQL的結合方式

Redis和MySQL的結合方式可以多樣化&#xff0c;以滿足不同的應用需求。以下是幾種常見的結合方式&#xff0c;以及它們的特點和適用場景&#xff1a; 緩存數據庫查詢結果&#xff1a; 應用程序首先嘗試從Redis中查詢數據。如果Redis中沒有所需數據&#xff0c;則從MySQL數據庫中…

ESP32-C6接入巴法云,Arduino方式

ESP32-C6接入巴法云&#xff0c;Arduino方式 第一、ESP32-C6開發環境搭建第一步&#xff1a;安裝arduino IDE 軟件第二步&#xff1a;安裝esp32庫第三&#xff1a;arduino 軟件設置 第二&#xff1a;簡單AP配網程序第一步&#xff1a;程序下載第二步&#xff1a;程序使用第三步…

電腦微信群發 500 1000人以上怎么群發,微信營銷群發助手軟件,本人親測,增加十倍業績!!!

今天給大家推薦一款我們目前在使用的電腦群發工具掘金小蜜&#xff0c;不僅可以無限多開&#xff0c;方便你同時管理多個賬號&#xff0c;群發功能更是十分強大&#xff0c;輕松釋放你的雙手。 掘金小蜜&#xff08;只支持Win7及以上操作系統&#xff0c;沒有推Mac版和手機客戶…

[碼蹄集新手訓練營]MT1016-MT1020

目錄 題號MT1016 寬度與對齊MT1017 左右對齊MT1018 輸入寬度MT1020 %s格式符 題號 MT1016 寬度與對齊 #include<stdio.h> int main() { printf("%-5d %5d\n%-5d %5d\n%-5d %5d",455,455,-123,-123,987654,987654);return 0; }MT1017 左右對齊 #include<s…

Mac | macOs系統安裝Monuty解決外接u盤ntfs讀寫問題

問題 mac電腦的macOs系統無法將文件讀寫入外接u盤或硬盤中&#xff1b; 解決方案 安裝Monuty 官網&#xff1a;mounty官網 下載軟件 安裝其他配置 macbook:~ uwe$ brew install --cask macfuse macbook:~ uwe$ brew install gromgit/fuse/ntfs-3g-mac macbook:~ uwe$ brew…

【Vue】組件用法

【前言】 … 【目標】 1 了解組件間傳參 2 組件間自定義事件綁定與解綁 3 組件的事件總線,消息訂閱與發布的用法 4 組件插槽 一 組件間傳參 #mermaid-svg-CAQFgxRrMK5KRFOr {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#merma…

機頂盒也可以跑量--上機指南

一、背景介紹 隨著科技的進步和智能設備的普及&#xff0c;機頂盒已不再是單純的電視接收器&#xff0c;而是逐漸演變成為家庭娛樂中心。越來越多的機頂盒支持各種應用、游戲和功能&#xff0c;使得用戶可以在大屏幕上享受更多樣化的內容。本指南將帶你深入了解如何讓你的機頂…

Spring中如何配置和使用Properties文件?

在Spring框架中&#xff0c;.properties 文件通常用于存儲配置信息&#xff0c;如數據庫連接、服務地址、應用參數等。以下是配置和使用 Properties 文件的詳細步驟&#xff1a; 1. 創建 Properties 文件 在項目的 src/main/resources 目錄下創建一個 .properties 文件&#…

價格預言機領導者 Pyth 與 Eclipse 平臺集成,為高頻 DeFi 應用提供支持

本篇文章將對這一戰略合作伙伴關系&#xff0c;以及 Pyth 網絡在 Eclipse 生態系統中扮演的關鍵角色進行深入探討。 目前&#xff0c;Pyth 價格數據已正式上線于 Eclipse 測試網。Eclipse 是首個結合了以太坊安全性、Solana 性能和 Celestia DA 的 Solana虛擬機(SVM) Layer2 方…

Key Chain has stopped 是什么

Key Chain has stopped 是一個特定的錯誤消息&#xff0c;通常出現在Android設備上。這個錯誤提示意味著設備上的“Key Chain”服務出現了問題&#xff0c;Key Chain服務在Android中負責管理設備的安全密鑰和證書&#xff0c;包括用戶的隱私密鑰、應用簽名密鑰等。當這個服務意…

無線麥克風哪個牌子性價比高?揭秘領夾麥克風性價比最高品牌

隨著自媒體行業的興起&#xff0c;現在視頻直播或者是個人Vlog都越來越受歡迎了&#xff0c;要想做好內容&#xff0c;除了畫面之外&#xff0c;聲音效果同樣重要。而我們手機上自帶的麥克風&#xff0c;容易受環境影響&#xff0c;特別是在戶外或者拍攝距離較遠時&#xff0c;…

微軟改進WSL子系統 新版將支持鏡像宿主機網絡接口及使用外部DNS

Windows SubSystem for Linux (即 WSL) 是微軟在 Windows 10/11 中開發的子系統功能&#xff0c;該功能允許用戶在 Windows 上安裝 Linux 系統和相關環境&#xff0c;對開發者來說可以構建 Linux 開發環境進行工作。不過 WSL 系統在功能上也有不少缺點&#xff0c;典型的就是默…

【Docker實戰】進入四大數據庫的命令行模式

上一篇我們講了docker exec命令&#xff0c;這一次我們使用docker exec命令來進入四大數據庫的命令行模式。 我們進行游戲開發或軟件開發是離不開四大數據庫的&#xff0c;這四大數據庫分別是關系型數據庫mysql、postgres&#xff0c;nosql數據庫redis、mongodb。將它們容器化…

TopK問題

前言&#xff1a;本篇對TopK問題的解答是介于堆的基礎上講的 TopK問題&#xff1a; 就是在許多數據中找到前K個最大的數據或者最小的數據 比如&#xff1a;專業前10、世界五百強、富豪榜、以及游戲排行榜等等 對于TopK問題&#xff1a;能想到的最簡單直接的方式就是排序解決,…

fastadmin二次開發 修改默認的前端彈出樣式

需要修改fastadmin后臺默認的彈出提示樣式效果&#xff1a; 在項目里搜索這個關鍵詞&#xff1a;Toastr 首先這個文件&#xff0c;里面的success和error就是彈出提示的方法。 public/assets/js/fast.js 然后是下面這個文件&#xff1a; public/assets/js/require-form.js 你…

對于高速信號完整性,一塊聊聊啊(13)

前面一篇說了有源仿真和無源仿真的區別&#xff0c;今天介紹一下前仿真和后仿真。 一個完整的電路設計中必然包含前仿真和后仿真兩個部分&#xff0c;它們都屬于驗證的必要環節。 尤其是在復雜的芯片設計中&#xff0c;驗證要占用整個芯片設計流程時間的60%-70%。目的就是盡可…

快速搭建uni-app項目,vue2、Vue3與圖鳥UI組件封裝

大家好&#xff0c;我們團隊近期在uni-app開發領域取得了重要突破&#xff0c;特地向大家介紹一系列基于Vue 2、Vue 3和圖鳥UI的封裝組件&#xff0c;以及ucharts圖表的封裝。這些成果旨在幫助開發者們更加高效、便捷地構建uni-app項目。 一、Vue 2、Vue 3與圖鳥UI封裝組件 為…