SweetAlert2 - 漂亮可定制的 JavaScript 弹窗

https://sweetalert2.github.io/
https://github.com/sweetalert2/sweetalert2

安装:

bash 复制代码
npm install sweetalert2

封装:

javascript 复制代码
import Swal from 'sweetalert2/dist/sweetalert2.js'
import 'sweetalert2/src/sweetalert2.scss'

/**
 * 
 * @param {string} icon  - icon类型 success error warning info question
 * @param {string} title - 标题
 * @param {string} text  - 内容
 * 
 * @param {boolean} showConfirmButton  - 是否开启确认按钮
 * @param {boolean} showCancelButton   - 是否开启取消按钮
 * @param {boolean} showDenyButton     - 是否开启拒绝按钮
 * @param {string} confirmButtonText   - 确认按钮文本
 * @param {string} cancelButtonText    - 取消按钮文本
 * @param {string} denyButtonText      - 拒绝按钮文本
 * @param {string} confirmButtonColor  - 确认按钮颜色
 * @param {string} cancelButtonColor   - 取消按钮颜色
 * @param {string} denyButtonColor     - 拒绝按钮颜色
 * 
 * @param {string} imageUrl     - 
 * @param {string} imageHeight  - 
 * @param {string} imageAlt     - 
 * 
 * @param {number} timer        - 持续时间
 * @param {boolean} draggable   - 是否拖拽
 * @param {boolean} heightAuto  - 是否开启自动高度
 * 
 * @return {Object}
 */
export async function handleSwal({
  icon,
  title = '',
  text = '',
  // 
  showConfirmButton = true,
  showCancelButton = true,
  showDenyButton = false,
  confirmButtonText = "确认",
  cancelButtonText = `取消`,
  denyButtonText = `拒绝`,
  confirmButtonColor,
  cancelButtonColor,
  denyButtonColor,
  // 
  imageUrl,
  imageHeight,
  imageAlt,
  // 
  // footer
  //
  timer,
  draggable = false,
  heightAuto = false
} = {}) {
  const res = await Swal.fire({
    icon: icon || 'question',
    title,
    text,
    // 按钮
    showConfirmButton,
    showCancelButton,
    showDenyButton,
    confirmButtonText,
    cancelButtonText,
    denyButtonText,
    confirmButtonColor,
    cancelButtonColor,
    denyButtonColor,
    // 图片内容
    imageUrl,
    imageHeight,
    imageAlt,
    // 底部内容
    // footer,
    // 配置
    timer, // 持续时间
    draggable, // 是否拖动
    heightAuto // 是否自动高度
  })
  return res
}
相关推荐
YHHLAI16 小时前
[特殊字符] Agent 智能体开发实战 · 第一课:Tool Use —— 让大模型自动干活
前端·人工智能
nuIl16 小时前
我把 5 个编码 Agent 塞进了一个 npm 包
前端·agent·claude
L-影17 小时前
FastAPI 静态文件:Web 页面的“固定展柜”与“加速引擎”
前端·fastapi
陪我去看海17 小时前
受够了 AI 写完代码留下一堆端口?我做了一个端口管理App!
前端·macos·vibecoding
Xuepoo17 小时前
我抛弃了 DOM,但保留了无障碍访问
前端
李明卫杭州17 小时前
Vue2 vs Vue3 的 h 函数:渲染函数完整迁移指南
前端
月光刺眼17 小时前
用LangChain 打造第一个 Agent:LLM 大脑与 Tool 手脚的完整闭环
javascript·人工智能·全栈
星栈17 小时前
LiveView 的认证系统:从登录到权限,我一开始以为有 `current_user` 就算完事了
前端·前端框架·elixir
在因斯坦17 小时前
摸摸鱼之前端自己研究 Jenkins 自动化部署
前端
西西学代码17 小时前
Flutter---底部导航栏(2)
开发语言·javascript·flutter