uniapp ios 授权弹窗 uniapp弹出框怎么实现

news2025/1/23 3:13:59

新版本的信息弹窗组件

可以弹出很多条信息,并单独控制消失时间、点击消失。

uniapp ios 授权弹窗 uniapp弹出框怎么实现_uniapp ios 授权弹窗

用循环来生成很多个弹窗,用this.$refs来传值,并添加数组。

1.布局
2.js

具体流程。需要一个弹窗,基本信息传入组件,处理后添加入数组,显示弹窗,过几秒消失,从数组移除元素。

methods:{
       //初始化一些数据
            init:function(list){
                if (list.type == 'success') {
                    list.icon = '../../static/xuan-popup/success.png';
                    list.typeClass='mpopup-success';
                    return list;
                }
                if (list.type == 'warn') {
                    list.icon = '../../static/xuan-popup/warn.png';
                    list.typeClass='mpopup-warn';
                    return list;
                }
                if (list.type == 'info') {
                    list.icon = '../../static/xuan-popup/info.png';
                    list.typeClass='mpopup-info';
                    return list;
                }
                if (list.type == 'err') {
                    list.icon = '../../static/xuan-popup/err.png';
                    list.typeClass='mpopup-err';
                    return list;
                }
            },
            open:function(list){
                if(!this.isdistance){this.distance=0}
                let uuid=this.guid();
                //初始化
                let new_list=this.init(list);    
                new_list.uuid=uuid;
                //添加进数组
                this.popup_list.push(new_list);
                if(typeof(new_list.isClick)!='boolean'){new_list.isClick=false;}
                //可消失
                if(!new_list.isClick){
                    this.close(uuid,new_list.timeout);
                }
                
            },
            close:function(uuid,timeout){
                //退出动画之后,短暂延迟后移除本元素
                this.fade_out_animator(uuid,timeout).then(res=>{
                    setTimeout(()=>{
                        for(let i=0;i<this.popup_list.length;i++){
                            if(this.popup_list[i].uuid==res){
                                //移除本元素
                                this.popup_list.splice(i,1);
                                this.$forceUpdate()
                            }
                        }
                    },250)
                });
            },
            fade_out_animator:function(uuid,timeout){
                //timeout秒后退出
                if(!timeout||typeof(timeout)!='number'){timeout=3000;}
                return new Promise(res=>{
                    setTimeout(()=>{
                        for(let i=0;i<this.popup_list.length;i++){
                            if(this.popup_list[i].uuid==uuid){
                                //添加退出动画
                                this.popup_list[i].animator='fade_Top';
                                res(uuid);
                            }
                        }
                    },timeout)
                })
            },
            //可点击关闭的弹出框
            remove_popup:function(target){
                console.log(target)
                if(this.popup_list[target].isClick){
                    this.popup_list[target].animator='fade_Top';
                    setTimeout(()=>{
                        this.popup_list.splice(target,1);
                        this.$forceUpdate();
                    },250)
                }
            },
            //生成uuid
            guid:function() {
                return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {
                    var r = Math.random()*16|0, v = c == 'x' ? r : (r&0x3|0x8);
                    return v.toString(16);
                });
            }
        }
1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25.26.27.28.29.30.31.32.33.34.35.36.37.38.39.40.41.42.43.44.45.46.47.48.49.50.51.52.53.54.55.56.57.58.59.60.61.62.63.64.65.66.67.68.69.70.71.72.73.74.75.76.77.78.79.80.81.82.83.84.85.86.87.
3.用法
import mpopup from '../../components/xuan-popup/xuan-popup.vue'
    import Popup from '../../components/xuan-popup/popup.js'
    export default {
        components:{
            mpopup
        },
        data() {
            return {
                title: 'Hello'
            }
        },
        methods: {
            //  *数组形式传值
            //  *type,类型 success warn info err(string)
            //  *content,内容(string)
            //  *timeout,消失时间(Number)
            //  *isClick,是否点击消失(Boolean)
            pop:function(){
                this.$refs.mpopup.open(Popup.setPopup('success','我可以',false));
            },
            popp:function(){
                this.$refs.mpopup.open(Popup.setPopup('err','错误',false));        
            },
            poppp:function(){
                this.$refs.mpopup.open(Popup.setPopup('warn','警告',1000,false));        
            },
            popppp:function(){
          //需要点击消失时,消失时间填0就好
                this.$refs.mpopup.open(Popup.setPopup('info','信息',0,true));    
            }
        }
    }
