@fast-china/utils 1.0.1 → 1.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (143) hide show
  1. package/dist/index.global.js +13005 -63813
  2. package/dist/index.global.js.map +1 -1
  3. package/dist/index.global.min.js +38 -73
  4. package/dist/index.global.min.js.map +1 -1
  5. package/es/base64/index.d.ts +12 -0
  6. package/es/base64/index.mjs +132 -0
  7. package/es/base64/index.mjs.map +1 -0
  8. package/es/click/index.d.ts +30 -0
  9. package/es/click/index.mjs +82 -0
  10. package/es/click/index.mjs.map +1 -0
  11. package/es/color/index.d.ts +30 -0
  12. package/es/color/index.mjs +60 -0
  13. package/es/color/index.mjs.map +1 -0
  14. package/es/console/index.d.ts +25 -0
  15. package/es/console/index.mjs +44 -0
  16. package/es/console/index.mjs.map +1 -0
  17. package/es/crypto/index.d.ts +46 -0
  18. package/es/crypto/index.mjs +106 -0
  19. package/es/crypto/index.mjs.map +1 -0
  20. package/es/date/index.d.ts +24 -0
  21. package/es/date/index.mjs +251 -0
  22. package/es/date/index.mjs.map +1 -0
  23. package/es/dom/index.d.ts +1 -0
  24. package/es/dom/index.mjs +5 -0
  25. package/es/dom/index.mjs.map +1 -0
  26. package/es/dom/style.d.ts +6 -0
  27. package/es/dom/style.mjs +21 -0
  28. package/es/dom/style.mjs.map +1 -0
  29. package/es/error/index.d.ts +3 -0
  30. package/es/error/index.mjs +10 -0
  31. package/es/error/index.mjs.map +1 -0
  32. package/es/index.d.ts +12 -0
  33. package/es/index.es.d.ts +2 -0
  34. package/es/index.mjs +52 -0
  35. package/es/index.mjs.map +1 -0
  36. package/es/object/index.d.ts +21 -0
  37. package/es/object/index.mjs +118 -0
  38. package/es/object/index.mjs.map +1 -0
  39. package/es/storage/index.d.ts +95 -0
  40. package/es/storage/index.mjs +306 -0
  41. package/es/storage/index.mjs.map +1 -0
  42. package/es/string/index.d.ts +25 -0
  43. package/es/string/index.mjs +94 -0
  44. package/es/string/index.mjs.map +1 -0
  45. package/es/vue/expose.d.ts +4 -0
  46. package/es/vue/expose.mjs +8 -0
  47. package/es/vue/expose.mjs.map +1 -0
  48. package/es/vue/func.d.ts +6 -0
  49. package/es/vue/func.mjs +26 -0
  50. package/es/vue/func.mjs.map +1 -0
  51. package/es/vue/index.d.ts +7 -0
  52. package/es/vue/index.mjs +20 -0
  53. package/es/vue/index.mjs.map +1 -0
  54. package/es/vue/install.d.ts +5 -0
  55. package/es/vue/install.mjs +31 -0
  56. package/es/vue/install.mjs.map +1 -0
  57. package/es/vue/props.d.ts +9 -0
  58. package/es/vue/props.mjs +15 -0
  59. package/es/vue/props.mjs.map +1 -0
  60. package/es/vue/slots.d.ts +11 -0
  61. package/es/vue/slots.mjs +7 -0
  62. package/es/vue/slots.mjs.map +1 -0
  63. package/es/vue/useRender.d.ts +6 -0
  64. package/es/vue/useRender.mjs +12 -0
  65. package/es/vue/useRender.mjs.map +1 -0
  66. package/es/vue/with.d.ts +5 -0
  67. package/es/vue/with.mjs +7 -0
  68. package/es/vue/with.mjs.map +1 -0
  69. package/lib/base64/index.d.ts +12 -0
  70. package/lib/base64/index.js +2 -0
  71. package/lib/base64/index.js.map +1 -0
  72. package/lib/click/index.d.ts +30 -0
  73. package/lib/click/index.js +2 -0
  74. package/lib/click/index.js.map +1 -0
  75. package/lib/color/index.d.ts +30 -0
  76. package/lib/color/index.js +2 -0
  77. package/lib/color/index.js.map +1 -0
  78. package/lib/console/index.d.ts +25 -0
  79. package/lib/console/index.js +2 -0
  80. package/lib/console/index.js.map +1 -0
  81. package/lib/crypto/index.d.ts +46 -0
  82. package/lib/crypto/index.js +2 -0
  83. package/lib/crypto/index.js.map +1 -0
  84. package/lib/date/index.d.ts +24 -0
  85. package/lib/date/index.js +2 -0
  86. package/lib/date/index.js.map +1 -0
  87. package/lib/dom/index.d.ts +1 -0
  88. package/lib/dom/index.js +2 -0
  89. package/lib/dom/index.js.map +1 -0
  90. package/lib/dom/style.d.ts +6 -0
  91. package/lib/dom/style.js +2 -0
  92. package/lib/dom/style.js.map +1 -0
  93. package/lib/error/index.d.ts +3 -0
  94. package/lib/error/index.js +2 -0
  95. package/lib/error/index.js.map +1 -0
  96. package/lib/index.d.ts +12 -0
  97. package/lib/index.es.d.ts +2 -0
  98. package/lib/index.js +2 -0
  99. package/lib/index.js.map +1 -0
  100. package/lib/object/index.d.ts +21 -0
  101. package/lib/object/index.js +2 -0
  102. package/lib/object/index.js.map +1 -0
  103. package/lib/storage/index.d.ts +95 -0
  104. package/lib/storage/index.js +2 -0
  105. package/lib/storage/index.js.map +1 -0
  106. package/lib/string/index.d.ts +25 -0
  107. package/lib/string/index.js +2 -0
  108. package/lib/string/index.js.map +1 -0
  109. package/lib/vue/expose.d.ts +4 -0
  110. package/lib/vue/expose.js +2 -0
  111. package/lib/vue/expose.js.map +1 -0
  112. package/lib/vue/func.d.ts +6 -0
  113. package/lib/vue/func.js +2 -0
  114. package/lib/vue/func.js.map +1 -0
  115. package/lib/vue/index.d.ts +7 -0
  116. package/lib/vue/index.js +2 -0
  117. package/lib/vue/index.js.map +1 -0
  118. package/lib/vue/install.d.ts +5 -0
  119. package/lib/vue/install.js +2 -0
  120. package/lib/vue/install.js.map +1 -0
  121. package/lib/vue/props.d.ts +9 -0
  122. package/lib/vue/props.js +2 -0
  123. package/lib/vue/props.js.map +1 -0
  124. package/lib/vue/slots.d.ts +11 -0
  125. package/lib/vue/slots.js +2 -0
  126. package/lib/vue/slots.js.map +1 -0
  127. package/lib/vue/useRender.d.ts +6 -0
  128. package/lib/vue/useRender.js +2 -0
  129. package/lib/vue/useRender.js.map +1 -0
  130. package/lib/vue/with.d.ts +5 -0
  131. package/lib/vue/with.js +2 -0
  132. package/lib/vue/with.js.map +1 -0
  133. package/package.json +92 -81
  134. package/dist/index.cjs +0 -1294
  135. package/dist/index.cjs.map +0 -1
  136. package/dist/index.d.cts +0 -380
  137. package/dist/index.d.ts +0 -380
  138. package/dist/index.js +0 -1264
  139. package/dist/index.js.map +0 -1
  140. package/dist/index.min.cjs +0 -3
  141. package/dist/index.min.cjs.map +0 -1
  142. package/dist/index.min.js +0 -3
  143. package/dist/index.min.js.map +0 -1
