(node: TreeNodeData<TItem, TFolder>)
| 675 | // ==================== 右键菜单 ==================== |
| 676 | |
| 677 | const getContextMenuItems = (node: TreeNodeData<TItem, TFolder>): MenuProps['items'] => { |
| 678 | if (node.isFolder) { |
| 679 | const folder = node.data as TFolder |
| 680 | const customItems = getFolderMenuItems?.(folder) || [] |
| 681 | return [ |
| 682 | ...(onCreateItemInFolder |
| 683 | ? [ |
| 684 | { |
| 685 | key: 'createItem', |
| 686 | label: createItemLabel || '新建项目', |
| 687 | icon: <PlusOutlined />, |
| 688 | onClick: ({ domEvent }) => { |
| 689 | domEvent.stopPropagation() |
| 690 | onCreateItemInFolder(folder.id) |
| 691 | } |
| 692 | } |
| 693 | ] |
| 694 | : []), |
| 695 | ...(onCreateSubFolder |
| 696 | ? [ |
| 697 | { |
| 698 | key: 'createFolder', |
| 699 | label: createFolderLabel || '新建文件夹', |
| 700 | icon: <FolderAddOutlined />, |
| 701 | onClick: ({ domEvent }) => { |
| 702 | domEvent.stopPropagation() |
| 703 | onCreateSubFolder(folder.id) |
| 704 | } |
| 705 | } |
| 706 | ] |
| 707 | : []), |
| 708 | ...(onCreateItemInFolder || onCreateSubFolder ? [{ type: 'divider' as const }] : []), |
| 709 | { |
| 710 | key: 'rename', |
| 711 | label: '重命名', |
| 712 | icon: <EditOutlined />, |
| 713 | extra: getShortcutLabel('treeRename'), |
| 714 | onClick: ({ domEvent }) => { |
| 715 | domEvent.stopPropagation() |
| 716 | startRenameByKey(folder.id) |
| 717 | } |
| 718 | }, |
| 719 | ...customItems, |
| 720 | { type: 'divider' }, |
| 721 | ...(clearFolder |
| 722 | ? [ |
| 723 | { |
| 724 | key: 'clear', |
| 725 | label: '清空文件夹', |
| 726 | icon: <ClearOutlined />, |
| 727 | danger: true, |
| 728 | onClick: ({ domEvent }) => { |
| 729 | domEvent.stopPropagation() |
| 730 | handleClearFolder(folder) |
| 731 | } |
| 732 | } |
| 733 | ] |
| 734 | : []), |
no test coverage detected