1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25.26.27.28.29.30.31.32.

1.0(2019-08-09)

前面写android混编学到了很多,没有时间全部积累起来,后面会慢慢记录的。

最近很久没有记录了,因为一个新的uniapp的项目。最近在做这个。

看了智慧团建上的弹窗很喜欢,我也要整一套(简易版)

今天兴致大发居然布了插件:** http://ext.dcloud.net.cn/plugin?id=672

很简单的组件化,我们来看一看吧

uniapp ios 授权弹窗 uniapp弹出框怎么实现_数组_02

一、写布局

一个大容器一张图片一个文本

css就不贴上来了,看的眼花。可以下载来看。

二、js

定义一些属性,用来决定弹什么样的窗口,显示一些什么内容

export default{
        data() {
            return {
                icon: '',//图标
                content: '',//内容
                color: '',//背景颜色
                colortext: '',//文本颜色
                coloricon: '',//图标颜色
                isshow: false,//是否显示
                activeClass:'mpopup',//class
                animator:'fade_Down'//动画class
            };
        },
        //属性
        props: {
            //什么类型的弹窗
            types: {
                type: String,
                value: 'success'
            },
            //弹窗的内容
            span: {
                type: String,
                value: '这是一个土司'
            },
            //是否显示
            show: {
                type: String,
                value: ''
            }
        },
        computed: {
            newshow() {
                return this.show;
            }
        },
        watch: {
            //监听属性传入的值的变化
            newshow(val) {
                if (val == 'true') {
                    this.open();//显示弹窗
                } else {
                    this.close();//隐藏弹窗
                }
            }
        },
        onLoad() {},
        methods: {
            init: function() {
                this.content = this.span;
                //成功类型
                if (this.types == 'success') {
                    this.icon = '../../static/images/success.png';
                    this.color = '#F0F9EB';
                    this.colortext = '#67C23A';
                    this.coloricon = '#67C23A';
                }
                //警告类型
                if (this.types == 'warn') {
                    this.icon = '../../static/images/warn.png';
                    this.color = '#FDF6EC';
                    this.colortext = '#E6A23C';
                    this.coloricon = '#E6A23C';
                }
                //信息类型
                if (this.types == 'info') {
                    this.icon = '../../static/images/info.png';
                    this.color = '#EDF2FC';
                    this.colortext = '#909399';
                    this.coloricon = '#909399';
                }
                //错误类型
                if (this.types == 'err') {
                    this.icon = '../../static/images/err.png';
                    this.color = '#FEF0F0';
                    this.colortext = '#F56C6C';
                    this.coloricon = '#F56C6C';
                }
            },
            open: function() {
                this.animator='fade_Down';//进入动画
                this.init();
                this.isshow = true;
            },
            close: function() {
                this.animator='fade_Top';//退出动画
            
            }
        }
    }
1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25.26.27.28.29.30.31.32.33.34.35.36.37.38.39.40.41.42.43.44.45.46.47.48.49.50.51.52.53.54.55.56.57.58.59.60.61.62.63.64.65.66.67.68.69.70.71.72.73.74.75.76.77.78.79.80.81.82.83.84.85.86.87.88.89.90.

好了我们来看看怎么使用

三、使用

在需要用到的界面引入组件或者全局引入都可以

有三个属性我们需要用js来控制,每次赋值太繁琐

所以就写了个方法,每次调用就好

引入刚才的两个js

import Popup from ‘@/static/js/popup.js’;

import mpopup from ‘…/…/components/popup/popup.vue’;

export default {
    data() {
        return {
            ispop:"",//是否显示弹窗
            types:"err",//弹窗类型
            span:"这是一个土司",//弹窗内容
            poptime:2000
        };
    },
    components:{
        mpopup
    },
    onLoad() {},
    methods: {
        pop:function(){
            Popup.setPopup(this,"success","hello,哈喽",this.poptime);
        },
        popp:function(){
            Popup.setPopup(this,"err","hello,哈喽",this.poptime);
        },
        poppp:function(){
            Popup.setPopup(this,"warn","hello,哈喽",this.poptime);
        },
        popppp:function(){
            Popup.setPopup(this,"info","hello,哈喽",this.poptime);
        }
    }
};
1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25.26.27.28.

