?實現:
首先引入zxing和hutool工具依賴
<dependency><groupId>com.google.zxing</groupId><artifactId>core</artifactId><version>3.5.2</version></dependency><dependency><groupId>com.google.zxing</groupId><artifactId>javase</artifactId><version>3.5.2</version></dependency><dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId><version>${hutool.version}</version></dependency>
<hutool.version>5.8.11</hutool.version>
因為當前業務是根據微腦設備生成的二維碼,通過掃描該二維碼可以跳轉到對應的頁面查看微腦詳細信息,所以這里是傳遞的微腦設備的id到后端,后端在根據id生成對應的內容以及存儲二維碼路徑到數據庫中?
//先看是否有二維碼,如果有直接拿著二維碼返回沒如果沒有二維碼就調用方法生成一個二維碼并存到數據庫if (StringUtils.isEmpty(wn.getQrCode())) {String url = qrcode(id);wn.setQrCode(url);wnMapper.updateWn(wn);}public String qrcode(Long id) {try {String dateStr = DateUtils.parseDateToStr("yyyyMMdd", new Date());String basePath = profilePath+"/avatar/" + dateStr + "/" + id;String basepathtourl= "/profile/avatar/"+ dateStr + "/" + id+ "/qrcode.png";// 創建目錄(如果不存在)File dir = new File(basePath);if (!dir.exists()) {dir.mkdirs();}String qrCodePath = basePath + "/qrcode.png";String URL = "192.168.0.43/wn/WnDetail?WnId=" + id;// 使用 Hutool 生成二維碼QrCodeUtil.generate(URL, 300, 300, FileUtil.file(qrCodePath));return basepathtourl;} catch (Exception e) {e.printStackTrace();return null;}}
?前端頁面根據返回的路徑,進行拼接顯示
<el-form-item label="二維碼"><img :src="imgurl" class="qr-code" /></el-form-item>
?