UNPKG

iv-npm

Version:

公共通用包

696 lines (680 loc) 21.1 kB
// utils/arr/tree.ts function arrToTree(list, parentMark, childrenMark) { let result = [], temp; for (let i = 0; i < list.length; i++) { if (!list[i][parentMark]) { temp = list.filter( (item) => item[parentMark] === list[i][childrenMark] ); if (temp.length > 0) { list[i].children = temp; } result.push(list[i]); } } return result; } function _loadChildren(obj, list) { const arr = list.filter((x) => x.parentId == obj.id); if (!arr.length) return; obj.children = arr; obj.children.forEach((x) => { _loadChildren(x, list); }); return obj; } function tranListToTreeData(list) { const results = list.filter( (x) => x.parentId == null || !list.find((xx) => x.parentId === xx.id) ); results.forEach((x) => _loadChildren(x, list)); return results; } function addPropertyToTree(list, formatValue, parentNode) { return list.map((item) => { const newNode = { ...item }; formatValue(newNode, parentNode); if (newNode.children) { newNode.children = addPropertyToTree(newNode.children, formatValue, newNode); } return newNode; }); } function removeElementsWithDescendants(list, predicate) { return list.reduce((acc, item) => { if (predicate(item)) { removeElementsWithDescendants(item.children || [], predicate); return acc; } else { const children = item.children ? removeElementsWithDescendants(item.children, predicate) : void 0; return [...acc, { ...item, children }]; } }, []); } function findTree(id, list, idName) { let result; if (!list.length) return; const fn = (id2, list2, idName2) => { list2.find((_e) => { if (_e[idName2] === id2) { result = _e; } else if (_e.children && _e.children.length !== 0) return fn(id2, _e.children, idName2); }); }; fn(id, list, idName); return result; } function findNodesByIds(tree, ids, findName = "id", foundNodes = []) { if (!tree) { return foundNodes; } for (const node of tree) { if (ids.includes(node[findName])) { foundNodes.push(node); } if (node.children) { findNodesByIds(node.children, ids, findName, foundNodes); } } return foundNodes; } // utils/arr/digitalComp.ts import { strip, plus, minus, times, divide, round } from "number-precision"; var isKeyInObject = (object, key) => { return Object.prototype.hasOwnProperty.call(object, key); }; var formatPercentage = (complete, need) => { if (!need || !complete) return 0; const result = times(divide(complete / need), 100); return Number.isNaN(result) ? 0 : result; }; var arraySum = (arr) => { const len = arr.length; if (len === 0) return 0; if (len === 1) return arr[0]; return plus(...arr); }; var arraySumByKey = (arr, key) => { const len = arr.length; if (len === 0) return 0; if (len === 1) { if (!isKeyInObject(arr[0], key)) throw new Error(`could not find it '${key}' in arraySumByKey function`); return Number(arr[0][key]) ?? 0; } const tempArr = []; arr.forEach((_e) => { if (!isKeyInObject(_e, key)) throw new Error(`could not find it '${key}' in arraySumByKey function`); tempArr.push(_e[key] ?? 0); }); return arraySum(tempArr); }; var isArraySumCompared = (arr1, arr2, key1, key2) => { const k1 = key1; const k2 = key2 ?? key1; return arraySumByKey(arr1, k1) == arraySumByKey(arr2, k2); }; var numFormat = (num, suffix = 2) => { const value = Number(num); if (Number.isNaN(value)) return "0.00"; return value.toLocaleString("en-US", { minimumFractionDigits: suffix, maximumFractionDigits: suffix }); }; // utils/obj/judge.ts function isPlainObject(obj) { let proto, Ctor; if (!obj || toString.call(obj) !== "[object Object]") { return false; } proto = Object.getPrototypeOf(obj); if (!proto) { return true; } Ctor = {}.hasOwnProperty.call(proto, "constructor") && proto.constructor; return typeof Ctor === "function" && {}.hasOwnProperty.toString.call(Ctor) === {}.hasOwnProperty.toString.call(Object); } var isObject = (val) => val !== null && typeof val === "object"; function isDate(val) { return toString.call(val) === "[object Date]"; } function isURLSearchParams(val) { return typeof URLSearchParams !== "undefined" && val instanceof URLSearchParams; } // utils/obj/cache.ts var assign = Object.assign; // utils/input/index.ts function filterOptionHeadle(key) { return (input, option) => option[key] && option[key].toLowerCase().indexOf(input.toLowerCase()) >= 0; } // utils/format/buildUrl.ts function encode(val) { return encodeURIComponent(val).replace(/%40/g, "@").replace(/%3A/gi, ":").replace(/%24/g, "$").replace(/%2C/gi, ",").replace(/%20/g, "+").replace(/%5B/gi, "[").replace(/%5D/gi, "]"); } function buildURL(url, params) { if (!params) { return url; } if (isURLSearchParams(params)) { return url += (url.includes("?") ? "&" : "?") + params.toString(); } const parts = []; Object.keys(params).forEach((key) => { const val = params[key]; if (val === null || typeof val === "undefined") { return; } let tempVal = []; if (Array.isArray(val)) { tempVal = val; } else { tempVal = [val]; } tempVal.forEach((temp) => { if (isDate(temp)) { temp = val.toString(); } else if (isObject(temp)) { temp = JSON.stringify(temp); } parts.push(`${encode(key)}=${encode(temp)}`); }); }); const hashmarkIndex = url.indexOf("#"); if (hashmarkIndex !== -1) { url = url.slice(0, hashmarkIndex); } url += (url.includes("?") ? "&" : "?") + parts.join("&"); return url; } // utils/format/apiConfiger.ts var hostname = window.location.hostname.split("."); var protocol = window.location.protocol; function apiConfiger(config) { console.log(hostname, "---------hostname"); console.log(protocol, "---------protocol"); if (config.requestBase == "SHARECOOL_URL") { config.baseURL = process.env.NODE_ENV == "development" ? "/mrp" : `${protocol}//mrp.${hostname[1]}.${hostname[2]}`; } if (config.requestBase == "USER_BASE_URL") { config.baseURL = process.env.NODE_ENV == "development" ? "/user" : `${protocol}//basis.${hostname[1]}.${hostname[2]}`; } if (config.requestBase == "BASIS_BASE_URL") { config.baseURL = process.env.NODE_ENV == "development" ? "/basis" : `${protocol}//basis.${hostname[1]}.${hostname[2]}`; } if (config.requestBase == "MRP2_BASE_URL") { config.baseURL = process.env.NODE_ENV == "development" ? "/mrp2" : `${protocol}//mrp2.${hostname[1]}.${hostname[2]}`; } if (config.requestBase == "MRP_BASE_URL") { config.baseURL = process.env.NODE_ENV == "development" ? "/mrp" : `${protocol}//mrp.${hostname[1]}.${hostname[2]}`; } if (config.requestBase == "ROOT_BASE_URL") { config.baseURL = process.env.NODE_ENV == "development" ? "/root" : `${protocol}//basis.${hostname[1]}.${hostname[2]}`; } if (config.requestBase == "GATEWAY_URL") { config.baseURL = process.env.NODE_ENV == "development" ? "/gateway" : `${protocol}//gateway.${hostname[1]}.${hostname[2]}`; } if (config.requestBase == "SFM_URL") { config.baseURL = process.env.NODE_ENV == "development" ? "/sfm" : `${protocol}//sfm.${hostname[1]}.${hostname[2]}`; } if (config.requestBase == "SC_URL") { config.baseURL = process.env.NODE_ENV == "development" ? "/sc" : `${protocol}//sc.${hostname[1]}.${hostname[2]}`; } if (config.requestBase == "RMS_URL") { config.baseURL = process.env.NODE_ENV == "development" ? "/rms" : `${protocol}//rms.${hostname[1]}.${hostname[2]}`; } if (config.requestBase == "ASSETS_URL") { config.baseURL = process.env.NODE_ENV == "development" ? "/assets" : `${protocol}//assets.${hostname[1]}.${hostname[2]}`; } if (config.requestBase == "CCFLOW_URL") { config.baseURL = process.env.NODE_ENV == "development" ? "/ccflow" : `${protocol}//ccflow.${hostname[1]}.${hostname[2]}`; } if (config.requestBase == "APS_URL") { config.baseURL = process.env.NODE_ENV == "development" ? "/aps" : `${protocol}//aps.${hostname[1]}.${hostname[2]}`; } if (config.requestBase == "PES_URL") { config.baseURL = process.env.NODE_ENV == "development" ? "/pes" : `${protocol}//pes.${hostname[1]}.${hostname[2]}`; } if (config.requestBase == "FMM_URL") { config.baseURL = process.env.NODE_ENV == "development" ? "/fmm" : `${protocol}//fmm.${hostname[1]}.${hostname[2]}`; } if (config.requestBase == "PDM_URL") { config.baseURL = process.env.NODE_ENV == "development" ? "/pdm" : `${protocol}//pdm.${hostname[1]}.${hostname[2]}`; } if (config.requestBase == "POS_URL") { config.baseURL = process.env.NODE_ENV == "development" ? "/pos" : `${protocol}//pos.${hostname[1]}.${hostname[2]}`; } if (config.requestBase == "WDM_URL") { config.baseURL = process.env.NODE_ENV == "development" ? "/wdm" : `${protocol}//wdm.${hostname[1]}.${hostname[2]}`; } return config; } // utils/format/hostConfiger.ts function hostConfiger(key) { const protocol2 = window.location.protocol; const port = window.location.port; const hostname2 = window.location.hostname.split("."); const devHost = { BASE_URL: "https://basis.nacho.cn", MRP_URL: "https://mrp.nacho.cn", MRP2_URL: "https://mrp2.nacho.cn", ASSET_URL: "https://gateway.nacho.cn", ASSETS_URL: "https://assets.nacho.cn", GATEWAY_URL: "https://gateway.nacho.cn", SFM_URL: "https://sfm.nacho.cn", CCFLOW_URL: "https://ccflow.nacho.cn", SHARECOOL_URL: "https://mrp.sharecool.com", PDM_URL: "https://pdm.nacho.cn" }; try { if (process.env.VITE_APP_SHARECOOL_URL) devHost.SHARECOOL_URL = process.env.VITE_APP_SHARECOOL_URL; } catch (error) { } try { if (process.env.VITE_APP_BASE_URL) devHost.BASE_URL = process.env.VITE_APP_BASE_URL; } catch (error) { } try { if (process.env.VITE_APP_MRP_URL) devHost.MRP_URL = process.env.VITE_APP_MRP_URL; } catch (error) { } try { if (process.env.VITE_APP_MRP2_URL) devHost.MRP2_URL = process.env.VITE_APP_MRP2_URL; } catch (error) { } try { if (process.env.VITE_APP_ASSET_URL) devHost.ASSET_URL = process.env.VITE_APP_ASSET_URL; } catch (error) { } try { if (process.env.VUE_APP_BASE_URL) devHost.BASE_URL = process.env.VUE_APP_BASE_URL; } catch (error) { } try { if (process.env.VUE_APP_MRP_URL) devHost.MRP_URL = process.env.VUE_APP_MRP_URL; } catch (error) { } try { if (process.env.VUE_APP_MRP2_URL) devHost.MRP2_URL = process.env.VUE_APP_MRP2_URL; } catch (error) { } try { if (process.env.VUE_APP_ASSET_URL) devHost.ASSET_URL = process.env.VUE_APP_ASSET_URL; } catch (error) { } if (process.env.NODE_ENV == "development") return devHost[key]; let preString = ""; switch (key) { case "BASE_URL": preString = "basis"; break; case "MRP_URL": preString = "mrp"; break; case "MRP2_URL": preString = "mrp2"; break; case "ASSET_URL": preString = "gateway"; break; case "ASSETS_URL": preString = "assets"; break; case "GATEWAY_URL": preString = "gateway"; break; case "SFM_URL": preString = "sfm"; break; case "CCFLOW_URL": preString = "ccflow"; break; case "SHARECOOL_URL": preString = "mrp"; break; case "PDM_URL": preString = "pdm"; break; default: throw new Error("no matching arguments\uFF01"); } if (hostname2.length == 2) { return `${protocol2}//${preString}.${hostname2.join(".")}:${port}`; } else { hostname2[0] = preString; return `${protocol2}//${hostname2.join(".")}:${port}`; } } // utils/format/dateFormat.ts function dateFormat(data, format) { const weekList = [ "\u661F\u671F\u65E5", "\u661F\u671F\u4E00", "\u661F\u671F\u4E8C", "\u661F\u671F\u4E09", "\u661F\u671F\u56DB", "\u661F\u671F\u4E94", "\u661F\u671F\u516D" ]; const now = data ? new Date(data) : new Date(); let year = now.getFullYear(); let month = now.getMonth() + 1; month = month < 10 ? "0" + month : month; let day = now.getDate(); day = day < 10 ? "0" + day : day; let hours = now.getHours(); hours = hours < 10 ? "0" + hours : hours; let minutes = now.getMinutes(); minutes = minutes < 10 ? "0" + minutes : minutes; let seconds = now.getSeconds(); seconds = seconds < 10 ? "0" + seconds : seconds; let week = weekList[now.getDay()]; if (format) { format = format.replace(/YYYY/, String(year)).replace(/MM/, String(month)).replace(/DD/, String(day)).replace(/hh/, String(hours)).replace(/mm/, String(minutes)).replace(/ss/, String(seconds)); return format; } else { return { date: `${year}\u5E74${month}\u6708${day}`, time: `${hours}:${minutes}:${seconds}`, week }; } } function yearMonthFormat(data) { if (data) { const now = data ? new Date(data) : new Date(); let year = now.getFullYear(); let month = now.getMonth() + 1; month = month; return `${year}\u5E74${month}\u6708`; } else { return ""; } } function yearMonthDayFormat(data) { if (data) { const now = data ? new Date(data) : new Date(); let year = now.getFullYear(); let month = now.getMonth() + 1; let day = now.getDate(); month = month; return `${year}\u5E74${month}\u6708${day}\u65E5`; } else { return ""; } } // utils/businessUi/IVAdjustAmount.ts function onChangeTail(item) { return function baseTail(key, cb) { const temp = item.reduce((_p, _c) => { if (_c.isInput === true) return _p + 0; _c = cb ? cb(_c) : _c; return _p + parseFloat(_c[key]); }, 0); return temp; }; } // utils/businessUi/useContextMenu.ts import { ref, onMounted, onUnmounted, h, defineComponent } from "vue"; function useContextMenu(component) { const visible = ref(false); const position = ref({ x: 0, y: 0 }); const items = ref([]); const showMenu = (event, menuItems) => { event.preventDefault(); items.value = menuItems; position.value = { x: event.clientX, y: event.clientY }; visible.value = true; }; const hideMenu = () => { visible.value = false; }; const handleClickOutside = () => { if (visible.value) { hideMenu(); } }; onMounted(() => { window.addEventListener("click", handleClickOutside); }); onUnmounted(() => { window.removeEventListener("click", handleClickOutside); }); const ContextMenuWrapper = defineComponent({ render() { return h(component, { show: visible.value, items: items.value, position: position.value, clickHandle: (item) => { item.onClick(); hideMenu(); }, "onUpdate:show": (val) => visible.value = val }, { item: (itemProps) => { return this.$slots.item ? this.$slots.item(itemProps) : itemProps.label; } }); } }); return { showMenu, ContextMenuWrapper }; } // utils/enum/projectStatus.ts var ProjectStausEnum = /* @__PURE__ */ ((ProjectStausEnum2) => { ProjectStausEnum2[ProjectStausEnum2["\u5F85\u5F00\u5DE5"] = 0] = "\u5F85\u5F00\u5DE5"; ProjectStausEnum2[ProjectStausEnum2["\u5728\u5EFA"] = 1] = "\u5728\u5EFA"; ProjectStausEnum2[ProjectStausEnum2["\u5B8C\u5DE5\u672A\u7ED3\u7B97"] = 2] = "\u5B8C\u5DE5\u672A\u7ED3\u7B97"; ProjectStausEnum2[ProjectStausEnum2["\u5B8C\u5DE5\u5DF2\u7ED3\u7B97"] = 4] = "\u5B8C\u5DE5\u5DF2\u7ED3\u7B97"; ProjectStausEnum2[ProjectStausEnum2["\u5DF2\u9500\u9879"] = 8] = "\u5DF2\u9500\u9879"; return ProjectStausEnum2; })(ProjectStausEnum || {}); // utils/enum/signStatus.ts var SignStatusEnum = /* @__PURE__ */ ((SignStatusEnum2) => { SignStatusEnum2[SignStatusEnum2["\u5F85\u7B7E\u7EA6"] = 1] = "\u5F85\u7B7E\u7EA6"; SignStatusEnum2[SignStatusEnum2["\u5DF2\u7B7E\u7EA6"] = 2] = "\u5DF2\u7B7E\u7EA6"; SignStatusEnum2[SignStatusEnum2["\u5DF2\u5B8C\u7ED3"] = 4] = "\u5DF2\u5B8C\u7ED3"; SignStatusEnum2[SignStatusEnum2["\u8BC9\u8BBC\u4E2D"] = 8] = "\u8BC9\u8BBC\u4E2D"; return SignStatusEnum2; })(SignStatusEnum || {}); // utils/enum/lineId.ts var LineIDEnum = /* @__PURE__ */ ((LineIDEnum2) => { LineIDEnum2[LineIDEnum2["tx01"] = 1] = "tx01"; LineIDEnum2[LineIDEnum2["tx02"] = 2] = "tx02"; LineIDEnum2[LineIDEnum2["tx03"] = 4] = "tx03"; LineIDEnum2[LineIDEnum2["tx04"] = 8] = "tx04"; LineIDEnum2[LineIDEnum2["tx05"] = 16] = "tx05"; return LineIDEnum2; })(LineIDEnum || {}); // utils/printUI/index.ts function getAmountByUnit(amount) { const plusOrMinusFlag = amount < 0 || (amount + "").includes("-"); const integersUnits = ["\u4EBF", "\u4EDF", "\u4F70", "\u62FE", "\u4E07", "\u4EDF", "\u4F70", "\u62FE", "\u5143"]; const capitalUnits = { 0: "\u96F6", 1: "\u58F9", 2: "\u8D30", 3: "\u53C1", 4: "\u8086", 5: "\u4F0D", 6: "\u9646", 7: "\u67D2", 8: "\u634C", 9: "\u7396" }; const decimalUnist = ["\u89D2", "\u5206"]; const result = []; let resultStr = ""; const amountStr = amount + ""; const integersAndDecimals = amountStr.split("."); const decimal = integersAndDecimals.length > 1 ? integersAndDecimals[1] : void 0; const fillArrLen = 9 - integersAndDecimals[0].length; const fillArr = Array(fillArrLen < 0 ? 0 : fillArrLen).fill(" "); if (fillArr.length !== 0) fillArr[fillArr.length - 1] = "\xA5"; const integers = fillArr.join("") + integersAndDecimals[0]; for (let i = 0; i < integersUnits.length; i++) { result.push(integers[i]); result.push(integersUnits[i]); } for (let i = 0; i < decimalUnist.length; i++) { result.push((decimal && decimal[i]) ?? "\u96F6"); result.push(decimalUnist[i]); } resultStr = result.join(""); for (const key in capitalUnits) { resultStr = resultStr.replaceAll(key, capitalUnits[key]); } return (plusOrMinusFlag ? "\u8D1F " : "") + resultStr; } var amountToFixed = (_v) => { if (!_v) return 0; let value = _v; let flag = false; if (typeof _v === "string") { if (_v.includes("\u5143")) { flag = true; value = parseFloat(_v.split("\u5143")[0]); } else { value = parseFloat(_v); } } return (!Number.isNaN(value) ? value.toFixed(2) : 0) + (flag ? " \u5143" : ""); }; var amountToThousandthFixed = (num, fixed = 2) => { if (!num) return 0; let value = num; let flag = false; if (typeof num === "string") { if (num.includes("\u5143")) { flag = true; value = parseFloat(num.split("\u5143")[0]); } else { value = parseFloat(num); } } value = isNaN(Number(value)) ? 0 : Number(value); if (fixed) value = value.toFixed(fixed); value = value.toString().replace(/\d+/, function(n) { return n.replace(/(\d)(?=(\d{3})+$)/g, function($1) { return $1 + ","; }); }); return (!Number.isNaN(value) ? value : 0) + (flag ? " \u5143" : ""); }; // utils/sensitiveInfo/index.ts function encryptionStr(data) { if (data === null || data === void 0) { return data; } try { window.atob(window.btoa(data)) === data; } catch (error) { return data; } return window.btoa(String.fromCharCode(...new TextEncoder().encode(data))); } function decryptionStr(encodedData) { if (encodedData === null || encodedData === void 0) { return encodedData; } try { window.btoa(window.atob(encodedData)) === encodedData; } catch (error) { return encodedData; } const binaryString = window.atob(encodedData); const uint8Array = new Uint8Array(binaryString.length); for (let i = 0; i < binaryString.length; i++) { uint8Array[i] = binaryString.charCodeAt(i); } return new TextDecoder().decode(uint8Array); } function maskPhoneNumber(phoneNumber) { if (!phoneNumber) return ""; return phoneNumber.replace(/^(\d{3})\d+(\d{4})$/, (_, p1, p2) => { return p1 + "*".repeat(phoneNumber.length - 7) + p2; }); } function maskIDCard(idCard) { if (!idCard) return ""; return idCard.replace(/^(\d{6})\d+(\d{4}[xX]?)$/, (_, p1, p2) => { return p1 + "*".repeat(idCard.length - 10) + p2; }); } function maskBankCard(bankCard) { if (!bankCard) return ""; return bankCard.replace(/^(\d{6})\d+(\d{4})$/, (_, p1, p2) => { return p1 + "*".repeat(bankCard.length - 10) + p2; }); } export { LineIDEnum, ProjectStausEnum, SignStatusEnum, addPropertyToTree, amountToFixed, amountToThousandthFixed, apiConfiger, arrToTree, arraySum, arraySumByKey, assign, buildURL as buildUrl, dateFormat, decryptionStr, divide, encryptionStr, filterOptionHeadle, findNodesByIds, findTree, formatPercentage, getAmountByUnit, hostConfiger, isArraySumCompared, isDate, isObject, isPlainObject, isURLSearchParams, maskBankCard, maskIDCard, maskPhoneNumber, minus, numFormat, onChangeTail, plus, removeElementsWithDescendants, round, strip, times, tranListToTreeData, useContextMenu, yearMonthDayFormat, yearMonthFormat };