vue3 el-tree懒加载 单选
·
前端代码
<template>
<el-tree :props="data.treeProps" :load="loadNode" lazy style="width: 300px" show-checkbox
@check-change="handleCheckChange" node-key="id" ref="treeForm" />
</template>
<script setup>
import { onMounted, reactive, ref } from "vue";
import { region, regions } from '../../utils/http/home'
import { ElMessage } from 'element-plus'
const treeForm = ref(null)
const data = reactive({
treeProps: {
label: 'name',
children: 'zones',
isLeaf: 'leaf',
},
})
const loadNode = (node, resolve) => {
const nodes = [];
if (node.level === 0) {
regions({ id: 0 }, {}).then((res) => {
if (res.code == 0) {
res.data.list.map((item) => {
let obj = {
name: item.name,
id: item.id,
leaf: node.level >= 1,
disabled: true
};
nodes.push(obj);
});
resolve(nodes);
} else {
ElMessage.error(res.msg)
}
});
} else if (node.level == 1) {
regions({ id: node.id }, {}).then((res) => {
if (res.code == 0) {
res.data.list.map((item) => {
let obj = {
name: item.name,
id: item.id,
leaf: node.level >= 1,
isChange: false
};
nodes.push(obj);
});
resolve(nodes);
} else {
ElMessage.error(res.msg)
}
});
}
}
const handleCheckChange = (data, checked, indeterminate) => {
if (checked) {
treeForm.value.setCheckedKeys([data.id])
}
}
</script>
<style lang="scss" scoped>
/* 隐藏掉el-tree中有disabled属性的框框 */
::v-deep .el-checkbox.is-disabled {
display: none !important;
}
</style>
中返回一致
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐
https://blog.csdn.net/m0_75025344/article/details/130880782?spm=1001.2014.3001.5501

所有评论(0)