【js 常用工具类总结】


// 获取当月当天之前的天数
util.currentDay = function () {
  var curDate = new Date();
  return curDate.getDate();
};
// 获取当月月份
util.currentMonth = function () {
  var curDate = new Date();
  return curDate.getMonth() + 1;
};
/** 时间区间转换 */
util.dateArrFormat = function (arr, fmt1, fmt2) {
  let startTime = '';
  let endTime = '';
  // 时间区间格式转换
  if (
    arr != null &&
    arr.length > 0 &&
    arr[0] != '' &&
    arr[1] != ''
  ) {
    startTime = util.formatDate(arr[0], fmt1);
    endTime = util.formatDate(arr[1], fmt2);
  }
  return [startTime, endTime];
};

util.formatDate = function (date, fmt) {
  if (/(y+)/.test(fmt)) {
    fmt = fmt.replace(RegExp.$1, (date.getFullYear() + '').substr(4 - RegExp.$1.length));
  }
  let o = {
    'M+': date.getMonth() + 1,
    'd+': date.getDate(),
    'h+': date.getHours(),
    'm+': date.getMinutes(),
    's+': date.getSeconds()
  };
  for (let k in o) {
    if (new RegExp(`(${k})`).test(fmt)) {
      let str = o[k] + '';
      fmt = fmt.replace(RegExp.$1, RegExp.$1.length === 1 ? str : util.padLeftZero(str));
    }
  }
  return fmt;
};

/** 判断字符串是否不为null "" undefined */
util.hasContent = function (str) {
  if (str !== null && str !== '' && str !== undefined) {
    return true;
  }
  return false;
};

/** 获取年月日 */
util.getTime = function (data) {
  let date = {};
  if (this.hasContent(data.createDate)) {
    date.year = data.createDate.substring(0, 4);
    let num = data.createDate.substring(5, 6);
    // 月份去掉0
    if (Number(num) === 0) {
      date.month = data.createDate.substring(6, 7);
    } else {
      date.month = data.createDate.substring(5, 7);
    }
    let num2 = data.createDate.substring(8, 9);
    if (Number(num2) === 0) {
      date.day = data.createDate.substring(8, 9);
    } else {
      date.day = data.createDate.substring(8, 10);
    }
    return date;
  }
};
/** 表格数据超出部分隐藏,并气泡显示
 * h 元素
 * str 数据
 * width 气泡宽度
 */
util.tableTooltip = function (h, str, width) {
  if (util.hasContent(str)) {
    return h('div', [
      h(
        'Tooltip', {
          props: {
            placement: 'left-start'
          },
          style: {
            width: width,
            overflow: 'hidden',
            textOverflow: 'ellipsis',
            whiteSpace: 'nowrap',
            marginTop: '7px'
          }
        }, [
          h(
            'span', {
              props: {
                type: 'text',
                size: 'small'
              },
              on: {}
            },
            str
          ),
          h(
            'span', {
              slot: 'content',
              style: {
                whiteSpace: 'normal'
              }
            },
            str
          )
        ]
      )
    ]);
  }
};

