生成二維碼

axml

<view class="codeBox">
      <canvas id="barcode" onTap="previewBarcode" class="{{isClick ?'rotateAndScale':''}}">
      </canvas>
      <view a:if="{{isClick}}" onTap="previewBarcode" class="fullScreen" style="width:{{width+'px'}};height:{{height+'px'}}">
      </view>
      <view class="see-barCode">
        <view>{{qr_codeSign}}</view>
        <view onTap="seeCode" a:if="{{qr_codeSign}}">查看條形碼數(shù)字</view>
      </view>
      <view class="qr-code">
        <canvas id="qrcode" />
      </view>
      <view class="remind" a:if="{{isCard==2}}">每隔1分鐘自動(dòng)
        <text style="margin-left:20rpx;" class="{{blue==true?'refresh':''}}" onTap="refreshSecond">刷新{{showSecond}}</text>
      </view>
      <view class="remind" a:if="{{isCard!=2}}">
      {{isCard}}
      </view>
    </view>

js

import { toBarcode, toQrcode } from '../../utils/utils';
import util from '../../utils/curtime.js';
var app = getApp();
var timer;
Page({
  data: {
    showSecond: '',
    blue: true,
    barCode: '',
    qr_code: '',
    qr_codeSign: '',
    qr_str: '',
    //是否綁卡
    isCard: 2,
    isClick: false,
    tapTime: '',        // 防止兩次點(diǎn)擊操作間隔太快
   },
  onLoad(options) {
    this.setData({
      width: my.getSystemInfoSync().screenWidth,
      height: my.getSystemInfoSync().screenHeight
    })
    console.log("width" + this.data.width);
    console.log("height" + this.data.height);
  },

  //點(diǎn)擊條形碼旋轉(zhuǎn)放大
  previewBarcode() {
    this.setData({
      isClick: !this.data.isClick
    })
    console.log("===點(diǎn)擊了條形碼====");
  },

  //查看條形碼數(shù)字
  seeCode() {
    console.log("==========================")
    if (this.data.qr_codeSign.indexOf("*") != -1) {
      this.setData({
        qr_codeSign: this.data.qr_code
      })
    } else {
      this.setData({
        qr_codeSign: this.data.qr_str
      })
    }
  },

  //生成二維碼
  getCode() {
    let qr_code = "123456789";
    let code = "123456789";
    let str1 = code.substring(0, 4) + "******";
    this.setData({
      qr_code,
      qr_codeSign: str1,
      qr_str: str1
    })
    toBarcode('barcode', this.data.qr_code, 300, 60);
    toQrcode('qrcode', this.data.qr_code, 140, 140);
    console.log("========二維碼=====")
  },
    onShow() {
      this.getCode();
      //定時(shí)器-60s刷新
      timer = setInterval(() => {
        this.getCode();
        console.log("====")
      }, 60000)
    },
    //刷新二維碼
    refreshSecond() {
    var nowTime = new Date();
    if (nowTime - this.data.tapTime < 11000) {
      console.log('阻斷')
      return;
    }
    clearInterval(timer);
    console.log("==點(diǎn)擊了刷新==");
    if (this.data.blue == true) {
      this.getCode();
      console.log("==code==")
    }
    var _this = this;
    var coden = 10;//定義10s倒計(jì)時(shí)
    var time = setInterval(function () {
      _this.setData({
        showSecond: '(' + (coden--) + 's)',
        blue: false
      })
      if (coden == -1) {
        clearInterval(time);
        _this.setData({
          showSecond: '',
          blue: true
        })
      }
    }, 1000);
    timer = setInterval(() => {
      this.getCode();
      console.log("====")
    }, 60000)
    console.log('執(zhí)行')
    this.setData({ tapTime: nowTime });
  },
})

acss

.codeBox {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 100%;
  padding: 20rpx 0;
  z-index: 20;
  background: #fff;
}
.see-barCode {
  color: #92949a;
  font-size: 26rpx;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-top: 20rpx;
}
.see-barCode>view:nth-of-type(2n){
  margin-left: 20rpx;
}
.qr-code image {
  width: 200rpx;
  height: 200rpx;
}
.remind {
  color: #92949a;
  font-size: 26rpx;
}
.remind .refresh {
  color: #1164e0;
}
#barcode{
 margin: auto;
 z-index: 20;
 width: 300px;
 height: 60px;
}

