qrcode.vue 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122
  1. <script setup lang="ts">
  2. import { ref, unref } from "vue";
  3. import { message } from "@/utils/message";
  4. import ReQrcode from "@/components/ReQrcode";
  5. defineOptions({
  6. name: "QrCode"
  7. });
  8. const qrcodeText = "vue-pure-admin";
  9. const asyncTitle = ref("");
  10. setTimeout(() => {
  11. asyncTitle.value = unref(qrcodeText);
  12. }, 3000);
  13. const codeClick = () => {
  14. message("点击事件", { type: "info" });
  15. };
  16. const disabledClick = () => {
  17. message("失效", { type: "info" });
  18. };
  19. </script>
  20. <template>
  21. <div>
  22. <el-card>
  23. <template #header>
  24. <div class="font-medium">
  25. 二维码(基于
  26. <el-link
  27. href="https://github.com/soldair/node-qrcode"
  28. target="_blank"
  29. style="font-size: 16px; margin: 0 5px 4px 0"
  30. >
  31. qrcode
  32. </el-link>
  33. 生成)
  34. </div>
  35. </template>
  36. <el-row :gutter="20" justify="space-between">
  37. <el-col :xl="6" :lg="6" :md="12" :sm="24" :xs="24">
  38. <el-card shadow="hover" class="mb-[10px] text-center">
  39. <div class="font-bold">基础用法</div>
  40. <ReQrcode :text="qrcodeText" />
  41. </el-card>
  42. </el-col>
  43. <el-col :xl="6" :lg="6" :md="12" :sm="24" :xs="24">
  44. <el-card shadow="hover" class="mb-[10px] text-center">
  45. <div class="font-bold">img标签</div>
  46. <ReQrcode :text="qrcodeText" tag="img" />
  47. </el-card>
  48. </el-col>
  49. <el-col :xl="6" :lg="6" :md="12" :sm="24" :xs="24">
  50. <el-card shadow="hover" class="mb-[10px] text-center">
  51. <div class="font-bold">样式配置</div>
  52. <ReQrcode
  53. :text="qrcodeText"
  54. :options="{
  55. color: {
  56. dark: '#55D187',
  57. light: '#2d8cf0'
  58. }
  59. }"
  60. />
  61. </el-card>
  62. </el-col>
  63. <el-col :xl="6" :lg="6" :md="12" :sm="24" :xs="24">
  64. <el-card shadow="hover" class="mb-[10px] text-center">
  65. <div class="font-bold">点击事件</div>
  66. <ReQrcode :text="qrcodeText" @click="codeClick" />
  67. </el-card>
  68. </el-col>
  69. <el-col :xl="6" :lg="6" :md="12" :sm="24" :xs="24">
  70. <el-card shadow="hover" class="mb-[10px] text-center">
  71. <div class="font-bold">异步内容</div>
  72. <ReQrcode :text="asyncTitle" />
  73. </el-card>
  74. </el-col>
  75. <el-col :xl="6" :lg="6" :md="12" :sm="24" :xs="24">
  76. <el-card shadow="hover" class="mb-[10px] text-center">
  77. <div class="font-bold">失效</div>
  78. <ReQrcode
  79. :text="qrcodeText"
  80. disabled
  81. @disabled-click="disabledClick"
  82. />
  83. </el-card>
  84. </el-col>
  85. <el-col :xl="6" :lg="6" :md="12" :sm="24" :xs="24">
  86. <el-card shadow="hover" class="mb-[10px] text-center">
  87. <div class="font-bold">logo配置</div>
  88. <ReQrcode
  89. :text="qrcodeText"
  90. logo="https://avatars.githubusercontent.com/u/44761321?v=4"
  91. />
  92. </el-card>
  93. </el-col>
  94. <el-col :xl="6" :lg="6" :md="12" :sm="24" :xs="24">
  95. <el-card shadow="hover" class="mb-[10px] text-center">
  96. <div class="font-bold">logo样式</div>
  97. <ReQrcode
  98. :text="qrcodeText"
  99. :logo="{
  100. src: 'https://avatars.githubusercontent.com/u/44761321?v=4',
  101. logoSize: 0.2,
  102. borderSize: 0.05,
  103. borderRadius: 50,
  104. bgColor: 'blue'
  105. }"
  106. />
  107. </el-card>
  108. </el-col>
  109. <el-col :xl="6" :lg="6" :md="12" :sm="24" :xs="24">
  110. <el-card shadow="hover" class="mb-[10px] text-center">
  111. <div class="font-bold">大小配置</div>
  112. <ReQrcode :text="qrcodeText" :width="100" />
  113. </el-card>
  114. </el-col>
  115. </el-row>
  116. </el-card>
  117. </div>
  118. </template>