美文网首页
常用方法

常用方法

作者: 小小一小只 | 来源:发表于2017-12-12 14:38 被阅读0次

时间类

  • 时间格式化
//获取nextDate 2017-01-01
// 火狐浏览器不支持传入字符串 即 arguments=['2017-12-12']
Date.prototype.autoString = function() {
  var month = this.getMonth() + 1;
  var day = this.getDate();
  month = month < 10 ? '0' + month : month;
  day = day < 10 ? '0' + day : day;
  var val = this.getFullYear() + "-" + month + "-" + day;
  return val;
}
//格式化时间 2017-01
Date.prototype.autoYM = function() {
  var month = this.getMonth() + 1;
  month = month < 10 ? '0' + month : month;
  var val = this.getFullYear() + "-" + month;
  return val;
}
  • 时间计算
//时间天数加减
Date.prototype.GetDateStr = function(AddDayCount) {
        AddDayCount = AddDayCount || 0;
        var dd = this;
        dd.setDate(dd.getDate() + AddDayCount); //获取AddDayCount天后的日期
        var y = dd.getFullYear();
        var m = (dd.getMonth() + 1) < 10 ? "0" + (dd.getMonth() + 1) : (dd.getMonth() + 1); //获取当前月份的日期,不足10补0
        var d = dd.getDate() < 10 ? "0" + dd.getDate() : dd.getDate(); //获取当前几号,不足10补0
        return y + "-" + m + "-" + d;
    }

字符串

  • 字符串截取
getString(str,length=6){
  if(str.length>length){
    str=str.slice(0,length)+"..."
  }
  return str
},
  • 数字格式化
function formatText(str,size,delimiter){
    var _str=str.toString();
    var _size=size||3,_delimiter=delimiter||',';
    /* 
     如果_size是3
     "\d{1,3}(?=(\d{3})+$)" 
     */
    var regText='\\d{1,'+_size+'}(?=(\\d{'+_size+'})+$)';
    /*   
    /\d{1,3}(?=(\d{3})+$)/g     这个正则的意思:匹配连续的三个数字,但是这些三个数字不能是字符串的开头1-3个字符  
     */
    var reg=new RegExp(regText,'g');
    /* 
    (-?) 匹配前面的-号   (\d+)匹配中间的数字   ((\.\d+)?)匹配小数点后面的数字
    //$0-匹配结果,$1-第一个括号返回的内容----(-?)    $2,$3如此类推  
    */
    return _str.replace(/^(-?)(\d+)((\.\d+)?)$/, function ($0, $1, $2, $3) {
          return $1 + $2.replace(reg, '$&,') + $3;
    })
}

axios拦截器

axios.interceptors.response.use(
    response => {
        if (response.status != 200) {
            return Promise.reject("err state:" + response.status) // 返回接口返回的错误信息
        }

        if (response.data.status == 0) {
            store.commit('CLEAR_TOKEN');
            store.commit('CLEAR_USERINFO')
            router.replace({
                path: '/login'
            })
        }
        return response;
    },
    error => {
        if (error.response) {
            switch (error.response.status) {
                case 401:
                    // 返回 401 清除token信息并跳转到登录页面
                    store.commit('CLEAR_TOKEN');
                    router.replace({
                        path: '/login'
                    })
                    error.message = '未授权,请重新登录'
                    break
                case 400:
                    error.message = '错误请求'
                    break;                                       
                case 403:
                    error.message = '拒绝访问'
                    break;
                case 404:
                    error.message = '请求错误,未找到该资源'
                    break;
                case 405:
                    error.message = '请求方法未允许'
                    break;
                case 408:
                    error.message = '请求超时'
                    break;
                case 500:
                    error.message = '服务器端出错'
                    break;
                case 501:
                    error.message = '网络未实现'
                    break;
                case 502:
                    error.message = '网络错误'
                    break;
                case 503:
                    error.message = '服务不可用'
                    break;
                case 504:
                    error.message = '网络超时'
                    break;
                case 505:
                    error.message = 'http版本不支持该请求'
                    break;
                default:
                    error.message = `连接错误${error.response.status}`
            }
        }else{
            error.message = "连接到服务器失败"
        }
        //全局提示
        vue.$Notice.open({
            title: '网络错误',
            desc: error.message ? '' : error.message
        });
        return Promise.reject(error.message) // 返回接口返回的错误信息
    });

相关文章

网友评论

      本文标题:常用方法

      本文链接:https://www.haomeiwen.com/subject/lgfnixtx.html