weixin-pay-code.vue 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. <template>
  2. <div class="weixin-pay-code">
  3. <div class="code-box">
  4. <div class="qrcode" v-show="!isShowCodeMask">
  5. <canvas id="wxPayQrCode"></canvas>
  6. </div>
  7. <div class="code-mask" v-show="isShowCodeMask">{{$t('payment.qrCodeHasExpired')}}</div>
  8. <div class="text">{{$t('payment.weChatSweepPayment')}}</div>
  9. </div>
  10. <div class="wx-bg">
  11. <img src="~/assets/images/wxPayBg.png" alt />
  12. </div>
  13. </div>
  14. </template>
  15. <script>
  16. import QRCode from 'qrcode'
  17. export default {
  18. data () {
  19. return {
  20. }
  21. },
  22. props: {
  23. isShowCodeMask: {
  24. type: Boolean,
  25. default: false
  26. },
  27. weixinCodeUrl: {
  28. type: String
  29. }
  30. },
  31. mounted () {
  32. this.wxPayCode()
  33. },
  34. methods: {
  35. // 生成微信支付二维码
  36. wxPayCode() {
  37. QRCode.toCanvas(document.getElementById('wxPayQrCode'), this.weixinCodeUrl, { version: 6, errorCorrectionLevel: 'L' })
  38. },
  39. },
  40. }
  41. </script>
  42. <style scoped src='~/assets/css/weixin-pay.css'>
  43. </style>
  44. <style scoped>
  45. .weixin-pay-code {
  46. display: flex;
  47. align-items: center;
  48. justify-content: center;
  49. padding: 40px 0;
  50. border-top: 0;
  51. }
  52. .text {
  53. font-size: 18px;
  54. font-weight: 600;
  55. text-align: center;
  56. margin-top: 10px;
  57. }
  58. </style>