Axios使用下载excel无法打开
我们在下载文件的时候,后端同学给我们的一般是二进制的文件。
如果按照普通的请求方式处理,前端也没办法直接下载。
首先,下载获取到二进制流了以后,应该把二进制流转换成Blob类型,然后IE浏览器使用模拟点击的方式去下载,非IE浏览器可以使用navigator浏览器对象的方法来下载文件
我们在下载文件的时候,后端同学给我们的一般是二进制的文件。
如果按照普通的请求方式处理,前端也没办法直接下载。
首先,下载获取到二进制流了以后,应该把二进制流转换成Blob类型,然后IE浏览器使用模拟点击的方式去下载,非IE浏览器可以使用navigator浏览器对象的方法来下载文件
iview-admin左侧菜单有个BUG
当你想希望显示多级菜单时,但是上级菜单仅有1个,那它的父级就会被过滤掉,不显示出来。如图所示
那么怎么让它像显示出来呢?
先说解决方法,下面BB一堆不想看的可以不看
找到
src/api/util.js
这个文件,里面找到这一行
axios.defaults.withCredentials = true
把true改成false即可
首先说一点,setColumnIndex是可以正常使用的,没有问题!
它接收两个参数,第一个是列,如果只有一列的话,第一个值就为0,第二个值就是你想动态设置的索引值!
我遇到的问题是这样的,首先用this.setData来设置了picker组件里面列的值,但是马上设置它的默认索引的时候出的问题。需要设置两次才能设置上。
这是因为小程序的setData是异步的,第一次设置的时候,picker的值还没有获取设置上去,所以第一次当然就设置不了当前索引。
解决这个问题的方法也很简答。在setData的回调里面做这个就OK了
this.setData({
show:true,
pickerName:'workexp',
columns: values,
pickerTitle:'选择工作经验'
},function(){
picker.setColumnIndex(0,this.data.info.workExperience-1)
})
wxs是小程序的一种脚本语言,语法基本跟JS是一致的,不过还是有一些区别。
wxs是解决什么问题的呢?比如我们要过滤后台接口给我们的一些字符串,但是在wxml里面使用{{}}是不能直接用js来进行过滤的。如果我们在js里面单独过滤后赋值给页面,数据多了也不是很方便。wxs就是为了解决这个问题产生的。
我们可以在自己的公用方法里面建立自己的wxs脚本
function filterStrN(str){
var reg = getRegExp('\n', 'g');
return str.replace(reg,'')
}
module.exports = {
filterStrN : filterStrN
}
以上脚本是过滤字符串的n换行符的。
这里需要注意一点。在使用replace进行正则替换的时候,如果写成replace(/n/g, '')这样是无法通过编译的。所以正则我们必须要单独使用getRegExp来生成;
建立好文件以后,在需要使用的wxml文件里面,引入脚本
<wxs src="../../../../public/wxs/filterStr/filterStr.wxs" module="filterStrN" />
需要使用的地方直接使用
{{filterStrN.filterStrN(str)}}
这样就可以直接使用了