| | |
| | | * @version: |
| | | * @Date: 2024-06-19 11:07:21 |
| | | * @LastEditors: Ben Lin |
| | | * @LastEditTime: 2024-06-21 13:31:30 |
| | | * @LastEditTime: 2024-10-22 10:34:03 |
| | | --> |
| | | <template> |
| | | <div class="m-4 mr-0 overflow-hidden bg-white"> |
| | |
| | | :treeData="treeData" |
| | | :renderIcon="createIcon" |
| | | :fieldNames="fieldNames" |
| | | :selectedKeys="selectedKeys" |
| | | @select="handleSelect" |
| | | @handleAdd="handleAdd" |
| | | @unselect="UnSelect" |
| | | :beforeRightClick="props.beforeRightClick" |
| | | :defaultExpandAll="true" |
| | | ref="tigerTree" |
| | | /> |
| | | </div> |
| | | </template> |
| | | <script lang="ts" setup> |
| | | import { onMounted, ref } from 'vue'; |
| | | import { FieldNames, TigerTree, TreeItem } from '/@/components/TigerTree' |
| | | import { onMounted, ref, watch } from 'vue'; |
| | | import { |
| | | ContextMenuItem, |
| | | ContextMenuOptions, |
| | | FieldNames, |
| | | TigerTree, |
| | | TreeItem, |
| | | } from '/@/components/TigerTree'; |
| | | import { EventDataNode } from 'ant-design-vue/lib/tree'; |
| | | |
| | | defineOptions({ name: 'CustTree' }); |
| | | |
| | |
| | | type: String, |
| | | }, |
| | | treeData: { |
| | | type: Array as PropType<TreeItem[]>, |
| | | type: Array as PropType<TreeItem[]>, |
| | | }, |
| | | createIcon: { |
| | | type: Function as PropType<(params: Recordable<any>) => string>, |
| | | }, |
| | | add: {type: Boolean,}, |
| | | fieldNames: {type: Object as PropType<FieldNames>}, |
| | | add: { type: Boolean }, |
| | | fieldNames: { type: Object as PropType<FieldNames> }, |
| | | beforeRightClick: { |
| | | type: Function as PropType<(...arg: any) => ContextMenuItem[] | ContextMenuOptions>, |
| | | default: undefined, |
| | | }, |
| | | }); |
| | | const tigerTree = ref(null); |
| | | const selectedKeys = ref<KeyType[]>([]) |
| | | |
| | | function handleSelect(keys, e) { |
| | | emit('select', keys[0], e); |
| | |
| | | emit('handleAdd'); |
| | | } |
| | | |
| | | |
| | | function UnSelect(node) { |
| | | emit('UnSelect', node); |
| | | } |
| | | |
| | | function expandAll(expandAll: boolean) { |
| | | if (tigerTree.value) { |
| | | tigerTree.value.expandAll(expandAll); |
| | | } |
| | | } |
| | | |
| | | function getExpandedKeys() { |
| | | if (tigerTree.value) { |
| | | return tigerTree.value.getExpandedKeys(); |
| | | } |
| | | return []; |
| | | } |
| | | |
| | | function setSelectedKeys(keys: KeyType[]) { |
| | | selectedKeys.value = keys; |
| | | if (tigerTree.value) { |
| | | tigerTree.value.setSelectedKeys(keys); |
| | | } |
| | | } |
| | | |
| | | function getSelectedKeys() { |
| | | if (tigerTree.value) { |
| | | return tigerTree.value.getSelectedKeys(); |
| | | } |
| | | return []; |
| | | } |
| | | |
| | | function getNodeById(Id: string) { |
| | | if (tigerTree.value) { |
| | | return tigerTree.value.getNodeById(Id); |
| | | } |
| | | return {}; |
| | | } |
| | | |
| | | defineExpose({ |
| | | getExpandedKeys, |
| | | expandAll, |
| | | setSelectedKeys, |
| | | getSelectedKeys, |
| | | getNodeById |
| | | }); |
| | | |
| | | onMounted(() => {}); |
| | | </script> |