移动端
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

114 regels
2.6 KiB

  1. <template>
  2. <div class="scan">
  3. <div class="nav">
  4. <a class="close" @click="() => $router.go(-1)"></a>
  5. <p class="title">扫一扫</p>
  6. </div>
  7. <div class="scroll-container">
  8. <Scaner
  9. v-on:code-scanned="codeScanned"
  10. v-on:error-captured="errorCaptured"
  11. :stop-on-scanned="true"
  12. :draw-on-found="true"
  13. :responsive="false"
  14. />
  15. </div>
  16. </div>
  17. </template>
  18. <script>
  19. import Scaner from '@/components/qrcode/Scaner';
  20. import Cookies from "js-cookie";
  21. export default {
  22. name: 'Scan',
  23. components: {
  24. Scaner
  25. },
  26. data () {
  27. return {
  28. errorMessage: "",
  29. scanned: ""
  30. }
  31. },
  32. methods: {
  33. codeScanned(code) {
  34. this.scanned = code;
  35. alert(`扫码解析成功: ${code}`);
  36. Cookies.set("scanLink", code);
  37. this.$router.go(-1)
  38. },
  39. errorCaptured(error) {
  40. switch (error.name) {
  41. case "NotAllowedError":
  42. this.errorMessage = "Camera permission denied.";
  43. break;
  44. case "NotFoundError":
  45. this.errorMessage = "There is no connected camera.";
  46. break;
  47. case "NotSupportedError":
  48. this.errorMessage =
  49. "Seems like this page is served in non-secure context.";
  50. break;
  51. case "NotReadableError":
  52. this.errorMessage =
  53. "Couldn't access your camera. Is it already in use?";
  54. break;
  55. case "OverconstrainedError":
  56. this.errorMessage = "Constraints don't match any installed camera.";
  57. break;
  58. default:
  59. this.errorMessage = "UNKNOWN ERROR: " + error.message;
  60. }
  61. console.error(this.errorMessage);
  62. alert('相机调用失败');
  63. }
  64. },
  65. mounted () {
  66. var str = navigator.userAgent.toLowerCase();
  67. var ver = str.match(/cpu iphone os (.*?) like mac os/);
  68. if (ver && ver[1].replace(/_/g,".") < '10.3.3') {
  69. alert('相机调用失败');
  70. }
  71. }
  72. }
  73. </script>
  74. <style lang="css" scoped>
  75. .scan {
  76. height: 100%;
  77. width: 100%;
  78. }
  79. .scan .nav {
  80. height: 116px;
  81. background: url('../../../../static/images/lawEnforcement/new/list_head.png') no-repeat;
  82. background-size: 100% 100%;
  83. position: fixed;
  84. top: 0;
  85. left: 0;
  86. width: 100%;
  87. font-size: 36px;
  88. line-height: 116px;
  89. text-align: center;
  90. color: #fff;
  91. z-index: 999;
  92. }
  93. .scan .nav .title {
  94. padding: 0;
  95. margin: 0;
  96. font-size: 16PX;
  97. color: #FFFFFF;
  98. text-align: center;
  99. }
  100. .scan .nav .close {
  101. width: 24px;
  102. height: 43.2px;
  103. background: url('../../../assets/images/sunVillage_info/list_icon_5.png') center center no-repeat;
  104. background-size: 20px 36px;
  105. position: absolute;
  106. left: 38px;
  107. top: 36px;
  108. }
  109. </style>