Skip to content

Commit 3f9e4b6

Browse files
committed
Merge branch 'elsa-0.2.x'
2 parents 51cfc7d + f6a5246 commit 3f9e4b6

File tree

1 file changed

+41
-4
lines changed

1 file changed

+41
-4
lines changed

framework/elsa/fit-elsa-react/src/components/flowRunComponent/SectionContent.jsx

Lines changed: 41 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -94,19 +94,56 @@ const generateTreeData = (data, isFirstLevel = true) => {
9494
const SectionContent = ({data}) => {
9595
const treeData = generateTreeData(data);
9696

97+
useEffect(() => {
98+
const handleClickOutside = (e) => {
99+
// 如果点击的不是树节点内容区域
100+
if (!e.target.closest('.ant-tree-node-content-wrapper')) {
101+
window.getSelection().removeAllRanges();
102+
}
103+
};
104+
105+
document.addEventListener('mousedown', handleClickOutside);
106+
return () => {
107+
document.removeEventListener('mousedown', handleClickOutside);
108+
};
109+
}, []);
110+
97111
useEffect(() => {
98112
removeFirstLevelLine();
113+
114+
// 监听全局 keydown 事件
115+
const handleKeyDown = (e) => {
116+
if (e.ctrlKey && e.key === 'c') {
117+
const selectedText = window.getSelection().toString();
118+
if (selectedText) {
119+
e.preventDefault(); // 阻止默认行为(可选)
120+
navigator.clipboard.writeText(selectedText)
121+
.catch(err => console.error('Copy failed:', err));
122+
}
123+
}
124+
};
125+
126+
document.addEventListener('keydown', handleKeyDown);
127+
return () => document.removeEventListener('keydown', handleKeyDown);
99128
}, [treeData]);
100129

101130
return (<>
102131
<Tree showLine={{showLeafIcon: false}}
103132
switcherIcon={({expanded}) => <TreeSwitcherIcon expanded={expanded}/>}
104133
defaultExpandAll={false}
105134
treeData={treeData}
106-
titleRender={(nodeData) => {
107-
const className = nodeData.isFirstLevel && nodeData.children.length === 0 ? 'first-level' : 'not-first';
108-
return <span className={className}>{nodeData.title}</span>;
109-
}}
135+
titleRender={(nodeData) => (
136+
<span
137+
style={{
138+
userSelect: 'text', // 允许选择文本
139+
WebkitUserSelect: 'text', // Safari 兼容
140+
MozUserSelect: 'text', // Firefox 兼容
141+
}}
142+
onMouseDown={(e) => e.stopPropagation()} // 阻止拖拽
143+
>
144+
{nodeData.title}
145+
</span>
146+
)}
110147
/>
111148
</>);
112149
};

0 commit comments

Comments
 (0)