#qrcode{
 width: 140px;
 height: 140px;
 box-sizing: border-box;
 margin: auto;
}

.barRotate{
    transform: scale(1.1);
}


/***********************************/
.rotateAndScale {
  transform: rotate(90deg) scale(2) translateX(30%);
}
/*適配膳殷,5*/
@media only screen and (max-width: 320px) and (max-height: 568px) {
    .rotateAndScale {
    transform: rotate(90deg) scale(1.5) translateX(15%);
  }
}
@media only screen and (min-width: 360px) and (max-height: 640px) {
    .rotateAndScale {
    transform: rotate(90deg) scale(1.5) translateX(25%);
  }
}
@media only screen and (min-width: 375px) and (max-height: 667px) {
    .rotateAndScale {
    transform: rotate(90deg) scale(1.5) translateX(25%);
  }
}
@media only screen and (min-width: 414px) and (max-height: 736px) {
    .rotateAndScale {
    transform: rotate(90deg) scale(1.5) translateX(25%);
  }
}
.fullScreen {
  background: #ffffff;
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  margin: auto;
}
#barImg {
  width: 100%;
  height: 100rpx;
}
#qrImg {
  width: 300rpx;
  height: 300rpx;
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末败富,一起剝皮案震驚了整個(gè)濱河市卿操,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌蜓陌,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,311評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件注祖,死亡現(xiàn)場(chǎng)離奇詭異谓厘,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)悠夯,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,339評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門癌淮,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人沦补,你說(shuō)我怎么就攤上這事乳蓄。” “怎么了夕膀?”我有些...
    開封第一講書人閱讀 152,671評(píng)論 0 342
  • 文/不壞的土叔 我叫張陵虚倒,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我产舞,道長(zhǎng)裹刮,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,252評(píng)論 1 279
  • 正文 為了忘掉前任庞瘸,我火速辦了婚禮捧弃,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘擦囊。我一直安慰自己违霞,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,253評(píng)論 5 371
  • 文/花漫 我一把揭開白布瞬场。 她就那樣靜靜地躺著买鸽,像睡著了一般。 火紅的嫁衣襯著肌膚如雪贯被。 梳的紋絲不亂的頭發(fā)上眼五,一...
    開封第一講書人閱讀 49,031評(píng)論 1 285
  • 那天,我揣著相機(jī)與錄音彤灶,去河邊找鬼看幼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛幌陕,可吹牛的內(nèi)容都是我干的诵姜。 我是一名探鬼主播,決...
    沈念sama閱讀 38,340評(píng)論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼搏熄,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼棚唆!你這毒婦竟也來(lái)了暇赤?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,973評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤宵凌,失蹤者是張志新(化名)和其女友劉穎鞋囊,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體瞎惫,經(jīng)...
    沈念sama閱讀 43,466評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡失暴,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,937評(píng)論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,039評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡塔拳,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出矩肩,到底是詐尸還是另有隱情,我是刑警寧澤肃续,帶...
    沈念sama閱讀 33,701評(píng)論 4 323
  • 正文 年R本政府宣布黍檩,位于F島的核電站,受9級(jí)特大地震影響始锚,放射性物質(zhì)發(fā)生泄漏刽酱。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,254評(píng)論 3 307
  • 文/蒙蒙 一瞧捌、第九天 我趴在偏房一處隱蔽的房頂上張望棵里。 院中可真熱鬧,春花似錦姐呐、人聲如沸殿怜。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,259評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)头谜。三九已至,卻和暖如春鸠澈,著一層夾襖步出監(jiān)牢的瞬間柱告,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評(píng)論 1 262
  • 我被黑心中介騙來(lái)泰國(guó)打工笑陈, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留际度,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,497評(píng)論 2 354
  • 正文 我出身青樓新锈,卻偏偏與公主長(zhǎng)得像甲脏,于是被迫代替她去往敵國(guó)和親眶熬。 傳聞我的和親對(duì)象是個(gè)殘疾皇子妹笆,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,786評(píng)論 2 345