| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- emplate>
- <div class="login-scan-container">
- <div ref="qrcodeRef"></div>
- <div class="font12 mt20 login-msg">
- <i class="iconfont icon-saoyisao mr5"></i>
- <span>{{ $t('message.scan.text') }}</span>
- </div>
- </div>
- </template>
- <script setup lang="ts" name="loginScan">
- import { ref, onMounted, nextTick } from 'vue';
- import QRCode from 'qrcodejs2-fixes';
- // 定义变量内容
- const qrcodeRef = ref<HTMLElement | null>(null);
- // 初始化生成二维码
- const initQrcode = () => {
- nextTick(() => {
- (<HTMLElement>qrcodeRef.value).innerHTML = '';
- new QRCode(qrcodeRef.value, {
- text: `https://qm.qq.com/cgi-bin/qm/qr?k=RdUY97Vx0T0vZ_1OOu-X1yFNkWgDwbjC&jump_from=webapi`,
- width: 260,
- height: 260,
- colorDark: '#000000',
- colorLight: '#ffffff',
- });
- });
- };
- // 页面加载时
- onMounted(() => {
- initQrcode();
- });
- </script>
- <style scoped lang="scss">
- .login-scan-animation {
- opacity: 0;
- animation-name: error-num;
- animation-duration: 0.5s;
- animation-fill-mode: forwards;
- }
- .login-scan-container {
- padding: 0 20px 20px;
- display: flex;
- flex-direction: column;
- text-align: center;
- @extend .login-scan-animation;
- animation-delay: 0.1s;
- :deep(img) {
- margin: auto;
- }
- .login-msg {
- display: flex;
- align-items: center;
- justify-content: center;
- color: var(--el-text-color-placeholder);
- @extend .login-scan-animation;
- animation-delay: 0.2s;
- }
- }
- </style>
|