Vue项目中常见的公共方法汇总:通用校验处理

Posted 1024_Byte

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Vue项目中常见的公共方法汇总:通用校验处理相关的知识,希望对你有一定的参考价值。

// 初始化时间(通用型)
    initTm(queryForm, isTwo = true) 
      const limitTm = window.HT_EnvConfig.limitTm || 8
      let day = 0
      if (moment().hours() < limitTm) 
        day = 1
      
      let fmtStr = 'YYYY-MM-DD '
      if (limitTm < 10) 
        fmtStr += '0' + limitTm + ':00'
       else 
        fmtStr += limitTm + ':00'
      
      queryForm.stm = moment()
        .subtract(day, 'days')
        .format(fmtStr)

      if (isTwo) 
        queryForm.etm = moment()
          .add(moment().minutes() > 0 ? 1 : 0, 'hours')
          .format('YYYY-MM-DD HH:00')
      
    ,
  // 初始化时间(昨日8点到现在)
    initTmR(queryForm, isTwo = true) 
      let day = 0
      const limitTm = window.HT_EnvConfig.limitTmR || 8
      if (moment().hours() < limitTm) 
        day = 1
      
      let fmtStr = 'YYYY-MM-DD '
      if (limitTm < 10) 
        fmtStr += '0' + limitTm + ':00'
       else 
        fmtStr += limitTm + ':00'
      
      queryForm.stm = moment()
        .subtract(day, 'days')
        .format(fmtStr)

      if (isTwo) 
        queryForm.etm = moment()
          .add(moment().minutes() > 0 ? 1 : 0, 'hours')
          .format('YYYY-MM-DD HH:00')
      
    ,
// 初始化时间(昨日6点到现在)
    initTmQ(queryForm, isTwo = true) 
      let day = 0
      const limitTm = window.HT_EnvConfig.limitTmQ || 8
      if (moment().hours() < limitTm) 
        day = 1
      
      let fmtStr = 'YYYY-MM-DD '
      if (limitTm < 10) 
        fmtStr += '0' + limitTm + ':00'
       else 
        fmtStr += limitTm + ':00'
      
      queryForm.stm = moment()
        .subtract(day, 'days')
        .format(fmtStr)

      if (isTwo) 
        queryForm.etm = moment()
          .add(moment().minutes() > 0 ? 1 : 0, 'hours')
          .format('YYYY-MM-DD HH:00')
      
    ,
  // 时间校验
    valiTm(queryForm) 
      var etm = moment(queryForm.etm)
      var stm = moment(queryForm.stm)
      if (etm.diff(stm) < 0) 
        this.$message(
          message: '开始时间不能大于结束时间!',
          type: 'warning'
        )
        return false
      

      if (etm.diff(stm, 'days', true) > 31) 
        this.$message(
          message: '开始时间和结束时间间隔不能超过31天!',
          type: 'warning'
        )
        return false
      

      return true
    ,

// input框中数值类型校验
 isNumber(val, isStrict = false) 
      // 非负浮点数
      const regPos = /^\\d+(\\.\\d+)?$/
      // 负浮点数
      const regNeg = /^(-(([0-9]+\\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\\.[0-9]+)|([0-9]*[1-9][0-9]*)))$/

      // 是否严格区分
      if (isStrict) 
        if (regPos.test(val)) 
          return true
         else 
          return false
        
       else 
        if (regPos.test(val) || regNeg.test(val)) 
          return true
         else 
          return false
        
      
    ,

// 转换数值类型
 toNumber(str, dec = 1) 
      const r = parseFloat(str)
      if (isNaN(r)) 
        return 0
       else 
        return parseFloat(r.toFixed(dec))
      
    ,
 // 保留0位小数(结果是字符型),页面显示的时候使用
    toDecStr0(str) 
      // 异常值判断
      if (str === null || str === undefined || str === '' || str === ' ') return '-'

      const r = parseInt(str)
      if (isNaN(r)) 
        return '-'
       else 
        return r
      
    ,
 // 保留一位小数(结果是字符型),页面显示的时候使用
    toDecStr1(str, trim0 = true) 
      // 异常值判断
      if (str === null || str === undefined || str === '' || str === ' ') return '-'

      const dec = 1
      const r = parseFloat(str)
      if (isNaN(r)) 
        return '-'
       else 
        let res = r.toFixed(dec)
        if (trim0 === false) 
          return res
        

        // 删除尾部的‘0’
        if (res.endsWith('0')) 
          res = res.substring(0, res.lastIndexOf('0'))
        

        // 删除尾部的‘.’
        if (res.endsWith('.')) 
          res = res.substring(0, res.lastIndexOf('.'))
        
        return res
      
    ,
 // 保留两位小数(结果是字符型),页面显示的时候使用
    toDecStr2(str, trim0 = true) 
      // 异常值判断
      if (str === null || str === undefined || str === '' || str === ' ') return '-'

      const dec = 2
      const r = parseFloat(str)
      if (isNaN(r)) 
        return '-'
       else 
        let res = r.toFixed(dec)
        if (trim0 === false) 
          return res
        

        // 删除尾部的‘0’
        if (res.endsWith('00')) 
          res = res.substring(0, res.lastIndexOf('0') - 1)
         else if (res.endsWith('0')) 
          res = res.substring(0, res.lastIndexOf('0'))
        

        // 删除尾部的‘.’
        if (res.endsWith('.')) 
          res = res.substring(0, res.lastIndexOf('.'))
        
        return res
      
    ,
 // 保留三位小数(结果是字符型),页面显示的时候使用
    toDecStr3(str, trim0 = true) 
      // 异常值判断
      if (str === null || str === undefined || str === '' || str === ' ') return '-'

      const dec = 3
      const r = parseFloat(str)
      if (isNaN(r)) 
        return '-'
       else 
        let res = r.toFixed(dec)
        if (trim0 === false) 
          return res
        

        // 删除尾部的‘0’
        if (res.endsWith('000')) 
          res = res.substring(0, res.lastIndexOf('0') - 2)
         else if (res.endsWith('00')) 
          res = res.substring(0, res.lastIndexOf('0') - 1)
         else if (res.endsWith('0')) 
          res = res.substring(0, res.lastIndexOf('0'))
        

        // 删除尾部的‘.’
        if (res.endsWith('.')) 
          res = res.substring(0, res.lastIndexOf('.'))
        
        return res
      
    

以上是关于Vue项目中常见的公共方法汇总:通用校验处理的主要内容,如果未能解决你的问题,请参考以下文章

前端框架中常见的公共方法汇总:时间格式处理/数字格式处理

前端框架中常见的公共方法汇总:防抖节流

网站 页面公共部分的处理

Vue实战(六)通用Table组件

前端框架中常见的公共方法汇总:自定义表单验证规则

vue--封装后台管理项目通用组件