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