handleDragStart(e, nodeDefinition)}
+ style={{
+ display: 'flex',
+ alignItems: 'center',
+ gap: '8px',
+ padding: '8px 12px',
+ borderRadius: '6px',
+ border: '1px solid #e5e7eb',
+ background: 'white',
+ cursor: 'grab',
+ transition: 'all 0.2s ease-in-out',
+ marginBottom: '6px'
+ }}
+ onMouseEnter={(e) => {
+ e.currentTarget.style.background = '#f9fafb';
+ e.currentTarget.style.borderColor = nodeDefinition.color;
+ e.currentTarget.style.transform = 'translateX(2px)';
+ }}
+ onMouseLeave={(e) => {
+ e.currentTarget.style.background = 'white';
+ e.currentTarget.style.borderColor = '#e5e7eb';
+ e.currentTarget.style.transform = 'translateX(0)';
+ }}
+ onDragStart={(e) => {
+ e.currentTarget.style.cursor = 'grabbing';
+ handleDragStart(e, nodeDefinition);
+ }}
+ onDragEnd={(e) => {
+ e.currentTarget.style.cursor = 'grab';
+ }}
+ >
+
+ {nodeDefinition.icon}
+
+
+
+ {nodeDefinition.nodeName}
+
+
+ {nodeDefinition.description}
+
+
+
+ );
+
+ // 分类标题映射
+ const categoryTitles = {
+ [NodeCategory.EVENT]: '🎯 事件节点',
+ [NodeCategory.TASK]: '📋 任务节点',
+ [NodeCategory.GATEWAY]: '🔀 网关节点',
+ [NodeCategory.CONTAINER]: '📦 容器节点'
+ };
+
+ return (
+