vue写抽奖大转盘_lucky-canvas/vue-程序员宅基地

技术标签: react.js  vue.js  javascript  

圆盘抽取活动我是用的第三方插件写的,叫lucky-canvas工具
https://100px.net/
npm安装:

npm install @lucky-canvas/vue@latest

在全局中引入:

import VueLuckyCanvas from '@lucky-canvas/vue'
Vue.use(VueLuckyCanvas)

这个网站提供了js、vue、react和微信小程序等方法中使用,需要的都可以参考

当我们刚进入页面就是这样子,啥也没有,因为我们需要调接口展示转盘数据的。
在这里插入图片描述
选择数据后右侧转盘会自动填充数据
在这里插入图片描述
抽取结束后会自动填充表格中并将表格中这条数据禁用
在这里插入图片描述
具体代码如下:

<LuckyWheel
    width="250px"
    height="250px"
    :blocks="blocks"
    :prizes="prizes"
    :buttons="buttons"
    :defaultConfig="defaultConfig"
    @start="startCallBack"
    @end="endCallBack"
     ref="myLucky"
 />

在data中定义:

  		blocks: [{
     padding: '10px', background: '#869cfa' }],
        prizes: [],//用来接收转盘的数据
        buttons: [
          {
     radius: '50%', background: '#617df2' },
          {
     radius: '45%', background: '#afc8ff' },
          {
    
            radius: '40%', background: '#869cfa',
            pointer: true,
            fonts: [{
     text: '开始\n抽取', top: '-20px' }]
          },
        ],
        defaultConfig: {
    
          stopRange: 0.5
        }

js部分:

startCallBack () {
    //转盘开始转动
//我判断了一下,如果转盘没数据我就提示先选择数据
      if(this.prizes .length == 0){
    
          this.$message.warning("请先选择主营范围和填写主(备)供应商")
          return
      }else{
    
          // 开始游戏
        this.$refs.myLucky.play()
        // 假设接口的请求速度是5s
        setTimeout(() => {
    
          // 5s后拿到后端返回的中奖索引
          const index = 0
          // 然后停止游戏 (缓慢停止)
          this.$refs.myLucky.stop(index)
        }, 3000)
      }
    },
    endCallBack (prize) {
    
    //转盘停止后将抽取到的数据重组一下数组,放到table表格内去
      this.$set(this.tableData[this.indexNumber],"text",prize.fonts[0].text)
      this.screenData = prize.id
      var iMun = parseInt(this.indexNumber)
      this.paize2.push({
    
              sort:iMun,
              comId:this.screenData
            })
    },
    //初始化方法获取转盘的数据来展示到转盘中(由于项目需求不同,所需要的获取数据方法不同)
    handelChange(){
    
      var ids = {
    socreId:this.fanwei}
        getscopeSum(ids).then((res)=>{
    
          this.prizes=[]
          if(res.code ===200){
    
            this.sumNumber = res.data.num
            this.zhuanpan = res.data.sups
            this.zhuanpan.forEach((item,index)=>{
    
              if(index%2 === 0){
    
                let obj ={
    fonts: [{
     text: item.supName, top: 20,fontSize:14 }], wordWarp:true , background: '#e9e8fe',id:item.id }
                this.prizes.push(obj)
              }else{
    
              let obj ={
     fonts: [{
     text: item.supName, top: 20,fontSize:14 }], wordWarp:true , background: '#b8c5f2',id:item.id }
                this.prizes .push(obj)
              }
            })
          }
        })
    },

这就是抽奖大转盘的总结,有疑问的地方可以提出,我会即使改正和回复大家。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_48053972/article/details/122448767

智能推荐

使用Github Actions将Vue项目部署到Github Pages_github actions vue.js 到 github page-程序员宅基地

文章浏览阅读457次。GitHub Actions 是 GitHub 的持续集成服务,是一个非常强大的功能,用它可以实现很多自动化功能。现在我们来使用Github Actions将我们做好的Vue项目部署到Github Pages上。_github actions vue.js 到 github page

关于路由器-程序员宅基地

文章浏览阅读54次。1.又称网关设备(Gateway),专业来说是,所谓逻辑网络是代表一个单独的网络或者一个子网。当数据从一个子网传输到另一个子网时,可通过路由器的路由功能来完成。

sqlServer 事务隔离性之脏读、不可重复读、幻读、更新值丢失、以及造成的死锁_sqlserver 脏读-程序员宅基地