package/dist/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/base64/index.ts","../src/click/index.ts","../src/color/index.ts","../src/error/index.ts","../src/console/index.ts","../src/crypto/index.ts","../src/date/index.ts","../src/dom/style.ts","../src/object/index.ts","../src/storage/index.ts","../src/string/index.ts","../src/vue/expose.ts","../src/vue/func.ts","../src/vue/install.ts","../src/vue/props.ts","../src/vue/slots.ts","../src/vue/useRender.ts","../src/vue/with.ts"],"names":["isString","computed"],"mappings":"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","file":"index.js","sourcesContent":["const b64 = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";\nconst b64re = /^(?:[A-Za-z\\d+/]{4})*?(?:[A-Za-z\\d+/]{2}(?:==)?|[A-Za-z\\d+/]{3}=?)?$/;\n\n/**加密字典 */\nconst base64PwdDic = [\n\t{ index: 977, randomIndex: 188 },\n\t{ index: 926, randomIndex: 201 },\n\t{ index: 851, randomIndex: 225 },\n\t{ index: 700, randomIndex: 255 },\n\t{ index: 600, randomIndex: 268 },\n\t{ index: 500, randomIndex: 277 },\n\t{ index: 400, randomIndex: 288 },\n\t{ index: 330, randomIndex: 327 },\n\t{ index: 300, randomIndex: 180 },\n\t{ index: 200, randomIndex: 178 },\n\t{ index: 100, randomIndex: 124 },\n\t// 100 以内字典\n\t{ index: 98, randomIndex: 95 },\n\t{ index: 92, randomIndex: 90 },\n\t{ index: 91, randomIndex: 87 },\n\t{ index: 88, randomIndex: 84 },\n\t{ index: 82, randomIndex: 79 },\n\t{ index: 78, randomIndex: 71 },\n\t{ index: 72, randomIndex: 69 },\n\t{ index: 68, randomIndex: 66 },\n\t{ index: 59, randomIndex: 55 },\n\t{ index: 48, randomIndex: 43 },\n\t{ index: 42, randomIndex: 37 },\n\t{ index: 36, randomIndex: 30 },\n\t{ index: 33, randomIndex: 27 },\n\t{ index: 24, randomIndex: 20 },\n\t{ index: 23, randomIndex: 18 },\n\t{ index: 21, randomIndex: 16 },\n\t{ index: 17, randomIndex: 14 },\n\t{ index: 13, randomIndex: 9 },\n\t{ index: 7, randomIndex: 4 },\n\t{ index: 5, randomIndex: 3 },\n\t{ index: 2, randomIndex: 1 },\n];\n\n/**随机字符串长度 */\nconst randomPrefixStrLength = 6;\n\n/**随机字符串 */\nconst randomStr = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz\";\n\n/**\n * 在Base64字符串中添加加密字典\n */\nfunction insertRandomStrToBase64Str(base64Str: string): string {\n\tlet strResult = base64Str;\n\tconst items = base64PwdDic.sort((a, b) => {\n\t\treturn b.index - a.index;\n\t});\n\titems.forEach((item) => {\n\t\tif (item.index < base64Str.length) {\n\t\t\tconst randomChar = base64Str[item.randomIndex];\n\t\t\tstrResult = strResult.slice(0, item.index) + randomChar + strResult.slice(item.index);\n\t\t}\n\t});\n\treturn strResult;\n}\n\n/**\n * 删除Base64字符串中的加密字典\n */\nfunction removeBase64StrRandomStr(base64Str: string): string {\n\tconst items = base64PwdDic.sort((a, b) => {\n\t\treturn a.index - b.index;\n\t});\n\tlet strResult = base64Str;\n\titems.forEach((item) => {\n\t\tif (item.index < base64Str.length) {\n\t\t\tstrResult = strResult.slice(0, item.index) + strResult.slice(item.index + 1);\n\t\t}\n\t});\n\treturn strResult;\n}\n\n/**\n * 得到随机字符串\n */\nfunction getRandomStr(str = randomStr, prefixStrLength = randomPrefixStrLength): string {\n\tlet result = \"\";\n\tfor (let i = 0; i < prefixStrLength; i++) {\n\t\tconst randomInt = Math.ceil(Math.random() * (str.length - 1));\n\t\tconst randomChar = str[randomInt];\n\t\tresult += randomChar;\n\t}\n\treturn result;\n}\n\nexport const base64Util = {\n\tbota(string: string): string {\n\t\tstring = String(string);\n\t\tlet bitmap,\n\t\t\ta,\n\t\t\tb,\n\t\t\tc,\n\t\t\tresult = \"\",\n\t\t\ti = 0,\n\t\t\t// eslint-disable-next-line prefer-const\n\t\t\trest = string.length % 3;\n\n\t\tfor (; i < string.length; ) {\n\t\t\tif ((a = string.charCodeAt(i++)) > 255 || (b = string.charCodeAt(i++)) > 255 || (c = string.charCodeAt(i++)) > 255)\n\t\t\t\tthrow new TypeError(\n\t\t\t\t\t\"Failed to execute 'btoa' on 'Window': The string to be encoded contains characters outside of the Latin1 range.\"\n\t\t\t\t);\n\n\t\t\tbitmap = (a << 16) | (b << 8) | c;\n\t\t\tresult += b64.charAt((bitmap >> 18) & 63) + b64.charAt((bitmap >> 12) & 63) + b64.charAt((bitmap >> 6) & 63) + b64.charAt(bitmap & 63);\n\t\t}\n\n\t\treturn rest ? result.slice(0, rest - 3) + \"===\".substring(rest) : result;\n\t},\n\tatob(string: string): string {\n\t\tstring = String(string).replace(/[\\t\\n\\f\\r ]+/g, \"\");\n\t\tif (!b64re.test(string)) throw new TypeError(\"Failed to execute 'atob' on 'Window': The string to be decoded is not correctly encoded.\");\n\t\tstring += \"==\".slice(2 - (string.length & 3));\n\t\tlet bitmap,\n\t\t\tresult = \"\",\n\t\t\tr1,\n\t\t\tr2,\n\t\t\ti = 0;\n\t\tfor (; i < string.length; ) {\n\t\t\tbitmap =\n\t\t\t\t(b64.indexOf(string.charAt(i++)) << 18) |\n\t\t\t\t(b64.indexOf(string.charAt(i++)) << 12) |\n\t\t\t\t((r1 = b64.indexOf(string.charAt(i++))) << 6) |\n\t\t\t\t(r2 = b64.indexOf(string.charAt(i++)));\n\n\t\t\tresult +=\n\t\t\t\tr1 === 64\n\t\t\t\t\t? String.fromCharCode((bitmap >> 16) & 255)\n\t\t\t\t\t: r2 === 64\n\t\t\t\t\t\t? String.fromCharCode((bitmap >> 16) & 255, (bitmap >> 8) & 255)\n\t\t\t\t\t\t: String.fromCharCode((bitmap >> 16) & 255, (bitmap >> 8) & 255, bitmap & 255);\n\t\t}\n\t\treturn result;\n\t},\n\t/**\n\t * 字符串ToBase64\n\t */\n\ttoBase64(str: string, prefixStrLength = randomPrefixStrLength): string {\n\t\tif (str.length === 0) {\n\t\t\treturn \"\";\n\t\t}\n\t\tconst randomPrefixStr = getRandomStr();\n\t\tlet base64 = base64Util.bota(encodeURIComponent(str));\n\t\tif (prefixStrLength !== 0) {\n\t\t\tbase64 = insertRandomStrToBase64Str(base64);\n\t\t}\n\t\treturn randomPrefixStr + base64;\n\t},\n\n\t/**\n\t * Base64转字符串\n\t */\n\tbase64ToStr(str: string, prefixStrLength = randomPrefixStrLength): string {\n\t\tlet result = str;\n\t\tif (str.length === 0) {\n\t\t\treturn \"\";\n\t\t}\n\t\tlet input = str.slice(prefixStrLength);\n\t\tif (prefixStrLength !== 0) {\n\t\t\tinput = removeBase64StrRandomStr(input);\n\t\t}\n\t\tresult = base64Util.atob(input);\n\t\treturn decodeURIComponent(result);\n\t},\n};\n","let _debounceTimeout: ReturnType<typeof setTimeout> | null = null;\nlet _throttleRunning = false;\n\nexport const clickUtil = {\n\t/**\n\t * 防抖\n\t * @param fn - 执行函数\n\t * @param delay - 延时毫秒\n\t * @returns 返回一个新的防抖函数\n\t */\n\tdebounce(fn: () => void, delay = 500): void {\n\t\t// 如果已有定时器,清除它\n\t\tif (_debounceTimeout) {\n\t\t\tclearTimeout(_debounceTimeout);\n\t\t}\n\t\t// 设置新的定时器\n\t\t_debounceTimeout = setTimeout(() => {\n\t\t\t// 调用原函数\n\t\t\tfn();\n\t\t}, delay);\n\t},\n\t/**\n\t * 异步防抖\n\t * @param fn - 执行函数\n\t * @param delay - 延时毫秒\n\t * @returns 返回一个新的防抖函数\n\t */\n\tasync debounceAsync(fn: () => Promise<void>, delay = 500): Promise<void> {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\t// 清除已有定时器\n\t\t\tif (_debounceTimeout) {\n\t\t\t\tclearTimeout(_debounceTimeout);\n\t\t\t}\n\t\t\t// 设置新的定时器\n\t\t\t_debounceTimeout = setTimeout(async () => {\n\t\t\t\ttry {\n\t\t\t\t\t// 调用异步函数 fn\n\t\t\t\t\tawait fn();\n\t\t\t\t\tresolve();\n\t\t\t\t} catch (error) {\n\t\t\t\t\treject(error);\n\t\t\t\t}\n\t\t\t}, delay);\n\t\t});\n\t},\n\t/**\n\t * 节流\n\t * @param fn - 执行函数\n\t * @param delay - 延时毫秒\n\t * @returns 返回一个新的节流函数\n\t */\n\tthrottle(fn: () => void, delay = 500): void {\n\t\t// 如果节流操作正在运行,直接返回\n\t\tif (_throttleRunning) {\n\t\t\treturn;\n\t\t}\n\t\t// 设置节流状态为运行\n\t\t_throttleRunning = true;\n\t\t// 调用原函数\n\t\tfn();\n\t\t// 设置定时器以重置节流状态\n\t\tsetTimeout(() => {\n\t\t\t_throttleRunning = false;\n\t\t}, delay);\n\t},\n\t/**\n\t * 异步节流\n\t * @param fn - 执行函数\n\t * @param delay - 延时毫秒\n\t * @returns 返回一个新的节流函数\n\t */\n\tasync throttleAsync(fn: () => Promise<void>, delay = 500): Promise<void> {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\t// 如果节流操作正在进行,直接返回\n\t\t\tif (_throttleRunning) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\t// 设置节流状态为运行\n\t\t\t_throttleRunning = true;\n\t\t\t// 调用原函数\n\t\t\tfn()\n\t\t\t\t.then(() => {\n\t\t\t\t\tresolve();\n\t\t\t\t})\n\t\t\t\t.catch((error) => {\n\t\t\t\t\treject(error);\n\t\t\t\t})\n\t\t\t\t.finally(() => {\n\t\t\t\t\t// 设置定时器以重置节流状态\n\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\t_throttleRunning = false;\n\t\t\t\t\t}, delay);\n\t\t\t\t});\n\t\t});\n\t},\n};\n","export const colorUtil = {\n\t/**\n\t * hex颜色转rgb颜色\n\t * @param str 颜色值字符串\n\t * @returns 返回处理后的颜色值\n\t */\n\thexToRgb(str: any): any {\n\t\tlet hex: any = \"\";\n\t\tconst reg = /^#?[0-9A-Fa-f]{6}$/;\n\t\tif (!reg.test(str)) throw new Error(\"输入错误的hex\");\n\t\tstr = str.replace(\"#\", \"\");\n\t\thex = str.match(/../g);\n\t\tfor (let i = 0; i < 3; i++) hex[i] = parseInt(hex[i], 16);\n\t\treturn hex;\n\t},\n\t/**\n\t * rgb颜色转Hex颜色\n\t * @param r 代表红色\n\t * @param g 代表绿色\n\t * @param b 代表蓝色\n\t * @returns 返回处理后的颜色值\n\t */\n\trgbToHex(r: any, g: any, b: any): string {\n\t\tconst reg = /^\\d{1,3}$/;\n\t\tif (!reg.test(r) || !reg.test(g) || !reg.test(b)) throw new Error(\"输入错误的rgb颜色值\");\n\t\tconst hex = [r.toString(16), g.toString(16), b.toString(16)];\n\t\tfor (let i = 0; i < 3; i++) if (hex[i].length === 1) hex[i] = `0${hex[i]}`;\n\t\treturn `#${hex.join(\"\")}`;\n\t},\n\t/**\n\t * 加深颜色值\n\t * @param color 颜色值字符串\n\t * @param level 加深的程度,限0-1之间\n\t * @returns 返回处理后的颜色值\n\t */\n\tgetDarkColor(color: string, level: number): string {\n\t\tconst reg = /^#?[0-9A-Fa-f]{6}$/;\n\t\tif (!reg.test(color)) throw new Error(\"输入错误的hex颜色值\");\n\t\tconst rgb = this.hexToRgb(color);\n\t\tfor (let i = 0; i < 3; i++) rgb[i] = Math.round(20.5 * level + rgb[i] * (1 - level));\n\t\treturn this.rgbToHex(rgb[0], rgb[1], rgb[2]);\n\t},\n\t/**\n\t * 变浅颜色值\n\t * @param color 颜色值字符串\n\t * @param level 加深的程度,限0-1之间\n\t * @returns 返回处理后的颜色值\n\t */\n\tgetLightColor(color: string, level: number): string {\n\t\tconst reg = /^#?[0-9A-Fa-f]{6}$/;\n\t\tif (!reg.test(color)) throw new Error(\"输入错误的hex颜色值\");\n\t\tconst rgb = this.hexToRgb(color);\n\t\tfor (let i = 0; i < 3; i++) rgb[i] = Math.round(255 * level + rgb[i] * (1 - level));\n\t\treturn this.rgbToHex(rgb[0], rgb[1], rgb[2]);\n\t},\n};\n","export class FastError extends Error {\n\tconstructor(m: string) {\n\t\tsuper(m);\n\t\tthis.name = \"FastError\";\n\t}\n}\n","import { isNil, isString } from \"lodash-unified\";\nimport { FastError } from \"src/error\";\n\n/**\n * 打印 Log 日志\n * @param name 来源名称\n */\nexport const consoleLog = (name: string, message?: string | false, error?: any): void => {\n\tif (error) {\n\t\t// eslint-disable-next-line no-console\n\t\tconsole.log(`[Fast-Log-${name}]${message ? ` ${message}` : \"\"}`, error);\n\t} else {\n\t\t// eslint-disable-next-line no-console\n\t\tconsole.log(`[Fast-Log-${name}]${message ? ` ${message}` : \"\"}`);\n\t}\n};\n\n/**\n * 打印 Warn 日志\n * @param name 来源名称\n */\nexport const consoleWarn = (name: string, message?: string | false, error?: any): void => {\n\tif (error) {\n\t\t// eslint-disable-next-line no-console\n\t\tconsole.warn(`[Fast-Log-${name}]${message ? ` ${message}` : \"\"}`, error);\n\t} else {\n\t\t// eslint-disable-next-line no-console\n\t\tconsole.warn(`[Fast-Log-${name}]${message ? ` ${message}` : \"\"}`);\n\t}\n};\n\n/**\n * 打印 Debug 日志\n * @param name 来源名称\n */\nexport const consoleDebug = (name: string, message?: string | false, error?: any): void => {\n\tif (error) {\n\t\t// eslint-disable-next-line no-console\n\t\tconsole.debug(`[Fast-Log-${name}]${message ? ` ${message}` : \"\"}`, error);\n\t} else {\n\t\t// eslint-disable-next-line no-console\n\t\tconsole.debug(`[Fast-Log-${name}]${message ? ` ${message}` : \"\"}`);\n\t}\n};\n\n/**\n * 打印 Error 日志\n * @param name 来源名称\n */\nexport const consoleError = (name: string, message?: any): void => {\n\tif (isNil(message)) {\n\t\treturn;\n\t}\n\tif (isString(message)) {\n\t\tconsole.error(new FastError(`[Fast-${name}] ${message}`));\n\t} else {\n\t\t// eslint-disable-next-line no-console\n\t\tconsole.error(`[Fast-Error-${name}]`, message);\n\t}\n};\n\n/**\n * 抛出错误\n * @param name 来源名称\n */\nexport const throwError = (name: string, message?: any): never => {\n\tthrow new FastError(`[Fast-${name}] ${message}`);\n};\n","import { AES, MD5, SHA1, enc, mode } from \"crypto-js\";\nimport { consoleError } from \"src/console\";\n\n/**\n * 加密解密\n */\nexport const cryptoUtil = {\n\t/**\n\t * AES\n\t */\n\taes: {\n\t\t/**\n\t\t * AES加密\n\t\t * @param dataStr 要加密的字符串\n\t\t * @param key 用于加密的密钥\n\t\t * @param vector 用于加密的向量(IV)\n\t\t * @param cipherMode 加密模式,默认为CBC模式\n\t\t */\n\t\tencrypt(dataStr: string, key: string, vector: string, cipherMode: any = mode.CBC): string {\n\t\t\tif (!dataStr) {\n\t\t\t\treturn dataStr;\n\t\t\t}\n\n\t\t\t// 处理Key不足32位的问题\n\t\t\tif (key.length < 32) {\n\t\t\t\t// 不足\n\t\t\t\tkey = key.padEnd(32, \"f\");\n\t\t\t}\n\n\t\t\t// 处理Key超过32位的问题\n\t\t\tif (key.length > 32) {\n\t\t\t\t// 超过\n\t\t\t\tkey = key.substring(0, 32);\n\t\t\t}\n\n\t\t\t// 处理IV不足16位的问题\n\t\t\tif (vector.length < 16) {\n\t\t\t\t// 不足\n\t\t\t\tvector = vector.padEnd(16, \"f\");\n\t\t\t}\n\n\t\t\t// 处理IV超过16位的问题\n\t\t\tif (vector.length > 16) {\n\t\t\t\t// 超过\n\t\t\t\tvector = vector.substring(0, 16);\n\t\t\t}\n\n\t\t\treturn AES.encrypt(dataStr, enc.Utf8.parse(key), {\n\t\t\t\tiv: enc.Utf8.parse(vector),\n\t\t\t\tmode: cipherMode,\n\t\t\t}).toString();\n\t\t},\n\t\t/**\n\t\t * AES解密\n\t\t * @param dataStr 要解密的Base64编码字符串\n\t\t * @param key 用于解密的密钥\n\t\t * @param vector 用于解密的向量(IV)\n\t\t * @param cipherMode 解密模式,默认为CBC模式\n\t\t */\n\t\tdecrypt<T = string>(dataStr: string, key: string, vector: string, cipherMode: any = mode.CBC): T | null {\n\t\t\tif (!dataStr) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\t// 处理Key不足32位的问题\n\t\t\tif (key.length < 32) {\n\t\t\t\t// 不足\n\t\t\t\tkey = key.padEnd(32, \"f\");\n\t\t\t}\n\n\t\t\t// 处理Key超过32位的问题\n\t\t\tif (key.length > 32) {\n\t\t\t\t// 超过\n\t\t\t\tkey = key.substring(0, 32);\n\t\t\t}\n\n\t\t\t// 处理IV不足16位的问题\n\t\t\tif (vector.length < 16) {\n\t\t\t\t// 不足\n\t\t\t\tvector = vector.padEnd(16, \"f\");\n\t\t\t}\n\n\t\t\t// 处理IV超过16位的问题\n\t\t\tif (vector.length > 16) {\n\t\t\t\t// 超过\n\t\t\t\tvector = vector.substring(0, 16);\n\t\t\t}\n\n\t\t\tconst resAESData = AES.decrypt(dataStr, enc.Utf8.parse(key), {\n\t\t\t\tiv: enc.Utf8.parse(vector),\n\t\t\t\tmode: cipherMode,\n\t\t\t});\n\t\t\ttry {\n\t\t\t\tconst result = resAESData.toString(enc.Utf8);\n\t\t\t\treturn JSON.parse(result) as T;\n\t\t\t} catch (error) {\n\t\t\t\tconsoleError(\"AESCrypto\", error);\n\t\t\t\treturn null;\n\t\t\t}\n\t\t},\n\t},\n\t/**\n\t * SHA1\n\t */\n\tsha1: {\n\t\t/**\n\t\t * SHA1加密\n\t\t * @param dataStr 要加密的字符串\n\t\t */\n\t\tencrypt(dataStr: string): string {\n\t\t\tif (!dataStr) {\n\t\t\t\treturn dataStr;\n\t\t\t}\n\n\t\t\treturn SHA1(dataStr).toString(enc.Hex).toUpperCase();\n\t\t},\n\t},\n\t/**\n\t * MD5\n\t */\n\tMD5: {\n\t\t/**\n\t\t * MD5加密\n\t\t * @param dataStr 要加密的字符串\n\t\t */\n\t\tencrypt(dataStr: string): string {\n\t\t\tif (!dataStr) {\n\t\t\t\treturn dataStr;\n\t\t\t}\n\n\t\t\treturn MD5(dataStr).toString(enc.Hex).toUpperCase();\n\t\t},\n\t},\n};\n","/**\n * Date工具类\n */\nexport const dateUtil = {\n\t/**\n\t * 根据当前时间生成问候语\n\t */\n\tgetGreet(): string {\n\t\tconst now = new Date();\n\t\tconst hour = now.getHours();\n\t\tlet greet = \"\";\n\n\t\tif (hour < 5) {\n\t\t\tgreet = \"夜深了,注意身体哦!\";\n\t\t} else if (hour < 9) {\n\t\t\tgreet = \"早上好!\" + \"欢迎回来!\";\n\t\t} else if (hour < 12) {\n\t\t\tgreet = \"上午好!\" + \"欢迎回来!\";\n\t\t} else if (hour < 14) {\n\t\t\tgreet = \"中午好!\" + \"欢迎回来!\";\n\t\t} else if (hour < 18) {\n\t\t\tgreet = \"下午好!\" + \"欢迎回来!\";\n\t\t} else if (hour < 24) {\n\t\t\tgreet = \"晚上好!\" + \"欢迎回来!\";\n\t\t} else {\n\t\t\tgreet = \"您好!\" + \"欢迎回来!\";\n\t\t}\n\t\treturn greet;\n\t},\n\t/**\n\t * 时间处理翻译\n\t */\n\tdateTimeFix(date: string | Date | null | undefined): string {\n\t\tif (date !== null && date !== undefined && date) {\n\t\t\tif (typeof date === \"string\") {\n\t\t\t\tdate = new Date(date);\n\t\t\t}\n\n\t\t\t// 获取时间戳\n\t\t\tlet timestamp = date.getTime();\n\t\t\tif (timestamp.toString().length < 13) {\n\t\t\t\tconst arrTimestamp = timestamp.toString().split(\"\");\n\t\t\t\tfor (let start = 0; start < 13; start++) {\n\t\t\t\t\tif (!arrTimestamp[start]) {\n\t\t\t\t\t\tarrTimestamp[start] = \"0\";\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\ttimestamp = parseInt(arrTimestamp.join(\"\"));\n\t\t\t}\n\t\t\tconst minute = 1000 * 60;\n\t\t\tconst hour = minute * 60;\n\t\t\tconst day = hour * 24;\n\t\t\tconst month = day * 30;\n\t\t\t// 获取当前时间\n\t\t\tconst curTime = new Date().getTime();\n\t\t\t// 比较\n\t\t\tconst diffValue = curTime - timestamp;\n\n\t\t\t// 计算差异时间的量级\n\t\t\tconst monthC = diffValue / month;\n\t\t\tconst weekC = diffValue / (7 * day);\n\t\t\tconst dayC = diffValue / day;\n\t\t\tconst hourC = diffValue / hour;\n\t\t\tconst minC = diffValue / minute;\n\n\t\t\t// 如果本地时间反而小于变量时间\n\t\t\tif (diffValue < 0) {\n\t\t\t\tconst monthC1 = Math.abs(monthC);\n\t\t\t\tconst weekC1 = Math.abs(weekC);\n\t\t\t\tconst dayC1 = Math.abs(dayC);\n\t\t\t\tconst hourC1 = Math.abs(hourC);\n\t\t\t\tconst minC1 = Math.abs(minC);\n\n\t\t\t\tif (monthC1 > 12) {\n\t\t\t\t\t// 超过1年,直接显示 几 年前\n\t\t\t\t\treturn `${parseInt(`${monthC1 / 12}`)}年后`;\n\t\t\t\t} else if (monthC1 >= 6) {\n\t\t\t\t\treturn \"半年后\";\n\t\t\t\t} else if (monthC1 >= 1) {\n\t\t\t\t\treturn `${parseInt(`${monthC1}`)}月后`;\n\t\t\t\t} else if (weekC1 > 2) {\n\t\t\t\t\treturn \"半月后\";\n\t\t\t\t} else if (weekC1 >= 1) {\n\t\t\t\t\treturn `${parseInt(`${weekC1}`)}周后`;\n\t\t\t\t} else if (dayC1 >= 1) {\n\t\t\t\t\treturn `${parseInt(`${dayC1}`)}天后`;\n\t\t\t\t} else if (hourC1 >= 1) {\n\t\t\t\t\treturn `${parseInt(`${hourC1}`)}小时后`;\n\t\t\t\t} else if (minC1 >= 1) {\n\t\t\t\t\treturn `${parseInt(`${minC1}`)}分钟后`;\n\t\t\t\t}\n\t\t\t\treturn \"刚刚\";\n\t\t\t\t// return \"不久前\";\n\t\t\t}\n\n\t\t\t// 使用\n\t\t\tif (monthC > 12) {\n\t\t\t\t// 超过1年,直接显示 几 年前\n\t\t\t\treturn `${parseInt(`${monthC / 12}`)}年前`;\n\t\t\t} else if (monthC >= 6) {\n\t\t\t\treturn \"半年前\";\n\t\t\t} else if (monthC >= 1) {\n\t\t\t\treturn `${parseInt(`${monthC}`)}月前`;\n\t\t\t} else if (weekC > 2) {\n\t\t\t\treturn \"半月前\";\n\t\t\t} else if (weekC >= 1) {\n\t\t\t\treturn `${parseInt(`${weekC}`)}周前`;\n\t\t\t} else if (dayC >= 1) {\n\t\t\t\treturn `${parseInt(`${dayC}`)}天前`;\n\t\t\t} else if (hourC >= 1) {\n\t\t\t\treturn `${parseInt(`${hourC}`)}小时前`;\n\t\t\t} else if (minC >= 1) {\n\t\t\t\treturn `${parseInt(`${minC}`)}分钟前`;\n\t\t\t}\n\t\t\treturn \"刚刚\";\n\t\t} else {\n\t\t\treturn \"\";\n\t\t}\n\t},\n\tgetDefaultTime(): Date[] {\n\t\tconst end = new Date();\n\t\tconst start = new Date();\n\t\tstart.setMonth(start.getMonth() - 1);\n\t\tstart.setHours(0, 0, 0);\n\t\tend.setHours(23, 59, 59);\n\t\treturn [start, end];\n\t},\n\tgetSimpleTime(): Date {\n\t\tconst start = new Date();\n\t\tstart.setHours(0, 0, 0);\n\t\treturn start;\n\t},\n\tgetSimpleShortcuts(): {\n\t\ttext: string;\n\t\tvalue: () => Date;\n\t}[] {\n\t\treturn [\n\t\t\t{\n\t\t\t\ttext: \"今天\",\n\t\t\t\tvalue: (): Date => {\n\t\t\t\t\tconst date = new Date();\n\t\t\t\t\tdate.setHours(0, 0, 0);\n\t\t\t\t\treturn date;\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\ttext: \"昨天\",\n\t\t\t\tvalue: (): Date => {\n\t\t\t\t\tconst date = new Date();\n\t\t\t\t\tdate.setDate(date.getDate() - 1);\n\t\t\t\t\tdate.setHours(0, 0, 0);\n\t\t\t\t\treturn date;\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\ttext: \"一周前\",\n\t\t\t\tvalue: (): Date => {\n\t\t\t\t\tconst date = new Date();\n\t\t\t\t\tdate.setDate(date.getDate() - 7);\n\t\t\t\t\tdate.setHours(0, 0, 0);\n\t\t\t\t\treturn date;\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\ttext: \"一月前\",\n\t\t\t\tvalue: (): Date => {\n\t\t\t\t\tconst date = new Date();\n\t\t\t\t\tdate.setMonth(date.getMonth() - 1);\n\t\t\t\t\tdate.setHours(0, 0, 0);\n\t\t\t\t\treturn date;\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\ttext: \"一年前\",\n\t\t\t\tvalue: (): Date => {\n\t\t\t\t\tconst date = new Date();\n\t\t\t\t\tdate.setFullYear(date.getFullYear() - 1);\n\t\t\t\t\tdate.setHours(0, 0, 0);\n\t\t\t\t\treturn date;\n\t\t\t\t},\n\t\t\t},\n\t\t];\n\t},\n\tgetShortcuts(): {\n\t\ttext: string;\n\t\tvalue: () => Date[];\n\t}[] {\n\t\treturn [\n\t\t\t{\n\t\t\t\ttext: \"近1天\",\n\t\t\t\tvalue: (): Date[] => {\n\t\t\t\t\tconst end = new Date();\n\t\t\t\t\tconst start = new Date();\n\t\t\t\t\tstart.setDate(start.getDate() - 1);\n\t\t\t\t\tstart.setHours(0, 0, 0);\n\t\t\t\t\tend.setHours(23, 59, 59);\n\t\t\t\t\treturn [start, end];\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\ttext: \"近3天\",\n\t\t\t\tvalue: (): Date[] => {\n\t\t\t\t\tconst end = new Date();\n\t\t\t\t\tconst start = new Date();\n\t\t\t\t\tstart.setDate(start.getDate() - 3);\n\t\t\t\t\tstart.setHours(0, 0, 0);\n\t\t\t\t\tend.setHours(23, 59, 59);\n\t\t\t\t\treturn [start, end];\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\ttext: \"近1周\",\n\t\t\t\tvalue: (): Date[] => {\n\t\t\t\t\tconst end = new Date();\n\t\t\t\t\tconst start = new Date();\n\t\t\t\t\tstart.setDate(start.getDate() - 7);\n\t\t\t\t\tstart.setHours(0, 0, 0);\n\t\t\t\t\tend.setHours(23, 59, 59);\n\t\t\t\t\treturn [start, end];\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\ttext: \"近1月\",\n\t\t\t\tvalue: (): Date[] => {\n\t\t\t\t\tconst end = new Date();\n\t\t\t\t\tconst start = new Date();\n\t\t\t\t\tstart.setMonth(start.getMonth() - 1);\n\t\t\t\t\tstart.setHours(0, 0, 0);\n\t\t\t\t\tend.setHours(23, 59, 59);\n\t\t\t\t\treturn [start, end];\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\ttext: \"近3月\",\n\t\t\t\tvalue: (): Date[] => {\n\t\t\t\t\tconst end = new Date();\n\t\t\t\t\tconst start = new Date();\n\t\t\t\t\tstart.setMonth(start.getMonth() - 3);\n\t\t\t\t\tstart.setHours(0, 0, 0);\n\t\t\t\t\tend.setHours(23, 59, 59);\n\t\t\t\t\treturn [start, end];\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\ttext: \"近6月\",\n\t\t\t\tvalue: (): Date[] => {\n\t\t\t\t\tconst end = new Date();\n\t\t\t\t\tconst start = new Date();\n\t\t\t\t\tstart.setMonth(start.getMonth() - 6);\n\t\t\t\t\tstart.setHours(0, 0, 0);\n\t\t\t\t\tend.setHours(23, 59, 59);\n\t\t\t\t\treturn [start, end];\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\ttext: \"近1年\",\n\t\t\t\tvalue: (): Date[] => {\n\t\t\t\t\tconst end = new Date();\n\t\t\t\t\tconst start = new Date();\n\t\t\t\t\tstart.setFullYear(start.getFullYear() - 1);\n\t\t\t\t\tstart.setHours(0, 0, 0);\n\t\t\t\t\tend.setHours(23, 59, 59);\n\t\t\t\t\treturn [start, end];\n\t\t\t\t},\n\t\t\t},\n\t\t];\n\t},\n\tgetDisabledDate(time: Date): boolean {\n\t\treturn time.getTime() > Date.now();\n\t},\n};\n","import { isNumber, isString } from \"lodash-unified\";\nimport { consoleWarn } from \"src/console\";\n\nconst isStringNumber = (val: string): boolean => {\n\tif (!isString(val)) {\n\t\treturn false;\n\t}\n\treturn !Number.isNaN(Number(val));\n};\n\n/**\n * 添加单位\n * @param value 字符串或数字类型\n * @param defaultUnit 单位\n */\nexport const addUnit = (value?: string | number, defaultUnit = \"px\"): string => {\n\tif (!value) return \"\";\n\tif (isNumber(value) || isStringNumber(value)) {\n\t\treturn `${value}${defaultUnit}`;\n\t} else if (isString(value)) {\n\t\treturn value;\n\t}\n\tconsoleWarn(\"document\", \"binding value must be a string or number\");\n};\n","/**\n * 对象工具类\n */\nexport const objectUtil = {\n\t/**\n\t * 对象URL参数化\n\t */\n\tobjectToQueryString(obj: any): string {\n\t\tlet params = \"\";\n\t\tfor (const key in obj) {\n\t\t\tif (Object.prototype.hasOwnProperty.call(obj, key)) {\n\t\t\t\tif (params !== \"\") {\n\t\t\t\t\tparams += \"&\";\n\t\t\t\t}\n\t\t\t\tparams += `${encodeURIComponent(key)}=${encodeURIComponent(obj[key])}`;\n\t\t\t}\n\t\t}\n\t\treturn params;\n\t},\n\t/**\n\t * 是否存在重复值\n\t */\n\thasDuplicateProperty<T>(arr: T[], prop: keyof T): boolean {\n\t\tconst values = arr.map((obj) => obj[prop]);\n\t\tconst uniqueValues = new Set(values);\n\t\treturn values.length !== uniqueValues.size;\n\t},\n\t/**\n\t * 是否存在非重复值\n\t */\n\thasDifferentProperty<T>(arr: T[], prop: keyof T): boolean {\n\t\tconst valueSet = new Set<any>();\n\t\tfor (const obj of arr) {\n\t\t\tvalueSet.add(obj[prop]);\n\t\t\tif (valueSet.size > 1) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t},\n\t/**\n\t * 时间处理翻译\n\t */\n\tdateTimeFix(date: string | Date | null | undefined): string {\n\t\tif (date !== null && date !== undefined && date) {\n\t\t\tif (typeof date === \"string\") {\n\t\t\t\tdate = new Date(date);\n\t\t\t}\n\n\t\t\t// 获取时间戳\n\t\t\tlet timestamp = date.getTime();\n\t\t\tif (timestamp.toString().length < 13) {\n\t\t\t\tconst arrTimestamp = timestamp.toString().split(\"\");\n\t\t\t\tfor (let start = 0; start < 13; start++) {\n\t\t\t\t\tif (!arrTimestamp[start]) {\n\t\t\t\t\t\tarrTimestamp[start] = \"0\";\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\ttimestamp = parseInt(arrTimestamp.join(\"\"));\n\t\t\t}\n\t\t\tconst minute = 1000 * 60;\n\t\t\tconst hour = minute * 60;\n\t\t\tconst day = hour * 24;\n\t\t\tconst month = day * 30;\n\t\t\t// 获取当前时间\n\t\t\tconst curTime = new Date().getTime();\n\t\t\t// 比较\n\t\t\tconst diffValue = curTime - timestamp;\n\n\t\t\t// 计算差异时间的量级\n\t\t\tconst monthC = diffValue / month;\n\t\t\tconst weekC = diffValue / (7 * day);\n\t\t\tconst dayC = diffValue / day;\n\t\t\tconst hourC = diffValue / hour;\n\t\t\tconst minC = diffValue / minute;\n\n\t\t\t// 如果本地时间反而小于变量时间\n\t\t\tif (diffValue < 0) {\n\t\t\t\tconst monthC1 = Math.abs(monthC);\n\t\t\t\tconst weekC1 = Math.abs(weekC);\n\t\t\t\tconst dayC1 = Math.abs(dayC);\n\t\t\t\tconst hourC1 = Math.abs(hourC);\n\t\t\t\tconst minC1 = Math.abs(minC);\n\n\t\t\t\tif (monthC1 > 12) {\n\t\t\t\t\t// 超过1年,直接显示 几 年前\n\t\t\t\t\treturn `${parseInt(`${monthC1 / 12}`)}年后`;\n\t\t\t\t} else if (monthC1 >= 6) {\n\t\t\t\t\treturn \"半年后\";\n\t\t\t\t} else if (monthC1 >= 1) {\n\t\t\t\t\treturn `${parseInt(`${monthC1}`)}月后`;\n\t\t\t\t} else if (weekC1 > 2) {\n\t\t\t\t\treturn \"半月后\";\n\t\t\t\t} else if (weekC1 >= 1) {\n\t\t\t\t\treturn `${parseInt(`${weekC1}`)}周后`;\n\t\t\t\t} else if (dayC1 >= 1) {\n\t\t\t\t\treturn `${parseInt(`${dayC1}`)}天后`;\n\t\t\t\t} else if (hourC1 >= 1) {\n\t\t\t\t\treturn `${parseInt(`${hourC1}`)}小时后`;\n\t\t\t\t} else if (minC1 >= 1) {\n\t\t\t\t\treturn `${parseInt(`${minC1}`)}分钟后`;\n\t\t\t\t}\n\t\t\t\treturn \"刚刚\";\n\t\t\t\t// return \"不久前\";\n\t\t\t}\n\n\t\t\t// 使用\n\t\t\tif (monthC > 12) {\n\t\t\t\t// 超过1年,直接显示 几 年前\n\t\t\t\treturn `${parseInt(`${monthC / 12}`)}年前`;\n\t\t\t} else if (monthC >= 6) {\n\t\t\t\treturn \"半年前\";\n\t\t\t} else if (monthC >= 1) {\n\t\t\t\treturn `${parseInt(`${monthC}`)}月前`;\n\t\t\t} else if (weekC > 2) {\n\t\t\t\treturn \"半月前\";\n\t\t\t} else if (weekC >= 1) {\n\t\t\t\treturn `${parseInt(`${weekC}`)}周前`;\n\t\t\t} else if (dayC >= 1) {\n\t\t\t\treturn `${parseInt(`${dayC}`)}天前`;\n\t\t\t} else if (hourC >= 1) {\n\t\t\t\treturn `${parseInt(`${hourC}`)}小时前`;\n\t\t\t} else if (minC >= 1) {\n\t\t\t\treturn `${parseInt(`${minC}`)}分钟前`;\n\t\t\t}\n\t\t\treturn \"刚刚\";\n\t\t} else {\n\t\t\treturn \"\";\n\t\t}\n\t},\n};\n","import { computed, reactive } from \"vue\";\nimport { base64Util } from \"src/base64\";\nimport { consoleError } from \"src/console\";\n\nconst state = reactive({\n\tprefix: \"fast__\",\n\texpireSuffix: \"__Expire\",\n\tcrypto: false,\n});\n\n/**\n * 本地缓存前缀 Key\n */\nexport const CACHE_PREFIX = computed(() => state.prefix);\n\n/**\n * 本地缓存过期值后缀 Key\n */\nexport const CACHE_EXPIRE_SUFFIX = computed(() => state.expireSuffix);\n\n// eslint-disable-next-line @typescript-eslint/explicit-function-return-type\nexport const useStorage = () => {\n\treturn {\n\t\t/**\n\t\t * 设置缓存前缀 Key\n\t\t * @param key\n\t\t */\n\t\tprefix(key: string): void {\n\t\t\tstate.prefix = key;\n\t\t},\n\t\t/**\n\t\t * 缓存过期值后缀 Key\n\t\t * @param key\n\t\t */\n\t\texpireSuffix(key: string): void {\n\t\t\tstate.expireSuffix = key;\n\t\t},\n\t\t/**\n\t\t * 设置缓存是否加密\n\t\t * @param crypto\n\t\t */\n\t\tcrypto(crypto: boolean): void {\n\t\t\tstate.crypto = crypto;\n\t\t},\n\t};\n};\n\nconst storage = {\n\tset(key: string, val: any): void {\n\t\tif (typeof uni !== \"undefined\") {\n\t\t\tuni.setStorageSync(key, val);\n\t\t} else {\n\t\t\twindow.localStorage.setItem(key, val);\n\t\t}\n\t},\n\tget(key: string): string | any | null {\n\t\tif (typeof uni !== \"undefined\") {\n\t\t\treturn uni.getStorageSync(key);\n\t\t} else {\n\t\t\treturn window.localStorage.getItem(key);\n\t\t}\n\t},\n\tremove(key: string): void {\n\t\tif (typeof uni !== \"undefined\") {\n\t\t\tuni.removeStorageSync(key);\n\t\t} else {\n\t\t\twindow.localStorage.removeItem(key);\n\t\t}\n\t},\n\tclear(): void {\n\t\tif (typeof uni !== \"undefined\") {\n\t\t\tuni.clearStorageSync();\n\t\t} else {\n\t\t\twindow.localStorage.clear();\n\t\t}\n\t},\n\tkeys(): string[] | Storage {\n\t\tif (typeof uni !== \"undefined\") {\n\t\t\treturn uni.getStorageInfoSync().keys;\n\t\t} else {\n\t\t\treturn window.localStorage;\n\t\t}\n\t},\n};\n\n/**\n * window.localStorage\n * - 如果是 UniApp 环境则使用的是 uni.xxxStorage\n */\nexport const Local = {\n\t/**\n\t * 设置\n\t * @param key 缓存的Key\n\t * @param val 缓存值\n\t * @param expire 过期时间,单位分钟\n\t * @param encrypt 是否对缓存的数据加密\n\t */\n\tset(key: string, val: any, expire?: number, encrypt?: boolean): void {\n\t\ttry {\n\t\t\tencrypt ??= state.crypto;\n\t\t\t// 判断是否存在缓存过期时间\n\t\t\tif (expire) {\n\t\t\t\tif (isNaN(expire) || expire < 1) {\n\t\t\t\t\tthrow new Error(\"有效期应为一个有效数值\");\n\t\t\t\t}\n\t\t\t\t// 设置过期时间的缓存\n\t\t\t\tconst expireData = {\n\t\t\t\t\ttime: Date.now(),\n\t\t\t\t\texpire,\n\t\t\t\t};\n\t\t\t\tconst expireJson = JSON.stringify(expireData);\n\t\t\t\tstorage.set(`${state.prefix}${key}${state.expireSuffix}`, expireJson);\n\t\t\t}\n\t\t\tlet valJson = JSON.stringify(val);\n\t\t\tif (encrypt) {\n\t\t\t\tvalJson = base64Util.toBase64(valJson);\n\t\t\t}\n\t\t\tstorage.set(`${state.prefix}${key}`, valJson);\n\t\t} catch (error) {\n\t\t\tconsoleError(\"Local\", error);\n\t\t}\n\t},\n\t/**\n\t * 获取\n\t * @param key 缓存的Key\n\t * @param decrypt 是否对缓存的数据解密\n\t * @returns {T} 传入的对象类型,默认为 string\n\t */\n\tget<T = string>(key: string, decrypt?: boolean): T {\n\t\ttry {\n\t\t\tdecrypt ??= state.crypto;\n\t\t\t// 获取缓存 JSON 字符串\n\t\t\tlet valJson = storage.get(`${state.prefix}${key}`);\n\n\t\t\tif (valJson) {\n\t\t\t\t// 判断是否解密\n\t\t\t\tif (decrypt) {\n\t\t\t\t\tvalJson = base64Util.base64ToStr(valJson);\n\t\t\t\t}\n\t\t\t\t// 尝试获取缓存过期时间的 JSON 字符串\n\t\t\t\tconst expireJson = storage.get(`${state.prefix}${key}${state.expireSuffix}`);\n\t\t\t\t// 判断是否存在过期时间\n\t\t\t\tif (expireJson) {\n\t\t\t\t\tconst expireData = JSON.parse(expireJson);\n\t\t\t\t\tif (Date.now() > expireData.time + expireData.expire * 60 * 1000) {\n\t\t\t\t\t\t// 过期了,删除对应的缓存数据\n\t\t\t\t\t\tstorage.remove(`${state.prefix}${key}`);\n\t\t\t\t\t\tstorage.remove(`${state.prefix}${key}${state.expireSuffix}`);\n\t\t\t\t\t\treturn null;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\ttry {\n\t\t\t\t\treturn JSON.parse(valJson) as T;\n\t\t\t\t} catch {\n\t\t\t\t\treturn valJson as T;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn null;\n\t\t} catch (error) {\n\t\t\tconsoleError(\"Local\", error);\n\t\t}\n\t},\n\t/**\n\t * 移除\n\t * @param key 缓存的Key\n\t */\n\tremove(key: string): void {\n\t\ttry {\n\t\t\tstorage.remove(`${state.prefix}${key}`);\n\t\t\tstorage.remove(`${state.prefix}${key}${state.expireSuffix}`);\n\t\t} catch (error) {\n\t\t\tconsoleError(\"Local\", error);\n\t\t}\n\t},\n\t/**\n\t * 根据前缀移除\n\t * @param key 缓存的Key\n\t */\n\tremoveByPrefix(key: string): void {\n\t\ttry {\n\t\t\tfor (const itemKey in storage.keys) {\n\t\t\t\tif (itemKey.indexOf(`${state.prefix}${key}`) !== -1) {\n\t\t\t\t\tstorage.remove(itemKey);\n\t\t\t\t}\n\t\t\t}\n\t\t} catch (error) {\n\t\t\tconsoleError(\"Local\", error);\n\t\t}\n\t},\n\t/**\n\t * 移除全部\n\t */\n\tclear(): void {\n\t\ttry {\n\t\t\tstorage.clear();\n\t\t} catch (error) {\n\t\t\tconsoleError(\"Local\", error);\n\t\t}\n\t},\n};\n\n/**\n * window.sessionStorage\n * - UniApp 环境下不可用\n */\nexport const Session = {\n\t/**\n\t * 设置会话缓存\n\t * @param key 缓存的Key\n\t * @param val 缓存值\n\t * @param expire 过期时间,单位分钟\n\t * @param encrypt 是否对缓存的数据加密\n\t */\n\tset(key: string, val: any, expire?: number, encrypt?: boolean): void {\n\t\tif (typeof uni !== \"undefined\") {\n\t\t\tconsoleError(\"Session\", \"UniApp 环境下 [Session] 不可用。\");\n\t\t\treturn;\n\t\t}\n\t\ttry {\n\t\t\tencrypt ??= state.crypto;\n\t\t\t// 判断是否存在缓存过期时间\n\t\t\tif (expire) {\n\t\t\t\tif (isNaN(expire) || expire < 1) {\n\t\t\t\t\tthrow new Error(\"有效期应为一个有效数值\");\n\t\t\t\t}\n\t\t\t\t// 设置过期时间的缓存\n\t\t\t\tconst expireData = {\n\t\t\t\t\ttime: Date.now(),\n\t\t\t\t\texpire,\n\t\t\t\t};\n\t\t\t\tconst expireJson = JSON.stringify(expireData);\n\t\t\t\twindow.sessionStorage.setItem(`${state.prefix}${key}${state.expireSuffix}`, expireJson);\n\t\t\t}\n\t\t\tlet valJson = JSON.stringify(val);\n\t\t\tif (encrypt) {\n\t\t\t\tvalJson = base64Util.toBase64(valJson);\n\t\t\t}\n\t\t\twindow.sessionStorage.setItem(`${state.prefix}${key}`, valJson);\n\t\t} catch (error) {\n\t\t\tconsoleError(\"Session\", error);\n\t\t}\n\t},\n\t/**\n\t * 获取会话缓存\n\t * @param key 缓存的Key\n\t * @param decrypt 是否对缓存的数据解密\n\t * @returns {T} 传入的对象类型,默认为 string\n\t */\n\tget<T = string>(key: string, decrypt?: boolean): T {\n\t\tif (typeof uni !== \"undefined\") {\n\t\t\tconsoleError(\"Session\", \"UniApp 环境下 [Session] 不可用。\");\n\t\t\treturn;\n\t\t}\n\t\ttry {\n\t\t\tdecrypt ??= state.crypto;\n\t\t\t// 获取缓存 JSON 字符串\n\t\t\tlet valJson = window.sessionStorage.getItem(`${state.prefix}${key}`);\n\t\t\tif (valJson) {\n\t\t\t\t// 判断是否解密\n\t\t\t\tif (decrypt) {\n\t\t\t\t\tvalJson = base64Util.base64ToStr(valJson);\n\t\t\t\t}\n\t\t\t\t// 尝试获取缓存过期时间的 JSON 字符串\n\t\t\t\tconst expireJson = window.sessionStorage.getItem(`${state.prefix}${key}${state.expireSuffix}`);\n\t\t\t\t// 判断是否存在过期时间\n\t\t\t\tif (expireJson) {\n\t\t\t\t\tconst expireData = JSON.parse(expireJson);\n\t\t\t\t\tif (Date.now() > expireData.time + expireData.expire * 60 * 1000) {\n\t\t\t\t\t\t// 过期了,删除对应的缓存数据\n\t\t\t\t\t\twindow.sessionStorage.removeItem(`${state.prefix}${key}`);\n\t\t\t\t\t\twindow.sessionStorage.removeItem(`${state.prefix}${key}${state.expireSuffix}`);\n\t\t\t\t\t\treturn null;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\ttry {\n\t\t\t\t\treturn JSON.parse(valJson) as T;\n\t\t\t\t} catch {\n\t\t\t\t\treturn valJson as T;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn null;\n\t\t} catch (error) {\n\t\t\tconsoleError(\"Session\", error);\n\t\t}\n\t},\n\t/**\n\t * 移除会话缓存\n\t * @param key 缓存的Key\n\t */\n\tremove(key: string): void {\n\t\tif (typeof uni !== \"undefined\") {\n\t\t\tconsoleError(\"Session\", \"UniApp 环境下 [Session] 不可用。\");\n\t\t\treturn;\n\t\t}\n\t\ttry {\n\t\t\twindow.sessionStorage.removeItem(`${state.prefix}${key}`);\n\t\t\twindow.sessionStorage.removeItem(`${state.prefix}${key}${state.expireSuffix}`);\n\t\t} catch (error) {\n\t\t\tconsoleError(\"Session\", error);\n\t\t}\n\t},\n\t/**\n\t * 根据前缀移除会话缓存\n\t * @param key 缓存的Key\n\t */\n\tremoveByPrefix(key: string): void {\n\t\tif (typeof uni !== \"undefined\") {\n\t\t\tconsoleError(\"Session\", \"UniApp 环境下 [Session] 不可用。\");\n\t\t\treturn;\n\t\t}\n\t\ttry {\n\t\t\tfor (const itemKey in window.sessionStorage) {\n\t\t\t\tif (itemKey.indexOf(`${state.prefix}${key}`) !== -1) {\n\t\t\t\t\twindow.sessionStorage.removeItem(itemKey);\n\t\t\t\t}\n\t\t\t}\n\t\t} catch (error) {\n\t\t\tconsoleError(\"Session\", error);\n\t\t}\n\t},\n\t/**\n\t * 移除全部会话缓存\n\t */\n\tclear(): void {\n\t\tif (typeof uni !== \"undefined\") {\n\t\t\tconsoleError(\"Session\", \"UniApp 环境下 [Session] 不可用。\");\n\t\t\treturn;\n\t\t}\n\t\ttry {\n\t\t\twindow.sessionStorage.clear();\n\t\t} catch (error) {\n\t\t\tconsoleError(\"Session\", error);\n\t\t}\n\t},\n};\n","import { isString } from \"lodash-unified\";\n\n/**\n * 字符串工具类\n */\nexport const stringUtil = {\n\t/**\n\t * 获取Url参数\n\t */\n\tgetUrlParams(url: string): Record<string, any> {\n\t\tconst regex = /[?&][^=?&]+=[^?&]+/g;\n\t\tconst params: Record<string, any> = {};\n\n\t\tlet match;\n\t\twhile ((match = regex.exec(url)) !== null) {\n\t\t\tconst [key, value] = match[0].substring(1).split(\"=\");\n\t\t\tparams[key] = decodeURIComponent(value);\n\t\t}\n\n\t\treturn params;\n\t},\n\t/**\n\t * 是否为JSON字符串\n\t */\n\tisJson(value: string): boolean {\n\t\tif (!isString(value)) return false;\n\n\t\tvalue = value.replace(/\\s/g, \"\").replace(/\\n|\\r/, \"\");\n\n\t\tif (/^\\{(.*?)\\}$/.test(value)) return /\"(.*?)\":(.*?)/g.test(value);\n\n\t\tif (/^\\[(.*?)\\]$/.test(value)) {\n\t\t\treturn value\n\t\t\t\t.replace(/^\\[/, \"\")\n\t\t\t\t.replace(/\\]$/, \"\")\n\t\t\t\t.replace(/},{/g, \"}\\n{\")\n\t\t\t\t.split(/\\n/)\n\t\t\t\t.map((s) => {\n\t\t\t\t\treturn stringUtil.isJson(s);\n\t\t\t\t})\n\t\t\t\t.reduce((prev, curr) => {\n\t\t\t\t\treturn !!curr;\n\t\t\t\t});\n\t\t}\n\n\t\treturn false;\n\t},\n\t/**\n\t * 生成随机字符串\n\t */\n\tgenerateRandomString(length: number): string {\n\t\tconst characters = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\";\n\t\tlet randomString = \"\";\n\t\tfor (let i = 0; i < length; i++) {\n\t\t\tconst randomIndex = Math.floor(Math.random() * characters.length);\n\t\t\trandomString += characters.charAt(randomIndex);\n\t\t}\n\t\treturn randomString;\n\t},\n\t/**\n\t * @description 生成唯一 uuid\n\t */\n\tgenerateUUID(): string {\n\t\tlet uuid = \"\";\n\t\tfor (let i = 0; i < 32; i++) {\n\t\t\tconst random = (Math.random() * 16) | 0;\n\t\t\tif (i === 8 || i === 12 || i === 16 || i === 20) uuid += \"-\";\n\t\t\tuuid += (i === 12 ? 4 : i === 16 ? (random & 3) | 8 : random).toString(16);\n\t\t}\n\t\treturn uuid;\n\t},\n\t/**\n\t * 复制\n\t */\n\tasync copy(value: string): Promise<void> {\n\t\tif (typeof uni !== \"undefined\") {\n\t\t\treturn new Promise((resolve, reject) => {\n\t\t\t\tuni.setClipboardData({\n\t\t\t\t\tdata: value,\n\t\t\t\t\tsuccess: () => {\n\t\t\t\t\t\tresolve();\n\t\t\t\t\t},\n\t\t\t\t\tfail: () => {\n\t\t\t\t\t\treject();\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\t});\n\t\t} else {\n\t\t\t// navigator.clipboard 需要https等安全上下文\n\t\t\tif (navigator?.clipboard && window.isSecureContext) {\n\t\t\t\tawait navigator.clipboard.writeText(value);\n\t\t\t} else {\n\t\t\t\tconst textareaEl = document.createElement(\"textarea\");\n\t\t\t\ttextareaEl.value = value;\n\t\t\t\t// 使文本域不显示\n\t\t\t\ttextareaEl.style.position = \"absolute\";\n\t\t\t\ttextareaEl.style.opacity = \"0\";\n\t\t\t\ttextareaEl.style.left = \"-999999px\";\n\t\t\t\ttextareaEl.style.top = \"-999999px\";\n\t\t\t\tdocument.body.appendChild(textareaEl);\n\t\t\t\ttextareaEl.focus();\n\t\t\t\ttextareaEl.select();\n\t\t\t\tdocument.execCommand(\"copy\");\n\t\t\t\ttextareaEl.remove();\n\t\t\t}\n\t\t}\n\t},\n};\n","/**\n * 构建 expose 和 vue.js devtools 状态查看\n */\nexport const useExpose = <Exposed extends Record<string, any> = Record<string, any>>(\n\texpose: (exposed?: Exposed) => void,\n\texposed?: Exposed\n): Exposed => {\n\texpose(exposed);\n\n\treturn exposed;\n};\n","/**\n * 执行方法\n * @param fn 要执行的方法\n * @param args 参数\n */\n\nimport { consoleError } from \"src/console\";\n\n// eslint-disable-next-line @typescript-eslint/no-unsafe-function-type\nexport const execFunction = async <T = void>(fn: Function, ...args: any[]): Promise<T> => {\n\tif (!fn) return Promise.resolve(undefined);\n\t// 判断是否为异步方法\n\tif (fn.constructor.name === \"AsyncFunction\") {\n\t\t// 异步方法\n\t\ttry {\n\t\t\treturn await fn(...args);\n\t\t} catch (error) {\n\t\t\tconsoleError(\"execFunction\", error as any);\n\t\t\treturn Promise.reject(error);\n\t\t}\n\t} else {\n\t\t// 同步方法\n\t\treturn new Promise((resolve, reject) => {\n\t\t\ttry {\n\t\t\t\tconst res = fn(...args);\n\t\t\t\treturn resolve(res);\n\t\t\t} catch (error) {\n\t\t\t\tconsoleError(\"execFunction\", error as any);\n\t\t\t\treturn reject(error);\n\t\t\t}\n\t\t});\n\t}\n};\n","import type { App, Directive, Plugin } from \"vue\";\n\nexport type TSXWithInstall<T> = T & Plugin;\n\n// eslint-disable-next-line @typescript-eslint/no-empty-function\nconst NOOP = (): void => {};\n\nexport const withInstall = <T, E extends Record<string, any>>(main: T, extra?: E): TSXWithInstall<T> & E => {\n\t(main as TSXWithInstall<T>).install = (app): void => {\n\t\tfor (const comp of [main, ...Object.values(extra ?? {})]) {\n\t\t\tapp.component(comp.name, comp);\n\t\t}\n\t};\n\n\tif (extra) {\n\t\tfor (const [key, comp] of Object.entries(extra)) {\n\t\t\t(main as any)[key] = comp;\n\t\t}\n\t}\n\treturn main as TSXWithInstall<T> & E;\n};\n\nexport const withNoopInstall = <T>(component: T): TSXWithInstall<T> => {\n\t(component as TSXWithInstall<T>).install = NOOP;\n\n\treturn component as TSXWithInstall<T>;\n};\n\nexport const withInstallDirective = <T extends Directive>(directive: T, name: string): TSXWithInstall<T> => {\n\t(directive as TSXWithInstall<T>).install = (app: App): void => {\n\t\tapp.directive(name, directive);\n\t};\n\n\treturn directive as TSXWithInstall<T>;\n};\n","import type { ComputedRef, PropType } from \"vue\";\nimport { computed } from \"vue\";\nimport { omit, pick } from \"lodash-unified\";\n\nexport const definePropType = <T>(val: any): PropType<T> => val;\n\n/**\n * 构建 props\n * @param props props\n * @param rawProps 原生 props\n * @param ignoreRawProps 忽略 原生 props 的 key\n */\nexport const useProps = <T extends Record<string, unknown>, RT extends Record<string, unknown>>(\n\tprops: T,\n\trawProps?: RT,\n\tignoreRawProps?: (keyof RT)[]\n): ComputedRef<Record<string, unknown>> => {\n\tif (!props) return computed(() => ({}));\n\n\treturn computed<Record<string, unknown>>(() => {\n\t\tconst omittedRawProps = rawProps ? omit(rawProps, ignoreRawProps ?? []) : {};\n\t\treturn pick(props, Object.keys(omittedRawProps)) as Record<string, unknown>;\n\t});\n};\n","import type { SlotsType, VNode } from \"vue\";\n\ntype RawSlots = Record<string, unknown>;\n\ntype VueSlots<T> = [T] extends [never] ? () => VNode[] : (arg: T) => VNode[];\n\ntype MakeSlots<T extends RawSlots> = {\n\t[K in keyof T]: VueSlots<T[K]>;\n};\n\n/**\n * 构建 slots\n */\nexport const makeSlots = <Slots extends RawSlots>(): SlotsType<Partial<MakeSlots<Slots>>> => {\n\treturn Object as SlotsType<Partial<MakeSlots<Slots>>>;\n};\n","import type { VNode } from \"vue\";\nimport { getCurrentInstance } from \"vue\";\n\n/**\n * 使用渲染\n * @description 为了解决使用 TSX 语法返回渲染函数,状态不会出现在 vue.js devtools 中\n */\nexport const useRender = (render: () => VNode): void => {\n\tconst vm = getCurrentInstance() as any;\n\tif (!vm) {\n\t\tthrow new Error(\"useRender must be called from inside a setup function\");\n\t}\n\tvm.render = render;\n};\n","/**\n * 定义类型数据\n * @description 传入什么就返回什么,用来定义reactive或其他对象的响应式数据\n */\nexport const withDefineType = <T>(data: T = undefined): T => {\n\treturn data;\n};\n"]}
@@ -1,3 +0,0 @@
1
- 'use strict';var lodashUnified=require('lodash-unified'),cryptoJs=require('crypto-js'),vue=require('vue');var m="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",F=/^(?:[A-Za-z\d+/]{4})*?(?:[A-Za-z\d+/]{2}(?:==)?|[A-Za-z\d+/]{3}=?)?$/,E=[{index:977,randomIndex:188},{index:926,randomIndex:201},{index:851,randomIndex:225},{index:700,randomIndex:255},{index:600,randomIndex:268},{index:500,randomIndex:277},{index:400,randomIndex:288},{index:330,randomIndex:327},{index:300,randomIndex:180},{index:200,randomIndex:178},{index:100,randomIndex:124},{index:98,randomIndex:95},{index:92,randomIndex:90},{index:91,randomIndex:87},{index:88,randomIndex:84},{index:82,randomIndex:79},{index:78,randomIndex:71},{index:72,randomIndex:69},{index:68,randomIndex:66},{index:59,randomIndex:55},{index:48,randomIndex:43},{index:42,randomIndex:37},{index:36,randomIndex:30},{index:33,randomIndex:27},{index:24,randomIndex:20},{index:23,randomIndex:18},{index:21,randomIndex:16},{index:17,randomIndex:14},{index:13,randomIndex:9},{index:7,randomIndex:4},{index:5,randomIndex:3},{index:2,randomIndex:1}],C=6,N="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";function O(e){let t=e;return E.sort((n,o)=>o.index-n.index).forEach(n=>{if(n.index<e.length){let o=e[n.randomIndex];t=t.slice(0,n.index)+o+t.slice(n.index);}}),t}function J(e){let t=E.sort((n,o)=>n.index-o.index),r=e;return t.forEach(n=>{n.index<e.length&&(r=r.slice(0,n.index)+r.slice(n.index+1));}),r}function L(e=N,t=C){let r="";for(let n=0;n<t;n++){let o=Math.ceil(Math.random()*(e.length-1)),i=e[o];r+=i;}return r}var $={bota(e){e=String(e);let t,r,n,o,i="",p=0,c=e.length%3;for(;p<e.length;){if((r=e.charCodeAt(p++))>255||(n=e.charCodeAt(p++))>255||(o=e.charCodeAt(p++))>255)throw new TypeError("Failed to execute 'btoa' on 'Window': The string to be encoded contains characters outside of the Latin1 range.");t=r<<16|n<<8|o,i+=m.charAt(t>>18&63)+m.charAt(t>>12&63)+m.charAt(t>>6&63)+m.charAt(t&63);}return c?i.slice(0,c-3)+"===".substring(c):i},atob(e){if(e=String(e).replace(/[\t\n\f\r ]+/g,""),!F.test(e))throw new TypeError("Failed to execute 'atob' on 'Window': The string to be decoded is not correctly encoded.");e+="==".slice(2-(e.length&3));let t,r="",n,o,i=0;for(;i<e.length;)t=m.indexOf(e.charAt(i++))<<18|m.indexOf(e.charAt(i++))<<12|(n=m.indexOf(e.charAt(i++)))<<6|(o=m.indexOf(e.charAt(i++))),r+=n===64?String.fromCharCode(t>>16&255):o===64?String.fromCharCode(t>>16&255,t>>8&255):String.fromCharCode(t>>16&255,t>>8&255,t&255);return r},toBase64(e,t=C){if(e.length===0)return "";let r=L(),n=$.bota(encodeURIComponent(e));return t!==0&&(n=O(n)),r+n},base64ToStr(e,t=C){let r=e;if(e.length===0)return "";let n=e.slice(t);return t!==0&&(n=J(n)),r=$.atob(n),decodeURIComponent(r)}};var y=null,T=false,ee={debounce(e,t=500){y&&clearTimeout(y),y=setTimeout(()=>{e();},t);},async debounceAsync(e,t=500){return new Promise((r,n)=>{y&&clearTimeout(y),y=setTimeout(async()=>{try{await e(),r();}catch(o){n(o);}},t);})},throttle(e,t=500){T||(T=true,e(),setTimeout(()=>{T=false;},t));},async throttleAsync(e,t=500){return new Promise((r,n)=>{T||(T=true,e().then(()=>{r();}).catch(o=>{n(o);}).finally(()=>{setTimeout(()=>{T=false;},t);}));})}};var re={hexToRgb(e){let t="";if(!/^#?[0-9A-Fa-f]{6}$/.test(e))throw new Error("\u8F93\u5165\u9519\u8BEF\u7684hex");e=e.replace("#",""),t=e.match(/../g);for(let n=0;n<3;n++)t[n]=parseInt(t[n],16);return t},rgbToHex(e,t,r){let n=/^\d{1,3}$/;if(!n.test(e)||!n.test(t)||!n.test(r))throw new Error("\u8F93\u5165\u9519\u8BEF\u7684rgb\u989C\u8272\u503C");let o=[e.toString(16),t.toString(16),r.toString(16)];for(let i=0;i<3;i++)o[i].length===1&&(o[i]=`0${o[i]}`);return `#${o.join("")}`},getDarkColor(e,t){if(!/^#?[0-9A-Fa-f]{6}$/.test(e))throw new Error("\u8F93\u5165\u9519\u8BEF\u7684hex\u989C\u8272\u503C");let n=this.hexToRgb(e);for(let o=0;o<3;o++)n[o]=Math.round(20.5*t+n[o]*(1-t));return this.rgbToHex(n[0],n[1],n[2])},getLightColor(e,t){if(!/^#?[0-9A-Fa-f]{6}$/.test(e))throw new Error("\u8F93\u5165\u9519\u8BEF\u7684hex\u989C\u8272\u503C");let n=this.hexToRgb(e);for(let o=0;o<3;o++)n[o]=Math.round(255*t+n[o]*(1-t));return this.rgbToHex(n[0],n[1],n[2])}};var v=class extends Error{constructor(t){super(t),this.name="FastError";}};var ae=(e,t,r)=>{r?console.log(`[Fast-Log-${e}]${t?` ${t}`:""}`,r):console.log(`[Fast-Log-${e}]${t?` ${t}`:""}`);},R=(e,t,r)=>{r?console.warn(`[Fast-Log-${e}]${t?` ${t}`:""}`,r):console.warn(`[Fast-Log-${e}]${t?` ${t}`:""}`);},ue=(e,t,r)=>{r?console.debug(`[Fast-Log-${e}]${t?` ${t}`:""}`,r):console.debug(`[Fast-Log-${e}]${t?` ${t}`:""}`);},a=(e,t)=>{lodashUnified.isNil(t)||(lodashUnified.isString(t)?console.error(new v(`[Fast-${e}] ${t}`)):console.error(`[Fast-Error-${e}]`,t));},ce=(e,t)=>{throw new v(`[Fast-${e}] ${t}`)};var pe={aes:{encrypt(e,t,r,n=cryptoJs.mode.CBC){return e&&(t.length<32&&(t=t.padEnd(32,"f")),t.length>32&&(t=t.substring(0,32)),r.length<16&&(r=r.padEnd(16,"f")),r.length>16&&(r=r.substring(0,16)),cryptoJs.AES.encrypt(e,cryptoJs.enc.Utf8.parse(t),{iv:cryptoJs.enc.Utf8.parse(r),mode:n}).toString())},decrypt(e,t,r,n=cryptoJs.mode.CBC){if(!e)return null;t.length<32&&(t=t.padEnd(32,"f")),t.length>32&&(t=t.substring(0,32)),r.length<16&&(r=r.padEnd(16,"f")),r.length>16&&(r=r.substring(0,16));let o=cryptoJs.AES.decrypt(e,cryptoJs.enc.Utf8.parse(t),{iv:cryptoJs.enc.Utf8.parse(r),mode:n});try{let i=o.toString(cryptoJs.enc.Utf8);return JSON.parse(i)}catch(i){return a("AESCrypto",i),null}}},sha1:{encrypt(e){return e&&cryptoJs.SHA1(e).toString(cryptoJs.enc.Hex).toUpperCase()}},MD5:{encrypt(e){return e&&cryptoJs.MD5(e).toString(cryptoJs.enc.Hex).toUpperCase()}}};var me={getGreet(){let t=new Date().getHours(),r="";return t<5?r="\u591C\u6DF1\u4E86\uFF0C\u6CE8\u610F\u8EAB\u4F53\u54E6\uFF01":t<9?r="\u65E9\u4E0A\u597D\uFF01\u6B22\u8FCE\u56DE\u6765\uFF01":t<12?r="\u4E0A\u5348\u597D\uFF01\u6B22\u8FCE\u56DE\u6765\uFF01":t<14?r="\u4E2D\u5348\u597D\uFF01\u6B22\u8FCE\u56DE\u6765\uFF01":t<18?r="\u4E0B\u5348\u597D\uFF01\u6B22\u8FCE\u56DE\u6765\uFF01":t<24?r="\u665A\u4E0A\u597D\uFF01\u6B22\u8FCE\u56DE\u6765\uFF01":r="\u60A8\u597D\uFF01\u6B22\u8FCE\u56DE\u6765\uFF01",r},dateTimeFix(e){if(e!=null&&e){typeof e=="string"&&(e=new Date(e));let t=e.getTime();if(t.toString().length<13){let u=t.toString().split("");for(let l=0;l<13;l++)u[l]||(u[l]="0");t=parseInt(u.join(""));}let r=1e3*60,n=r*60,o=n*24,i=o*30,c=new Date().getTime()-t,f=c/i,x=c/(7*o),g=c/o,h=c/n,S=c/r;if(c<0){let u=Math.abs(f),l=Math.abs(x),I=Math.abs(g),b=Math.abs(h),D=Math.abs(S);return u>12?`${parseInt(`${u/12}`)}\u5E74\u540E`:u>=6?"\u534A\u5E74\u540E":u>=1?`${parseInt(`${u}`)}\u6708\u540E`:l>2?"\u534A\u6708\u540E":l>=1?`${parseInt(`${l}`)}\u5468\u540E`:I>=1?`${parseInt(`${I}`)}\u5929\u540E`:b>=1?`${parseInt(`${b}`)}\u5C0F\u65F6\u540E`:D>=1?`${parseInt(`${D}`)}\u5206\u949F\u540E`:"\u521A\u521A"}return f>12?`${parseInt(`${f/12}`)}\u5E74\u524D`:f>=6?"\u534A\u5E74\u524D":f>=1?`${parseInt(`${f}`)}\u6708\u524D`:x>2?"\u534A\u6708\u524D":x>=1?`${parseInt(`${x}`)}\u5468\u524D`:g>=1?`${parseInt(`${g}`)}\u5929\u524D`:h>=1?`${parseInt(`${h}`)}\u5C0F\u65F6\u524D`:S>=1?`${parseInt(`${S}`)}\u5206\u949F\u524D`:"\u521A\u521A"}else return ""},getDefaultTime(){let e=new Date,t=new Date;return t.setMonth(t.getMonth()-1),t.setHours(0,0,0),e.setHours(23,59,59),[t,e]},getSimpleTime(){let e=new Date;return e.setHours(0,0,0),e},getSimpleShortcuts(){return [{text:"\u4ECA\u5929",value:()=>{let e=new Date;return e.setHours(0,0,0),e}},{text:"\u6628\u5929",value:()=>{let e=new Date;return e.setDate(e.getDate()-1),e.setHours(0,0,0),e}},{text:"\u4E00\u5468\u524D",value:()=>{let e=new Date;return e.setDate(e.getDate()-7),e.setHours(0,0,0),e}},{text:"\u4E00\u6708\u524D",value:()=>{let e=new Date;return e.setMonth(e.getMonth()-1),e.setHours(0,0,0),e}},{text:"\u4E00\u5E74\u524D",value:()=>{let e=new Date;return e.setFullYear(e.getFullYear()-1),e.setHours(0,0,0),e}}]},getShortcuts(){return [{text:"\u8FD11\u5929",value:()=>{let e=new Date,t=new Date;return t.setDate(t.getDate()-1),t.setHours(0,0,0),e.setHours(23,59,59),[t,e]}},{text:"\u8FD13\u5929",value:()=>{let e=new Date,t=new Date;return t.setDate(t.getDate()-3),t.setHours(0,0,0),e.setHours(23,59,59),[t,e]}},{text:"\u8FD11\u5468",value:()=>{let e=new Date,t=new Date;return t.setDate(t.getDate()-7),t.setHours(0,0,0),e.setHours(23,59,59),[t,e]}},{text:"\u8FD11\u6708",value:()=>{let e=new Date,t=new Date;return t.setMonth(t.getMonth()-1),t.setHours(0,0,0),e.setHours(23,59,59),[t,e]}},{text:"\u8FD13\u6708",value:()=>{let e=new Date,t=new Date;return t.setMonth(t.getMonth()-3),t.setHours(0,0,0),e.setHours(23,59,59),[t,e]}},{text:"\u8FD16\u6708",value:()=>{let e=new Date,t=new Date;return t.setMonth(t.getMonth()-6),t.setHours(0,0,0),e.setHours(23,59,59),[t,e]}},{text:"\u8FD11\u5E74",value:()=>{let e=new Date,t=new Date;return t.setFullYear(t.getFullYear()-1),t.setHours(0,0,0),e.setHours(23,59,59),[t,e]}}]},getDisabledDate(e){return e.getTime()>Date.now()}};var _=e=>lodashUnified.isString(e)?!Number.isNaN(Number(e)):false,$e=(e,t="px")=>{if(!e)return "";if(lodashUnified.isNumber(e)||_(e))return `${e}${t}`;if(lodashUnified.isString(e))return e;R("document","binding value must be a string or number");};var Ie={objectToQueryString(e){let t="";for(let r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t!==""&&(t+="&"),t+=`${encodeURIComponent(r)}=${encodeURIComponent(e[r])}`);return t},hasDuplicateProperty(e,t){let r=e.map(o=>o[t]),n=new Set(r);return r.length!==n.size},hasDifferentProperty(e,t){let r=new Set;for(let n of e)if(r.add(n[t]),r.size>1)return true;return false},dateTimeFix(e){if(e!=null&&e){typeof e=="string"&&(e=new Date(e));let t=e.getTime();if(t.toString().length<13){let u=t.toString().split("");for(let l=0;l<13;l++)u[l]||(u[l]="0");t=parseInt(u.join(""));}let r=1e3*60,n=r*60,o=n*24,i=o*30,c=new Date().getTime()-t,f=c/i,x=c/(7*o),g=c/o,h=c/n,S=c/r;if(c<0){let u=Math.abs(f),l=Math.abs(x),I=Math.abs(g),b=Math.abs(h),D=Math.abs(S);return u>12?`${parseInt(`${u/12}`)}\u5E74\u540E`:u>=6?"\u534A\u5E74\u540E":u>=1?`${parseInt(`${u}`)}\u6708\u540E`:l>2?"\u534A\u6708\u540E":l>=1?`${parseInt(`${l}`)}\u5468\u540E`:I>=1?`${parseInt(`${I}`)}\u5929\u540E`:b>=1?`${parseInt(`${b}`)}\u5C0F\u65F6\u540E`:D>=1?`${parseInt(`${D}`)}\u5206\u949F\u540E`:"\u521A\u521A"}return f>12?`${parseInt(`${f/12}`)}\u5E74\u524D`:f>=6?"\u534A\u5E74\u524D":f>=1?`${parseInt(`${f}`)}\u6708\u524D`:x>2?"\u534A\u6708\u524D":x>=1?`${parseInt(`${x}`)}\u5468\u524D`:g>=1?`${parseInt(`${g}`)}\u5929\u524D`:h>=1?`${parseInt(`${h}`)}\u5C0F\u65F6\u524D`:S>=1?`${parseInt(`${S}`)}\u5206\u949F\u524D`:"\u521A\u521A"}else return ""}};var s=vue.reactive({prefix:"fast__",expireSuffix:"__Expire",crypto:false}),Ee=vue.computed(()=>s.prefix),Re=vue.computed(()=>s.expireSuffix),Ae=()=>({prefix(e){s.prefix=e;},expireSuffix(e){s.expireSuffix=e;},crypto(e){s.crypto=e;}}),d={set(e,t){typeof uni<"u"?uni.setStorageSync(e,t):window.localStorage.setItem(e,t);},get(e){return typeof uni<"u"?uni.getStorageSync(e):window.localStorage.getItem(e)},remove(e){typeof uni<"u"?uni.removeStorageSync(e):window.localStorage.removeItem(e);},clear(){typeof uni<"u"?uni.clearStorageSync():window.localStorage.clear();},keys(){return typeof uni<"u"?uni.getStorageInfoSync().keys:window.localStorage}},Me={set(e,t,r,n){try{if(n??=s.crypto,r){if(isNaN(r)||r<1)throw new Error("\u6709\u6548\u671F\u5E94\u4E3A\u4E00\u4E2A\u6709\u6548\u6570\u503C");let i={time:Date.now(),expire:r},p=JSON.stringify(i);d.set(`${s.prefix}${e}${s.expireSuffix}`,p);}let o=JSON.stringify(t);n&&(o=$.toBase64(o)),d.set(`${s.prefix}${e}`,o);}catch(o){a("Local",o);}},get(e,t){try{t??=s.crypto;let r=d.get(`${s.prefix}${e}`);if(r){t&&(r=$.base64ToStr(r));let n=d.get(`${s.prefix}${e}${s.expireSuffix}`);if(n){let o=JSON.parse(n);if(Date.now()>o.time+o.expire*60*1e3)return d.remove(`${s.prefix}${e}`),d.remove(`${s.prefix}${e}${s.expireSuffix}`),null}try{return JSON.parse(r)}catch{return r}}return null}catch(r){a("Local",r);}},remove(e){try{d.remove(`${s.prefix}${e}`),d.remove(`${s.prefix}${e}${s.expireSuffix}`);}catch(t){a("Local",t);}},removeByPrefix(e){try{for(let t in d.keys)t.indexOf(`${s.prefix}${e}`)!==-1&&d.remove(t);}catch(t){a("Local",t);}},clear(){try{d.clear();}catch(e){a("Local",e);}}},Pe={set(e,t,r,n){if(typeof uni<"u"){a("Session","UniApp \u73AF\u5883\u4E0B [Session] \u4E0D\u53EF\u7528\u3002");return}try{if(n??=s.crypto,r){if(isNaN(r)||r<1)throw new Error("\u6709\u6548\u671F\u5E94\u4E3A\u4E00\u4E2A\u6709\u6548\u6570\u503C");let i={time:Date.now(),expire:r},p=JSON.stringify(i);window.sessionStorage.setItem(`${s.prefix}${e}${s.expireSuffix}`,p);}let o=JSON.stringify(t);n&&(o=$.toBase64(o)),window.sessionStorage.setItem(`${s.prefix}${e}`,o);}catch(o){a("Session",o);}},get(e,t){if(typeof uni<"u"){a("Session","UniApp \u73AF\u5883\u4E0B [Session] \u4E0D\u53EF\u7528\u3002");return}try{t??=s.crypto;let r=window.sessionStorage.getItem(`${s.prefix}${e}`);if(r){t&&(r=$.base64ToStr(r));let n=window.sessionStorage.getItem(`${s.prefix}${e}${s.expireSuffix}`);if(n){let o=JSON.parse(n);if(Date.now()>o.time+o.expire*60*1e3)return window.sessionStorage.removeItem(`${s.prefix}${e}`),window.sessionStorage.removeItem(`${s.prefix}${e}${s.expireSuffix}`),null}try{return JSON.parse(r)}catch{return r}}return null}catch(r){a("Session",r);}},remove(e){if(typeof uni<"u"){a("Session","UniApp \u73AF\u5883\u4E0B [Session] \u4E0D\u53EF\u7528\u3002");return}try{window.sessionStorage.removeItem(`${s.prefix}${e}`),window.sessionStorage.removeItem(`${s.prefix}${e}${s.expireSuffix}`);}catch(t){a("Session",t);}},removeByPrefix(e){if(typeof uni<"u"){a("Session","UniApp \u73AF\u5883\u4E0B [Session] \u4E0D\u53EF\u7528\u3002");return}try{for(let t in window.sessionStorage)t.indexOf(`${s.prefix}${e}`)!==-1&&window.sessionStorage.removeItem(t);}catch(t){a("Session",t);}},clear(){if(typeof uni<"u"){a("Session","UniApp \u73AF\u5883\u4E0B [Session] \u4E0D\u53EF\u7528\u3002");return}try{window.sessionStorage.clear();}catch(e){a("Session",e);}}};var Y={getUrlParams(e){let t=/[?&][^=?&]+=[^?&]+/g,r={},n;for(;(n=t.exec(e))!==null;){let[o,i]=n[0].substring(1).split("=");r[o]=decodeURIComponent(i);}return r},isJson(e){return lodashUnified.isString(e)?(e=e.replace(/\s/g,"").replace(/\n|\r/,""),/^\{(.*?)\}$/.test(e)?/"(.*?)":(.*?)/g.test(e):/^\[(.*?)\]$/.test(e)?e.replace(/^\[/,"").replace(/\]$/,"").replace(/},{/g,`}
2
- {`).split(/\n/).map(t=>Y.isJson(t)).reduce((t,r)=>!!r):false):false},generateRandomString(e){let t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",r="";for(let n=0;n<e;n++){let o=Math.floor(Math.random()*t.length);r+=t.charAt(o);}return r},generateUUID(){let e="";for(let t=0;t<32;t++){let r=Math.random()*16|0;(t===8||t===12||t===16||t===20)&&(e+="-"),e+=(t===12?4:t===16?r&3|8:r).toString(16);}return e},async copy(e){if(typeof uni<"u")return new Promise((t,r)=>{uni.setClipboardData({data:e,success:()=>{t();},fail:()=>{r();}});});if(navigator?.clipboard&&window.isSecureContext)await navigator.clipboard.writeText(e);else {let t=document.createElement("textarea");t.value=e,t.style.position="absolute",t.style.opacity="0",t.style.left="-999999px",t.style.top="-999999px",document.body.appendChild(t),t.focus(),t.select(),document.execCommand("copy"),t.remove();}}};var Ne=(e,t)=>(e(t),t);var Le=async(e,...t)=>{if(!e)return Promise.resolve(void 0);if(e.constructor.name==="AsyncFunction")try{return await e(...t)}catch(r){return a("execFunction",r),Promise.reject(r)}else return new Promise((r,n)=>{try{let o=e(...t);return r(o)}catch(o){return a("execFunction",o),n(o)}})};var k=()=>{},Xe=(e,t)=>{if(e.install=r=>{for(let n of [e,...Object.values(t??{})])r.component(n.name,n);},t)for(let[r,n]of Object.entries(t))e[r]=n;return e},je=e=>(e.install=k,e),Ve=(e,t)=>(e.install=r=>{r.directive(t,e);},e);var Ke=e=>e,Ye=(e,t,r)=>e?vue.computed(()=>{let n=t?lodashUnified.omit(t,r??[]):{};return lodashUnified.pick(e,Object.keys(n))}):vue.computed(()=>({}));var Ze=()=>Object;var Qe=e=>{let t=vue.getCurrentInstance();if(!t)throw new Error("useRender must be called from inside a setup function");t.render=e;};var tt=(e=void 0)=>e;exports.CACHE_EXPIRE_SUFFIX=Re;exports.CACHE_PREFIX=Ee;exports.FastError=v;exports.Local=Me;exports.Session=Pe;exports.addUnit=$e;exports.base64Util=$;exports.clickUtil=ee;exports.colorUtil=re;exports.consoleDebug=ue;exports.consoleError=a;exports.consoleLog=ae;exports.consoleWarn=R;exports.cryptoUtil=pe;exports.dateUtil=me;exports.definePropType=Ke;exports.execFunction=Le;exports.makeSlots=Ze;exports.objectUtil=Ie;exports.stringUtil=Y;exports.throwError=ce;exports.useExpose=Ne;exports.useProps=Ye;exports.useRender=Qe;exports.useStorage=Ae;exports.withDefineType=tt;exports.withInstall=Xe;exports.withInstallDirective=Ve;exports.withNoopInstall=je;//# sourceMappingURL=index.min.cjs.map
3
- //# sourceMappingURL=index.min.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/base64/index.ts","../src/click/index.ts","../src/color/index.ts","../src/error/index.ts","../src/console/index.ts","../src/crypto/index.ts","../src/date/index.ts","../src/dom/style.ts","../src/object/index.ts","../src/storage/index.ts","../src/string/index.ts","../src/vue/expose.ts","../src/vue/func.ts","../src/vue/install.ts","../src/vue/props.ts","../src/vue/slots.ts","../src/vue/useRender.ts","../src/vue/with.ts"],"names":["b64","b64re","base64PwdDic","randomPrefixStrLength","randomStr","insertRandomStrToBase64Str","base64Str","strResult","a","b","item","randomChar","removeBase64StrRandomStr","items","getRandomStr","str","prefixStrLength","result","i","randomInt","base64Util","string","bitmap","c","rest","r1","r2","randomPrefixStr","base64","input","_debounceTimeout","_throttleRunning","clickUtil","fn","delay","resolve","reject","error","colorUtil","hex","r","g","reg","color","level","rgb","FastError","m","consoleLog","name","message","consoleWarn","consoleDebug","consoleError","isNil","isString","throwError","cryptoUtil","dataStr","key","vector","cipherMode","mode","AES","enc","resAESData","SHA1","MD5","dateUtil","hour","greet","date","timestamp","arrTimestamp","start","minute","day","month","diffValue","monthC","weekC","dayC","hourC","minC","monthC1","weekC1","dayC1","hourC1","minC1","end","time","isStringNumber","val","addUnit","value","defaultUnit","isNumber","objectUtil","obj","params","arr","prop","values","uniqueValues","valueSet","state","reactive","CACHE_PREFIX","computed","CACHE_EXPIRE_SUFFIX","useStorage","crypto","storage","Local","expire","encrypt","expireData","expireJson","valJson","decrypt","itemKey","Session","stringUtil","url","regex","match","s","prev","curr","length","characters","randomString","randomIndex","uuid","random","textareaEl","useExpose","expose","exposed","execFunction","args","res","NOOP","withInstall","main","extra","app","comp","withNoopInstall","component","withInstallDirective","directive","definePropType","useProps","props","rawProps","ignoreRawProps","omittedRawProps","omit","pick","makeSlots","useRender","render","vm","getCurrentInstance","withDefineType","data"],"mappings":"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","file":"index.min.cjs","sourcesContent":["const b64 = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";\nconst b64re = /^(?:[A-Za-z\\d+/]{4})*?(?:[A-Za-z\\d+/]{2}(?:==)?|[A-Za-z\\d+/]{3}=?)?$/;\n\n/**加密字典 */\nconst base64PwdDic = [\n\t{ index: 977, randomIndex: 188 },\n\t{ index: 926, randomIndex: 201 },\n\t{ index: 851, randomIndex: 225 },\n\t{ index: 700, randomIndex: 255 },\n\t{ index: 600, randomIndex: 268 },\n\t{ index: 500, randomIndex: 277 },\n\t{ index: 400, randomIndex: 288 },\n\t{ index: 330, randomIndex: 327 },\n\t{ index: 300, randomIndex: 180 },\n\t{ index: 200, randomIndex: 178 },\n\t{ index: 100, randomIndex: 124 },\n\t// 100 以内字典\n\t{ index: 98, randomIndex: 95 },\n\t{ index: 92, randomIndex: 90 },\n\t{ index: 91, randomIndex: 87 },\n\t{ index: 88, randomIndex: 84 },\n\t{ index: 82, randomIndex: 79 },\n\t{ index: 78, randomIndex: 71 },\n\t{ index: 72, randomIndex: 69 },\n\t{ index: 68, randomIndex: 66 },\n\t{ index: 59, randomIndex: 55 },\n\t{ index: 48, randomIndex: 43 },\n\t{ index: 42, randomIndex: 37 },\n\t{ index: 36, randomIndex: 30 },\n\t{ index: 33, randomIndex: 27 },\n\t{ index: 24, randomIndex: 20 },\n\t{ index: 23, randomIndex: 18 },\n\t{ index: 21, randomIndex: 16 },\n\t{ index: 17, randomIndex: 14 },\n\t{ index: 13, randomIndex: 9 },\n\t{ index: 7, randomIndex: 4 },\n\t{ index: 5, randomIndex: 3 },\n\t{ index: 2, randomIndex: 1 },\n];\n\n/**随机字符串长度 */\nconst randomPrefixStrLength = 6;\n\n/**随机字符串 */\nconst randomStr = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz\";\n\n/**\n * 在Base64字符串中添加加密字典\n */\nfunction insertRandomStrToBase64Str(base64Str: string): string {\n\tlet strResult = base64Str;\n\tconst items = base64PwdDic.sort((a, b) => {\n\t\treturn b.index - a.index;\n\t});\n\titems.forEach((item) => {\n\t\tif (item.index < base64Str.length) {\n\t\t\tconst randomChar = base64Str[item.randomIndex];\n\t\t\tstrResult = strResult.slice(0, item.index) + randomChar + strResult.slice(item.index);\n\t\t}\n\t});\n\treturn strResult;\n}\n\n/**\n * 删除Base64字符串中的加密字典\n */\nfunction removeBase64StrRandomStr(base64Str: string): string {\n\tconst items = base64PwdDic.sort((a, b) => {\n\t\treturn a.index - b.index;\n\t});\n\tlet strResult = base64Str;\n\titems.forEach((item) => {\n\t\tif (item.index < base64Str.length) {\n\t\t\tstrResult = strResult.slice(0, item.index) + strResult.slice(item.index + 1);\n\t\t}\n\t});\n\treturn strResult;\n}\n\n/**\n * 得到随机字符串\n */\nfunction getRandomStr(str = randomStr, prefixStrLength = randomPrefixStrLength): string {\n\tlet result = \"\";\n\tfor (let i = 0; i < prefixStrLength; i++) {\n\t\tconst randomInt = Math.ceil(Math.random() * (str.length - 1));\n\t\tconst randomChar = str[randomInt];\n\t\tresult += randomChar;\n\t}\n\treturn result;\n}\n\nexport const base64Util = {\n\tbota(string: string): string {\n\t\tstring = String(string);\n\t\tlet bitmap,\n\t\t\ta,\n\t\t\tb,\n\t\t\tc,\n\t\t\tresult = \"\",\n\t\t\ti = 0,\n\t\t\t// eslint-disable-next-line prefer-const\n\t\t\trest = string.length % 3;\n\n\t\tfor (; i < string.length; ) {\n\t\t\tif ((a = string.charCodeAt(i++)) > 255 || (b = string.charCodeAt(i++)) > 255 || (c = string.charCodeAt(i++)) > 255)\n\t\t\t\tthrow new TypeError(\n\t\t\t\t\t\"Failed to execute 'btoa' on 'Window': The string to be encoded contains characters outside of the Latin1 range.\"\n\t\t\t\t);\n\n\t\t\tbitmap = (a << 16) | (b << 8) | c;\n\t\t\tresult += b64.charAt((bitmap >> 18) & 63) + b64.charAt((bitmap >> 12) & 63) + b64.charAt((bitmap >> 6) & 63) + b64.charAt(bitmap & 63);\n\t\t}\n\n\t\treturn rest ? result.slice(0, rest - 3) + \"===\".substring(rest) : result;\n\t},\n\tatob(string: string): string {\n\t\tstring = String(string).replace(/[\\t\\n\\f\\r ]+/g, \"\");\n\t\tif (!b64re.test(string)) throw new TypeError(\"Failed to execute 'atob' on 'Window': The string to be decoded is not correctly encoded.\");\n\t\tstring += \"==\".slice(2 - (string.length & 3));\n\t\tlet bitmap,\n\t\t\tresult = \"\",\n\t\t\tr1,\n\t\t\tr2,\n\t\t\ti = 0;\n\t\tfor (; i < string.length; ) {\n\t\t\tbitmap =\n\t\t\t\t(b64.indexOf(string.charAt(i++)) << 18) |\n\t\t\t\t(b64.indexOf(string.charAt(i++)) << 12) |\n\t\t\t\t((r1 = b64.indexOf(string.charAt(i++))) << 6) |\n\t\t\t\t(r2 = b64.indexOf(string.charAt(i++)));\n\n\t\t\tresult +=\n\t\t\t\tr1 === 64\n\t\t\t\t\t? String.fromCharCode((bitmap >> 16) & 255)\n\t\t\t\t\t: r2 === 64\n\t\t\t\t\t\t? String.fromCharCode((bitmap >> 16) & 255, (bitmap >> 8) & 255)\n\t\t\t\t\t\t: String.fromCharCode((bitmap >> 16) & 255, (bitmap >> 8) & 255, bitmap & 255);\n\t\t}\n\t\treturn result;\n\t},\n\t/**\n\t * 字符串ToBase64\n\t */\n\ttoBase64(str: string, prefixStrLength = randomPrefixStrLength): string {\n\t\tif (str.length === 0) {\n\t\t\treturn \"\";\n\t\t}\n\t\tconst randomPrefixStr = getRandomStr();\n\t\tlet base64 = base64Util.bota(encodeURIComponent(str));\n\t\tif (prefixStrLength !== 0) {\n\t\t\tbase64 = insertRandomStrToBase64Str(base64);\n\t\t}\n\t\treturn randomPrefixStr + base64;\n\t},\n\n\t/**\n\t * Base64转字符串\n\t */\n\tbase64ToStr(str: string, prefixStrLength = randomPrefixStrLength): string {\n\t\tlet result = str;\n\t\tif (str.length === 0) {\n\t\t\treturn \"\";\n\t\t}\n\t\tlet input = str.slice(prefixStrLength);\n\t\tif (prefixStrLength !== 0) {\n\t\t\tinput = removeBase64StrRandomStr(input);\n\t\t}\n\t\tresult = base64Util.atob(input);\n\t\treturn decodeURIComponent(result);\n\t},\n};\n","let _debounceTimeout: ReturnType<typeof setTimeout> | null = null;\nlet _throttleRunning = false;\n\nexport const clickUtil = {\n\t/**\n\t * 防抖\n\t * @param fn - 执行函数\n\t * @param delay - 延时毫秒\n\t * @returns 返回一个新的防抖函数\n\t */\n\tdebounce(fn: () => void, delay = 500): void {\n\t\t// 如果已有定时器,清除它\n\t\tif (_debounceTimeout) {\n\t\t\tclearTimeout(_debounceTimeout);\n\t\t}\n\t\t// 设置新的定时器\n\t\t_debounceTimeout = setTimeout(() => {\n\t\t\t// 调用原函数\n\t\t\tfn();\n\t\t}, delay);\n\t},\n\t/**\n\t * 异步防抖\n\t * @param fn - 执行函数\n\t * @param delay - 延时毫秒\n\t * @returns 返回一个新的防抖函数\n\t */\n\tasync debounceAsync(fn: () => Promise<void>, delay = 500): Promise<void> {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\t// 清除已有定时器\n\t\t\tif (_debounceTimeout) {\n\t\t\t\tclearTimeout(_debounceTimeout);\n\t\t\t}\n\t\t\t// 设置新的定时器\n\t\t\t_debounceTimeout = setTimeout(async () => {\n\t\t\t\ttry {\n\t\t\t\t\t// 调用异步函数 fn\n\t\t\t\t\tawait fn();\n\t\t\t\t\tresolve();\n\t\t\t\t} catch (error) {\n\t\t\t\t\treject(error);\n\t\t\t\t}\n\t\t\t}, delay);\n\t\t});\n\t},\n\t/**\n\t * 节流\n\t * @param fn - 执行函数\n\t * @param delay - 延时毫秒\n\t * @returns 返回一个新的节流函数\n\t */\n\tthrottle(fn: () => void, delay = 500): void {\n\t\t// 如果节流操作正在运行,直接返回\n\t\tif (_throttleRunning) {\n\t\t\treturn;\n\t\t}\n\t\t// 设置节流状态为运行\n\t\t_throttleRunning = true;\n\t\t// 调用原函数\n\t\tfn();\n\t\t// 设置定时器以重置节流状态\n\t\tsetTimeout(() => {\n\t\t\t_throttleRunning = false;\n\t\t}, delay);\n\t},\n\t/**\n\t * 异步节流\n\t * @param fn - 执行函数\n\t * @param delay - 延时毫秒\n\t * @returns 返回一个新的节流函数\n\t */\n\tasync throttleAsync(fn: () => Promise<void>, delay = 500): Promise<void> {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\t// 如果节流操作正在进行,直接返回\n\t\t\tif (_throttleRunning) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\t// 设置节流状态为运行\n\t\t\t_throttleRunning = true;\n\t\t\t// 调用原函数\n\t\t\tfn()\n\t\t\t\t.then(() => {\n\t\t\t\t\tresolve();\n\t\t\t\t})\n\t\t\t\t.catch((error) => {\n\t\t\t\t\treject(error);\n\t\t\t\t})\n\t\t\t\t.finally(() => {\n\t\t\t\t\t// 设置定时器以重置节流状态\n\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\t_throttleRunning = false;\n\t\t\t\t\t}, delay);\n\t\t\t\t});\n\t\t});\n\t},\n};\n","export const colorUtil = {\n\t/**\n\t * hex颜色转rgb颜色\n\t * @param str 颜色值字符串\n\t * @returns 返回处理后的颜色值\n\t */\n\thexToRgb(str: any): any {\n\t\tlet hex: any = \"\";\n\t\tconst reg = /^#?[0-9A-Fa-f]{6}$/;\n\t\tif (!reg.test(str)) throw new Error(\"输入错误的hex\");\n\t\tstr = str.replace(\"#\", \"\");\n\t\thex = str.match(/../g);\n\t\tfor (let i = 0; i < 3; i++) hex[i] = parseInt(hex[i], 16);\n\t\treturn hex;\n\t},\n\t/**\n\t * rgb颜色转Hex颜色\n\t * @param r 代表红色\n\t * @param g 代表绿色\n\t * @param b 代表蓝色\n\t * @returns 返回处理后的颜色值\n\t */\n\trgbToHex(r: any, g: any, b: any): string {\n\t\tconst reg = /^\\d{1,3}$/;\n\t\tif (!reg.test(r) || !reg.test(g) || !reg.test(b)) throw new Error(\"输入错误的rgb颜色值\");\n\t\tconst hex = [r.toString(16), g.toString(16), b.toString(16)];\n\t\tfor (let i = 0; i < 3; i++) if (hex[i].length === 1) hex[i] = `0${hex[i]}`;\n\t\treturn `#${hex.join(\"\")}`;\n\t},\n\t/**\n\t * 加深颜色值\n\t * @param color 颜色值字符串\n\t * @param level 加深的程度,限0-1之间\n\t * @returns 返回处理后的颜色值\n\t */\n\tgetDarkColor(color: string, level: number): string {\n\t\tconst reg = /^#?[0-9A-Fa-f]{6}$/;\n\t\tif (!reg.test(color)) throw new Error(\"输入错误的hex颜色值\");\n\t\tconst rgb = this.hexToRgb(color);\n\t\tfor (let i = 0; i < 3; i++) rgb[i] = Math.round(20.5 * level + rgb[i] * (1 - level));\n\t\treturn this.rgbToHex(rgb[0], rgb[1], rgb[2]);\n\t},\n\t/**\n\t * 变浅颜色值\n\t * @param color 颜色值字符串\n\t * @param level 加深的程度,限0-1之间\n\t * @returns 返回处理后的颜色值\n\t */\n\tgetLightColor(color: string, level: number): string {\n\t\tconst reg = /^#?[0-9A-Fa-f]{6}$/;\n\t\tif (!reg.test(color)) throw new Error(\"输入错误的hex颜色值\");\n\t\tconst rgb = this.hexToRgb(color);\n\t\tfor (let i = 0; i < 3; i++) rgb[i] = Math.round(255 * level + rgb[i] * (1 - level));\n\t\treturn this.rgbToHex(rgb[0], rgb[1], rgb[2]);\n\t},\n};\n","export class FastError extends Error {\n\tconstructor(m: string) {\n\t\tsuper(m);\n\t\tthis.name = \"FastError\";\n\t}\n}\n","import { isNil, isString } from \"lodash-unified\";\nimport { FastError } from \"src/error\";\n\n/**\n * 打印 Log 日志\n * @param name 来源名称\n */\nexport const consoleLog = (name: string, message?: string | false, error?: any): void => {\n\tif (error) {\n\t\t// eslint-disable-next-line no-console\n\t\tconsole.log(`[Fast-Log-${name}]${message ? ` ${message}` : \"\"}`, error);\n\t} else {\n\t\t// eslint-disable-next-line no-console\n\t\tconsole.log(`[Fast-Log-${name}]${message ? ` ${message}` : \"\"}`);\n\t}\n};\n\n/**\n * 打印 Warn 日志\n * @param name 来源名称\n */\nexport const consoleWarn = (name: string, message?: string | false, error?: any): void => {\n\tif (error) {\n\t\t// eslint-disable-next-line no-console\n\t\tconsole.warn(`[Fast-Log-${name}]${message ? ` ${message}` : \"\"}`, error);\n\t} else {\n\t\t// eslint-disable-next-line no-console\n\t\tconsole.warn(`[Fast-Log-${name}]${message ? ` ${message}` : \"\"}`);\n\t}\n};\n\n/**\n * 打印 Debug 日志\n * @param name 来源名称\n */\nexport const consoleDebug = (name: string, message?: string | false, error?: any): void => {\n\tif (error) {\n\t\t// eslint-disable-next-line no-console\n\t\tconsole.debug(`[Fast-Log-${name}]${message ? ` ${message}` : \"\"}`, error);\n\t} else {\n\t\t// eslint-disable-next-line no-console\n\t\tconsole.debug(`[Fast-Log-${name}]${message ? ` ${message}` : \"\"}`);\n\t}\n};\n\n/**\n * 打印 Error 日志\n * @param name 来源名称\n */\nexport const consoleError = (name: string, message?: any): void => {\n\tif (isNil(message)) {\n\t\treturn;\n\t}\n\tif (isString(message)) {\n\t\tconsole.error(new FastError(`[Fast-${name}] ${message}`));\n\t} else {\n\t\t// eslint-disable-next-line no-console\n\t\tconsole.error(`[Fast-Error-${name}]`, message);\n\t}\n};\n\n/**\n * 抛出错误\n * @param name 来源名称\n */\nexport const throwError = (name: string, message?: any): never => {\n\tthrow new FastError(`[Fast-${name}] ${message}`);\n};\n","import { AES, MD5, SHA1, enc, mode } from \"crypto-js\";\nimport { consoleError } from \"src/console\";\n\n/**\n * 加密解密\n */\nexport const cryptoUtil = {\n\t/**\n\t * AES\n\t */\n\taes: {\n\t\t/**\n\t\t * AES加密\n\t\t * @param dataStr 要加密的字符串\n\t\t * @param key 用于加密的密钥\n\t\t * @param vector 用于加密的向量(IV)\n\t\t * @param cipherMode 加密模式,默认为CBC模式\n\t\t */\n\t\tencrypt(dataStr: string, key: string, vector: string, cipherMode: any = mode.CBC): string {\n\t\t\tif (!dataStr) {\n\t\t\t\treturn dataStr;\n\t\t\t}\n\n\t\t\t// 处理Key不足32位的问题\n\t\t\tif (key.length < 32) {\n\t\t\t\t// 不足\n\t\t\t\tkey = key.padEnd(32, \"f\");\n\t\t\t}\n\n\t\t\t// 处理Key超过32位的问题\n\t\t\tif (key.length > 32) {\n\t\t\t\t// 超过\n\t\t\t\tkey = key.substring(0, 32);\n\t\t\t}\n\n\t\t\t// 处理IV不足16位的问题\n\t\t\tif (vector.length < 16) {\n\t\t\t\t// 不足\n\t\t\t\tvector = vector.padEnd(16, \"f\");\n\t\t\t}\n\n\t\t\t// 处理IV超过16位的问题\n\t\t\tif (vector.length > 16) {\n\t\t\t\t// 超过\n\t\t\t\tvector = vector.substring(0, 16);\n\t\t\t}\n\n\t\t\treturn AES.encrypt(dataStr, enc.Utf8.parse(key), {\n\t\t\t\tiv: enc.Utf8.parse(vector),\n\t\t\t\tmode: cipherMode,\n\t\t\t}).toString();\n\t\t},\n\t\t/**\n\t\t * AES解密\n\t\t * @param dataStr 要解密的Base64编码字符串\n\t\t * @param key 用于解密的密钥\n\t\t * @param vector 用于解密的向量(IV)\n\t\t * @param cipherMode 解密模式,默认为CBC模式\n\t\t */\n\t\tdecrypt<T = string>(dataStr: string, key: string, vector: string, cipherMode: any = mode.CBC): T | null {\n\t\t\tif (!dataStr) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\t// 处理Key不足32位的问题\n\t\t\tif (key.length < 32) {\n\t\t\t\t// 不足\n\t\t\t\tkey = key.padEnd(32, \"f\");\n\t\t\t}\n\n\t\t\t// 处理Key超过32位的问题\n\t\t\tif (key.length > 32) {\n\t\t\t\t// 超过\n\t\t\t\tkey = key.substring(0, 32);\n\t\t\t}\n\n\t\t\t// 处理IV不足16位的问题\n\t\t\tif (vector.length < 16) {\n\t\t\t\t// 不足\n\t\t\t\tvector = vector.padEnd(16, \"f\");\n\t\t\t}\n\n\t\t\t// 处理IV超过16位的问题\n\t\t\tif (vector.length > 16) {\n\t\t\t\t// 超过\n\t\t\t\tvector = vector.substring(0, 16);\n\t\t\t}\n\n\t\t\tconst resAESData = AES.decrypt(dataStr, enc.Utf8.parse(key), {\n\t\t\t\tiv: enc.Utf8.parse(vector),\n\t\t\t\tmode: cipherMode,\n\t\t\t});\n\t\t\ttry {\n\t\t\t\tconst result = resAESData.toString(enc.Utf8);\n\t\t\t\treturn JSON.parse(result) as T;\n\t\t\t} catch (error) {\n\t\t\t\tconsoleError(\"AESCrypto\", error);\n\t\t\t\treturn null;\n\t\t\t}\n\t\t},\n\t},\n\t/**\n\t * SHA1\n\t */\n\tsha1: {\n\t\t/**\n\t\t * SHA1加密\n\t\t * @param dataStr 要加密的字符串\n\t\t */\n\t\tencrypt(dataStr: string): string {\n\t\t\tif (!dataStr) {\n\t\t\t\treturn dataStr;\n\t\t\t}\n\n\t\t\treturn SHA1(dataStr).toString(enc.Hex).toUpperCase();\n\t\t},\n\t},\n\t/**\n\t * MD5\n\t */\n\tMD5: {\n\t\t/**\n\t\t * MD5加密\n\t\t * @param dataStr 要加密的字符串\n\t\t */\n\t\tencrypt(dataStr: string): string {\n\t\t\tif (!dataStr) {\n\t\t\t\treturn dataStr;\n\t\t\t}\n\n\t\t\treturn MD5(dataStr).toString(enc.Hex).toUpperCase();\n\t\t},\n\t},\n};\n","/**\n * Date工具类\n */\nexport const dateUtil = {\n\t/**\n\t * 根据当前时间生成问候语\n\t */\n\tgetGreet(): string {\n\t\tconst now = new Date();\n\t\tconst hour = now.getHours();\n\t\tlet greet = \"\";\n\n\t\tif (hour < 5) {\n\t\t\tgreet = \"夜深了,注意身体哦!\";\n\t\t} else if (hour < 9) {\n\t\t\tgreet = \"早上好!\" + \"欢迎回来!\";\n\t\t} else if (hour < 12) {\n\t\t\tgreet = \"上午好!\" + \"欢迎回来!\";\n\t\t} else if (hour < 14) {\n\t\t\tgreet = \"中午好!\" + \"欢迎回来!\";\n\t\t} else if (hour < 18) {\n\t\t\tgreet = \"下午好!\" + \"欢迎回来!\";\n\t\t} else if (hour < 24) {\n\t\t\tgreet = \"晚上好!\" + \"欢迎回来!\";\n\t\t} else {\n\t\t\tgreet = \"您好!\" + \"欢迎回来!\";\n\t\t}\n\t\treturn greet;\n\t},\n\t/**\n\t * 时间处理翻译\n\t */\n\tdateTimeFix(date: string | Date | null | undefined): string {\n\t\tif (date !== null && date !== undefined && date) {\n\t\t\tif (typeof date === \"string\") {\n\t\t\t\tdate = new Date(date);\n\t\t\t}\n\n\t\t\t// 获取时间戳\n\t\t\tlet timestamp = date.getTime();\n\t\t\tif (timestamp.toString().length < 13) {\n\t\t\t\tconst arrTimestamp = timestamp.toString().split(\"\");\n\t\t\t\tfor (let start = 0; start < 13; start++) {\n\t\t\t\t\tif (!arrTimestamp[start]) {\n\t\t\t\t\t\tarrTimestamp[start] = \"0\";\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\ttimestamp = parseInt(arrTimestamp.join(\"\"));\n\t\t\t}\n\t\t\tconst minute = 1000 * 60;\n\t\t\tconst hour = minute * 60;\n\t\t\tconst day = hour * 24;\n\t\t\tconst month = day * 30;\n\t\t\t// 获取当前时间\n\t\t\tconst curTime = new Date().getTime();\n\t\t\t// 比较\n\t\t\tconst diffValue = curTime - timestamp;\n\n\t\t\t// 计算差异时间的量级\n\t\t\tconst monthC = diffValue / month;\n\t\t\tconst weekC = diffValue / (7 * day);\n\t\t\tconst dayC = diffValue / day;\n\t\t\tconst hourC = diffValue / hour;\n\t\t\tconst minC = diffValue / minute;\n\n\t\t\t// 如果本地时间反而小于变量时间\n\t\t\tif (diffValue < 0) {\n\t\t\t\tconst monthC1 = Math.abs(monthC);\n\t\t\t\tconst weekC1 = Math.abs(weekC);\n\t\t\t\tconst dayC1 = Math.abs(dayC);\n\t\t\t\tconst hourC1 = Math.abs(hourC);\n\t\t\t\tconst minC1 = Math.abs(minC);\n\n\t\t\t\tif (monthC1 > 12) {\n\t\t\t\t\t// 超过1年,直接显示 几 年前\n\t\t\t\t\treturn `${parseInt(`${monthC1 / 12}`)}年后`;\n\t\t\t\t} else if (monthC1 >= 6) {\n\t\t\t\t\treturn \"半年后\";\n\t\t\t\t} else if (monthC1 >= 1) {\n\t\t\t\t\treturn `${parseInt(`${monthC1}`)}月后`;\n\t\t\t\t} else if (weekC1 > 2) {\n\t\t\t\t\treturn \"半月后\";\n\t\t\t\t} else if (weekC1 >= 1) {\n\t\t\t\t\treturn `${parseInt(`${weekC1}`)}周后`;\n\t\t\t\t} else if (dayC1 >= 1) {\n\t\t\t\t\treturn `${parseInt(`${dayC1}`)}天后`;\n\t\t\t\t} else if (hourC1 >= 1) {\n\t\t\t\t\treturn `${parseInt(`${hourC1}`)}小时后`;\n\t\t\t\t} else if (minC1 >= 1) {\n\t\t\t\t\treturn `${parseInt(`${minC1}`)}分钟后`;\n\t\t\t\t}\n\t\t\t\treturn \"刚刚\";\n\t\t\t\t// return \"不久前\";\n\t\t\t}\n\n\t\t\t// 使用\n\t\t\tif (monthC > 12) {\n\t\t\t\t// 超过1年,直接显示 几 年前\n\t\t\t\treturn `${parseInt(`${monthC / 12}`)}年前`;\n\t\t\t} else if (monthC >= 6) {\n\t\t\t\treturn \"半年前\";\n\t\t\t} else if (monthC >= 1) {\n\t\t\t\treturn `${parseInt(`${monthC}`)}月前`;\n\t\t\t} else if (weekC > 2) {\n\t\t\t\treturn \"半月前\";\n\t\t\t} else if (weekC >= 1) {\n\t\t\t\treturn `${parseInt(`${weekC}`)}周前`;\n\t\t\t} else if (dayC >= 1) {\n\t\t\t\treturn `${parseInt(`${dayC}`)}天前`;\n\t\t\t} else if (hourC >= 1) {\n\t\t\t\treturn `${parseInt(`${hourC}`)}小时前`;\n\t\t\t} else if (minC >= 1) {\n\t\t\t\treturn `${parseInt(`${minC}`)}分钟前`;\n\t\t\t}\n\t\t\treturn \"刚刚\";\n\t\t} else {\n\t\t\treturn \"\";\n\t\t}\n\t},\n\tgetDefaultTime(): Date[] {\n\t\tconst end = new Date();\n\t\tconst start = new Date();\n\t\tstart.setMonth(start.getMonth() - 1);\n\t\tstart.setHours(0, 0, 0);\n\t\tend.setHours(23, 59, 59);\n\t\treturn [start, end];\n\t},\n\tgetSimpleTime(): Date {\n\t\tconst start = new Date();\n\t\tstart.setHours(0, 0, 0);\n\t\treturn start;\n\t},\n\tgetSimpleShortcuts(): {\n\t\ttext: string;\n\t\tvalue: () => Date;\n\t}[] {\n\t\treturn [\n\t\t\t{\n\t\t\t\ttext: \"今天\",\n\t\t\t\tvalue: (): Date => {\n\t\t\t\t\tconst date = new Date();\n\t\t\t\t\tdate.setHours(0, 0, 0);\n\t\t\t\t\treturn date;\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\ttext: \"昨天\",\n\t\t\t\tvalue: (): Date => {\n\t\t\t\t\tconst date = new Date();\n\t\t\t\t\tdate.setDate(date.getDate() - 1);\n\t\t\t\t\tdate.setHours(0, 0, 0);\n\t\t\t\t\treturn date;\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\ttext: \"一周前\",\n\t\t\t\tvalue: (): Date => {\n\t\t\t\t\tconst date = new Date();\n\t\t\t\t\tdate.setDate(date.getDate() - 7);\n\t\t\t\t\tdate.setHours(0, 0, 0);\n\t\t\t\t\treturn date;\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\ttext: \"一月前\",\n\t\t\t\tvalue: (): Date => {\n\t\t\t\t\tconst date = new Date();\n\t\t\t\t\tdate.setMonth(date.getMonth() - 1);\n\t\t\t\t\tdate.setHours(0, 0, 0);\n\t\t\t\t\treturn date;\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\ttext: \"一年前\",\n\t\t\t\tvalue: (): Date => {\n\t\t\t\t\tconst date = new Date();\n\t\t\t\t\tdate.setFullYear(date.getFullYear() - 1);\n\t\t\t\t\tdate.setHours(0, 0, 0);\n\t\t\t\t\treturn date;\n\t\t\t\t},\n\t\t\t},\n\t\t];\n\t},\n\tgetShortcuts(): {\n\t\ttext: string;\n\t\tvalue: () => Date[];\n\t}[] {\n\t\treturn [\n\t\t\t{\n\t\t\t\ttext: \"近1天\",\n\t\t\t\tvalue: (): Date[] => {\n\t\t\t\t\tconst end = new Date();\n\t\t\t\t\tconst start = new Date();\n\t\t\t\t\tstart.setDate(start.getDate() - 1);\n\t\t\t\t\tstart.setHours(0, 0, 0);\n\t\t\t\t\tend.setHours(23, 59, 59);\n\t\t\t\t\treturn [start, end];\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\ttext: \"近3天\",\n\t\t\t\tvalue: (): Date[] => {\n\t\t\t\t\tconst end = new Date();\n\t\t\t\t\tconst start = new Date();\n\t\t\t\t\tstart.setDate(start.getDate() - 3);\n\t\t\t\t\tstart.setHours(0, 0, 0);\n\t\t\t\t\tend.setHours(23, 59, 59);\n\t\t\t\t\treturn [start, end];\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\ttext: \"近1周\",\n\t\t\t\tvalue: (): Date[] => {\n\t\t\t\t\tconst end = new Date();\n\t\t\t\t\tconst start = new Date();\n\t\t\t\t\tstart.setDate(start.getDate() - 7);\n\t\t\t\t\tstart.setHours(0, 0, 0);\n\t\t\t\t\tend.setHours(23, 59, 59);\n\t\t\t\t\treturn [start, end];\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\ttext: \"近1月\",\n\t\t\t\tvalue: (): Date[] => {\n\t\t\t\t\tconst end = new Date();\n\t\t\t\t\tconst start = new Date();\n\t\t\t\t\tstart.setMonth(start.getMonth() - 1);\n\t\t\t\t\tstart.setHours(0, 0, 0);\n\t\t\t\t\tend.setHours(23, 59, 59);\n\t\t\t\t\treturn [start, end];\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\ttext: \"近3月\",\n\t\t\t\tvalue: (): Date[] => {\n\t\t\t\t\tconst end = new Date();\n\t\t\t\t\tconst start = new Date();\n\t\t\t\t\tstart.setMonth(start.getMonth() - 3);\n\t\t\t\t\tstart.setHours(0, 0, 0);\n\t\t\t\t\tend.setHours(23, 59, 59);\n\t\t\t\t\treturn [start, end];\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\ttext: \"近6月\",\n\t\t\t\tvalue: (): Date[] => {\n\t\t\t\t\tconst end = new Date();\n\t\t\t\t\tconst start = new Date();\n\t\t\t\t\tstart.setMonth(start.getMonth() - 6);\n\t\t\t\t\tstart.setHours(0, 0, 0);\n\t\t\t\t\tend.setHours(23, 59, 59);\n\t\t\t\t\treturn [start, end];\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\ttext: \"近1年\",\n\t\t\t\tvalue: (): Date[] => {\n\t\t\t\t\tconst end = new Date();\n\t\t\t\t\tconst start = new Date();\n\t\t\t\t\tstart.setFullYear(start.getFullYear() - 1);\n\t\t\t\t\tstart.setHours(0, 0, 0);\n\t\t\t\t\tend.setHours(23, 59, 59);\n\t\t\t\t\treturn [start, end];\n\t\t\t\t},\n\t\t\t},\n\t\t];\n\t},\n\tgetDisabledDate(time: Date): boolean {\n\t\treturn time.getTime() > Date.now();\n\t},\n};\n","import { isNumber, isString } from \"lodash-unified\";\nimport { consoleWarn } from \"src/console\";\n\nconst isStringNumber = (val: string): boolean => {\n\tif (!isString(val)) {\n\t\treturn false;\n\t}\n\treturn !Number.isNaN(Number(val));\n};\n\n/**\n * 添加单位\n * @param value 字符串或数字类型\n * @param defaultUnit 单位\n */\nexport const addUnit = (value?: string | number, defaultUnit = \"px\"): string => {\n\tif (!value) return \"\";\n\tif (isNumber(value) || isStringNumber(value)) {\n\t\treturn `${value}${defaultUnit}`;\n\t} else if (isString(value)) {\n\t\treturn value;\n\t}\n\tconsoleWarn(\"document\", \"binding value must be a string or number\");\n};\n","/**\n * 对象工具类\n */\nexport const objectUtil = {\n\t/**\n\t * 对象URL参数化\n\t */\n\tobjectToQueryString(obj: any): string {\n\t\tlet params = \"\";\n\t\tfor (const key in obj) {\n\t\t\tif (Object.prototype.hasOwnProperty.call(obj, key)) {\n\t\t\t\tif (params !== \"\") {\n\t\t\t\t\tparams += \"&\";\n\t\t\t\t}\n\t\t\t\tparams += `${encodeURIComponent(key)}=${encodeURIComponent(obj[key])}`;\n\t\t\t}\n\t\t}\n\t\treturn params;\n\t},\n\t/**\n\t * 是否存在重复值\n\t */\n\thasDuplicateProperty<T>(arr: T[], prop: keyof T): boolean {\n\t\tconst values = arr.map((obj) => obj[prop]);\n\t\tconst uniqueValues = new Set(values);\n\t\treturn values.length !== uniqueValues.size;\n\t},\n\t/**\n\t * 是否存在非重复值\n\t */\n\thasDifferentProperty<T>(arr: T[], prop: keyof T): boolean {\n\t\tconst valueSet = new Set<any>();\n\t\tfor (const obj of arr) {\n\t\t\tvalueSet.add(obj[prop]);\n\t\t\tif (valueSet.size > 1) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t},\n\t/**\n\t * 时间处理翻译\n\t */\n\tdateTimeFix(date: string | Date | null | undefined): string {\n\t\tif (date !== null && date !== undefined && date) {\n\t\t\tif (typeof date === \"string\") {\n\t\t\t\tdate = new Date(date);\n\t\t\t}\n\n\t\t\t// 获取时间戳\n\t\t\tlet timestamp = date.getTime();\n\t\t\tif (timestamp.toString().length < 13) {\n\t\t\t\tconst arrTimestamp = timestamp.toString().split(\"\");\n\t\t\t\tfor (let start = 0; start < 13; start++) {\n\t\t\t\t\tif (!arrTimestamp[start]) {\n\t\t\t\t\t\tarrTimestamp[start] = \"0\";\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\ttimestamp = parseInt(arrTimestamp.join(\"\"));\n\t\t\t}\n\t\t\tconst minute = 1000 * 60;\n\t\t\tconst hour = minute * 60;\n\t\t\tconst day = hour * 24;\n\t\t\tconst month = day * 30;\n\t\t\t// 获取当前时间\n\t\t\tconst curTime = new Date().getTime();\n\t\t\t// 比较\n\t\t\tconst diffValue = curTime - timestamp;\n\n\t\t\t// 计算差异时间的量级\n\t\t\tconst monthC = diffValue / month;\n\t\t\tconst weekC = diffValue / (7 * day);\n\t\t\tconst dayC = diffValue / day;\n\t\t\tconst hourC = diffValue / hour;\n\t\t\tconst minC = diffValue / minute;\n\n\t\t\t// 如果本地时间反而小于变量时间\n\t\t\tif (diffValue < 0) {\n\t\t\t\tconst monthC1 = Math.abs(monthC);\n\t\t\t\tconst weekC1 = Math.abs(weekC);\n\t\t\t\tconst dayC1 = Math.abs(dayC);\n\t\t\t\tconst hourC1 = Math.abs(hourC);\n\t\t\t\tconst minC1 = Math.abs(minC);\n\n\t\t\t\tif (monthC1 > 12) {\n\t\t\t\t\t// 超过1年,直接显示 几 年前\n\t\t\t\t\treturn `${parseInt(`${monthC1 / 12}`)}年后`;\n\t\t\t\t} else if (monthC1 >= 6) {\n\t\t\t\t\treturn \"半年后\";\n\t\t\t\t} else if (monthC1 >= 1) {\n\t\t\t\t\treturn `${parseInt(`${monthC1}`)}月后`;\n\t\t\t\t} else if (weekC1 > 2) {\n\t\t\t\t\treturn \"半月后\";\n\t\t\t\t} else if (weekC1 >= 1) {\n\t\t\t\t\treturn `${parseInt(`${weekC1}`)}周后`;\n\t\t\t\t} else if (dayC1 >= 1) {\n\t\t\t\t\treturn `${parseInt(`${dayC1}`)}天后`;\n\t\t\t\t} else if (hourC1 >= 1) {\n\t\t\t\t\treturn `${parseInt(`${hourC1}`)}小时后`;\n\t\t\t\t} else if (minC1 >= 1) {\n\t\t\t\t\treturn `${parseInt(`${minC1}`)}分钟后`;\n\t\t\t\t}\n\t\t\t\treturn \"刚刚\";\n\t\t\t\t// return \"不久前\";\n\t\t\t}\n\n\t\t\t// 使用\n\t\t\tif (monthC > 12) {\n\t\t\t\t// 超过1年,直接显示 几 年前\n\t\t\t\treturn `${parseInt(`${monthC / 12}`)}年前`;\n\t\t\t} else if (monthC >= 6) {\n\t\t\t\treturn \"半年前\";\n\t\t\t} else if (monthC >= 1) {\n\t\t\t\treturn `${parseInt(`${monthC}`)}月前`;\n\t\t\t} else if (weekC > 2) {\n\t\t\t\treturn \"半月前\";\n\t\t\t} else if (weekC >= 1) {\n\t\t\t\treturn `${parseInt(`${weekC}`)}周前`;\n\t\t\t} else if (dayC >= 1) {\n\t\t\t\treturn `${parseInt(`${dayC}`)}天前`;\n\t\t\t} else if (hourC >= 1) {\n\t\t\t\treturn `${parseInt(`${hourC}`)}小时前`;\n\t\t\t} else if (minC >= 1) {\n\t\t\t\treturn `${parseInt(`${minC}`)}分钟前`;\n\t\t\t}\n\t\t\treturn \"刚刚\";\n\t\t} else {\n\t\t\treturn \"\";\n\t\t}\n\t},\n};\n","import { computed, reactive } from \"vue\";\nimport { base64Util } from \"src/base64\";\nimport { consoleError } from \"src/console\";\n\nconst state = reactive({\n\tprefix: \"fast__\",\n\texpireSuffix: \"__Expire\",\n\tcrypto: false,\n});\n\n/**\n * 本地缓存前缀 Key\n */\nexport const CACHE_PREFIX = computed(() => state.prefix);\n\n/**\n * 本地缓存过期值后缀 Key\n */\nexport const CACHE_EXPIRE_SUFFIX = computed(() => state.expireSuffix);\n\n// eslint-disable-next-line @typescript-eslint/explicit-function-return-type\nexport const useStorage = () => {\n\treturn {\n\t\t/**\n\t\t * 设置缓存前缀 Key\n\t\t * @param key\n\t\t */\n\t\tprefix(key: string): void {\n\t\t\tstate.prefix = key;\n\t\t},\n\t\t/**\n\t\t * 缓存过期值后缀 Key\n\t\t * @param key\n\t\t */\n\t\texpireSuffix(key: string): void {\n\t\t\tstate.expireSuffix = key;\n\t\t},\n\t\t/**\n\t\t * 设置缓存是否加密\n\t\t * @param crypto\n\t\t */\n\t\tcrypto(crypto: boolean): void {\n\t\t\tstate.crypto = crypto;\n\t\t},\n\t};\n};\n\nconst storage = {\n\tset(key: string, val: any): void {\n\t\tif (typeof uni !== \"undefined\") {\n\t\t\tuni.setStorageSync(key, val);\n\t\t} else {\n\t\t\twindow.localStorage.setItem(key, val);\n\t\t}\n\t},\n\tget(key: string): string | any | null {\n\t\tif (typeof uni !== \"undefined\") {\n\t\t\treturn uni.getStorageSync(key);\n\t\t} else {\n\t\t\treturn window.localStorage.getItem(key);\n\t\t}\n\t},\n\tremove(key: string): void {\n\t\tif (typeof uni !== \"undefined\") {\n\t\t\tuni.removeStorageSync(key);\n\t\t} else {\n\t\t\twindow.localStorage.removeItem(key);\n\t\t}\n\t},\n\tclear(): void {\n\t\tif (typeof uni !== \"undefined\") {\n\t\t\tuni.clearStorageSync();\n\t\t} else {\n\t\t\twindow.localStorage.clear();\n\t\t}\n\t},\n\tkeys(): string[] | Storage {\n\t\tif (typeof uni !== \"undefined\") {\n\t\t\treturn uni.getStorageInfoSync().keys;\n\t\t} else {\n\t\t\treturn window.localStorage;\n\t\t}\n\t},\n};\n\n/**\n * window.localStorage\n * - 如果是 UniApp 环境则使用的是 uni.xxxStorage\n */\nexport const Local = {\n\t/**\n\t * 设置\n\t * @param key 缓存的Key\n\t * @param val 缓存值\n\t * @param expire 过期时间,单位分钟\n\t * @param encrypt 是否对缓存的数据加密\n\t */\n\tset(key: string, val: any, expire?: number, encrypt?: boolean): void {\n\t\ttry {\n\t\t\tencrypt ??= state.crypto;\n\t\t\t// 判断是否存在缓存过期时间\n\t\t\tif (expire) {\n\t\t\t\tif (isNaN(expire) || expire < 1) {\n\t\t\t\t\tthrow new Error(\"有效期应为一个有效数值\");\n\t\t\t\t}\n\t\t\t\t// 设置过期时间的缓存\n\t\t\t\tconst expireData = {\n\t\t\t\t\ttime: Date.now(),\n\t\t\t\t\texpire,\n\t\t\t\t};\n\t\t\t\tconst expireJson = JSON.stringify(expireData);\n\t\t\t\tstorage.set(`${state.prefix}${key}${state.expireSuffix}`, expireJson);\n\t\t\t}\n\t\t\tlet valJson = JSON.stringify(val);\n\t\t\tif (encrypt) {\n\t\t\t\tvalJson = base64Util.toBase64(valJson);\n\t\t\t}\n\t\t\tstorage.set(`${state.prefix}${key}`, valJson);\n\t\t} catch (error) {\n\t\t\tconsoleError(\"Local\", error);\n\t\t}\n\t},\n\t/**\n\t * 获取\n\t * @param key 缓存的Key\n\t * @param decrypt 是否对缓存的数据解密\n\t * @returns {T} 传入的对象类型,默认为 string\n\t */\n\tget<T = string>(key: string, decrypt?: boolean): T {\n\t\ttry {\n\t\t\tdecrypt ??= state.crypto;\n\t\t\t// 获取缓存 JSON 字符串\n\t\t\tlet valJson = storage.get(`${state.prefix}${key}`);\n\n\t\t\tif (valJson) {\n\t\t\t\t// 判断是否解密\n\t\t\t\tif (decrypt) {\n\t\t\t\t\tvalJson = base64Util.base64ToStr(valJson);\n\t\t\t\t}\n\t\t\t\t// 尝试获取缓存过期时间的 JSON 字符串\n\t\t\t\tconst expireJson = storage.get(`${state.prefix}${key}${state.expireSuffix}`);\n\t\t\t\t// 判断是否存在过期时间\n\t\t\t\tif (expireJson) {\n\t\t\t\t\tconst expireData = JSON.parse(expireJson);\n\t\t\t\t\tif (Date.now() > expireData.time + expireData.expire * 60 * 1000) {\n\t\t\t\t\t\t// 过期了,删除对应的缓存数据\n\t\t\t\t\t\tstorage.remove(`${state.prefix}${key}`);\n\t\t\t\t\t\tstorage.remove(`${state.prefix}${key}${state.expireSuffix}`);\n\t\t\t\t\t\treturn null;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\ttry {\n\t\t\t\t\treturn JSON.parse(valJson) as T;\n\t\t\t\t} catch {\n\t\t\t\t\treturn valJson as T;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn null;\n\t\t} catch (error) {\n\t\t\tconsoleError(\"Local\", error);\n\t\t}\n\t},\n\t/**\n\t * 移除\n\t * @param key 缓存的Key\n\t */\n\tremove(key: string): void {\n\t\ttry {\n\t\t\tstorage.remove(`${state.prefix}${key}`);\n\t\t\tstorage.remove(`${state.prefix}${key}${state.expireSuffix}`);\n\t\t} catch (error) {\n\t\t\tconsoleError(\"Local\", error);\n\t\t}\n\t},\n\t/**\n\t * 根据前缀移除\n\t * @param key 缓存的Key\n\t */\n\tremoveByPrefix(key: string): void {\n\t\ttry {\n\t\t\tfor (const itemKey in storage.keys) {\n\t\t\t\tif (itemKey.indexOf(`${state.prefix}${key}`) !== -1) {\n\t\t\t\t\tstorage.remove(itemKey);\n\t\t\t\t}\n\t\t\t}\n\t\t} catch (error) {\n\t\t\tconsoleError(\"Local\", error);\n\t\t}\n\t},\n\t/**\n\t * 移除全部\n\t */\n\tclear(): void {\n\t\ttry {\n\t\t\tstorage.clear();\n\t\t} catch (error) {\n\t\t\tconsoleError(\"Local\", error);\n\t\t}\n\t},\n};\n\n/**\n * window.sessionStorage\n * - UniApp 环境下不可用\n */\nexport const Session = {\n\t/**\n\t * 设置会话缓存\n\t * @param key 缓存的Key\n\t * @param val 缓存值\n\t * @param expire 过期时间,单位分钟\n\t * @param encrypt 是否对缓存的数据加密\n\t */\n\tset(key: string, val: any, expire?: number, encrypt?: boolean): void {\n\t\tif (typeof uni !== \"undefined\") {\n\t\t\tconsoleError(\"Session\", \"UniApp 环境下 [Session] 不可用。\");\n\t\t\treturn;\n\t\t}\n\t\ttry {\n\t\t\tencrypt ??= state.crypto;\n\t\t\t// 判断是否存在缓存过期时间\n\t\t\tif (expire) {\n\t\t\t\tif (isNaN(expire) || expire < 1) {\n\t\t\t\t\tthrow new Error(\"有效期应为一个有效数值\");\n\t\t\t\t}\n\t\t\t\t// 设置过期时间的缓存\n\t\t\t\tconst expireData = {\n\t\t\t\t\ttime: Date.now(),\n\t\t\t\t\texpire,\n\t\t\t\t};\n\t\t\t\tconst expireJson = JSON.stringify(expireData);\n\t\t\t\twindow.sessionStorage.setItem(`${state.prefix}${key}${state.expireSuffix}`, expireJson);\n\t\t\t}\n\t\t\tlet valJson = JSON.stringify(val);\n\t\t\tif (encrypt) {\n\t\t\t\tvalJson = base64Util.toBase64(valJson);\n\t\t\t}\n\t\t\twindow.sessionStorage.setItem(`${state.prefix}${key}`, valJson);\n\t\t} catch (error) {\n\t\t\tconsoleError(\"Session\", error);\n\t\t}\n\t},\n\t/**\n\t * 获取会话缓存\n\t * @param key 缓存的Key\n\t * @param decrypt 是否对缓存的数据解密\n\t * @returns {T} 传入的对象类型,默认为 string\n\t */\n\tget<T = string>(key: string, decrypt?: boolean): T {\n\t\tif (typeof uni !== \"undefined\") {\n\t\t\tconsoleError(\"Session\", \"UniApp 环境下 [Session] 不可用。\");\n\t\t\treturn;\n\t\t}\n\t\ttry {\n\t\t\tdecrypt ??= state.crypto;\n\t\t\t// 获取缓存 JSON 字符串\n\t\t\tlet valJson = window.sessionStorage.getItem(`${state.prefix}${key}`);\n\t\t\tif (valJson) {\n\t\t\t\t// 判断是否解密\n\t\t\t\tif (decrypt) {\n\t\t\t\t\tvalJson = base64Util.base64ToStr(valJson);\n\t\t\t\t}\n\t\t\t\t// 尝试获取缓存过期时间的 JSON 字符串\n\t\t\t\tconst expireJson = window.sessionStorage.getItem(`${state.prefix}${key}${state.expireSuffix}`);\n\t\t\t\t// 判断是否存在过期时间\n\t\t\t\tif (expireJson) {\n\t\t\t\t\tconst expireData = JSON.parse(expireJson);\n\t\t\t\t\tif (Date.now() > expireData.time + expireData.expire * 60 * 1000) {\n\t\t\t\t\t\t// 过期了,删除对应的缓存数据\n\t\t\t\t\t\twindow.sessionStorage.removeItem(`${state.prefix}${key}`);\n\t\t\t\t\t\twindow.sessionStorage.removeItem(`${state.prefix}${key}${state.expireSuffix}`);\n\t\t\t\t\t\treturn null;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\ttry {\n\t\t\t\t\treturn JSON.parse(valJson) as T;\n\t\t\t\t} catch {\n\t\t\t\t\treturn valJson as T;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn null;\n\t\t} catch (error) {\n\t\t\tconsoleError(\"Session\", error);\n\t\t}\n\t},\n\t/**\n\t * 移除会话缓存\n\t * @param key 缓存的Key\n\t */\n\tremove(key: string): void {\n\t\tif (typeof uni !== \"undefined\") {\n\t\t\tconsoleError(\"Session\", \"UniApp 环境下 [Session] 不可用。\");\n\t\t\treturn;\n\t\t}\n\t\ttry {\n\t\t\twindow.sessionStorage.removeItem(`${state.prefix}${key}`);\n\t\t\twindow.sessionStorage.removeItem(`${state.prefix}${key}${state.expireSuffix}`);\n\t\t} catch (error) {\n\t\t\tconsoleError(\"Session\", error);\n\t\t}\n\t},\n\t/**\n\t * 根据前缀移除会话缓存\n\t * @param key 缓存的Key\n\t */\n\tremoveByPrefix(key: string): void {\n\t\tif (typeof uni !== \"undefined\") {\n\t\t\tconsoleError(\"Session\", \"UniApp 环境下 [Session] 不可用。\");\n\t\t\treturn;\n\t\t}\n\t\ttry {\n\t\t\tfor (const itemKey in window.sessionStorage) {\n\t\t\t\tif (itemKey.indexOf(`${state.prefix}${key}`) !== -1) {\n\t\t\t\t\twindow.sessionStorage.removeItem(itemKey);\n\t\t\t\t}\n\t\t\t}\n\t\t} catch (error) {\n\t\t\tconsoleError(\"Session\", error);\n\t\t}\n\t},\n\t/**\n\t * 移除全部会话缓存\n\t */\n\tclear(): void {\n\t\tif (typeof uni !== \"undefined\") {\n\t\t\tconsoleError(\"Session\", \"UniApp 环境下 [Session] 不可用。\");\n\t\t\treturn;\n\t\t}\n\t\ttry {\n\t\t\twindow.sessionStorage.clear();\n\t\t} catch (error) {\n\t\t\tconsoleError(\"Session\", error);\n\t\t}\n\t},\n};\n","import { isString } from \"lodash-unified\";\n\n/**\n * 字符串工具类\n */\nexport const stringUtil = {\n\t/**\n\t * 获取Url参数\n\t */\n\tgetUrlParams(url: string): Record<string, any> {\n\t\tconst regex = /[?&][^=?&]+=[^?&]+/g;\n\t\tconst params: Record<string, any> = {};\n\n\t\tlet match;\n\t\twhile ((match = regex.exec(url)) !== null) {\n\t\t\tconst [key, value] = match[0].substring(1).split(\"=\");\n\t\t\tparams[key] = decodeURIComponent(value);\n\t\t}\n\n\t\treturn params;\n\t},\n\t/**\n\t * 是否为JSON字符串\n\t */\n\tisJson(value: string): boolean {\n\t\tif (!isString(value)) return false;\n\n\t\tvalue = value.replace(/\\s/g, \"\").replace(/\\n|\\r/, \"\");\n\n\t\tif (/^\\{(.*?)\\}$/.test(value)) return /\"(.*?)\":(.*?)/g.test(value);\n\n\t\tif (/^\\[(.*?)\\]$/.test(value)) {\n\t\t\treturn value\n\t\t\t\t.replace(/^\\[/, \"\")\n\t\t\t\t.replace(/\\]$/, \"\")\n\t\t\t\t.replace(/},{/g, \"}\\n{\")\n\t\t\t\t.split(/\\n/)\n\t\t\t\t.map((s) => {\n\t\t\t\t\treturn stringUtil.isJson(s);\n\t\t\t\t})\n\t\t\t\t.reduce((prev, curr) => {\n\t\t\t\t\treturn !!curr;\n\t\t\t\t});\n\t\t}\n\n\t\treturn false;\n\t},\n\t/**\n\t * 生成随机字符串\n\t */\n\tgenerateRandomString(length: number): string {\n\t\tconst characters = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\";\n\t\tlet randomString = \"\";\n\t\tfor (let i = 0; i < length; i++) {\n\t\t\tconst randomIndex = Math.floor(Math.random() * characters.length);\n\t\t\trandomString += characters.charAt(randomIndex);\n\t\t}\n\t\treturn randomString;\n\t},\n\t/**\n\t * @description 生成唯一 uuid\n\t */\n\tgenerateUUID(): string {\n\t\tlet uuid = \"\";\n\t\tfor (let i = 0; i < 32; i++) {\n\t\t\tconst random = (Math.random() * 16) | 0;\n\t\t\tif (i === 8 || i === 12 || i === 16 || i === 20) uuid += \"-\";\n\t\t\tuuid += (i === 12 ? 4 : i === 16 ? (random & 3) | 8 : random).toString(16);\n\t\t}\n\t\treturn uuid;\n\t},\n\t/**\n\t * 复制\n\t */\n\tasync copy(value: string): Promise<void> {\n\t\tif (typeof uni !== \"undefined\") {\n\t\t\treturn new Promise((resolve, reject) => {\n\t\t\t\tuni.setClipboardData({\n\t\t\t\t\tdata: value,\n\t\t\t\t\tsuccess: () => {\n\t\t\t\t\t\tresolve();\n\t\t\t\t\t},\n\t\t\t\t\tfail: () => {\n\t\t\t\t\t\treject();\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\t});\n\t\t} else {\n\t\t\t// navigator.clipboard 需要https等安全上下文\n\t\t\tif (navigator?.clipboard && window.isSecureContext) {\n\t\t\t\tawait navigator.clipboard.writeText(value);\n\t\t\t} else {\n\t\t\t\tconst textareaEl = document.createElement(\"textarea\");\n\t\t\t\ttextareaEl.value = value;\n\t\t\t\t// 使文本域不显示\n\t\t\t\ttextareaEl.style.position = \"absolute\";\n\t\t\t\ttextareaEl.style.opacity = \"0\";\n\t\t\t\ttextareaEl.style.left = \"-999999px\";\n\t\t\t\ttextareaEl.style.top = \"-999999px\";\n\t\t\t\tdocument.body.appendChild(textareaEl);\n\t\t\t\ttextareaEl.focus();\n\t\t\t\ttextareaEl.select();\n\t\t\t\tdocument.execCommand(\"copy\");\n\t\t\t\ttextareaEl.remove();\n\t\t\t}\n\t\t}\n\t},\n};\n","/**\n * 构建 expose 和 vue.js devtools 状态查看\n */\nexport const useExpose = <Exposed extends Record<string, any> = Record<string, any>>(\n\texpose: (exposed?: Exposed) => void,\n\texposed?: Exposed\n): Exposed => {\n\texpose(exposed);\n\n\treturn exposed;\n};\n","/**\n * 执行方法\n * @param fn 要执行的方法\n * @param args 参数\n */\n\nimport { consoleError } from \"src/console\";\n\n// eslint-disable-next-line @typescript-eslint/no-unsafe-function-type\nexport const execFunction = async <T = void>(fn: Function, ...args: any[]): Promise<T> => {\n\tif (!fn) return Promise.resolve(undefined);\n\t// 判断是否为异步方法\n\tif (fn.constructor.name === \"AsyncFunction\") {\n\t\t// 异步方法\n\t\ttry {\n\t\t\treturn await fn(...args);\n\t\t} catch (error) {\n\t\t\tconsoleError(\"execFunction\", error as any);\n\t\t\treturn Promise.reject(error);\n\t\t}\n\t} else {\n\t\t// 同步方法\n\t\treturn new Promise((resolve, reject) => {\n\t\t\ttry {\n\t\t\t\tconst res = fn(...args);\n\t\t\t\treturn resolve(res);\n\t\t\t} catch (error) {\n\t\t\t\tconsoleError(\"execFunction\", error as any);\n\t\t\t\treturn reject(error);\n\t\t\t}\n\t\t});\n\t}\n};\n","import type { App, Directive, Plugin } from \"vue\";\n\nexport type TSXWithInstall<T> = T & Plugin;\n\n// eslint-disable-next-line @typescript-eslint/no-empty-function\nconst NOOP = (): void => {};\n\nexport const withInstall = <T, E extends Record<string, any>>(main: T, extra?: E): TSXWithInstall<T> & E => {\n\t(main as TSXWithInstall<T>).install = (app): void => {\n\t\tfor (const comp of [main, ...Object.values(extra ?? {})]) {\n\t\t\tapp.component(comp.name, comp);\n\t\t}\n\t};\n\n\tif (extra) {\n\t\tfor (const [key, comp] of Object.entries(extra)) {\n\t\t\t(main as any)[key] = comp;\n\t\t}\n\t}\n\treturn main as TSXWithInstall<T> & E;\n};\n\nexport const withNoopInstall = <T>(component: T): TSXWithInstall<T> => {\n\t(component as TSXWithInstall<T>).install = NOOP;\n\n\treturn component as TSXWithInstall<T>;\n};\n\nexport const withInstallDirective = <T extends Directive>(directive: T, name: string): TSXWithInstall<T> => {\n\t(directive as TSXWithInstall<T>).install = (app: App): void => {\n\t\tapp.directive(name, directive);\n\t};\n\n\treturn directive as TSXWithInstall<T>;\n};\n","import type { ComputedRef, PropType } from \"vue\";\nimport { computed } from \"vue\";\nimport { omit, pick } from \"lodash-unified\";\n\nexport const definePropType = <T>(val: any): PropType<T> => val;\n\n/**\n * 构建 props\n * @param props props\n * @param rawProps 原生 props\n * @param ignoreRawProps 忽略 原生 props 的 key\n */\nexport const useProps = <T extends Record<string, unknown>, RT extends Record<string, unknown>>(\n\tprops: T,\n\trawProps?: RT,\n\tignoreRawProps?: (keyof RT)[]\n): ComputedRef<Record<string, unknown>> => {\n\tif (!props) return computed(() => ({}));\n\n\treturn computed<Record<string, unknown>>(() => {\n\t\tconst omittedRawProps = rawProps ? omit(rawProps, ignoreRawProps ?? []) : {};\n\t\treturn pick(props, Object.keys(omittedRawProps)) as Record<string, unknown>;\n\t});\n};\n","import type { SlotsType, VNode } from \"vue\";\n\ntype RawSlots = Record<string, unknown>;\n\ntype VueSlots<T> = [T] extends [never] ? () => VNode[] : (arg: T) => VNode[];\n\ntype MakeSlots<T extends RawSlots> = {\n\t[K in keyof T]: VueSlots<T[K]>;\n};\n\n/**\n * 构建 slots\n */\nexport const makeSlots = <Slots extends RawSlots>(): SlotsType<Partial<MakeSlots<Slots>>> => {\n\treturn Object as SlotsType<Partial<MakeSlots<Slots>>>;\n};\n","import type { VNode } from \"vue\";\nimport { getCurrentInstance } from \"vue\";\n\n/**\n * 使用渲染\n * @description 为了解决使用 TSX 语法返回渲染函数,状态不会出现在 vue.js devtools 中\n */\nexport const useRender = (render: () => VNode): void => {\n\tconst vm = getCurrentInstance() as any;\n\tif (!vm) {\n\t\tthrow new Error(\"useRender must be called from inside a setup function\");\n\t}\n\tvm.render = render;\n};\n","/**\n * 定义类型数据\n * @description 传入什么就返回什么,用来定义reactive或其他对象的响应式数据\n */\nexport const withDefineType = <T>(data: T = undefined): T => {\n\treturn data;\n};\n"]}
package/dist/index.min.js DELETED
@@ -1,3 +0,0 @@
1
- import {isNil,isString,isNumber,omit,pick}from'lodash-unified';import {mode,MD5,enc,SHA1,AES}from'crypto-js';import {reactive,computed,getCurrentInstance}from'vue';var m="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",F=/^(?:[A-Za-z\d+/]{4})*?(?:[A-Za-z\d+/]{2}(?:==)?|[A-Za-z\d+/]{3}=?)?$/,E=[{index:977,randomIndex:188},{index:926,randomIndex:201},{index:851,randomIndex:225},{index:700,randomIndex:255},{index:600,randomIndex:268},{index:500,randomIndex:277},{index:400,randomIndex:288},{index:330,randomIndex:327},{index:300,randomIndex:180},{index:200,randomIndex:178},{index:100,randomIndex:124},{index:98,randomIndex:95},{index:92,randomIndex:90},{index:91,randomIndex:87},{index:88,randomIndex:84},{index:82,randomIndex:79},{index:78,randomIndex:71},{index:72,randomIndex:69},{index:68,randomIndex:66},{index:59,randomIndex:55},{index:48,randomIndex:43},{index:42,randomIndex:37},{index:36,randomIndex:30},{index:33,randomIndex:27},{index:24,randomIndex:20},{index:23,randomIndex:18},{index:21,randomIndex:16},{index:17,randomIndex:14},{index:13,randomIndex:9},{index:7,randomIndex:4},{index:5,randomIndex:3},{index:2,randomIndex:1}],C=6,N="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";function O(e){let t=e;return E.sort((n,o)=>o.index-n.index).forEach(n=>{if(n.index<e.length){let o=e[n.randomIndex];t=t.slice(0,n.index)+o+t.slice(n.index);}}),t}function J(e){let t=E.sort((n,o)=>n.index-o.index),r=e;return t.forEach(n=>{n.index<e.length&&(r=r.slice(0,n.index)+r.slice(n.index+1));}),r}function L(e=N,t=C){let r="";for(let n=0;n<t;n++){let o=Math.ceil(Math.random()*(e.length-1)),i=e[o];r+=i;}return r}var $={bota(e){e=String(e);let t,r,n,o,i="",p=0,c=e.length%3;for(;p<e.length;){if((r=e.charCodeAt(p++))>255||(n=e.charCodeAt(p++))>255||(o=e.charCodeAt(p++))>255)throw new TypeError("Failed to execute 'btoa' on 'Window': The string to be encoded contains characters outside of the Latin1 range.");t=r<<16|n<<8|o,i+=m.charAt(t>>18&63)+m.charAt(t>>12&63)+m.charAt(t>>6&63)+m.charAt(t&63);}return c?i.slice(0,c-3)+"===".substring(c):i},atob(e){if(e=String(e).replace(/[\t\n\f\r ]+/g,""),!F.test(e))throw new TypeError("Failed to execute 'atob' on 'Window': The string to be decoded is not correctly encoded.");e+="==".slice(2-(e.length&3));let t,r="",n,o,i=0;for(;i<e.length;)t=m.indexOf(e.charAt(i++))<<18|m.indexOf(e.charAt(i++))<<12|(n=m.indexOf(e.charAt(i++)))<<6|(o=m.indexOf(e.charAt(i++))),r+=n===64?String.fromCharCode(t>>16&255):o===64?String.fromCharCode(t>>16&255,t>>8&255):String.fromCharCode(t>>16&255,t>>8&255,t&255);return r},toBase64(e,t=C){if(e.length===0)return "";let r=L(),n=$.bota(encodeURIComponent(e));return t!==0&&(n=O(n)),r+n},base64ToStr(e,t=C){let r=e;if(e.length===0)return "";let n=e.slice(t);return t!==0&&(n=J(n)),r=$.atob(n),decodeURIComponent(r)}};var y=null,T=false,ee={debounce(e,t=500){y&&clearTimeout(y),y=setTimeout(()=>{e();},t);},async debounceAsync(e,t=500){return new Promise((r,n)=>{y&&clearTimeout(y),y=setTimeout(async()=>{try{await e(),r();}catch(o){n(o);}},t);})},throttle(e,t=500){T||(T=true,e(),setTimeout(()=>{T=false;},t));},async throttleAsync(e,t=500){return new Promise((r,n)=>{T||(T=true,e().then(()=>{r();}).catch(o=>{n(o);}).finally(()=>{setTimeout(()=>{T=false;},t);}));})}};var re={hexToRgb(e){let t="";if(!/^#?[0-9A-Fa-f]{6}$/.test(e))throw new Error("\u8F93\u5165\u9519\u8BEF\u7684hex");e=e.replace("#",""),t=e.match(/../g);for(let n=0;n<3;n++)t[n]=parseInt(t[n],16);return t},rgbToHex(e,t,r){let n=/^\d{1,3}$/;if(!n.test(e)||!n.test(t)||!n.test(r))throw new Error("\u8F93\u5165\u9519\u8BEF\u7684rgb\u989C\u8272\u503C");let o=[e.toString(16),t.toString(16),r.toString(16)];for(let i=0;i<3;i++)o[i].length===1&&(o[i]=`0${o[i]}`);return `#${o.join("")}`},getDarkColor(e,t){if(!/^#?[0-9A-Fa-f]{6}$/.test(e))throw new Error("\u8F93\u5165\u9519\u8BEF\u7684hex\u989C\u8272\u503C");let n=this.hexToRgb(e);for(let o=0;o<3;o++)n[o]=Math.round(20.5*t+n[o]*(1-t));return this.rgbToHex(n[0],n[1],n[2])},getLightColor(e,t){if(!/^#?[0-9A-Fa-f]{6}$/.test(e))throw new Error("\u8F93\u5165\u9519\u8BEF\u7684hex\u989C\u8272\u503C");let n=this.hexToRgb(e);for(let o=0;o<3;o++)n[o]=Math.round(255*t+n[o]*(1-t));return this.rgbToHex(n[0],n[1],n[2])}};var v=class extends Error{constructor(t){super(t),this.name="FastError";}};var ae=(e,t,r)=>{r?console.log(`[Fast-Log-${e}]${t?` ${t}`:""}`,r):console.log(`[Fast-Log-${e}]${t?` ${t}`:""}`);},R=(e,t,r)=>{r?console.warn(`[Fast-Log-${e}]${t?` ${t}`:""}`,r):console.warn(`[Fast-Log-${e}]${t?` ${t}`:""}`);},ue=(e,t,r)=>{r?console.debug(`[Fast-Log-${e}]${t?` ${t}`:""}`,r):console.debug(`[Fast-Log-${e}]${t?` ${t}`:""}`);},a=(e,t)=>{isNil(t)||(isString(t)?console.error(new v(`[Fast-${e}] ${t}`)):console.error(`[Fast-Error-${e}]`,t));},ce=(e,t)=>{throw new v(`[Fast-${e}] ${t}`)};var pe={aes:{encrypt(e,t,r,n=mode.CBC){return e&&(t.length<32&&(t=t.padEnd(32,"f")),t.length>32&&(t=t.substring(0,32)),r.length<16&&(r=r.padEnd(16,"f")),r.length>16&&(r=r.substring(0,16)),AES.encrypt(e,enc.Utf8.parse(t),{iv:enc.Utf8.parse(r),mode:n}).toString())},decrypt(e,t,r,n=mode.CBC){if(!e)return null;t.length<32&&(t=t.padEnd(32,"f")),t.length>32&&(t=t.substring(0,32)),r.length<16&&(r=r.padEnd(16,"f")),r.length>16&&(r=r.substring(0,16));let o=AES.decrypt(e,enc.Utf8.parse(t),{iv:enc.Utf8.parse(r),mode:n});try{let i=o.toString(enc.Utf8);return JSON.parse(i)}catch(i){return a("AESCrypto",i),null}}},sha1:{encrypt(e){return e&&SHA1(e).toString(enc.Hex).toUpperCase()}},MD5:{encrypt(e){return e&&MD5(e).toString(enc.Hex).toUpperCase()}}};var me={getGreet(){let t=new Date().getHours(),r="";return t<5?r="\u591C\u6DF1\u4E86\uFF0C\u6CE8\u610F\u8EAB\u4F53\u54E6\uFF01":t<9?r="\u65E9\u4E0A\u597D\uFF01\u6B22\u8FCE\u56DE\u6765\uFF01":t<12?r="\u4E0A\u5348\u597D\uFF01\u6B22\u8FCE\u56DE\u6765\uFF01":t<14?r="\u4E2D\u5348\u597D\uFF01\u6B22\u8FCE\u56DE\u6765\uFF01":t<18?r="\u4E0B\u5348\u597D\uFF01\u6B22\u8FCE\u56DE\u6765\uFF01":t<24?r="\u665A\u4E0A\u597D\uFF01\u6B22\u8FCE\u56DE\u6765\uFF01":r="\u60A8\u597D\uFF01\u6B22\u8FCE\u56DE\u6765\uFF01",r},dateTimeFix(e){if(e!=null&&e){typeof e=="string"&&(e=new Date(e));let t=e.getTime();if(t.toString().length<13){let u=t.toString().split("");for(let l=0;l<13;l++)u[l]||(u[l]="0");t=parseInt(u.join(""));}let r=1e3*60,n=r*60,o=n*24,i=o*30,c=new Date().getTime()-t,f=c/i,x=c/(7*o),g=c/o,h=c/n,S=c/r;if(c<0){let u=Math.abs(f),l=Math.abs(x),I=Math.abs(g),b=Math.abs(h),D=Math.abs(S);return u>12?`${parseInt(`${u/12}`)}\u5E74\u540E`:u>=6?"\u534A\u5E74\u540E":u>=1?`${parseInt(`${u}`)}\u6708\u540E`:l>2?"\u534A\u6708\u540E":l>=1?`${parseInt(`${l}`)}\u5468\u540E`:I>=1?`${parseInt(`${I}`)}\u5929\u540E`:b>=1?`${parseInt(`${b}`)}\u5C0F\u65F6\u540E`:D>=1?`${parseInt(`${D}`)}\u5206\u949F\u540E`:"\u521A\u521A"}return f>12?`${parseInt(`${f/12}`)}\u5E74\u524D`:f>=6?"\u534A\u5E74\u524D":f>=1?`${parseInt(`${f}`)}\u6708\u524D`:x>2?"\u534A\u6708\u524D":x>=1?`${parseInt(`${x}`)}\u5468\u524D`:g>=1?`${parseInt(`${g}`)}\u5929\u524D`:h>=1?`${parseInt(`${h}`)}\u5C0F\u65F6\u524D`:S>=1?`${parseInt(`${S}`)}\u5206\u949F\u524D`:"\u521A\u521A"}else return ""},getDefaultTime(){let e=new Date,t=new Date;return t.setMonth(t.getMonth()-1),t.setHours(0,0,0),e.setHours(23,59,59),[t,e]},getSimpleTime(){let e=new Date;return e.setHours(0,0,0),e},getSimpleShortcuts(){return [{text:"\u4ECA\u5929",value:()=>{let e=new Date;return e.setHours(0,0,0),e}},{text:"\u6628\u5929",value:()=>{let e=new Date;return e.setDate(e.getDate()-1),e.setHours(0,0,0),e}},{text:"\u4E00\u5468\u524D",value:()=>{let e=new Date;return e.setDate(e.getDate()-7),e.setHours(0,0,0),e}},{text:"\u4E00\u6708\u524D",value:()=>{let e=new Date;return e.setMonth(e.getMonth()-1),e.setHours(0,0,0),e}},{text:"\u4E00\u5E74\u524D",value:()=>{let e=new Date;return e.setFullYear(e.getFullYear()-1),e.setHours(0,0,0),e}}]},getShortcuts(){return [{text:"\u8FD11\u5929",value:()=>{let e=new Date,t=new Date;return t.setDate(t.getDate()-1),t.setHours(0,0,0),e.setHours(23,59,59),[t,e]}},{text:"\u8FD13\u5929",value:()=>{let e=new Date,t=new Date;return t.setDate(t.getDate()-3),t.setHours(0,0,0),e.setHours(23,59,59),[t,e]}},{text:"\u8FD11\u5468",value:()=>{let e=new Date,t=new Date;return t.setDate(t.getDate()-7),t.setHours(0,0,0),e.setHours(23,59,59),[t,e]}},{text:"\u8FD11\u6708",value:()=>{let e=new Date,t=new Date;return t.setMonth(t.getMonth()-1),t.setHours(0,0,0),e.setHours(23,59,59),[t,e]}},{text:"\u8FD13\u6708",value:()=>{let e=new Date,t=new Date;return t.setMonth(t.getMonth()-3),t.setHours(0,0,0),e.setHours(23,59,59),[t,e]}},{text:"\u8FD16\u6708",value:()=>{let e=new Date,t=new Date;return t.setMonth(t.getMonth()-6),t.setHours(0,0,0),e.setHours(23,59,59),[t,e]}},{text:"\u8FD11\u5E74",value:()=>{let e=new Date,t=new Date;return t.setFullYear(t.getFullYear()-1),t.setHours(0,0,0),e.setHours(23,59,59),[t,e]}}]},getDisabledDate(e){return e.getTime()>Date.now()}};var _=e=>isString(e)?!Number.isNaN(Number(e)):false,$e=(e,t="px")=>{if(!e)return "";if(isNumber(e)||_(e))return `${e}${t}`;if(isString(e))return e;R("document","binding value must be a string or number");};var Ie={objectToQueryString(e){let t="";for(let r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t!==""&&(t+="&"),t+=`${encodeURIComponent(r)}=${encodeURIComponent(e[r])}`);return t},hasDuplicateProperty(e,t){let r=e.map(o=>o[t]),n=new Set(r);return r.length!==n.size},hasDifferentProperty(e,t){let r=new Set;for(let n of e)if(r.add(n[t]),r.size>1)return true;return false},dateTimeFix(e){if(e!=null&&e){typeof e=="string"&&(e=new Date(e));let t=e.getTime();if(t.toString().length<13){let u=t.toString().split("");for(let l=0;l<13;l++)u[l]||(u[l]="0");t=parseInt(u.join(""));}let r=1e3*60,n=r*60,o=n*24,i=o*30,c=new Date().getTime()-t,f=c/i,x=c/(7*o),g=c/o,h=c/n,S=c/r;if(c<0){let u=Math.abs(f),l=Math.abs(x),I=Math.abs(g),b=Math.abs(h),D=Math.abs(S);return u>12?`${parseInt(`${u/12}`)}\u5E74\u540E`:u>=6?"\u534A\u5E74\u540E":u>=1?`${parseInt(`${u}`)}\u6708\u540E`:l>2?"\u534A\u6708\u540E":l>=1?`${parseInt(`${l}`)}\u5468\u540E`:I>=1?`${parseInt(`${I}`)}\u5929\u540E`:b>=1?`${parseInt(`${b}`)}\u5C0F\u65F6\u540E`:D>=1?`${parseInt(`${D}`)}\u5206\u949F\u540E`:"\u521A\u521A"}return f>12?`${parseInt(`${f/12}`)}\u5E74\u524D`:f>=6?"\u534A\u5E74\u524D":f>=1?`${parseInt(`${f}`)}\u6708\u524D`:x>2?"\u534A\u6708\u524D":x>=1?`${parseInt(`${x}`)}\u5468\u524D`:g>=1?`${parseInt(`${g}`)}\u5929\u524D`:h>=1?`${parseInt(`${h}`)}\u5C0F\u65F6\u524D`:S>=1?`${parseInt(`${S}`)}\u5206\u949F\u524D`:"\u521A\u521A"}else return ""}};var s=reactive({prefix:"fast__",expireSuffix:"__Expire",crypto:false}),Ee=computed(()=>s.prefix),Re=computed(()=>s.expireSuffix),Ae=()=>({prefix(e){s.prefix=e;},expireSuffix(e){s.expireSuffix=e;},crypto(e){s.crypto=e;}}),d={set(e,t){typeof uni<"u"?uni.setStorageSync(e,t):window.localStorage.setItem(e,t);},get(e){return typeof uni<"u"?uni.getStorageSync(e):window.localStorage.getItem(e)},remove(e){typeof uni<"u"?uni.removeStorageSync(e):window.localStorage.removeItem(e);},clear(){typeof uni<"u"?uni.clearStorageSync():window.localStorage.clear();},keys(){return typeof uni<"u"?uni.getStorageInfoSync().keys:window.localStorage}},Me={set(e,t,r,n){try{if(n??=s.crypto,r){if(isNaN(r)||r<1)throw new Error("\u6709\u6548\u671F\u5E94\u4E3A\u4E00\u4E2A\u6709\u6548\u6570\u503C");let i={time:Date.now(),expire:r},p=JSON.stringify(i);d.set(`${s.prefix}${e}${s.expireSuffix}`,p);}let o=JSON.stringify(t);n&&(o=$.toBase64(o)),d.set(`${s.prefix}${e}`,o);}catch(o){a("Local",o);}},get(e,t){try{t??=s.crypto;let r=d.get(`${s.prefix}${e}`);if(r){t&&(r=$.base64ToStr(r));let n=d.get(`${s.prefix}${e}${s.expireSuffix}`);if(n){let o=JSON.parse(n);if(Date.now()>o.time+o.expire*60*1e3)return d.remove(`${s.prefix}${e}`),d.remove(`${s.prefix}${e}${s.expireSuffix}`),null}try{return JSON.parse(r)}catch{return r}}return null}catch(r){a("Local",r);}},remove(e){try{d.remove(`${s.prefix}${e}`),d.remove(`${s.prefix}${e}${s.expireSuffix}`);}catch(t){a("Local",t);}},removeByPrefix(e){try{for(let t in d.keys)t.indexOf(`${s.prefix}${e}`)!==-1&&d.remove(t);}catch(t){a("Local",t);}},clear(){try{d.clear();}catch(e){a("Local",e);}}},Pe={set(e,t,r,n){if(typeof uni<"u"){a("Session","UniApp \u73AF\u5883\u4E0B [Session] \u4E0D\u53EF\u7528\u3002");return}try{if(n??=s.crypto,r){if(isNaN(r)||r<1)throw new Error("\u6709\u6548\u671F\u5E94\u4E3A\u4E00\u4E2A\u6709\u6548\u6570\u503C");let i={time:Date.now(),expire:r},p=JSON.stringify(i);window.sessionStorage.setItem(`${s.prefix}${e}${s.expireSuffix}`,p);}let o=JSON.stringify(t);n&&(o=$.toBase64(o)),window.sessionStorage.setItem(`${s.prefix}${e}`,o);}catch(o){a("Session",o);}},get(e,t){if(typeof uni<"u"){a("Session","UniApp \u73AF\u5883\u4E0B [Session] \u4E0D\u53EF\u7528\u3002");return}try{t??=s.crypto;let r=window.sessionStorage.getItem(`${s.prefix}${e}`);if(r){t&&(r=$.base64ToStr(r));let n=window.sessionStorage.getItem(`${s.prefix}${e}${s.expireSuffix}`);if(n){let o=JSON.parse(n);if(Date.now()>o.time+o.expire*60*1e3)return window.sessionStorage.removeItem(`${s.prefix}${e}`),window.sessionStorage.removeItem(`${s.prefix}${e}${s.expireSuffix}`),null}try{return JSON.parse(r)}catch{return r}}return null}catch(r){a("Session",r);}},remove(e){if(typeof uni<"u"){a("Session","UniApp \u73AF\u5883\u4E0B [Session] \u4E0D\u53EF\u7528\u3002");return}try{window.sessionStorage.removeItem(`${s.prefix}${e}`),window.sessionStorage.removeItem(`${s.prefix}${e}${s.expireSuffix}`);}catch(t){a("Session",t);}},removeByPrefix(e){if(typeof uni<"u"){a("Session","UniApp \u73AF\u5883\u4E0B [Session] \u4E0D\u53EF\u7528\u3002");return}try{for(let t in window.sessionStorage)t.indexOf(`${s.prefix}${e}`)!==-1&&window.sessionStorage.removeItem(t);}catch(t){a("Session",t);}},clear(){if(typeof uni<"u"){a("Session","UniApp \u73AF\u5883\u4E0B [Session] \u4E0D\u53EF\u7528\u3002");return}try{window.sessionStorage.clear();}catch(e){a("Session",e);}}};var Y={getUrlParams(e){let t=/[?&][^=?&]+=[^?&]+/g,r={},n;for(;(n=t.exec(e))!==null;){let[o,i]=n[0].substring(1).split("=");r[o]=decodeURIComponent(i);}return r},isJson(e){return isString(e)?(e=e.replace(/\s/g,"").replace(/\n|\r/,""),/^\{(.*?)\}$/.test(e)?/"(.*?)":(.*?)/g.test(e):/^\[(.*?)\]$/.test(e)?e.replace(/^\[/,"").replace(/\]$/,"").replace(/},{/g,`}
2
- {`).split(/\n/).map(t=>Y.isJson(t)).reduce((t,r)=>!!r):false):false},generateRandomString(e){let t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",r="";for(let n=0;n<e;n++){let o=Math.floor(Math.random()*t.length);r+=t.charAt(o);}return r},generateUUID(){let e="";for(let t=0;t<32;t++){let r=Math.random()*16|0;(t===8||t===12||t===16||t===20)&&(e+="-"),e+=(t===12?4:t===16?r&3|8:r).toString(16);}return e},async copy(e){if(typeof uni<"u")return new Promise((t,r)=>{uni.setClipboardData({data:e,success:()=>{t();},fail:()=>{r();}});});if(navigator?.clipboard&&window.isSecureContext)await navigator.clipboard.writeText(e);else {let t=document.createElement("textarea");t.value=e,t.style.position="absolute",t.style.opacity="0",t.style.left="-999999px",t.style.top="-999999px",document.body.appendChild(t),t.focus(),t.select(),document.execCommand("copy"),t.remove();}}};var Ne=(e,t)=>(e(t),t);var Le=async(e,...t)=>{if(!e)return Promise.resolve(void 0);if(e.constructor.name==="AsyncFunction")try{return await e(...t)}catch(r){return a("execFunction",r),Promise.reject(r)}else return new Promise((r,n)=>{try{let o=e(...t);return r(o)}catch(o){return a("execFunction",o),n(o)}})};var k=()=>{},Xe=(e,t)=>{if(e.install=r=>{for(let n of [e,...Object.values(t??{})])r.component(n.name,n);},t)for(let[r,n]of Object.entries(t))e[r]=n;return e},je=e=>(e.install=k,e),Ve=(e,t)=>(e.install=r=>{r.directive(t,e);},e);var Ke=e=>e,Ye=(e,t,r)=>e?computed(()=>{let n=t?omit(t,r??[]):{};return pick(e,Object.keys(n))}):computed(()=>({}));var Ze=()=>Object;var Qe=e=>{let t=getCurrentInstance();if(!t)throw new Error("useRender must be called from inside a setup function");t.render=e;};var tt=(e=void 0)=>e;export{Re as CACHE_EXPIRE_SUFFIX,Ee as CACHE_PREFIX,v as FastError,Me as Local,Pe as Session,$e as addUnit,$ as base64Util,ee as clickUtil,re as colorUtil,ue as consoleDebug,a as consoleError,ae as consoleLog,R as consoleWarn,pe as cryptoUtil,me as dateUtil,Ke as definePropType,Le as execFunction,Ze as makeSlots,Ie as objectUtil,Y as stringUtil,ce as throwError,Ne as useExpose,Ye as useProps,Qe as useRender,Ae as useStorage,tt as withDefineType,Xe as withInstall,Ve as withInstallDirective,je as withNoopInstall};//# sourceMappingURL=index.min.js.map
3
- //# sourceMappingURL=index.min.js.map