index.html 6.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123
  1. <!DOCTYPE HTML>
  2. <html lang="zh-CN">
  3. <head>
  4. <title>二维码生成工具</title>
  5. <meta charset="UTF-8">
  6. <link rel="shortcut icon" href="../static/img/favicon.ico">
  7. <link rel="stylesheet" href="index.css" />
  8. <script type="text/javascript" src="../static/vendor/evalCore.min.js"></script>
  9. <script type="text/javascript" src="../static/vendor/vue/vue.js"></script>
  10. </head>
  11. <body>
  12. <div class="wrapper" id="pageContainer">
  13. <div class="panel panel-default" style="margin-bottom: 0px;">
  14. <div class="panel-heading">
  15. <h3 class="panel-title">
  16. <span class="title-text-wrapper">
  17. <a href="https://fehelper.com" target="_blank" class="x-a-high">
  18. <img src="../static/img/fe-16.png" alt="fehelper"/> FeHelper</a><span class="title-text-wrapper-text">| 二维码{{qrEncodeMode? '生成':'解码'}}器</span>
  19. </span>
  20. <span class="x-switch" ref="btnSwitch" @click="trans">切换为{{!qrEncodeMode? ' 二维码生成器 ' : ' 解码/扫码 '}}模式&gt;&gt;</span>
  21. <a class="x-other-tools" @click="openOptionsPage($event)"><i class="icon-plus-circle"></i> 探索更多实用工具 <span class="tool-market-badge">工具市场</span></a>
  22. <span class="x-donate-link" @click="openDonateModal($event)"><a href="#" id="donateLink"><i class="nav-icon">❤</i>&nbsp;打赏鼓励</a></span>
  23. </h3>
  24. </div>
  25. </div>
  26. <div class="panel-body mod-json">
  27. <div v-if="qrEncodeMode">
  28. <div class="qr-layout">
  29. <!-- 左侧:文本输入区域 -->
  30. <div class="qr-left">
  31. <div class="section-title">输入内容</div>
  32. <textarea class="form-control mod-textarea" id="codeSource" ref="codeSource" v-model="textContent" placeholder="在这里填写需要生成二维码的任意内容"></textarea>
  33. </div>
  34. <!-- 中间:操作区域 -->
  35. <div class="qr-center">
  36. <div class="section-title">参数设置</div>
  37. <div class="control-panel">
  38. <div class="control-item">
  39. <label>尺寸:</label>
  40. <input name="opt_width" type="text" id="opt_width" v-model="qrSize" size="4" maxlength="4"/>
  41. </div>
  42. <div class="control-item">
  43. <label>颜色:</label>
  44. <input type="text" id="opt_fc" v-model="qrColor" size="10" />
  45. </div>
  46. <div class="control-item">
  47. <div class="radio ui-d-ib x-icons">
  48. 图标:<label><input id="remove_icon" name="qr_icon" type="radio" value="no" v-model="useIcon" @click="convert()">不要</label>
  49. <label><input id="default_icon" name="qr_icon" type="radio" value="default" v-model="useIcon" @click="convert()">默认</label>
  50. <label><input id="upload_icon" name="qr_icon" type="radio" value="custom" v-model="useIcon" @click="$refs.fileBox.click()">上传</label>
  51. </div>
  52. </div>
  53. <div class="control-item">
  54. <button id="confirm_button" class="btn btn-success" @click="convert()">生成二维码</button>
  55. </div>
  56. </div>
  57. </div>
  58. <!-- 右侧:结果预览区域 -->
  59. <div class="qr-right">
  60. <div class="section-title">
  61. 生成结果
  62. <div class="action-buttons" v-if="showResult">
  63. <button class="btn-action" id="copy_button" @click="copyQR">复制</button>
  64. <button class="btn-action" id="download_button" @click="downloadQR">下载</button>
  65. </div>
  66. </div>
  67. <div id="preview"></div>
  68. </div>
  69. </div>
  70. </div>
  71. <!-- 二维码解码模式 -->
  72. <div class="qr-decoder-layout" v-if="!qrEncodeMode">
  73. <!-- 左侧:图片上传/预览 -->
  74. <div class="decoder-left">
  75. <div class="section-title">上传或粘贴图片</div>
  76. <div class="upload-panel" ref="panelBox">
  77. <img id="decodePreview" alt="" :src="previewSrc" v-show="!!previewSrc.length">
  78. <div class="upload-instructions" v-show="!previewSrc.length">
  79. <a id="upload" href="#" ref="uploadBox" @click="$refs.fileBox.click()">选择图片</a>
  80. <span class="drag-drop-text">或拖拽图片到这里</span>
  81. </div>
  82. </div>
  83. <div class="decoder-tips tips">
  84. 1、支持<i>屏幕截图</i>后直接在此处粘贴进行解码<br/>
  85. 2、支持<i>复制文件、复制图片</i>在线地址在此处直接粘贴进行解码
  86. </div>
  87. </div>
  88. <!-- 右侧:解码结果 -->
  89. <div class="decoder-right">
  90. <div class="section-title">解码结果</div>
  91. <textarea id="decodeResult" title="点击自动选择" placeholder="解码结果将显示在这里..." readonly ref="resultBox" @click="select()" v-model="resultContent" class="form-control mod-textarea"></textarea>
  92. </div>
  93. </div>
  94. </div>
  95. <div class="x-logo">
  96. <img src="../static/img/fe-48.png" alt="#" id="logo_default" ref="logoDefault"/>
  97. <img src="../static/img/fe-48.png" alt="#" id="logo" ref="logoCustom"/>
  98. <form action="#">
  99. <input type="file" id="file" ref="fileBox" accept=".jpg,.jpeg,.gif,.png,.bmp" @change="fileChanged($event)">
  100. </form>
  101. </div>
  102. </div>
  103. <script type="text/javascript" src="../static/vendor/jquery/jquery-3.3.1.min.js"></script>
  104. <script type="text/javascript" src="../static/vendor/jquery/jquery.colorpicker.js"></script>
  105. <script type="text/javascript" src="../static/vendor/jquery/jquery.qrcode.min.js"></script>
  106. <script type="text/javascript" src="../static/vendor/zxing/zxing.min.js"></script>
  107. <script type="text/javascript" src="index.js"></script>
  108. </body>
  109. </html>