最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

在vue3中使用el-tree-select實(shí)現(xiàn)樹(shù)形下拉選擇器效果

 更新時(shí)間:2024年03月07日 14:32:53   作者:偷只貓來(lái)養(yǎng)  
el-tree-select是一個(gè)含有下拉菜單的樹(shù)形選擇器,結(jié)合了?el-tree?和?el-select?兩個(gè)組件的功能,這篇文章主要介紹了在vue3中使用el-tree-select做一個(gè)樹(shù)形下拉選擇器,需要的朋友可以參考下

el-tree-select是一個(gè)含有下拉菜單的樹(shù)形選擇器,結(jié)合了 el-tree 和 el-select 兩個(gè)組件的功能。

因?yàn)榘薳l-tree的功能,我們可以自定義tree的節(jié)點(diǎn),創(chuàng)造出想要的組件

使用default插槽可以自定義節(jié)點(diǎn)內(nèi)容,它的default插槽相當(dāng)于el-tree的default插槽

<template>
    <el-tree-select
        v-model="dirCode"
        :data="treeData"
        :highlight-current="true"
        :props="defaultProps"
        clearable
        filterable
        node-key="pathCode"
        :placeholder="placeholder"
        @clear="handleClear">
        <template #default="{ node, data }">
            <div class="custom-tree-node" @click="data.pathCode !== '-1' ? handleNodeClick(data) : ''">
                <div class="tree-icon">
                	<!-- 這里的svg-icon是我自己加的,可以改成element-plus中的icon ---->
                    <svg-icon class="file" icon-class="file"></svg-icon>
                </div>
                <div class="tree-label one-line">
                    <span class="tree-label-text one-line">
                        {{ node.label }}
                    </span>
                </div>
            </div>
        </template>
    </el-tree-select>
</template>

使用:model-value="modelValue"可以在適合用組件時(shí)直接v-model綁定值
我這里使用的是setup式的語(yǔ)法,當(dāng)然也可以使用setup()方法

<script setup>
import { ref, reactive, watch, onMounted } from 'vue'
import { getDirectory } from 'api/autoOperations/scriptManage'
const props = defineProps({
    placeholder: {
        type: String,
        default: '請(qǐng)選擇目錄',
        required: false
    },
    code: {
        type: String,
        default: '',
        required: false
    },
    path: {
        type: String,
        default: '',
        required: false
    }
})
let dirCode = ref('')
let dirPath = ref('')
const treeData = ref([])
const emits = defineEmits(['change'])
// 樹(shù)狀圖默認(rèn)配置
const defaultProps = reactive({
  children: 'children',
  label: 'pathName',
  isLeaf(data, node) {
    return data.isLeaf == 'true'
  }
})
watch(() => props.code, (val) => {
    if (val) {
        dirCode.value = val
    }
}, {
    immediate: true,
    deep: true
})
watch(() => props.path, (val) => {
    if (val) {
        dirPath.value = val
    }
}, {
    immediate: true,
    deep: true
})
onMounted(() => {
    getTreeData()
})
// 這里從數(shù)據(jù)庫(kù)獲取數(shù)據(jù)
const getTreeData = () => {
}
const handleNodeClick = (data) => {
    dirCode.value = data.pathCode
    dirPath.value = data.dirPath
    emits('change', {
        dirPath: dirPath.value,
        dirCode: dirCode.value
    })
}
const handleClear = () => {
    dirCode.value = ''
    dirPath.value = ''
    emits('change', {
        dirPath: dirPath.value,
        dirCode: dirCode.value
    })
}
</script>

這是我的自定義樣式,用的scss

<style lang="scss" scoped>
.custom-tree-node {
    display: flex;
    justify-content: space-between;
    align-items: center;
    width: calc(100% - 24px);
    font-size: 12px;
    line-height: 24px;
    .tree-icon {
        width: 20px;
        display: flex;
        align-items: center;
        .file {
        width: 20px;
        font-size: 20px;
        vertical-align: text-bottom;
        }
    }
    .tree-label {
        width: 100%;
        height: 24px;
        line-height: 24px;
        .tree-label-text {
            display: inline-block;
            max-width: calc(100% - 30px);
        }
    }
}
</style>

最后是效果圖

