闫增涛
2024-11-21 cc467a98ee4db210fe41a749546e45ff7240c652
src/assets/js/toolClass.js
@@ -1,159 +1,93 @@
import SparkMD5 from 'spark-md5'
import { getPublicImage } from '@/assets/js/middleGround/tool.js'
// import moment from "moment";
import SparkMD5 from "spark-md5";
var tool = {
  secondToTime(second) {
    var minute = Math.floor(second / 60)
    var sec = second % 60
    var time
    var minute = Math.floor(second / 60);
    var sec = second % 60;
    var time;
    if (second < 60) {
      time = second + '"'
      time = second + '"';
    } else {
      time = sec === 0 ? minute + "'" : minute + "'" + sec + '"'
      time = sec === 0 ? minute + "'" : minute + "'" + sec + '"';
    }
    return time
    return time;
  },
  setCookie: function (c_name, value, expiredays, path) {
    var exdate = new Date()
    exdate.setDate(exdate.getDate() + expiredays)
    var exdate = new Date();
    exdate.setDate(exdate.getDate() + expiredays);
    document.cookie =
      c_name +
      '=' +
      "=" +
      escape(value) +
      (expiredays == null ? '' : ';expires=' + exdate.toGMTString()) +
      (path ? ';path=' + path : '')
      (expiredays == null ? "" : ";expires=" + exdate.toGMTString()) +
      (path ? ";path=" + path : "");
  },
  getCookie: function (c_name) {
    if (document.cookie.length > 0) {
      var c_start = document.cookie.indexOf(c_name + '=')
      var c_start = document.cookie.indexOf(c_name + "=");
      if (c_start != -1) {
        c_start = c_start + c_name.length + 1
        var c_end = document.cookie.indexOf(';', c_start)
        if (c_end == -1) c_end = document.cookie.length
        return unescape(document.cookie.substring(c_start, c_end))
        c_start = c_start + c_name.length + 1;
        var c_end = document.cookie.indexOf(";", c_start);
        if (c_end == -1) c_end = document.cookie.length;
        return unescape(document.cookie.substring(c_start, c_end));
      }
    }
    return ''
    return "";
  },
  delCookie: function (name) {
    var exp = new Date()
    exp.setTime(exp.getTime() - 1)
    var cval = tool.getCookie(name)
    if (cval != null) document.cookie = name + '=' + cval + ';expires=' + exp.toGMTString()
    var exp = new Date();
    exp.setTime(exp.getTime() - 1);
    var cval = tool.getCookie(name);
    if (cval != null)
      document.cookie = name + "=" + cval + ";expires=" + exp.toGMTString();
  },
  // 强制保留2位小数,如:2,会在2后面补上00.即2.00
  toDecimal2(x) {
    var f
    f = parseFloat(x)
    var f;
    f = parseFloat(x);
    if (isNaN(f)) {
      return false
      return false;
    }
    f = Math.round(x * 100) / 100
    var s = f.toString()
    var rs = s.indexOf('.')
    f = Math.round(x * 100) / 100;
    var s = f.toString();
    var rs = s.indexOf(".");
    if (rs < 0) {
      rs = s.length
      s += '.'
      rs = s.length;
      s += ".";
    }
    while (s.length <= rs + 2) {
      s += '0'
      s += "0";
    }
    return s
    return s;
  },
  formateTime(date) {
    var newDate = new Date(+new Date(date) + 8 * 3600 * 1000)
      .toISOString()
      .replace(/T/g, ' ')
      .replace(/\.[\d]{3}Z/, '')
    var time = new Date(newDate)
    return time.getTime()
      .replace(/T/g, " ")
      .replace(/\.[\d]{3}Z/, "");
    var time = new Date(newDate);
    return time.getTime();
  }
}
// 处理订单记录
// export function setOrderList(res) {
//   // 获取当前年份的开始时间
//   let currentTimestamp = moment().startOf("year");
//   let arr = [];
//   for (let i = 0; i < res.length; i++) {
//     const item = res[i];
//     // 发票状态为审核中或者审核失败,将item选中状态设置选中。
//     // UI控制禁用(显示的效果为 选中并且禁用)
//     if (item.invoiceInfo) {
//       item.checked = true;
//     } else {
//       item.checked = false;
//     }
//     // 判断是否超出申请发票的日期
//     item.exceedingTheSpecifiedTime = moment(item.createDate).isBefore(
//       currentTimestamp
//     );
//     if (item.saleMethodLinks.length > 0) {
//       let itemName = null;
//       let itemIcon = null;
//       let cmsItemList = null;
//       try {
//         cmsItemList = item.saleMethodLinks[0].orderSaleMethod.cmsItemList[0];
//       } catch (error) {
//         cmsItemList = null;
//       }
//       if (cmsItemList && cmsItemList.icon) {
//         itemName = cmsItemList.name;
//         itemIcon = cmsItemList.icon;
//       } else {
//         itemName = item.saleMethodLinks[0].orderSaleMethod.product.name;
//         itemIcon = item.saleMethodLinks[0].orderSaleMethod.product.icon;
//       }
//       item.saleMethodLinks[0].title = itemName;
//       item.saleMethodLinks[0].icon = getPublicImage(itemIcon);
//     } else {
//       const itemIcon = require("@/assets/images/bookCity/place_img.png");
//       const saleMethodLink = [];
//       const obj = {
//         icon: itemIcon,
//         orderSaleMethod: {
//           price: item.payPrice,
//         },
//       };
//       saleMethodLink.push(obj);
//       item.saleMethodLinks = saleMethodLink;
//     }
//     if (item.state == "Success") {
//       item.CustomState = "支付成功";
//     }
//     if (item.state == "Cancel") {
//       item.CustomState = "取消支付";
//     }
//     if (item.state == "WaitPay") {
//       item.CustomState = "等待支付";
//     }
//     if (item.state == "WaitDeliver") {
//       item.CustomState = "正在支付";
//     }
//     arr.push(item);
//   }
//   return arr;
// }
};
//处理表单提交数据
export function worksData(res) {
  let arr = []
  let arr = [];
  for (let i = 0; i < res.length; i++) {
    const item = res[i]
    const item = res[i];
    if (item.typeField) {
      if (item.typeField.config) {
        item.typeField.options = JSON.parse(item.typeField.config).option
        item.typeField.options = JSON.parse(item.typeField.config).option;
      }
      arr.push(item.typeField)
      arr.push(item.typeField);
    }
  }
  return arr
  return arr;
}
export function worksDataBytool(res, value, linkList) {
  let arr = []
  let nrr = []
  let arr = [];
  let nrr = [];
  if (linkList && linkList.length > 0) {
    linkList.forEach((e) =>
      nrr.push({
@@ -161,45 +95,45 @@
        linkType: e.linkType,
        md5: e.md5
      })
    )
    );
  }
  res.forEach((item) => {
    const obj = {
      baseType: item.typeField.baseType,
      order: 0,
      typeFieldId: item.typeField.id,
      sequenceNum: item.config ? JSON.parse(item.config).uuid : '',
      sequenceNum: item.config ? JSON.parse(item.config).uuid : "",
      newDataAndFileLinkListRequest: []
    }
    };
    for (let k in value) {
      if (item.typeField.refCode === k) {
        if (item.typeField.type == 'File') {
        if (item.typeField.type == "File") {
          try {
            obj.strValue = JSON.stringify(value[k].map((citem) => citem.md5))
            obj.strValue = JSON.stringify(value[k].map((citem) => citem.md5));
          } catch (error) {
            obj.strValue = ''
            obj.strValue = "";
          }
          obj.newDataAndFileLinkListRequest = nrr
          obj.newDataAndFileLinkListRequest = nrr;
        } else {
          if (typeof value[k] == 'object') {
            obj.strValue = JSON.stringify(value[k])
          if (typeof value[k] == "object") {
            obj.strValue = JSON.stringify(value[k]);
          } else {
            if (obj.baseType === 'String') {
              obj.strValue = value[k] + ''
            } else if (obj.baseType === 'Text') {
              obj.textValue = value[k] + ''
            if (obj.baseType === "String") {
              obj.strValue = value[k] + "";
            } else if (obj.baseType === "Text") {
              obj.textValue = value[k] + "";
            } else {
              obj.strValue = value[k] + ''
              obj.strValue = value[k] + "";
            }
          }
        }
      }
    }
    // if (obj.strValue || obj.textValue) {
    arr.push(obj)
    arr.push(obj);
    // }
  })
  return arr
  });
  return arr;
}
export function UpdateworksDataBytool(initData, res, value, linkList) {
@@ -223,7 +157,7 @@
        id: updateOldData.id,
        typeFieldId: citem.typeField.id,
        sequenceNum: citem.sequenceNum,
        setDataAndFileLinkListRequest: [],
        setDataAndFileLinkListRequest: []
      };
      for (let k in value) {
        if (citem.typeField.refCode === k) {
@@ -247,7 +181,7 @@
        order: 0,
        typeFieldId: citem.typeField.id,
        sequenceNum: citem.sequenceNum,
        setDataAndFileLinkListRequest: [],
        setDataAndFileLinkListRequest: []
      };
      for (let k in value) {
        if (citem.typeField.refCode === k) {
@@ -266,21 +200,21 @@
  });
  return {
    updateData: arr,
    newData: newArr,
    newData: newArr
  };
}
export function download(url) {
  const iframe = document.createElement('iframe')
  iframe.setAttribute('hidden', 'hidden')
  document.body.appendChild(iframe)
  const iframe = document.createElement("iframe");
  iframe.setAttribute("hidden", "hidden");
  document.body.appendChild(iframe);
  iframe.onload = () => {
    if (iframe) {
      iframe.setAttribute('src', 'about:blank')
      iframe.setAttribute("src", "about:blank");
    }
  }
  };
  iframe.setAttribute('src', url)
  iframe.setAttribute("src", url);
}
/**
@@ -290,168 +224,79 @@
 * @returns {string}
 */
