// 现代化UI组件库 const UI = { // 显示通知消息 notify(message, type = 'info', duration = 3000) { const container = document.getElementById('notification-container') || this.createNotificationContainer(); const notification = document.createElement('div'); notification.className = `notification notification-${type}`; notification.innerHTML = `
${this.getIcon(type)} ${message}
`; container.appendChild(notification); setTimeout(() => notification.classList.add('show'), 10); setTimeout(() => { notification.classList.remove('show'); setTimeout(() => notification.remove(), 300); }, duration); }, // 显示确认对话框 confirm(title, message, onConfirm, onCancel) { const modal = document.createElement('div'); modal.className = 'ui-modal'; modal.innerHTML = `

${title}

${message}

`; document.body.appendChild(modal); setTimeout(() => modal.classList.add('show'), 10); modal.querySelector('[data-action="confirm"]').onclick = () => { this.closeModal(modal); if (onConfirm) onConfirm(); }; modal.querySelector('[data-action="cancel"]').onclick = () => { this.closeModal(modal); if (onCancel) onCancel(); }; modal.querySelector('.ui-modal-overlay').onclick = () => { this.closeModal(modal); if (onCancel) onCancel(); }; }, // 显示输入对话框 prompt(title, placeholder, defaultValue, onConfirm, onCancel) { const modal = document.createElement('div'); modal.className = 'ui-modal'; modal.innerHTML = `

${title}

`; document.body.appendChild(modal); setTimeout(() => modal.classList.add('show'), 10); const input = modal.querySelector('.ui-input'); input.focus(); input.select(); const confirm = () => { const value = input.value.trim(); if (value) { this.closeModal(modal); if (onConfirm) onConfirm(value); } }; modal.querySelector('[data-action="confirm"]').onclick = confirm; input.onkeypress = (e) => { if (e.key === 'Enter') confirm(); }; modal.querySelector('[data-action="cancel"]').onclick = () => { this.closeModal(modal); if (onCancel) onCancel(); }; modal.querySelector('.ui-modal-overlay').onclick = () => { this.closeModal(modal); if (onCancel) onCancel(); }; }, // 关闭模态框 closeModal(modal) { modal.classList.remove('show'); setTimeout(() => modal.remove(), 300); }, // 创建通知容器 createNotificationContainer() { const container = document.createElement('div'); container.id = 'notification-container'; document.body.appendChild(container); return container; }, // 获取图标 getIcon(type) { const icons = { success: '✓', error: '✕', warning: '⚠', info: 'ℹ' }; return icons[type] || icons.info; } };