代码如下：import html2Canvas from 'html2canvas' import JsPDF from 'jspdf' exportPDF () { var title = this.htmlTitle html2Canvas(document.querySelector('#pdfDom'), { allowTaint: true }).then((canvas) => { console.log(canvas.width, canvas.height) const contentWidth = canvas.width const contentHeight = canvas.height const pageHeight = (contentWidth / 592.28) * 841.89 let leftHeight = contentHeight let position = 0 const imgWidth = 841.89 const imgHeight = (841.89 / contentWidth) * contentHeight const pageData = canvas.toDataURL('image/jpeg', 1.0) const PDF = new JsPDF('l', 'pt', 'a4') if (leftHeight < pageHeight) { PDF.addImage(pageData, 'JPEG', 0, 0, imgWidth, imgHeight) } else { while (leftHeight > 0) { PDF.addImage(pageData, 'JPEG', 0, position, imgWidth, imgHeight) leftHeight -= pageHeight position -= 841.89 if (leftHeight > 0) { PDF.addPage() } } } PDF.save(title + '.pdf') }) },
/* 全局隐藏滚动条样式 */ ::-webkit-scrollbar { width: 0 !important; } ::-webkit-scrollbar { width: 0 !important; height: 0; }
首先在根目录创建这个文件：vue.config.js然后输入一下内容module.exports = { publicPath: './', outputDir: 'dist', assetsDir: 'static', indexPath: 'index.html' } 之后npm run build就可以了
这两天写了一个无痛刷新token的例子。思路是网上查到的，就是创建两个token，一个正常token，一个refreshToken 使用token去查是否过期，如果正常就返回token，前端用这个token去查数据 如果无效就引导到登录页 如果过期了，需要使用refreshToken再试一次 如果refreshToken也出错或者也过期了，那就引导到登录页 如果refreshToken没过期，就调用后端的refresh接口获得新的token和refreshToken，并返回新token去查数据代码如下：// 给每个页面的查验或者刷新token服务 static async checkToken () { // 首先看是不是登录了，如果没有登录，返回false if (!localStorage.getItem('token')) return false // 如果有，拿缓存的token去校验一下是否有效 const token = localStorage.getItem('token') const checkResult = await this.check(token) // 如果结果不是70009也不是70008，说明token有效，直接返回token if (checkResult.code !== '70009' && checkResult.code !== '70008') { return token } // 如果token无效，返回false if (checkResult.code === '70009') return false // 如果token过期，用freshToken再试一次获得新token if (checkResult.code === '70008') { // 使用refreshToken去获取新的token const refreshToken = localStorage.getItem('refreshToken') const refreshResult = await this.refresh(refreshToken) // 如果refreshToken也出错或者过期，重新去登录 if (refreshResult.code === '70009' || refreshResult.code === '70008') { return false } // 刷新成功，更新token，并返回新的token localStorage.setItem('token', refreshResult.token) localStorage.setItem('refreshToken', refreshResult.refreshToken) return refreshResult.token } }