util.padLeftZero = function (str) {
  return ('00' + str).substr(str.length);
};
// 获取url链接path
util.getUrlParams = function () {
  const query = window.location.href.split('/');
  if (query.length > 0) {
    return query[query.length - 1];
  }
  return '';
};
// 获取绝对值
util.getAbs = function (money) {
  return Math.abs(money);
};
// 金额转换
util.convertCurrency = function (data) {
  let money = util.getAbs(data);
  // 汉字的数字
  let cnNums = new Array(
    '零',
    '壹',
    '贰',
    '叁',
    '肆',
    '伍',
    '陆',
    '柒',
    '捌',
    '玖'
  );
  // 基本单位
  let cnIntRadice = new Array('', '拾', '佰', '仟');
  // 对应整数部分扩展单位
  let cnIntUnits = new Array('', '万', '亿', '兆');
  // 对应小数部分单位
  let cnDecUnits = new Array('角', '分', '毫', '厘');
  // 整数金额时后面跟的字符
  let cnInteger = '整';
  // 整型完以后的单位
  let cnIntLast = '元';
  // 最大处理的数字
  let maxNum = 999999999999999.9999;
  // 金额整数部分
  let integerNum;
  // 金额小数部分
  let decimalNum;
  // 输出的中文金额字符串
  let chineseStr = '';
  // 分离金额后用的数组,预定义
  let parts;
  if (money == '') {
    return '';
  }
  money = parseFloat(money);
  if (money >= maxNum) {
    // 超出最大处理数字
    return '';
  }
  if (money == 0) {
    chineseStr = cnNums[0] + cnIntLast + cnInteger;
    return chineseStr;
  }
  // 转换为字符串
  money = money.toString();
  if (money.indexOf('.') == -1) {
    integerNum = money;
    decimalNum = '';
  } else {
    parts = money.split('.');
    integerNum = parts[0];
    decimalNum = parts[1].substr(0, 4);
  }
  // 获取整型部分转换
  if (parseInt(integerNum, 10) > 0) {
    let zeroCount = 0;
    let IntLen = integerNum.length;
    for (let i = 0; i < IntLen; i++) {
      let n = integerNum.substr(i, 1);
      let p = IntLen - i - 1;
      let q = p / 4;
      let m = p % 4;
      if (n == '0') {
        zeroCount++;
      } else {
        if (zeroCount > 0) {
          chineseStr += cnNums[0];
        }
        // 归零
        zeroCount = 0;
        chineseStr += cnNums[parseInt(n)] + cnIntRadice[m];
      }
      if (m == 0 && zeroCount < 4) {
        chineseStr += cnIntUnits[q];
      }
    }
    chineseStr += cnIntLast;
  }
  // 小数部分
  if (decimalNum != '') {
    let decLen = decimalNum.length;
    for (let i = 0; i < decLen; i++) {
      let n = decimalNum.substr(i, 1);
      if (n != '0') {
        chineseStr += cnNums[Number(n)] + cnDecUnits[i];
      }
    }
  }
  if (chineseStr == '') {
    chineseStr += cnNums[0] + cnIntLast + cnInteger;
  } else if (decimalNum == '') {
    chineseStr += cnInteger;
  }
  return chineseStr;
},
  /** 富文本 */
  util.quillEditorConfig = function () {
    const toolbarOptions = [
      ['bold', 'italic', 'underline', 'strike'],
      ['blockquote', 'code-block'],
      [{'header': 1}, {'header': 2}],
      [{'list': 'ordered'}, {'list': 'bullet'}],
      [{'script': 'sub'}, {'script': 'super'}],
      [{'indent': '-1'}, {'indent': '+1'}],
      [{'direction': 'rtl'}],
      [{'size': ['small', false, 'large', 'huge']}],
      [{'header': [1, 2, 3, 4, 5, 6, false]}],
      [{'color': []}, {'background': []}],
      [{'font': []}],
      [{'align': []}],
      ['link', 'image', 'video'],
      [{'clean': '源码编辑'}]
    ];
    let editorOption = {
      placeholder: '请填写',
      theme: 'show',
      modules: {
        toolbar: {
          container: toolbarOptions,
          handlers: {
            image: function (value) {
              if (value) {
                document.querySelector('.avatar-uploader input').click();
              } else {
                this.quill.format('image', false);
              }
            }
          }
        }
      }
    };
    return editorOption;
  };

/*
 * 金额判空补零,保留两位小数
 * */
// 替换数据
util.replaceNumber = function (data) {
  return this.hasContent(data) ? Number(data).toFixed(2) : 0.00.toFixed(2);
};
/*
 * 增加,删除1个字段字段
 * */
util.setCoulumn = function (value, data, columns, operateData) {
  if (value === data) {
    if (!columns.some(item => item === operateData)) {
      columns.splice(1, 0, operateData);
    }
  } else {
    if (columns.some(item => item === operateData)) {
      columns.splice(1, 1);
    }
  }
  return columns;
};
/*
 * 增加,删除多个字段
 * columns 字段
 * operateData 添加的字段
 * num(索引) 从哪开始添加
 * size 删除字段的个数
 * */
util.setCoulumns = function (value, data, columns, operateData, num, size) {
  if (value === data) {
    if (!columns.some(item => item === operateData)) {
      columns.splice(num, 0, operateData);
    }
  } else {
    if (columns.some(item => item === operateData)) {
      columns.splice(num, size);
    }
  }
  return columns;
};
/**
 * 表格保留两位小数
 */
util.setTwoFixed = function (num) {
  let num1 = this.hasContent(num) ? Number(num) : 0;
  return num1.toFixed(2);

};
/**
 * 表格保留两位小数
 */
util.setThreeFixed = function (num) {
  let num1 = this.hasContent(num) ? Number(num) : 0;
  return num1.toFixed(3);

};
/**
 * 表格保留四位小数
 */
util.setFourFixed = function (num) {
  let num1 = this.hasContent(num) ? Number(num) : 0;
  return num1.toFixed(4);

};
/**
 * 表格日期显示年月日
 */
util.setDate = function (num) {
  return this.hasContent(num) ? num.substring(0, 10) : '';

};
/**
 * 表格截取地址
 */
util.setAddress = function (num) {
  return this.hasContent(num) ? num.substring(9) : '';

};
// 自动补零
util.prefixInteger= function (param, digit) {
  var newParam = parseFloat(param);
  if (isNaN(newParam)) {
    return 0.0;
  }
  var newParam = Math.round(param * 100) / 100;
  var decimal = newParam.toString();
  var rs = decimal.indexOf('.');
  if (rs < 0) {
    rs = decimal.length;
    decimal += '.';
  }
  while (decimal.length <= rs + digit) {
    decimal += '0';
  }
  param = decimal;
  return param;
};

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值