vue+element樹(shù)形選擇器組件封裝和使用方式
更新時(shí)間:2020年04月23日 09:59:42 作者:WalkerShen
這篇文章主要介紹了vue+element樹(shù)形選擇器組件封裝和使用方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
vue+element樹(shù)形選擇器組件封裝和使用
演示效果


子組件
<template>
<div>
<el-input
v-model="value"
@focus="showTree"
:placeholder="placeholder"
suffix-icon="el-icon-arrow-down"
readonly
/>
<el-tree
v-if="treeShow"
:data="data"
:node-key="nodeKey"
default-expand-all
:props="defaultProps"
accordion
@node-click="handleNodeClick"
>
</el-tree>
</div>
</template>
<script>
export default {
data() {
return {
treeShow: false,
};
},
props: {
// input的值
value: {
type: String,
},
// 提示語(yǔ)
placeholder: {
type: String,
default: "請(qǐng)點(diǎn)擊",
},
// 樹(shù)節(jié)點(diǎn)數(shù)據(jù)
data: {
type: Array,
},
// 節(jié)點(diǎn)的key
nodeKey: {
type: String,
default: "id",
},
// 樹(shù)的props
defaultProps: {
type: Object,
default: {
children: "children",
label: "name",
},
},
// 方法
handleData: {
type: Function,
},
},
methods: {
// 點(diǎn)擊方法
handleNodeClick(data) {
this.treeShow = false;
this.handleData(data);
},
// 顯示樹(shù)
showTree() {
this.treeShow = !this.treeShow;
},
},
// 監(jiān)聽(tīng)value數(shù)據(jù),解決組件傳值沒(méi)實(shí)時(shí)更新問(wèn)題
watch: {
value: {
handler: function (v, ov) {
this.value = v;
},
deep: true,
immediate: true,
},
},
};
</script>
<style lang="scss" scoped></style>
父組件
<treeSelect
:value="form.parentName"
placeholder="點(diǎn)擊獲取父級(jí)區(qū)域"
:data="treeList"
:defaultProps="defaultProps"
:handleData="receiveData"
></treeSelect>
export default{
//組件引入
components: {
treeSelect: () => import("../components/treeSelect.vue"),
},
//
data(){
return {
form: {},
treeShow: false,
treeList: [],
defaultProps: {
children: "children",
label: "name",
},
}
},
methods:{
receiveData(data) {
console.log("接收數(shù)據(jù):", data);
// 需要使用$set設(shè)置
this.$set(this.form, "parentName", data.name);
this.$set(this.form, "parentId", data.id);
},
// 獲取樹(shù)的接口
treeRegion() {
let params = {};
treeRegion(params).then((res) => {
this.treeList = res.data;
});
},
}
}
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
關(guān)于Element上傳組件beforeUpload上傳前限制失效問(wèn)題
這篇文章主要介紹了Element上傳組件beforeUpload上傳前限制失效問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-03-03
Vue3中使用ref標(biāo)簽對(duì)組件進(jìn)行操作方法
這篇文章主要介紹了Vue3中使用ref標(biāo)簽對(duì)組件進(jìn)行操作方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-04-04
vue項(xiàng)目中created()被調(diào)用多次的踩坑實(shí)戰(zhàn)
在vue項(xiàng)目中我在created中調(diào)用了兩次get數(shù)據(jù)請(qǐng)求,所以下面這篇文章主要給大家介紹了關(guān)于vue項(xiàng)目中created()被調(diào)用多次的踩坑實(shí)戰(zhàn),需要的朋友可以參考下2023-03-03
在Vue組件化中利用axios處理ajax請(qǐng)求的使用方法
這篇文章主要給大家介紹了在Vue組件化中利用axios處理ajax請(qǐng)求的使用方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面跟著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。2017-08-08

