弹窗 - showModal

/**
* 封装 uni.showModal
* @param {Object|String} options 配置对象或提示内容
* @param {String} [options.title='提示'] 标题
* @param {String} options.content 提示内容
* @param {Boolean} [options.showCancel=true] 是否显示取消按钮
* @param {String} [options.confirmText='确定'] 确认按钮文字
* @param {String} [options.cancelText='取消'] 取消按钮文字
* @param {String} [options.confirmColor='#3CC51F'] 确认按钮颜色
* @param {String} [options.cancelColor='#999'] 取消按钮颜色
* @param {Function} [callback] 回调函数,接收 confirm 参数
* @return {Promise} 返回 Promise 对象
*/
export function showModal(options, callback) {
// 处理参数,支持直接传入字符串内容
if (typeof options === 'string') {
options = {
content: options
}
} // 默认配置
const defaultOptions = {
title: '提示',
showCancel: true,
confirmText: '确定',
cancelText: '取消',
confirmColor: '#3CC51F',
cancelColor: '#999'
} // 合并配置
const modalOptions = {
...defaultOptions,
...options
} // 返回 Promise
return new Promise((resolve, reject) => {
uni.showModal({
...modalOptions,
success: (res) => {
// 执行回调函数
if (typeof callback === 'function') {
callback(res.confirm)
}
// Promise 处理
if (res.confirm) {
resolve(res)
} else if (res.cancel) {
reject(res)
}
},
fail: (err) => {
// 执行回调函数
if (typeof callback === 'function') {
callback(false)
}
reject(err)
}
})
})
} // 导出快捷方法
export const modal = {
// 普通提示
alert(content, title = '提示') {
return showModal({
content,
title,
showCancel: false
})
}, // 确认对话框
confirm(content, title = '提示') {
return showModal({
content,
title
})
}, // 删除确认
deleteConfirm(content = '确定要删除吗?', title = '删除提示') {
return showModal({
content,
title,
confirmText: '删除',
confirmColor: '#DD524D'
})
}, // 错误提示
error(content, title = '哎呀,出现错误了') {
return showModal({
content,
title,
showCancel: false,
confirmText: '我知道了',
confirmColor: '#DD524D'
})
}
}

「Uniapp」一些常用方法的封装的更多相关文章

  1. 「 深入浅出 」集合List

    第一篇文章 「 深入浅出 」java集合Collection和Map 主要讲了对集合的整体介绍,本篇文章主要讲List相对于Collection新增的一些重要功能以及其重要子类ArrayList.Li ...

  2. JavaScript OOP 之「创建对象」

    工厂模式 工厂模式是软件工程领域一种广为人知的设计模式,这种模式抽象了创建具体对象的过程.工厂模式虽然解决了创建多个相似对象的问题,但却没有解决对象识别的问题. function createPers ...

  3. 一个「学渣」从零开始的Web前端自学之路

    从 13 年专科毕业开始,一路跌跌撞撞走了很多弯路,做过餐厅服务员,进过工厂干过流水线,做过客服,干过电话销售可以说经历相当的“丰富”. 最后的机缘巧合下,走上了前端开发之路,作为一个非计算机专业且低 ...

  4. LOJ2722 「NOI2018」情报中心

    「NOI2018」情报中心 题目描述 C 国和D 国近年来战火纷飞. 最近,C 国成功地渗透进入了D 国的一个城市.这个城市可以抽象成一张有$n$ 个节点,节点之间由$n - 1$ 条双向的边连接的无 ...

  5. 「Sqlserver」数据分析师有理由爱Sqlserver之二-像使用Excel一般地使用Sqlserver

    大家一谈数据库,就觉得非常高深莫测,深不见底,非凡人敢去触摸.但Excel的话,没人敢说自己不会使用吧(相反一大堆人的简历上写着精通OFFICE所有软件套件).换作其他非微软厂商的数据库,的确很容易产 ...

  6. 「 深入浅出 」集合Map

    系列文章: 「 深入浅出 」java集合Collection和Map 「 深入浅出 」集合List 「 深入浅出 」集合Set 前面已经介绍完了Collection接口下的集合实现类,今天我们来介绍M ...

  7. iOS 9,为前端世界都带来了些什么?「译」 - 高棋的博客

    2015 年 9 月,Apple 重磅发布了全新的 iPhone 6s/6s Plus.iPad Pro 与全新的操作系统 watchOS 2 与 tvOS 9(是的,这货居然是第 9 版),加上已经 ...

  8. SpringBoot图文教程10—模板导出|百万数据Excel导出|图片导出「easypoi」

    有天上飞的概念,就要有落地的实现 概念十遍不如代码一遍,朋友,希望你把文中所有的代码案例都敲一遍 先赞后看,养成习惯 SpringBoot 图文教程系列文章目录 SpringBoot图文教程1「概念+ ...

  9. SpringBoot图文教程14—SpringBoot集成EasyExcel「上」

    有天上飞的概念,就要有落地的实现 概念十遍不如代码一遍,朋友,希望你把文中所有的代码案例都敲一遍 先赞后看,养成习惯 SpringBoot 图文教程系列文章目录 SpringBoot图文教程1「概念+ ...

  10. 「MoreThanJava」Day2:变量、数据类型和运算符

    「MoreThanJava」 宣扬的是 「学习,不止 CODE」,本系列 Java 基础教程是自己在结合各方面的知识之后,对 Java 基础的一个总回顾,旨在 「帮助新朋友快速高质量的学习」. 当然 ...

