uni-ticket-system/dist/dev/mp-weixin/tmui/tool/function/util.js
2023-12-05 10:11:10 +08:00

595 lines
16 KiB
JavaScript

"use strict";
var __defProp = Object.defineProperty;
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __propIsEnum = Object.prototype.propertyIsEnumerable;
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
var __spreadValues = (a, b) => {
for (var prop in b || (b = {}))
if (__hasOwnProp.call(b, prop))
__defNormalProp(a, prop, b[prop]);
if (__getOwnPropSymbols)
for (var prop of __getOwnPropSymbols(b)) {
if (__propIsEnum.call(b, prop))
__defNormalProp(a, prop, b[prop]);
}
return a;
};
const common_vendor = require("../../../common/vendor.js");
const tmui_tool_function_preview = require("./preview.js");
function isNumber(arg, defaultNum = 0) {
const p = Number(arg);
return p || defaultNum;
}
function isString(arg, defaultStr = "") {
let p = "";
if (typeof arg === "string" && arg != null) {
p = String(arg);
} else
p = defaultStr;
return p;
}
function paginate(total, pageSize) {
const pages = Math.ceil(total / pageSize);
const pageArr = [];
for (let i = 0; i < pages; i++) {
pageArr.push(i + 1);
}
return pageArr;
}
function getValue(data, keys) {
const keyArr = keys.split(".");
let result = __spreadValues({}, data);
for (const key of keyArr) {
result = result[key];
if (result === void 0 || result === null) {
return result;
}
}
return result;
}
function setValue(data, keys, value) {
const keyArr = keys.split(".");
let obj = data;
for (let i = 0; i < keyArr.length - 1; i++) {
const key = keyArr[i];
if (!(key in obj)) {
obj[key] = {};
}
obj = obj[key];
}
obj[keyArr[keyArr.length - 1]] = value;
}
function getMaxDepth(data) {
let maxDepth = 0;
function traverse(obj, depth) {
if (typeof obj !== "object" || obj === null) {
maxDepth = Math.max(maxDepth, depth);
return;
}
for (const key in obj) {
if (obj.hasOwnProperty(key)) {
traverse(obj[key], depth + 1);
}
}
}
traverse(data, 0);
return maxDepth;
}
function deepObjectMerge(FirstOBJ, SecondOBJ) {
var _a;
for (var key in SecondOBJ) {
FirstOBJ[key] = FirstOBJ[key] && ((_a = FirstOBJ[key]) == null ? void 0 : _a.toString()) === "[object Object]" ? deepObjectMerge(FirstOBJ[key], SecondOBJ[key]) : FirstOBJ[key] = SecondOBJ[key];
}
return FirstOBJ;
}
function splitData(arr = [], size = 1) {
const result = [];
for (let i = 0; i < arr.length; i += size) {
result.push(arr.slice(i, i + size));
}
return result;
}
function deepClone(data) {
if (data === null || typeof data !== "object") {
return data;
}
if (Array.isArray(data)) {
const clone2 = [];
for (const item of data) {
clone2.push(deepClone(item));
}
return clone2;
}
if (data instanceof Date) {
return new Date(data.getTime());
}
if (data instanceof RegExp) {
const flags = data.flags;
return new RegExp(data.source, flags);
}
if (typeof data === "function") {
return data;
}
const clone = {};
for (const key in data) {
if (Object.prototype.hasOwnProperty.call(data, key)) {
clone[key] = deepClone(data[key]);
}
}
return clone;
}
function timeMuch(t) {
let format = {
d: "00",
h: "00",
m: "00",
s: "00"
};
if (t > 0) {
let d = Math.floor(t / 86400);
let h = Math.floor(t / 3600 % 24);
let m = Math.floor(t / 60 % 60);
let s = Math.floor(t % 60);
format.d = d < 10 ? "0" + d : d;
format.h = h < 10 ? "0" + h : h;
format.m = m < 10 ? "0" + m : m;
format.s = s < 10 ? "0" + s : s;
}
return format;
}
function getDateToNewData(timestamp = (/* @__PURE__ */ new Date()).getTime()) {
if (typeof timestamp == "string") {
timestamp = new Date(timestamp).getTime();
}
var arrTimestamp = (timestamp + "").split("");
for (var start = 0; start < 13; start++) {
if (!arrTimestamp[start]) {
arrTimestamp[start] = "0";
}
}
timestamp = Number(arrTimestamp.join("")) * 1;
var minute = 1e3 * 60;
var hour = minute * 60;
var day = hour * 24;
var month = day * 30;
var now = (/* @__PURE__ */ new Date()).getTime();
var diffValue = now - timestamp;
if (diffValue < 0) {
return "不久前";
}
var monthC = diffValue / month;
var weekC = diffValue / (7 * day);
var dayC = diffValue / day;
var hourC = diffValue / hour;
var minC = diffValue / minute;
var zero = function(value) {
if (value < 10) {
return "0" + value;
}
return value;
};
if (monthC > 12) {
return function() {
var date = new Date(timestamp);
return date.getFullYear() + "年" + zero(date.getMonth() + 1) + "月" + zero(date.getDate()) + "日";
}();
} else if (monthC >= 1) {
return parseInt(monthC + "") + "月前";
} else if (weekC >= 1) {
return parseInt(weekC + "") + "周前";
} else if (dayC >= 1) {
return parseInt(dayC + "") + "天前";
} else if (hourC >= 1) {
return parseInt(hourC + "") + "小时前";
} else if (minC >= 1) {
return parseInt(minC + "") + "分钟前";
}
return "刚刚";
}
function callPhone(phoneNumber = "") {
let num = phoneNumber.toString();
return new Promise((rs, rj) => {
common_vendor.index.makePhoneCall({
phoneNumber: num,
success: () => rs(true),
fail: (err) => rj(err)
});
});
}
function scanCode(onlyFromCamera = true, scanType = ["barCode", "qrCode", "datamatrix", "datamatrix"]) {
return new Promise((rs, rj) => {
common_vendor.index.scanCode({
onlyFromCamera,
scanType,
success: (res) => rs(res),
fail: (error) => rj(error)
});
});
}
function setClipboardData(data) {
return new Promise((rs, rj) => {
common_vendor.index.setClipboardData({
data,
success: () => rs(true),
fail: (error) => rj(error)
});
});
}
function getClipboardData() {
return new Promise((rs, rj) => {
common_vendor.index.getClipboardData({
success: (res) => rs(res.data),
fail: (error) => rj(error)
});
});
}
function setCookie(key, data) {
try {
common_vendor.index.setStorageSync(key, data);
return true;
} catch (e) {
return false;
}
}
function delCookie(key) {
try {
common_vendor.index.removeStorageSync(key);
return true;
} catch (e) {
return false;
}
}
function getCookie(key) {
try {
const value = common_vendor.index.getStorageSync(key);
try {
let val = JSON.parse(value);
return val;
} catch (e) {
return value;
}
} catch (e) {
return void 0;
}
}
function httpUrlAddKey(uri, key, value) {
if (!value) {
return uri;
}
var re = new RegExp("([?&])" + key + "=.*?(&|$)", "i");
var separator = uri.indexOf("?") !== -1 ? "&" : "?";
if (uri.match(re)) {
return uri.replace(re, "$1" + key + "=" + value + "$2");
} else {
return uri + separator + key + "=" + value;
}
}
function getQueryString(url, key) {
var query_string = url.substring(url.indexOf("?"));
if (!query_string)
return "";
var re = /[?&]?([^=]+)=([^&]*)/g;
var tokens;
while (tokens = re.exec(query_string)) {
if (decodeURIComponent(tokens[1]) === key) {
return decodeURIComponent(tokens[2]);
}
}
return "";
}
function getUid(rdix = 1, length = 12, isAddStr = false) {
return Math.floor(Math.random() * rdix * Math.floor(Math.random() * Date.now())).toString(isAddStr ? 16 : 10).substring(0, length);
}
var timeout = getUid(1);
function debounce(func, wait = 500, immediate = false) {
if (timeout !== null)
clearTimeout(timeout);
if (immediate) {
timeout = setTimeout(() => {
timeout = null;
}, wait);
typeof func === "function" && func();
} else {
timeout = getUid(1);
timeout = setTimeout(() => {
typeof func === "function" && func();
}, wait);
}
}
var throttleFlag;
function throttle(func, wait = 500, immediate = true) {
if (immediate) {
if (!throttleFlag) {
throttleFlag = true;
typeof func === "function" && func();
setTimeout(() => {
throttleFlag = false;
}, wait);
}
} else {
if (!throttleFlag) {
throttleFlag = true;
setTimeout(() => {
throttleFlag = false;
typeof func === "function" && func();
}, wait);
}
}
}
function quereyDom(t, node) {
return new Promise((res, rej) => {
const query = common_vendor.index.createSelectorQuery().in(t);
query.select(node).boundingClientRect((el) => {
res(el);
}).exec();
});
}
const queryDom = quereyDom;
function isPhone(phone) {
let val = String(phone);
let reg = /^(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\d{8}$/;
return !!val.match(reg);
}
function isChina(s) {
var patrn = /[\u4E00-\u9FA5]|[\uFE30-\uFFA0]/gi;
return !!patrn.exec(s);
}
function isEmpty(s) {
if (typeof s === "string") {
s = s.trim();
}
if (s == "")
return true;
if (s == null)
return true;
if (typeof s === "undefined")
return true;
if (Array.isArray(s)) {
if (s.length == 0)
return true;
}
if (typeof s === "object") {
if (Object.keys(s).length == 0)
return true;
}
return false;
}
function isEmail(s) {
let reg = /^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$/;
return !!s.match(reg);
}
function isIdCard(val) {
val = String(val);
var p = /^[1-9]\d{5}(18|19|20)\d{2}((0[1-9])|(1[0-2]))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/;
var factor = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2];
var parity = [1, 0, "X", 9, 8, 7, 6, 5, 4, 3, 2];
var code = val.substring(17);
if (p.test(val)) {
var sum = 0;
for (var i = 0; i < 17; i++) {
let id = val[i];
sum += id * factor[i];
}
if (parity[sum % 11] == code.toUpperCase()) {
return true;
}
}
return false;
}
function isIdCar(s) {
let reg = /^[京|沪|津|渝|鲁|冀|晋|蒙|辽|吉|黑|苏|浙|皖|闽|赣|豫|湘|鄂|粤|桂|琼|川|贵|云|藏|陕|甘|青|宁|新|港|澳|台|新|使]{1}[A-Z]{1}[A-Z_0-9]{5,6}$/;
return !!s.match(reg);
}
function isPasswordOfNumber(s, len = 6, maxLen = 20) {
s = String(s);
let reg = new RegExp(`^[0-9]{${len},${maxLen}}$`);
return !!s.match(reg);
}
function isPasswordOfOther(s, len = 6, maxLen = 20, model = 0) {
s = String(s);
let reg = /^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{6,20}$/;
if (model === 1) {
reg = /^(?![0-9]+$)(?![a-z]+$)(?![A-Z]+$)(?!([^(0-9a-zA-Z)])+$).{6,20}$/;
}
if (model === 2) {
reg = /(?=.*([a-zA-Z].*))(?=.*[0-9].*)[a-zA-Z0-9-*/+.~!@#$%^&*()]{6,20}$/;
}
return !!s.match(reg);
}
function isDate(s) {
if (s == null || typeof s === "undefined" || !s)
return false;
if (typeof s === "string") {
s = s.replace("-", "/");
}
let d = new Date(s);
if (d.toString() == "Invalid Date")
return false;
return true;
}
function toast(word, mask = true, icon = "none") {
common_vendor.index.showToast({
mask,
title: word,
icon
});
}
function getWindow() {
var _a, _b, _c, _d, _e;
const sysinfo = common_vendor.index.getSystemInfoSync();
let top = 0;
let height = sysinfo.windowHeight;
let nowPage = getCurrentPages().pop();
let isCustomHeader = false;
(_b = (_a = common_vendor.index.$tm) == null ? void 0 : _a.pages) != null ? _b : [];
let bottom = (_d = (_c = sysinfo.safeAreaInsets) == null ? void 0 : _c.bottom) != null ? _d : 0;
if (((_e = common_vendor.index.$tm) == null ? void 0 : _e.globalNavStyle) == "custom") {
isCustomHeader = true;
} else {
for (let i = 0; i < common_vendor.index.$tm.pages.length; i++) {
if ((nowPage == null ? void 0 : nowPage.route) == common_vendor.index.$tm.pages[i].path && common_vendor.index.$tm.pages[i].custom == "custom") {
isCustomHeader = true;
break;
}
}
}
let results = { bottom, height, width: sysinfo.windowWidth, top, isCustomHeader, statusBarHeight: sysinfo.statusBarHeight || 0, sysinfo };
return results;
}
function routerTo(url, type = "navigate") {
let funType = {
navigate: "navigateTo",
redirect: "redirectTo",
switchTab: "switchTab",
reLaunch: "reLaunch",
navigateBack: "navigateBack"
};
let fun = funType[type];
if (fun == "navigateBack") {
common_vendor.index.navigateBack({
fail(error) {
console.error(error);
}
});
} else if (fun == "reLaunch") {
common_vendor.index.reLaunch({
url,
fail(error) {
console.error(error);
}
});
} else if (fun == "switchTab") {
common_vendor.index.switchTab({
url,
fail(error) {
console.error(error);
}
});
} else if (fun == "redirectTo") {
common_vendor.index.redirectTo({
url,
fail(error) {
console.error(error);
}
});
} else if (fun == "navigateTo") {
common_vendor.index.navigateTo({
url,
fail(error) {
console.error(error);
}
});
}
}
function torpx(v, screenWidth = 0) {
if (typeof screenWidth === "undefined" || !screenWidth) {
screenWidth = common_vendor.index.getSystemInfoSync().screenWidth;
}
let pixelRatio = 750 / screenWidth;
return Math.ceil(v * pixelRatio);
}
function topx(v) {
return Math.ceil(common_vendor.index.upx2px(Number(v)));
}
var lastTime = 0;
function requestAnimationFrame(callback) {
const currentTime = (/* @__PURE__ */ new Date()).getTime();
const timeToCall = Math.max(0, 16 - (currentTime - lastTime));
const id = setTimeout(() => {
callback(currentTime + timeToCall);
}, timeToCall);
lastTime = currentTime + timeToCall;
return id;
}
function cancelAnimationFrame(id) {
clearTimeout(id);
}
function valToMarginAr(val) {
let ar = [];
if (typeof val === "string" && val) {
ar = [Number(val)];
} else if (typeof val === "number" && isNaN(Number(val))) {
ar = [val];
} else if (typeof val === "undefined" || typeof val === null || val === "" || val === void 0) {
val = [0];
} else if (Array.isArray(val)) {
ar = val.map((el) => Number(el));
}
if (ar.length == 1) {
ar = new Array(4).fill(ar[0]);
} else if (ar.length == 2) {
ar = [...ar, ...ar];
} else if (ar.length == 3) {
ar = [...ar, 0];
}
return ar;
}
function valToRoundStrClass(val) {
let dstr = "";
if (typeof val == "number")
return "round-" + val;
if (val.length == 1)
return "round-" + val;
if (val.length == 2)
return `round-tl-${val[0]} round-tr-${val[1]}`;
if (val.length == 3)
return `round-tl-${val[0]} round-tr-${val[1]} round-br-${val[2]} `;
if (val.length == 4)
return `round-tl-${val[0]} round-tr-${val[1]} round-br-${val[2]} round-bl-${val[2]}`;
return dstr;
}
const util = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
__proto__: null,
callPhone,
cancelAnimationFrame,
debounce,
deepClone,
deepObjectMerge,
default: tmui_tool_function_preview.preview,
delCookie,
getClipboardData,
getCookie,
getDateToNewData,
getMaxDepth,
getQueryString,
getUid,
getValue,
getWindow,
httpUrlAddKey,
isChina,
isDate,
isEmail,
isEmpty,
isIdCar,
isIdCard,
isNumber,
isPasswordOfNumber,
isPasswordOfOther,
isPhone,
isString,
paginate,
quereyDom,
queryDom,
requestAnimationFrame,
routerTo,
scanCode,
setClipboardData,
setCookie,
setValue,
splitData,
throttle,
timeMuch,
toast,
topx,
torpx,
valToMarginAr,
valToRoundStrClass
}, Symbol.toStringTag, { value: "Module" }));
exports.deepObjectMerge = deepObjectMerge;
exports.getCookie = getCookie;
exports.setCookie = setCookie;
exports.util = util;
exports.valToMarginAr = valToMarginAr;
exports.valToRoundStrClass = valToRoundStrClass;