HcTreeData.vue 948 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. <template>
  2. <ElTree class="hc-tree-node tree-line" :class="ui" ref="ElTreeRef" :props="ElTreeProps" :data="datas" show-checkbox accordion node-key="primaryKeyId" :indent="0" @check="ElTreeCheckChange"></ElTree>
  3. </template>
  4. <script setup>
  5. import {ref,watch} from "vue";
  6. //参数
  7. const props = defineProps({
  8. ui: {
  9. type: String,
  10. default: ''
  11. },
  12. datas: {
  13. type: Array,
  14. default: () => ([])
  15. },
  16. })
  17. //变量
  18. const ElTreeRef = ref(null)
  19. const treeData = ref(props.datas)
  20. const ElTreeProps = ref({
  21. label: 'title',
  22. children: 'children',
  23. isLeaf: 'notExsitChild'
  24. })
  25. //监听
  26. watch(() => [
  27. props.datas,
  28. ], ([ datas ]) => {
  29. treeData.value = datas
  30. })
  31. //事件
  32. const emit = defineEmits(['change'])
  33. //节点勾选
  34. const ElTreeCheckChange = (data, checkeds) => {
  35. emit('change', {data, checkeds})
  36. }
  37. </script>
  38. <style lang="scss" scoped>
  39. @import "../../../../styles/app/tree.scss";
  40. </style>