# IEDialog **Repository Path**: ie81/iedialog ## Basic Information - **Project Name**: IEDialog - **Description**: 一个轻量级、功能丰富的弹窗组件,支持模态框、消息提示、媒体预览等功能。 - **Primary Language**: TypeScript - **License**: MIT - **Default Branch**: main - **Homepage**: https://codepen.io/ie81com/pen/azojGvM - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-01-19 - **Last Updated**: 2025-01-20 ## Categories & Tags **Categories**: Uncategorized **Tags**: dialog, Layer, 弹窗, 消息 ## README # IEDialog 弹窗组件 一个轻量级、功能丰富的弹窗组件,支持模态框、消息提示、媒体预览等功能。 ## 特性 - 🚀 轻量级,无外部依赖 - 💫 丰富的动画效果 - 🎨 多种内置样式(default、info、success、warning、error) - 📱 响应式设计,自适应各种屏幕尺寸 - 🖼️ 支持图片和视频预览,支持多媒体轮播 - ⌨️ 完整的 TypeScript 类型支持 - 🎯 支持异步操作和加载状态 - 🎭 支持自定义 HTML 内容和表单 - 🔄 支持进度条倒计时 ## 演示地址 [在 CodePen 查看演示](https://codepen.io/ie81com/pen/azojGvM) ## 安装 ```bash npm install iedialog ``` ## 使用方法 ### 引入组件 ```typescript import { IEDialog } from 'iedialog'; import "iedialog/css"; ``` ### 基础用法 #### 基础弹窗 ```typescript // 基础弹窗 IEDialog.modal('这是一个基础弹窗示例'); // 自定义标题和宽度 IEDialog.modal('自定义弹窗内容', { title: '自定义标题', width: '500px' }); // 不显示关闭按钮 IEDialog.modal('这个弹窗没有关闭按钮', { showClose: false }); // 禁止点击遮罩层关闭 IEDialog.modal('这个弹窗禁止点击遮罩层关闭', { maskClosable: false }); ``` #### 不同风格的弹窗 ```typescript // 默认风格 IEDialog.modal('默认风格弹窗'); // 信息提示 IEDialog.modal('这是一条信息提示', 'info'); // 成功提示 IEDialog.modal('操作成功完成!', 'success'); // 警告提示 IEDialog.modal('请注意,这是一个警告信息', 'warning'); // 错误提示 IEDialog.modal('操作失败,请重试', 'error'); ``` #### 消息提示 ```typescript // 基础消息 IEDialog.message('这是一条消息提示'); // 成功消息,3秒后自动关闭 IEDialog.message('操作成功!', 'success'); // 自定义显示时间 IEDialog.message('这条消息会显示5秒', { duration: 5000, style: 'info' }); // 不自动关闭,显示关闭按钮 IEDialog.message('这条消息不会自动关闭', { duration: 0, showClose: true }); // 不显示图标 IEDialog.message('这条消息不显示图标', { showIcon: false }); ``` #### 确认对话框 ```typescript // 基础确认框 IEDialog.modal('确定要删除这条记录吗?', { title: '删除确认', style: 'warning', maskClosable: false, showClose: false, onConfirm: () => console.log('确认删除'), onCancel: () => console.log('取消删除') }); // 自定义按钮文本 IEDialog.modal('确定要执行此操作吗?', { confirmText: '立即执行', cancelText: '稍后再说' }); // 异步操作 IEDialog.modal('确定要提交数据吗?', { async onConfirm() { try { await submitData(); IEDialog.message('提交成功', 'success'); } catch (error) { IEDialog.message('提交失败:' + error.message, 'error'); } } }); ``` #### 加载提示 ```typescript // 基础加载 const loading = IEDialog.loading(); // 自定义加载文本 const loading = IEDialog.loading('正在提交数据...'); // 异步操作示例 async function handleSubmit() { const loading = IEDialog.loading('正在提交...'); try { await submitData(); loading.close(); IEDialog.message('提交成功', 'success'); } catch (error) { loading.close(); IEDialog.message('提交失败', 'error'); } } ``` #### 媒体预览 ```typescript // 单张图片预览 IEDialog.image('https://example.com/image.jpg', '图片标题'); // 自定义图片预览 IEDialog.image('https://example.com/image.jpg', { title: '图片预览', width: '80%', maskClosable: true, onClose: () => console.log('图片预览已关闭') }); // 单个视频预览 IEDialog.video('https://example.com/video.mp4', '视频标题'); // 自定义视频预览 IEDialog.video('https://example.com/video.mp4', { title: '视频预览', width: '70%', onMediaError: () => IEDialog.message('视频加载失败', 'error') }); // 多媒体预览 IEDialog.media([ { type: 'image', url: 'https://example.com/image1.jpg', title: '图片1' }, { type: 'video', url: 'https://example.com/video.mp4', title: '视频' }, { type: 'image', url: 'https://example.com/image2.jpg', title: '图片2' } ], { currentIndex: 0, // 从第一个开始预览 width: '80%', onMediaError: () => IEDialog.message('媒体加载失败', 'error') }); ``` #### 自定义 HTML 内容 ```typescript // 自定义 HTML 内容 IEDialog.modal(`
支持自定义 HTML 内容,可以创建更丰富的交互界面