import { useState } from 'react' import { Button, Modal, Steps, Tag } from 'antd' import { QuestionCircleOutlined, BulbOutlined, WarningOutlined, CheckCircleOutlined, InfoCircleOutlined, } from '@ant-design/icons' import './ButtonWithGuide.css' /** * 带引导的按钮组件 - 简洁现代设计 * 在按钮旁边显示一个简洁的帮助图标,点击后显示详细引导 */ function ButtonWithGuide({ label, icon, type = 'default', danger = false, disabled = false, onClick, guide, size = 'middle', ...restProps }) { const [showGuideModal, setShowGuideModal] = useState(false) const handleGuideClick = (e) => { e.stopPropagation() if (guide) { setShowGuideModal(true) } } return ( <>
{guide && !disabled && ( )}
{/* 引导弹窗 */} {guide && ( {guide.icon || icon} {guide.title} {guide.badge && ( {guide.badge.text} )} } open={showGuideModal} onCancel={() => setShowGuideModal(false)} footer={[ , ]} width={600} className="button-guide-modal" > {/* 功能描述 */} {guide.description && (
功能说明

{guide.description}

)} {/* 使用步骤 */} {guide.steps && guide.steps.length > 0 && (
操作步骤
({ title: `步骤 ${index + 1}`, description: step, status: 'wait', }))} className="guide-steps" />
)} {/* 使用场景 */} {guide.scenarios && guide.scenarios.length > 0 && (
适用场景
)} {/* 注意事项 */} {guide.warnings && guide.warnings.length > 0 && (
注意事项
)} {/* 快捷键和权限 */} {(guide.shortcut || guide.permission) && (
{guide.shortcut && (
快捷键: {guide.shortcut}
)} {guide.permission && (
权限要求: {guide.permission}
)}
)}
)} ) } export default ButtonWithGuide