到此這篇關(guān)于在vue3中使用el-tree-select做一個(gè)樹(shù)形下拉選擇器的文章就介紹到這了,更多相關(guān)vue3樹(shù)形下拉選擇器內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 解決ant Design Search無(wú)法輸入內(nèi)容的問(wèn)題

    解決ant Design Search無(wú)法輸入內(nèi)容的問(wèn)題

    這篇文章主要介紹了解決ant Design Search無(wú)法輸入內(nèi)容的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-10-10
  • Vue實(shí)現(xiàn)一種簡(jiǎn)單的無(wú)限循環(huán)滾動(dòng)動(dòng)畫(huà)的示例

    Vue實(shí)現(xiàn)一種簡(jiǎn)單的無(wú)限循環(huán)滾動(dòng)動(dòng)畫(huà)的示例

    這篇文章主要介紹了Vue實(shí)現(xiàn)一種簡(jiǎn)單的無(wú)限循環(huán)滾動(dòng)動(dòng)畫(huà)的示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • karma+webpack搭建vue單元測(cè)試環(huán)境的方法示例

    karma+webpack搭建vue單元測(cè)試環(huán)境的方法示例

    本篇文章主要介紹了karma+webpack搭建vue單元測(cè)試環(huán)境的方法示例,這次搭建的測(cè)試環(huán)境和開(kāi)發(fā)環(huán)境隔離,所以理論上適用所有使用vue的開(kāi)發(fā)環(huán)境。感興趣的小伙伴們可以參考一下
    2018-05-05
  • vue.config.js中配置分包策略及常見(jiàn)的配置選項(xiàng)

    vue.config.js中配置分包策略及常見(jiàn)的配置選項(xiàng)

    在Vue.js中分包(Code Splitting)是一種將應(yīng)用程序代碼拆分為不同的塊或包的技術(shù),從而在需要時(shí)按需加載這些包,下面這篇文章主要給大家介紹了關(guān)于vue.config.js中配置分包策略及常見(jiàn)的配置選項(xiàng)的相關(guān)資料,需要的朋友可以參考下
    2024-02-02
  • Vue3開(kāi)發(fā)右鍵菜單的示例詳解

    Vue3開(kāi)發(fā)右鍵菜單的示例詳解

    右鍵菜單在項(xiàng)目開(kāi)發(fā)中是屬于比較高頻的組件了,所以這篇文章小編主要來(lái)和大家介紹一下如何利用vue3開(kāi)發(fā)一個(gè)右鍵菜單,有需要的可以參考下
    2024-03-03
  • 一文帶你搞懂Vue.js如何實(shí)現(xiàn)全選反選功能

    一文帶你搞懂Vue.js如何實(shí)現(xiàn)全選反選功能

    這篇文章主要為大家詳細(xì)介紹了Vue.js實(shí)現(xiàn)全選反選功能的相關(guān)知識(shí),文中是示例代碼簡(jiǎn)潔易懂,具有一定的借鑒價(jià)值,有需要的小伙伴可以了解下
    2025-01-01
  • element用腳本自動(dòng)化構(gòu)建新組件的實(shí)現(xiàn)示例

    element用腳本自動(dòng)化構(gòu)建新組件的實(shí)現(xiàn)示例

    本文主要介紹了element-ui的用腳本自動(dòng)化構(gòu)建新組件的實(shí)現(xiàn)示例,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-12-12
  • Vue前端項(xiàng)目部署IIS的實(shí)現(xiàn)

    Vue前端項(xiàng)目部署IIS的實(shí)現(xiàn)

    這篇文章主要介紹了Vue前端項(xiàng)目部署IIS的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-01-01
  • vue3中Teleport的用法以及使用場(chǎng)景小結(jié)

    vue3中Teleport的用法以及使用場(chǎng)景小結(jié)

    Teleport是一個(gè)內(nèi)置組件,它可以將一個(gè)組件內(nèi)部的一部分模板傳送到該組件的?DOM?結(jié)構(gòu)外層的位置去,本文主要介紹了Vue3中Teleport用法以及使用場(chǎng)景小結(jié),感興趣的可以了解一下
    2025-04-04
  • Vue使用Pinia輕松實(shí)現(xiàn)狀態(tài)管理

    Vue使用Pinia輕松實(shí)現(xiàn)狀態(tài)管理

    pinia,一個(gè)基于Vue3的狀態(tài)管理庫(kù),它可以幫助開(kāi)發(fā)人員管理Vue應(yīng)用程序的狀態(tài),本文主要為大家介紹了Pinia的用法,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-06-06

最新評(píng)論

湟中县| 五华县| 白朗县| 永胜县| 弥渡县| 广饶县| 孟州市| 新兴县| 广饶县| 岫岩| 文安县| 皮山县| 蓬安县| 阿拉善右旗| 上高县| 漳州市| 盘山县| 枞阳县| 石台县| 泸西县| 庄浪县| 句容市| 绥棱县| 安达市| 河南省| 登封市| 青阳县| 云林县| 崇明县| 霸州市| 谢通门县| 泽州县| 阜阳市| 体育| 南部县| 策勒县| 昌吉市| 古浪县| 中宁县| 龙川县| 布拖县|