vue 一些常用方法封裝

使用方式:
在使用的頁(yè)面引入:例:import { tools_downLoad} from '@/libs/date'
使用: tools_downLoad(路徑)

菜單:
1、下載壓縮包文件
2、數(shù)字金額轉(zhuǎn)文字
3、時(shí)間增加或減少幾天
4、傳入時(shí)間戳,展示正常的時(shí)間格式
5、YYYY月MM月DD日轉(zhuǎn)換為YYYY-MM-DD
6、秒轉(zhuǎn)化成時(shí)分秒
7、身份證算出出生年月和性別

1、下載文件:

/**
 * @description 下載文件
 *
 * @param [string] path 路徑
 */

export function tools_downLoad(path) {
  let str1 = path.substr(0, 1);
  let pathN = '';
  if (str1 === '/') {
    pathN = path;
  } else {
    pathN = '/' + path;
  }
  var eleLink = document.createElement("a");
  eleLink.setAttribute('target', '_blank')
  var strs = pathN.split("/");
  for (var i = 0; i < strs.length; i++) {
    if (i === strs.length - 1) {
      var filename = strs[i];
    }
  }
  eleLink.download = filename;
  eleLink.style.display = "none";
  eleLink.href = path;
  document.body.appendChild(eleLink);
  eleLink.click();
  document.body.removeChild(eleLink);
}

2、數(shù)字金額轉(zhuǎn)文字 函數(shù)

/**
 *數(shù)字金額轉(zhuǎn)文字  函數(shù)
 *
 * @export
 * @param {*} money
 * @returns
 */
export function convertCurrency(money) {
  //漢字的數(shù)字
  var cnNums = new Array('零', '壹', '貳', '叁', '肆', '伍', '陸', '柒', '捌', '玖');
  //基本單位
  var cnIntRadice = new Array('', '拾', '佰', '仟');
  //對(duì)應(yīng)整數(shù)部分?jǐn)U展單位
  var cnIntUnits = new Array('', '萬(wàn)', '億', '兆');
  //對(duì)應(yīng)小數(shù)部分單位
  var cnDecUnits = new Array('角', '分', '毫', '厘');
  //整數(shù)金額時(shí)后面跟的字符
  var cnInteger = '整';
  //整型完以后的單位
  var cnIntLast = '元';
  //最大處理的數(shù)字
  var maxNum = 999999999999999.9999;
  //金額整數(shù)部分
  var integerNum;
  //金額小數(shù)部分
  var decimalNum;
  //輸出的中文金額字符串
  var chineseStr = '';
  //分離金額后用的數(shù)組,預(yù)定義
  var parts;
  if (money == '') {
    return '';
  }
  money = parseFloat(money);
  if (money >= maxNum) {
    //超出最大處理數(shù)字
    return '';
  }
  if (money == 0) {
    chineseStr = cnNums[0] + cnIntLast + cnInteger;
    return chineseStr;
  }
  //轉(zhuǎn)換為字符串
  money = money.toString();
  if (money.indexOf('.') == -1) {
    integerNum = money;
    decimalNum = '';
  } else {
    parts = money.split('.');
    integerNum = parts[0];
    decimalNum = parts[1].substr(0, 4);
  }
  //獲取整型部分轉(zhuǎn)換
  if (parseInt(integerNum, 10) > 0) {
    var zeroCount = 0;
    var IntLen = integerNum.length;
    for (var i = 0; i < IntLen; i++) {
      var n = integerNum.substr(i, 1);
      var p = IntLen - i - 1;
      var q = p / 4;
      var 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;
  }
  //小數(shù)部分
  if (decimalNum != '') {
    var decLen = decimalNum.length;
    for (var i = 0; i < decLen; i++) {
      var 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;
}

3、時(shí)間增加或減少幾天

/*
 *時(shí)間增加或減少幾天
 * date  當(dāng)前日期 例: 2020-06-10
 * days  增加的天數(shù) 例: 30
 * return 增加后的天數(shù)
 */
export function addDate(date, days) {
  var d = new Date(date);
  d.setDate(d.getDate() + days);
  var month = d.getMonth() + 1;
  var day = d.getDate();
  if (month < 10) {
    month = "0" + month;
  }
  if (day < 10) {
    day = "0" + day;
  }
  var val = d.getFullYear() + "-" + month + "-" + day;
  return val;
}

4、傳入時(shí)間戳,展示正常的時(shí)間格式 例: formatDate(new Date(時(shí)間戳), 'yyyy-MM-dd')

export function formatDate (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 : padLeftZero(str));
    }
  }
  return fmt;
};

