一、函数代码
1 downloadReport(url) {
2 // 从url中找到文件名的索引位置
3 const index = url.lastIndexOf('/') + 1
4 // 匹配url后缀,检查是否为pdf,是则窗口打开,否则下载到本地
5 if (url.lastIndexOf('.pdf') === -1) {
6 // 创建下载
7 const link = document.createElement('a')
8 link.style.display = 'none'
9 link.href = url
10 link.download = url.substring(index)
11 link.click()
12 this.$message({
13 message: `正在下载,请稍后在本地查看`,
14 type: 'success'
15 })
16 } else {
17 window.open(url, url.substring(index))
18 }
19 }
二、函数说明
indexOf('xxx'): 由左至右,查找某指定字符串在完整字符串中首次出现的位置索引。
lastIndexOf('xxx'): 由右至左,查找某指定字符串在完整字符串中首次出现的位置索引。
substring(startIndex, endIndex): 截取字符串从索引startIndex到endIndex间的字符,end为可选参数,不填意味着截取从startIndex到url.length-1位置的字符串。