7.17手持终端问题记录
1.扫码开始搜索&手动输入点击确认扫码
watch:{ SN(val,oldVal){ if(val.length-oldVal.length>10){ this.SNno = false; this.$Router.push({name:'imgWeb',params:{path:val}}) this.SN = ''; } } },
witch对数据监听,新旧数据差别长度过大即为机器扫码,直接开始搜索;一般差别为1即为手动输入状态
2.APP端保存图片至本地相册
if(_that.saveCode){ uni.downloadFile({ url: this.path, uccess: (res) => { if (res.statusCode === 200) { uni.saveImageToPhotosAlbum({ filePath: res.tempFilePath, success: function() { uni.showToast({ title: "保存成功", icon: "none" }); _that.saveCode = false; }, fail: function() {
uni.showToast({ title: "保存失败,请稍后重试", icon: "none" }); } }); } }, fail:(err)=>{ console.log(err); } });
3.获取指定日期距离现在多少天、倒计时
let startDate = Date.now(); let endDate = Date.parse(this.data.deliver2Date); let days=(endDate - startDate - 8*60*60*1000)/(1*24*60*60*1000); //以小数形式展现距离还有多少天
----------------------- ant design vue ----------------------
this.deadline = Date.now() + 1*24*60*60*1000 * days; //倒计时的时间戳
<a-statistic-countdown
title="剩余时间"
:value="deadline"
format="D 天 H 时 m 分 s 秒"
@finish="onFinish"
/>
4.路由跳转,参数加密导致出现%号,浏览器报错URI malformed,钉钉小程序不受影响
//解决url加密传参时%对于url的影响,统一替换未%25即可(钉钉小程序不受影响)
var item1 = JSON.stringify(item); //item:包含%的参数 var item2 = ''; if(item1.indexOf('%') > -1) { item2 = item1.replace(/%/g,'%25') }
非必要情况下,不使用深度对象传参(传入整个对象进行路由跳转),使用非深度对象传参{id:123},在下个页面使用id拉取数据
5.echart 自定义提示----formatter
series: [
{
name: '工艺精益改善成本统计',
type: 'bar',
stack: '总量',
data: [-300, -280, -320, -355],
label:{
show: true,
formatter: function(c){ //c:data内各个原数据
return Math.abs(c.data) //显示绝对值
}
}
}
]
tooltip: {
trigger: 'item',
formatter: function(b){ //b:已选的item整体信息
return b.name+':'+' '+Math.abs(b.value)
}
},
b:
6.echarts更改坐标轴数据
xAxis: [ { type: 'value', axisLabel: { formatter: function(v){ return Math.abs(v) } } } ],
v即为当前x轴数据,同样还是使用 formatter
7.uniapp引入echarts步骤即报错处理
* 项目目录下npm安装echarts
* 全局引入或局部引入
import * as echarts from 'echarts' //这是官方文档中给出的引入方式,可正常引入,import echarts from 'echarts' 会报错init 未定义
Vue.prototype.$echarts = echarts //全局main引入加这一行,局部引入不加
8.关于对象的一些处理
* 对象是可以使用for in 循环的
//data={name:'tom',age:17,height:'180cm'}
//this.data=[ {name:'tom',age:17,height:'180cm'} ]
var index = 0;
for(var i in data){ //这里的i不是索引,而是对象的key,所以下边用index记录当前循环次数 index += 1; arr.push(this.randomString(8)) this.columns.push({ title:i, dataIndex:arr[index-1], align:'center' }) this.data[0][arr[index-1]] = data[i]; //重点;es6中,对象的赋值方式可以这么不讲道理,this.data[0]为对象本身,obj[变量] = 变量 }
* ant中a-table遇到那种key为汉字,且动态改变的,可以采用使用随机的字符串代替汉字 (接上代码)
** 先定义一个空数组arr=[],每循环一次,调用下方函数,生成一个8位随机字符串,并将索引dataIndex设置为该随机字符串
** 然后使用对象的es6赋值语法,以随机字符串为key完成赋值
randomString(e) { e = e || 32; var t = "ABCDEFGHJKMNPQRSTWXYZabcdefhijkmnprstwxyz2345678_-", a = t.length, n = ""; for(var i = 0; i < e; i++) n += t.charAt(Math.floor(Math.random() * a)); return n },

浙公网安备 33010602011771号