export function uuid(len = 32, radix = 16) {
  const chars = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'.split('')
  const chars =
    "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz".split("");
  let uuid = [],
    i
  radix = radix || chars.length
    i;
  radix = radix || chars.length;
  if (len) {
    // Compact form
    for (i = 0; i < len; i++) uuid[i] = chars[0 | (Math.random() * radix)]
    for (i = 0; i < len; i++) uuid[i] = chars[0 | (Math.random() * radix)];
  } else {
    // rfc4122, version 4 form
    let r
    let r;
    // rfc4122 requires these characters
    uuid[8] = uuid[13] = uuid[18] = uuid[23] = '-'
    uuid[14] = '4'
    uuid[8] = uuid[13] = uuid[18] = uuid[23] = "-";
    uuid[14] = "4";
    // Fill in random data.  At i==19 set the high bits of clock sequence as
    // per rfc4122, sec. 4.1.5
    for (i = 0; i < 36; i++) {
      if (!uuid[i]) {
        r = 0 | (Math.random() * 16)
        uuid[i] = chars[i === 19 ? (r & 0x3) | 0x8 : r]
        r = 0 | (Math.random() * 16);
        uuid[i] = chars[i === 19 ? (r & 0x3) | 0x8 : r];
      }
    }
  }
  return uuid.join('')
  return uuid.join("");
}
export function getFileMd5(file, chunkSize) {
  return new Promise((resolve, reject) => {
    let blobSlice = File.prototype.slice || File.prototype.mozSlice || File.prototype.webkitSlice
    let chunks = Math.ceil(file.size / chunkSize)
    let currentChunk = 0
    let spark = new SparkMD5.ArrayBuffer()
    let fileReader = new FileReader()
    let blobSlice =
      File.prototype.slice ||
      File.prototype.mozSlice ||
      File.prototype.webkitSlice;
    let chunks = Math.ceil(file.size / chunkSize);
    let currentChunk = 0;
    let spark = new SparkMD5.ArrayBuffer();
    let fileReader = new FileReader();
    fileReader.onload = function (e) {
      spark.append(e.target.result)
      currentChunk++
      spark.append(e.target.result);
      currentChunk++;
      if (currentChunk < chunks) {
        loadNext()
        loadNext();
      } else {
        const md5 = spark.end()
        resolve(md5)
        const md5 = spark.end();
        resolve(md5);
      }
    }
    };
    fileReader.onerror = function (e) {
      reject(e)
    }
      reject(e);
    };
    function loadNext() {
      let start = currentChunk * chunkSize
      let end = start + chunkSize
      let start = currentChunk * chunkSize;
      let end = start + chunkSize;
      if (end > file.size) {
        end = file.size
        end = file.size;
      }
      fileReader.readAsArrayBuffer(blobSlice.call(file, start, end))
      fileReader.readAsArrayBuffer(blobSlice.call(file, start, end));
    }
    loadNext()
  })
    loadNext();
  });
}
// 处理时间,用于显示音视频当前时间
// export function realFormatSecond(time) {
//   let duration = parseInt(time);
//   let minute = parseInt(duration / 60);
//   let sec = (duration % 60) + "";
//   let isM0 = ":";
//   if (minute == 0) {
//     minute = "00";
//   } else if (minute < 10) {
//     minute = "0" + minute;
//   }
//   if (sec.length == 1) {
//     sec = "0" + sec;
//   }
//   return minute + isM0 + sec;
// }
// export function parseHtml(content) {
//   const tagReg =
//     /<\/?div[^>]*>|<\/?span[^>]*>|<\/?table[^>]*>|<\/?th[^>]*>|<\/?thead>|<\/?tbody>|<\/?tr>|<\/?td[^>]*>|<br[^>]*>|<\/?p[^>]*>|<\/?sub>|<\/?sup>|<\/?font[^>]*>|<img[^>]*>|<\/?a[^>]*>|\n|\\n/gi;
//   const escapeReg =
//     /&(lt|gt|le|ge|nbsp|amp|quot|times|Alpha|Beta|Gamma|Delta|Epsilon|Zeta|Eta|Theta|Iota|Kappa|Lambda|MU|NU|Xi|Omicron|Pi|Rho|Sigma|Tau|Upsilon|Phi|Chi|Psi|Omega|alpha|beta|gamma|delta|epsilon|zeta|eta|theta|iota|kappa|lambda|mu|nu|xi|omicron|pi|rho|sigmaf|sigma|tau|upsilon|phi|chi|psi|omega|thetasym|upsih|piv|circ|tilde|ndash|permil|lsquo|rsquo|ldquo|rdquo|prime);/gi;
//   const escapeElements = {
//     lt: "<",
//     gt: ">",
//     le: "≤",
//     ge: "≥",
//     nbsp: " ",
//     amp: "&",
//     quot: '""',
//     times: "×",
//     Alpha: "Α",
//     Beta: "Β",
//     Gamma: "Γ",
//     Delta: "Δ",
//     Epsilon: "Ε",
//     Zeta: "Ζ",
//     Eta: "Η",
//     Theta: "Θ",
//     Iota: "Ι",
//     Kappa: "Κ",
//     Lambda: "Λ",
//     Mu: "Μ",
//     Nu: "Ν",
//     Xi: "Ξ",
//     Omicron: "Ο",
//     Pi: "Π",
//     Rho: "Ρ",
//     Sigma: "Σ",
//     Tau: "Τ",
//     Upsilon: "Υ",
//     Phi: "Φ",
//     Chi: "Χ",
//     Psi: "Ψ",
//     Omega: "Ω",
//     alpha: "α",
//     beta: "β",
//     gamma: "γ",
//     delta: "δ",
//     epsilon: "ε",
//     zeta: "ζ",
//     eta: "η",
//     theta: "θ",
//     iota: "ι",
//     kappa: "κ",
//     lambda: "λ",
//     mu: "μ",
//     nu: "ν",
//     xi: "ξ",
//     omicron: "ο",
//     pi: "π",
//     rho: "ρ",
//     sigmaf: "ς",
//     sigma: "σ",
//     tau: "τ",
//     upsilon: "υ",
//     phi: "φ",
//     chi: "χ",
//     psi: "ψ",
//     omega: "ω",
//     thetasym: "ϑ",
//     upsih: "ϒ",
//     piv: "ϖ",
//     circ: "ˆ",
//     tilde: "˜",
//     ndash: "–",
//     permil: "‰",
//     lsquo: "‘",
//     rsquo: "’",
//     ldquo: "“",
//     rdquo: "”",
//     prime: "′",
//   };
//   const contentWithoutTag = content.replace(tagReg, "");
//   const contentWithOnlyOneSpace = contentWithoutTag.replace(/ {2,}/g, " ");
//   return contentWithOnlyOneSpace.replace(
//     escapeReg,
//     (all, t) => escapeElements[t]
//   );
// }
export function getParentNodeByClassName(element, className) {
  if (element && element.classList.contains(className)) {
    return element;
  } else {
    return getParentNodeByClassName(element.parentNode, className);
  }
}
export default {
  ...tool,
@@ -459,7 +304,7 @@
  getFileMd5,
  worksDataBytool,
  UpdateworksDataBytool,
  getPublicImage,
  worksData
  worksData,
  getParentNodeByClassName
  // parseHtml,
}
};