From 375513370cc01fcd976987d07797249600b0bb3e Mon Sep 17 00:00:00 2001
From: 杨磊 <505174330@qq.com>
Date: 星期四, 07 八月 2025 17:15:09 +0800
Subject: [PATCH] 'first'

---
 src/assets/js/toolClass.js |  216 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 216 insertions(+), 0 deletions(-)

diff --git a/src/assets/js/toolClass.js b/src/assets/js/toolClass.js
new file mode 100644
index 0000000..a918473
--- /dev/null
+++ b/src/assets/js/toolClass.js
@@ -0,0 +1,216 @@
+import SparkMD5 from "spark-md5";
+
+var tool = {
+  setCookie: function (c_name, value, expiredays, path) {
+    var exdate = new Date();
+    exdate.setDate(exdate.getDate() + expiredays);
+    document.cookie =
+      c_name +
+      "=" +
+      escape(value) +
+      (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 + "=");
+      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));
+      }
+    }
+    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();
+  },
+  // 寮哄埗淇濈暀2浣嶅皬鏁帮紝濡傦細2锛屼細鍦�2鍚庨潰琛ヤ笂00.鍗�2.00
+  toDecimal2(x) {
+    var f;
+    f = parseFloat(x);
+    if (isNaN(f)) {
+      return false;
+    }
+    f = Math.round(x * 100) / 100;
+    var s = f.toString();
+    var rs = s.indexOf(".");
+    if (rs < 0) {
+      rs = s.length;
+      s += ".";
+    }
+    while (s.length <= rs + 2) {
+      s += "0";
+    }
+    return s;
+  },
+};
+
+/**
+ * 鑾峰彇涓�涓猆UID
+ * @param len
+ * @param radix
+ * @returns {string}
+ */
+export function uuid(len = 32, radix = 16) {
+  const chars =
+    "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz".split("");
+  let uuid = [],
+    i;
+  radix = radix || chars.length;
+
+  if (len) {
+    // Compact form
+    for (i = 0; i < len; i++) uuid[i] = chars[0 | (Math.random() * radix)];
+  } else {
+    // rfc4122, version 4 form
+    let r;
+
+    // rfc4122 requires these characters
+    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];
+      }
+    }
+  }
+
+  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();
+    fileReader.onload = function (e) {
+      spark.append(e.target.result);
+      currentChunk++;
+      if (currentChunk < chunks) {
+        loadNext();
+      } else {
+        const md5 = spark.end();
+        resolve(md5);
+      }
+    };
+    fileReader.onerror = function (e) {
+      reject(e);
+    };
+
+    function loadNext() {
+      let start = currentChunk * chunkSize;
+      let end = start + chunkSize;
+      if (end > file.size) {
+        end = file.size;
+      }
+      fileReader.readAsArrayBuffer(blobSlice.call(file, start, end));
+    }
+    loadNext();
+  });
+}
+
+export function worksDataBytool(res, value, linkList) {
+  let arr = [];
+  res.forEach((item) => {
+    const obj = {
+      baseType: item.typeField.baseType,
+      order: 0,
+      typeFieldId: item.typeField.id,
+      sequenceNum: item.config ? JSON.parse(item.config).uuid : "",
+      newDataAndFileLinkListRequest: [],
+    };
+    for (let k in value) {
+      if (item.typeField.refCode === k) {
+        if (typeof value[k] == "object") {
+          obj.strValue = JSON.stringify(value[k]);
+          obj.newDataAndFileLinkListRequest = linkList;
+        } else {
+          obj.strValue = value[k];
+        }
+      }
+    }
+    if (obj.strValue) {
+      arr.push(obj);
+    }
+  });
+  return arr;
+}
+
+export function resultsBytool(res, value) {
+  let obj = {};
+  res.forEach((item, i) => {
+    item.sequenceNum = item.config ? JSON.parse(item.config).uuid : "";
+    value.forEach((e) => {
+      if (item.sequenceNum == e.sequenceNum) {
+        try {
+          const val = JSON.parse(e.value);
+          obj[item.typeField.refCode] = val;
+        } catch (error) {
+          obj[item.typeField.refCode] = e.value;
+        }
+      }
+    });
+  });
+  return obj;
+}
+
+export function UpdateworksDataBytool(initData, res, value, linkList) {
+  let arr = [];
+  for (let i = 0; i < initData.length; i++) {
+    const ele = initData[i];
+    for (let j = 0; j < res.length; j++) {
+      const item = res[j];
+      if (item.sequenceNum == ele.sequenceNum) {
+        item.refCode = ele.typeField.refCode;
+      }
+    }
+  }
+  res.forEach((item) => {
+    const obj = {
+      baseType: item.baseType,
+      order: 0,
+      id: item.id,
+      typeFieldId: item.fieldId,
+      sequenceNum: item.sequenceNum,
+      setDataAndFileLinkListRequest: [],
+    };
+    for (let k in value) {
+      if (item.refCode === k) {
+        if (typeof value[k] == "object") {
+          obj.strValue = JSON.stringify(value[k]);
+          obj.setDataAndFileLinkListRequest = linkList;
+        } else {
+          obj.strValue = value[k].toString();
+        }
+      }
+    }
+    if (obj.strValue) {
+      arr.push(obj);
+    }
+  });
+  return arr;
+}
+
+export default {
+  ...tool,
+  uuid,
+  getFileMd5,
+  worksDataBytool,
+  UpdateworksDataBytool,
+  resultsBytool,
+};

--
Gitblit v1.9.1