布局:

这样就OK了

当时思路就是用属性来控制弹窗,组件就监听传来的属性值的变化做出改变。

用class来控制弹窗的进入和退出动画

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1268485.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Android关于杀掉进程的方案

《风波莫听穿林打叶声》—— 苏轼 〔宋代〕 三月七日&#xff0c;沙湖道中遇雨&#xff0c;雨具先去&#xff0c;同行皆狼狈&#xff0c;余独不觉。已而遂晴&#xff0c;故作此词。 莫听穿林打叶声&#xff0c;何妨吟啸且徐行。 竹杖芒鞋轻胜马&#xff0c;谁怕&#xff1f;一蓑…

“前端已死”?从ChatGPT与低代码平台看未来编程之路

每隔一段时间&#xff0c;“前端已死”的论调就会如潮水般重新涌现&#xff0c;引发行业内外的热议。这种论调背后&#xff0c;除了对于新技术&#xff0c;如ChatGPT、GPT-4对前端开发者影响的担忧&#xff0c;还反映了人们对于技术变革的焦虑。 作为前端开发者&#xff0c;我坚…

华清远见嵌入式学习——C++——作业2

作业要求&#xff1a; 代码&#xff1a; #include <iostream>using namespace std;class Rect { private:int width;int height;public:void init(int w,int h);void set_w(int w);void set_h(int h);void show(); };void Rect::init(int w,int h) {width w;height h;…

Elk:filebeat 日志收集工具和logstash

Elk:filebeat 日志收集工具和logstash Filebeat是一个轻量级的日志手机工具,所使用的系统资源比logstash部署和启动时使用的资源要小得多 Filebeat可以在非java环境使用&#xff0c;他可以代理logstash在非java环境上收集日志 缺点 Filebeat无法实现数据的过滤,一般是结合l…

修复 MyBatis 中空值引起的 SQL 语法错误

修复 MyBatis 中空值引起的 SQL 语法错误 背景 最近在查看别人的项目代码时&#xff0c;遇到了一个问题&#xff1a;数据库中的数据为空。在调试过程中&#xff0c;发现问题出现在调用 MyBatis 中的方法&#xff1a;listByIds(Collection<? extends Serializable> idL…

90基于matlab的无迹卡尔曼滤波器参数估计的非线性最小二乘优化

基于matlab的无迹卡尔曼滤波器参数估计的非线性最小二乘优化&#xff0c;数据可更换自己的&#xff0c;程序已调通&#xff0c;可直接运行。 90matlab无迹卡尔曼滤波器参数估计 (xiaohongshu.com)

详解Python中print和return的作用及区别

文章目录 关于Python技术储备一、Python所有方向的学习路线二、Python基础学习视频三、精品Python学习书籍四、Python工具包项目源码合集①Python工具包②Python实战案例③Python小游戏源码五、面试资料六、Python兼职渠道 print的作用是输出数据到控制端,就是打印在你能看到的…

【接口技术】实验3:可编程并行接口8255

实验3 可编程并行接口8255实验 一、实验目的 1&#xff1a;了解8255芯片结构及编程方法。 2&#xff1a;了解8255输入/输出实验方法。 3&#xff1a;掌握8255控制键盘及显示电路的基本功能及编程方法。 4&#xff1a;掌握一般键盘和显示电路的工作原理。 二、实验内容 1&…

实验一 SAS 基本操作和数据表的导入 2023-11-29

一、上机目的 熟悉SAS的集成环境并掌握它的基本操作。理解SAS程序的结构&#xff0c;理解其中的过程&#xff0c;过程选项&#xff0c;语句&#xff0c;语句选项等概念&#xff0c;掌握SAS编程技术。 二、上机内容 主要有SAS操作界面、SAS窗口操作、SAS菜单操作、SAS按钮操作…

LLM三阶段训练代码汇总

在进行大模型的阶段训练时,从头编写代码有点浪费时间。为了更高效地实现这一目标,我们可以利用GitHub上已有的现成代码。下面对现成的代码库进行总结。 欢迎关注公众号 1. LLaMA-Factory LLaMA Factory: 轻松的大模型训练与评估 https://github.com/hiyouga/LLaMA-Factory …

