| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- <template>
- <div class="tree-list">
- <el-tree :data="treeList" :props="defaultProps" :show-checkbox='isCheckbox' @check-change="handleCheckChange"
- highlight-current @node-click="treeClick" />
- </div>
- </template>
- <script setup lang="ts">
- import { useRouter } from "vue-router";
- const emits = defineEmits(["nodeId"]);
- const props = defineProps({
- isCheckbox: {
- type: Boolean,
- default: false,
- },
- });
- const defaultProps = {
- label: "name",
- children: "children",
- };
- const treeList = ref([]);
- const handleCheckChange = (data, checked) => {};
- const treeClick = (node, val) => {
- emits("nodeId", node.id);
- };
- const phone = JSON.parse(localStorage.getItem("userInfo")).username;
- const getTree = async (api) => {
- const { data } = await api({
- userId: phone,
- });
- treeList.value = data;
- };
- // 暴露给父组件的方法
- defineExpose({ getTree });
- </script>
- <style scoped lang="scss">
- .tree-list{
- width:100%;
- }
- :deep(
- .el-tree--highlight-current
- .el-tree-node.is-current
- > .el-tree-node__content
- ) {
- background-color: #f6fbff; /* 例如: #42b983 */
- border-right: 2px solid #0083ff;
- }
- :deep(.el-tree .el-tree-node > .el-tree-node__content) {
- height: 32px;
- }
- </style>
|