常见js工具积累1

downloadFile(url, fileName) {
      this.$axios({
        method: "get",
        url: "/ossfile/download/" + url,
        responseType: 'blob'
      }).then(function (response) {
        var blob = new Blob([response.data])
        var downloadElement = document.createElement('a');
        var href = window.URL.createObjectURL(blob); //创建下载的链接
        downloadElement.href = href;
        let newFileName = fileName;
        if (newFileName.indexOf("!") != -1) {
          let nameArr = newFileName.split("!");
          if (nameArr.length > 1) {
            newFileName = nameArr[0];
            let sufixs = nameArr[1].split(".");
            newFileName = newFileName + "." + sufixs[1];
          }
        }
        downloadElement.download = newFileName; //下载后文件名
        document.body.appendChild(downloadElement);
        downloadElement.click(); //点击下载
        document.body.removeChild(downloadElement); //下载完成移除元素
        window.URL.revokeObjectURL(href); //释放掉blob对象
      })
        .catch(function (error) {
          console.log(error);
        });
    },

2.字符串是否为空以及js金额大小写转换

   isNullOrEmpty(strVal) {
      if (strVal == '' || strVal == null || strVal == undefined || strVal.length == 0) {
        return true;
      }
      return false;
    },
    capitalAmount(amount) {
          // 汉字的数字
          const cnNums = ["零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖"];
          // 基本单位
          const cnIntRadice = ["", "拾", "佰", "仟"];
          // 对应整数部分扩展单位
          const cnIntUnits = ["", "万", "亿", "兆"];
          // 对应小数部分单位
          const cnDecUnits = ["角", "分", "毫", "厘"];
          // 整数金额时后面跟的字符
          const cnInteger = "整";
          // 整型完以后的单位
          const cnIntLast = "元";
          // 最大处理的数字
          const maxNum = 9999999999999999.99;
          // 金额整数部分
          let integerNum;
          // 金额小数部分
          let decimalNum;
          // 输出的中文金额字符串
          let chineseStr = "";
          // 分离金额后用的数组,预定义
          let parts;
          let orginAmount=amount
          amount=Math.abs(amount)
          if (amount === "") { return ""; }
          amount = parseFloat(amount);
          if (amount >= maxNum) {
            // 超出最大处理数字
            return "";
          }
          if (amount === 0) {
            chineseStr = cnNums[0] + cnIntLast + cnInteger;
            return chineseStr;
          }
          // 转换为字符串
          amount = amount.toString();
          if (amount.indexOf(".") === -1) {
            integerNum = amount;
            decimalNum = "";
          } else {
            parts = amount.split(".");
            integerNum = parts[0];
            decimalNum = parts[1].substr(0, 4);
          }
          // 获取整型部分转换
          if (parseInt(integerNum, 10) > 0) {
            let zeroCount = 0;
            const IntLen = integerNum.length;
            for (let i = 0; i < IntLen; i++) {
              const n = integerNum.substr(i, 1);
              const p = IntLen - i - 1;
              const q = p / 4;
              const m = p % 4;
              if (n === "0") {
                zeroCount++;
              } else {
                if (zeroCount > 0) {
                  chineseStr += cnNums[0];
                }
                // 归零
                zeroCount = 0;
                chineseStr += cnNums[parseInt(n, 10)] + cnIntRadice[m];
              }
              if (m === 0 && zeroCount < 4) {
                chineseStr += cnIntUnits[q];
              }
            }
            chineseStr += cnIntLast;
          }
          // 小数部分
          if (decimalNum !== "") {
            const decLen = decimalNum.length;
            for (let i = 0; i < decLen; i++) {
              const 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;
          }
          if(orginAmount<0) chineseStr = "负" + chineseStr;
          return chineseStr;
        }
posted @ 2021-06-29 19:22  热心市民~菜先生  阅读(30)  评论(0编辑  收藏  举报