文章浏览阅读2.3k次,点赞3次,收藏10次。 隔离性(Isolation):与数据库中的事务隔离级别以及锁相关,多个用户可以对同一数据并发访问而又不破坏数据的正确性和完整性。但是,并行事务的修改必须与其它并行事务的修改相互独立,隔离。 但是在不同的隔离级别下,事务的读取操作可能得到的结果是不同的。 隔离级别用于决定如何控制并发用户读写数据的操作。前面说到,读操作默认使用共享锁,写操作需要使用排它锁。对于操作获得的锁,以及锁的持续时间来说..._sqlserver 脏读

(五)Python3引用HTMLTestRunner报错“No module named ‘StringIO‘”,修改代码_htmltestrunnerstringio报错-程序员宅基地

文章浏览阅读615次。嗨1.做自动化测试的时候,想把测试结果生成一个HTML页面查看,需要下载一个‘HTMLTestRunner.py’的文件到python的Lib文件夹中,然后引用这个模块。具体怎么引用,网上很多了,随便找2.但引用后运行报错:No module named ‘StringIO’;因为Python3中已将StringIO归入io;但下载的链接中并没有改,所以报错了。3.解决方案:结合多个帖子,总结了下,打开 HTMLTestRunner.py 改了几行代码:第94行,将import StringIO修改_htmltestrunnerstringio报错

防火墙双机热备实验_防火墙的双机热备技术实验报告-程序员宅基地

文章浏览阅读805次,点赞2次,收藏2次。防火墙双机热备实验拓扑图以及其中的配置命令如下:当将命令配置好后,在浏览器中登陆防火墙:FW4:https://192.168.0.1:8443FW2:https://192.168.0.2:8443现在是将FW4作为主状态,FW4作为备状态:进行连通性测试:现在将FW4的G1/0/0端口关闭之后,可以看到主、备状态的转变:这样就完成了双机热备实验。菜菜的代码,希望能够帮助到你哟!..._防火墙的双机热备技术实验报告

Qt5(C++)调用python3脚本(带输入输出参数)_qt c++ 调用python中含参数的接口-程序员宅基地

文章浏览阅读6.9k次,点赞14次,收藏60次。本例中的环境: Qt 5 9.0(编译器为32位mingw或32位msvc均可),python3.5.4 -32bit1 前期准备1.1 准备测试用的python文件(取名不要为test.py即可)def show(): print("hello!")def sum(a,b): return (a+b)def main(): show() print(s..._qt c++ 调用python中含参数的接口

随便推点

关于STM32 HAL库获取RTC时间不更新问题_为什么用hal库生成的rtc代码秒数不会增加-程序员宅基地

文章浏览阅读1.5k次。将获取日期的接口放在获取时间之后_为什么用hal库生成的rtc代码秒数不会增加

Redis-程序员宅基地

文章浏览阅读92次。Redis1、Nosql概述1.1、为什么使用nosql单机Mysql时代90年代,一个网站的访问量一般不会太大,单个数据库完全够用。随着用户增多,网站出现以下问题数据量增加到一定程度,单机数据库就放不下了数据的索引(B+ Tree),一个机器内存也存放不下访问量变大后(读写混合),一台服务器承受不住。Memcached(缓存) + Mysql + 垂直拆分(读写分离)网站80%的情况都是在读,每次都要去查询数据库的话就十分的麻烦!所以说我们希望减轻数据库的压力,我们可以使用缓

Dubbo添加过滤器(二)---日志打印接口耗时_dubbo耗时过滤器-程序员宅基地

文章浏览阅读85次。Dubbo添加过滤器详情见: https://www.cnblogs.com/expiator/p/14557091.html本文主要是用Dubbo添加过滤器,统计接口耗时日志打印接口耗时import com.alibaba.dubbo.common.Constants;import com.alibaba.dubbo.common.extension.Activate;import..._dubbo耗时过滤器

Dijkstra-程序员宅基地

文章浏览阅读389次,点赞5次,收藏7次。【代码】Dijkstra。

【数据库 Mysql查询系列】--检索出stu表中‘计算机工程’或‘软件工程’专业的学生的记录,结果集按学号升序排序。_本题目要求编写sql语句, 检索出 stu表中‘计算机工程’或‘软件工程’专业的学生-程序员宅基地

文章浏览阅读6k次。涉及到的两个表:代码如下:select sno as 学号,sname as 姓名,sex as 性别,mname as 专业from stu,majorwhere stu.mno=major.mno and mname in ('计算机工程','软件工程')order by sno;..._本题目要求编写sql语句, 检索出 stu表中‘计算机工程’或‘软件工程’专业的学生

pytorch使用visdom可视化loss_visdom如何将txt文件中的损失可视化-程序员宅基地

文章浏览阅读2.4k次,点赞2次,收藏23次。visdom在模型训练中可视化loss的常用方法_visdom如何将txt文件中的损失可视化