Stable Diffusion绘画系列【7】:极致东方美学

《博主简介》 小伙伴们好&#xff0c;我是阿旭。专注于人工智能AI、python、计算机视觉相关分享研究。 ✌更多学习资源&#xff0c;可关注公-仲-hao:【阿旭算法与机器学习】&#xff0c;共同学习交流~ &#x1f44d;感谢小伙伴们点赞、关注&#xff01; 《------往期经典推荐--…

Python中对数组连续赋值的问题

问题描述 在python中&#xff0c;首先用两个等号对两个数组进行初始化并赋值。之后&#xff0c;对任何一个数组进行赋值&#xff0c;都会将其赋予相同值。 import numpy as np Array1 Array2 np.empty(2) Array1[0],Array2[0]70,80 print(Array1[0],Array2[0])80.0 80.0 …

爬虫代理技术与构建本地代理池的实践

爬虫中代理的使用&#xff1a; 什么是代理 代理服务器 代理服务器的作用 就是用来转发请求和响应 在爬虫中为何需要使用代理&#xff1f; 隐藏真实IP地址&#xff1a;当进行爬取时&#xff0c;爬虫程序会发送大量的请求到目标网站。如果每个请求都使用相同的IP地址&#xff…

玻色量子事件活动

2023年 2023.7 玻色量子携最新相干光量子计算机惊艳亮相2023数字经济大会 2023.6 打造“新型计算数据中心”&#xff01;玻色量子与科华数据&#xff08;002335.SZ&#xff09;携手共创 2023.6 玻色量子“天工量子大脑”亮相中关村论坛&#xff0c;大放异彩 2023.5 100量…

【古月居《ros入门21讲》学习笔记】11_客户端Client的编程实现

目录 说明&#xff1a; 1. 服务模型 2. 实现过程&#xff08;C&#xff09; 创建功能包 创建客户端代码&#xff08;C&#xff09; 配置客户端代码编译规则 编译 运行 3. 实现过程&#xff08;Python&#xff09; 创建客户端代码&#xff08;Python&#xff09; 运行…

Ubuntu安装nfs服务步骤

Ubuntu安装nfs服务步骤 一、NFS&#xff1f; NFS&#xff1a;网络文件系统&#xff08;Network File system File&#xff09;缩写&#xff0c;可通过网络让不同的机器&#xff0c;不同操作系统之间可以彼此共享文件和目录。 二、安装 1.安装nfs服务器命令&#xff1a;sudo…

L1-003:个位数统计

题目描述 给定一个 k 位整数 Ndk−1​10k−1⋯d1​101d0​ (0≤di​≤9, i0,⋯,k−1, dk−1​>0)&#xff0c;请编写程序统计每种不同的个位数字出现的次数。例如&#xff1a;给定 N100311&#xff0c;则有 2 个 0&#xff0c;3 个 1&#xff0c;和 1 个 3。 输入格式&#…

基于AOP的声明式事物控制

目录 Spring事务编程概述 基于xml声明式事务控制 事务属性 isolation timeout read-only propagation 全注解开发 Spring事务编程概述 事务是开发中必不可少的东西&#xff0c;使用JDBC开发时&#xff0c;我们使用connection对事务进行控制&#xff0c;使用MyBatis时&a…

MySQL 中的锁(二)

8.4. 意向锁 但是在上面的例子这里头有两个问题&#xff1a; 如果我们想对大楼整体上 S 锁&#xff0c;首先需要确保大楼中的没有正在维修的楼层&#xff0c;如果有正在维修的楼层&#xff0c;需要等到维修结束才可以对大楼整体上 S 锁。 如果我们想对大楼整体上 X 锁&#xf…

C# WPF 基础教程——触发器、行为、形状、变换与透明、路径和几何图形

触发器 简单触发器 单条件触发器 多条件触发器 事件触发器 行为 形状 矩形和椭圆 Viewbox缩放控件&#xff0c;直线&#xff0c;折线&#xff0c;多边形 画刷 普通画刷 线性渐变画刷 环形渐变画刷 位图画刷 虚拟画刷&#xff08;复制元素外观&#xff09; 位图缓存画刷 变换…