随机推荐

  1. BundleFusion+WIN11+VS2019 + CUDA11.7环境配置

    BundleFusion+WIN11+VS2019环境配置 Step1 一开始会提示你重定解决方案,点是即可,如果点错了,也可以在这里再点一次: 简要记录一下环境的配置过程,刚下载下来BundleFu ...

  2. 【Unity3D】把相机视角放置到编辑器当前位置视角

    [Unity3D]把相机视角放置到编辑器当前位置视角 零.问题 Unity开发过程中,经常要将相机调整值对应位置,但是通过数值来调有时候不怎么方便,有什么方法可以快速让相机的视角与编辑器当前视角同步呢 ...

  3. 第八届机械工程与应用复合材料国际会议(MEACM 2025)

    第八届机械工程与应用复合材料国际会议(MEACM 2025) 吉隆坡,马来西亚 2025年8月25-27日 会议简介:2025年第八届机械工程与应用复合材料国际会议(MEACM 2025)将于2025 ...

  4. symfony里实现resfull api并实现权限控制

    ---------------------------------------------------------- 1.restfull api部分 注:笔记,自己摸索出来的,路子野,仅供参考. - ...

  5. 使用dtree制作一个简单的网站导航(后台管理)

    目录 效果展示(轻喷) dtree简介 涉及技术 目录结构 各个文件详情 index.html top.html left.html main.html cpright.html dtree下载地址 ...

  6. 【记录】Python3|将元组/列表/集合或字典解析成多个参数传入函数,以及定义可变参数函数

    [说人话版] 将元组/列表/集合或字典直接作为多个函数参数传入,只需要添加*或**即可. 样例如下. 在Python中,将元组.列表.集合或字典作为多个函数参数传入是一种非常方便的技巧,可以帮助我们在 ...

  7. 如何搭建基于surging的分布式直播流媒体

    前言 这几天一直在优化测试dotnetty,代码是基于https://github.com/cuteant/SpanNetty,基础上修改优化的,然后发布搭建了分布式rtmp直播服务,内存一直稳定在7 ...

  8. ZYNQ PL端向PS端发出中断

    在之前的项目中知道zynq的PS端可以通过AXI总线向PL端的IP核写入数据,而PL端也可以通过AXI总线去访问PS端的DDR等设备.然而当PL端的IP在接收到PS端的指令完成操作后,该如何告知PS端 ...

  9. 从零开始搭建React+vite企业级项目框架

    @charset "UTF-8"; .markdown-body { line-height: 1.75; font-weight: 400; font-size: 15px; o ...

  10. Git-如何区分使用个人账户和公司账户

    个人日常编写点小玩具,code 的版本控制一般托管于GitHub,但是公司内部使用 GitLb 来进行代码版本控制,这样为了能够在同一台 MacBook(自带,公司有补贴)日常区分出两个账户,通过翻阅 ...