function padLeftZero (str) {
  return ('00' + str).substr(str.length);
}

5、YYYY月MM月DD日轉(zhuǎn)換為YYYY-MM-DD

/**
 *@description YYYY月MM月DD日轉(zhuǎn)換為YYYY-MM-DD
 * @param {string}
 * @returns {string}
 */
export function tools_transDate(str) {
  return str.replace('年', '-').replace('月', '-').replace('日', '');
}

6、秒轉(zhuǎn)化成時(shí)分秒

/**
 *@description 秒轉(zhuǎn)化成時(shí)分秒
 * @param {string}
 * @returns {string}
 */
export function formatSeconds(value) {
  var secondTime = parseInt(value); // 秒
  var minuteTime = 0; // 分
  var hourTime = 0; // 小時(shí)
  if (secondTime > 60) { // 如果秒數(shù)大于60,將秒數(shù)轉(zhuǎn)換成整數(shù)
    // 獲取分鐘,除以60取整數(shù),得到整數(shù)分鐘
    minuteTime = parseInt(secondTime / 60);
    // 獲取秒數(shù),秒數(shù)取佘,得到整數(shù)秒數(shù)
    secondTime = parseInt(secondTime % 60);
    // 如果分鐘大于60,將分鐘轉(zhuǎn)換成小時(shí)
    if (minuteTime > 60) {
      // 獲取小時(shí),獲取分鐘除以60,得到整數(shù)小時(shí)
      hourTime = parseInt(minuteTime / 60);
      // 獲取小時(shí)后取佘的分,獲取分鐘除以60取佘的分
      minuteTime = parseInt(minuteTime % 60);
    }
  }
  var result = "" + parseInt(secondTime) + "秒";

  if (minuteTime > 0) {
    result = "" + parseInt(minuteTime) + "分" + result;
  }
  if (hourTime > 0) {
    result = "" + parseInt(hourTime) + "小時(shí)" + result;
  }
  return result;
}

7、身份證算出出生年月和性別

/**
 * @description 身份證算出出生年月和性別
 * @param [string] 身份證號(hào)碼
 */

export function tools_calcIdentiyInfo(IDCard) {
  // 獲取性別
  let sex = parseInt(IDCard.substr(16, 1)) % 2 == 1 ? '男' : '女';
  let brith = IDCard.substring(6, 10) + "-" + IDCard.substring(10, 12) + "-" + IDCard.substring(12, 14);
  //獲取出生年月日
  //IDCard.substring(6,10) + "-" + IDCard.substring(10,12) + "-" + IDCard.substring(12,14);
  var yearBirth = IDCard.substring(6, 10);
  var monthBirth = IDCard.substring(10, 12);
  var dayBirth = IDCard.substring(12, 14);
  //獲取當(dāng)前年月日并計(jì)算年齡
  var myDate = new Date();
  var monthNow = myDate.getMonth() + 1;
  var dayNow = myDate.getDay();
  var age = myDate.getFullYear() - yearBirth;
  if (monthNow < monthBirth || (monthNow == monthBirth && dayNow < dayBirth)) {
    age--;
  }
  let obj = {
    sex,
    birth: brith,
    age
  }
  return obj;
}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容