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
},

 

posted @ 2021-07-17 17:29  我爱吃瓜  阅读(81)  评论(0)    收藏  举报