更新记录

1.0.4(2024-03-26)

增加position属性,配置弹窗显示位置,支持 center/bottom

增加示例工程

1.0.3(2024-03-18)

添加vue3版本支持、vue3与vue2的组件代码分开为单独的文件;

vue2的为 cc-dialog.vue、vue3的为 cc-dialog-v3.vue

修改弹窗默认样式

1.0.2(2024-03-16)

更新使用说明文档

添加组件支持的一些属性

查看更多

平台兼容性

Vue2 Vue3
App 快应用 微信小程序 支付宝小程序 百度小程序 字节小程序 QQ小程序
HBuilderX 3.6.9 app-vue × × × ×
钉钉小程序 快手小程序 飞书小程序 京东小程序
× × × ×
H5-Safari Android Browser 微信浏览器(Android) QQ浏览器(Android) Chrome IE Edge Firefox PC-Safari
× × × × × ×

cc-dialog使用说明

本弹窗组件不做样式上的干扰、样式完全靠开发者自定义了

默认写的样式是我公司UI出的。

view 部分

<button @click="openDialog">打开弹窗</button>
<cc-dialog ref="dialog"></cc-dialog>

vue2

主要是工作中经常遇到弹窗样式需要自定义的。uni.showModal 样式又修改不了。

以前写过简单的,通过父子组件传值的方式。

<cc-dialog
  title="弹窗标题"
  content="弹窗内容"
  @cancel="cancel"
  @confirm="confirm"
/>

如上代码:

这种,页面上只有一个弹窗还可以。但是弹窗多了。要定义很多属性、很多方法,太麻烦了。

于是就开发了这么一个弹窗组件

另:vue3 setup 写法的后续完善。目前仅支持一些简单的用法,可满足一般使用。。可自定义。很简单。

本组件仅测试了H5和微信小程序

open 方法传入对象,与 uni.showModal 写法保持一致

vue2、vue3调用open方法后传入的属性一致

javscript 部分

openDialog() {
    const dialog = this.$refs.dialog
    dialog.open({
        title: '这是标题',
        content: '这是内容<br>第二行',
        confirmText: '确定',
        cancelText: '取消',
        openType: 'feedback',
        position: 'bottom',
        confirm: res => {
            console.log('点击了确定按钮');
            dialog.close()
        },
        cancel: res => {
            console.log('点击了取消按钮');
            dialog.close()
        }
    })
},

属性说明

属性名 类型 默认值 属性说明
title String 弹窗标题
content String 弹窗内容。不传则不显示
cancelText String 按钮文字、一般是左侧按钮(取消)。不传则不显示
confirmText String 按钮文字、一般是右侧按钮(确定)。不传则不显示
disabled Boolean false 右边(确定)按钮是否禁用
openType String 同 button 按钮的 open-type 属性
position String center 同 uni-popup 的 type 属性,支持 center/bottom
showClose Boolean false 弹窗关闭按钮,cancelText和confirmText都没传时也会显示
animationClass String 弹窗出现时的动画类名,支持animate.css中所有动画,并支持自定义
好像微信小程序无效。不知道为什么。
confirm function 确定(右侧)按钮回调
cancel function 取消(左侧)按钮回调

插槽说明

名称 说明
content 自定义弹窗主体内容部分、默认只支持文本,想要显示图片、表单或者其他类型内容,可以使用此插槽
footer 自定义弹窗底部内容、若弹窗底部按钮不满足需求、可使用此插槽

vue3

import {
    ref
  } from "vue";
  const dialog = ref()
  const openDialog = () => {
    console.log(dialog.value);
    dialog.value.open({
      title: '温馨提示',
      content: '内容',
      cancelText: '取消',
      confirmText: '确定',
      position: 'bottom',
      disabled: true,
      showClose: true,
      animationClass: 'animate__flipInX',
      confirm: (res) => {
        dialog.value.close()
      },
      cancel: () => {
        dialog.value.close()
      }
    })
  }

隐私、权限声明

1. 本插件需要申请的系统权限列表:

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

许可协议

MIT协议

使用中有什么不明白的地方,就向插件作者提问吧~ 我要提问