美文网首页
模拟中奖小demo

模拟中奖小demo

作者: 爱吃肉的小码哥 | 来源:发表于2019-11-11 21:41 被阅读0次
    class Winning {
      constructor(el, option) {
        this.el = el
        this.option = Object.assign(
          {},
          {
            type: 'qq', // 可选择qq或者phone
            min: 10, //最少数据
            max: 20 // 最多数据,
          },
          option
        )
        this._init()
      }
      _init() {
        this.getData()
      }
      // TODO: 生成数据(可以采用回调加强灵活性)
      getData() {
        let html = '',
          count = random(this.option.min, this.option.max),
          type = this.option.type === 'qq'
        for (let i = 0; i < count; i++) {
          html += `<li class="list-group-item">恭喜${
            type ? 'QQ' : '手机'
          }用户: <span class="text-primary">${
            type ? getQQ() : getPhone()
          }</span> 于 ${new Date().Format(
            'yyyy-MM-dd'
          )} <span class="text-danger">奖励: ${randomGift()}</span></li>`
        }
        document.getElementById(this.el).innerHTML = html
      }
      // 滚动
      scroll() {}
    }
    //***************************** */
    
    const random = (min, max) => Math.floor(Math.random() * (max - min + 1) + min)
    
    // 获取随机6-10位QQ号
    function getQQ() {
      let qq = random(100000, 9999999999).toString()
      return qq.replace(qq.substr(-4), '****')
    }
    
    let phoneTest = [
      '133',
      '149',
      '153',
      '173',
      '177',
      '180',
      '181',
      '189',
      '199',
      '130',
      '131',
      '132',
      '145',
      '155',
      '156',
      '166',
      '171',
      '175',
      '176',
      '185',
      '186',
      '166',
      '134',
      '135',
      '136',
      '137',
      '138',
      '139',
      '147',
      '150',
      '151',
      '152',
      '157',
      '158',
      '159',
      '172',
      '178',
      '182',
      '183',
      '184',
      '187',
      '188',
      '198'
    ]
    const getPhone = () => {
      return (
        phoneTest[random(0, phoneTest.length - 1)] + '****' + random(1000, 9999)
      )
    }
    
    const gifts = [
      '<img src="https://ae01.alicdn.com/kf/HTB10965akH0gK0jSZPi761vapXa7.png" width="15">永久豪华绿钻',
      '<img src="https://ae01.alicdn.com/kf/HTB10965akH0gK0jSZPi761vapXa7.png" width="15">永久豪华绿钻',
      '<img src="https://ae01.alicdn.com/kf/HTB1UsP5ahD1gK0jSZFs762ldVXaf.png" width="15">永久视频会员',
      '<img src="https://ae01.alicdn.com/kf/HTB1JJ24aeL2gK0jSZPh761hvXXae.png" width="15">永久豪华黄钻',
      '<img src="https://ae01.alicdn.com/kf/HTB1Cmv5abj1gK0jSZFu763rHpXaU.png" width="15">永久超级会员',
      '<img src="https://ae01.alicdn.com/kf/HTB12gj5akT2gK0jSZPc763KkpXa5.png" width="15">'
    ]
    
    // 随机中奖的奖品
    function randomGift() {
      let num = random(0, gifts.length - 1),
        zan = random(100, 10000)
      return num === gifts.length - 1 ? gifts[num] + `${zan}名片赞` : gifts[num]
    }
    
    // 格式化时间
    Date.prototype.Format = function(fmt) {
      let o = {
        'M+': this.getMonth() + 1, //月份
        'd+': this.getDate(), //日
        'h+': this.getHours(), //小时
        'm+': this.getMinutes(), //分
        's+': this.getSeconds(), //秒
        'q+': Math.floor((this.getMonth() + 3) / 3), //季度
        S: this.getMilliseconds() //毫秒
      }
      if (/(y+)/.test(fmt))
        fmt = fmt.replace(
          RegExp.$1,
          (this.getFullYear() + '').substr(4 - RegExp.$1.length)
        )
      for (var k in o)
        if (new RegExp('(' + k + ')').test(fmt))
          fmt = fmt.replace(
            RegExp.$1,
            RegExp.$1.length == 1 ? o[k] : ('00' + o[k]).substr(('' + o[k]).length)
          )
      return fmt
    }
    
    

    相关文章

      网友评论

          本文标题:模拟中奖小demo

          本文链接:https://www.haomeiwen.com/subject/mkyxictx.html