@newview/tools 0.0.1

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.
@@ -0,0 +1,2 @@
1
+ import{Guid as t}from"guid-typescript";import{fromJS as r}from"immutable";import e from"moment";import n from"crypto-js";import o from"xlsx";var i=/*#__PURE__*/function(){function t(){}var r=t.prototype;return r.add=function(t,r,n){return e(t).add(r,n).toDate()},r.subtract=function(t,r,n){return e(t).subtract(r,n).toDate()},r.startOf=function(t,r){return e(t).startOf(r).toDate()},r.endOf=function(t,r){return e(t).endOf(r).toDate()},r.format=function(t,r){return void 0===r&&(r="YYYY-MM-DD HH:mm:ss"),e(t).format(r)},r.diff=function(t,r,n,o){return e(t).diff(r,n,o)},r.getWeekDay=function(t){return new Array("星期日","星期一","星期二","星期三","星期四","星期五","星期六")[e(t).weekday()]},t}(),a="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",u=new Array(-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,62,-1,-1,-1,63,52,53,54,55,56,57,58,59,60,61,-1,-1,-1,-1,-1,-1,-1,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,-1,-1,-1,-1,-1,-1,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,-1,-1,-1,-1,-1),c=/*#__PURE__*/function(){function t(){}var r=t.prototype;return r.encodeToBase64=function(t){if(d.isNull(t))return"";var r,e,n,o,i,u;for(n=t.length,e=0,r="";e<n;){if(o=255&t.charCodeAt(e++),e==n){r+=a.charAt(o>>2),r+=a.charAt((3&o)<<4),r+="==";break}if(i=t.charCodeAt(e++),e==n){r+=a.charAt(o>>2),r+=a.charAt((3&o)<<4|(240&i)>>4),r+=a.charAt((15&i)<<2),r+="=";break}u=t.charCodeAt(e++),r+=a.charAt(o>>2),r+=a.charAt((3&o)<<4|(240&i)>>4),r+=a.charAt((15&i)<<2|(192&u)>>6),r+=a.charAt(63&u)}return r},r.decodeBase64=function(t){if(d.isNull(t))return"";var r,e,n,o,i,a,c;for(a=t.length,i=0,c="";i<a;){do{r=u[255&t.charCodeAt(i++)]}while(i<a&&-1==r);if(-1==r)break;do{e=u[255&t.charCodeAt(i++)]}while(i<a&&-1==e);if(-1==e)break;c+=String.fromCharCode(r<<2|(48&e)>>4);do{if(61==(n=255&t.charCodeAt(i++)))return c;n=u[n]}while(i<a&&-1==n);if(-1==n)break;c+=String.fromCharCode((15&e)<<4|(60&n)>>2);do{if(61==(o=255&t.charCodeAt(i++)))return c;o=u[o]}while(i<a&&-1==o);if(-1==o)break;c+=String.fromCharCode((3&n)<<6|o)}return c},r.utf16To8=function(t){var r,e,n,o;for(r="",n=t.length,e=0;e<n;e++)(o=t.charCodeAt(e))>=1&&o<=127?r+=t.charAt(e):o>2047?(r+=String.fromCharCode(224|o>>12&15),r+=String.fromCharCode(128|o>>6&63),r+=String.fromCharCode(128|o>>0&63)):(r+=String.fromCharCode(192|o>>6&31),r+=String.fromCharCode(128|o>>0&63));return r},r.utf8To16=function(t){var r,e,n,o,i,a;for(r="",n=t.length,e=0;e<n;)switch((o=t.charCodeAt(e++))>>4){case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:r+=t.charAt(e-1);break;case 12:case 13:i=t.charCodeAt(e++),r+=String.fromCharCode((31&o)<<6|63&i);break;case 14:i=t.charCodeAt(e++),a=t.charCodeAt(e++),r+=String.fromCharCode((15&o)<<12|(63&i)<<6|(63&a)<<0)}return r},r.toDate=function(t){return e(t.toString()).toDate()},r.toMoment=function(t){return e(t.toString())},r.convertCurrency=function(t){var r,e,n,o=new Array("零","壹","贰","叁","肆","伍","陆","柒","捌","玖"),i=new Array("","拾","佰","仟"),a=new Array("","万","亿","兆"),u=new Array("角","分","毫","厘"),c="";if(""==t)return"";var f=parseFloat(t.toString());if(0==f)return o[0]+"元整";if(f>=1e15)return"";if(-1==t.indexOf(".")?(r=t,e=""):(r=(n=t.split("."))[0],e=n[1].substring(0,4)),parseInt(r.toString(),10)>0){for(var s=0,d=r.length,h=0;h<d;h++){var l=r.substring(h,1),m=d-h-1,g=m/4,p=m%4;"0"==l?s++:(s>0&&(c+=o[0]),s=0,c+=o[parseInt(l)]+i[p]),0==p&&s<4&&(c+=a[g])}c+="元"}if(""!=e)for(var C=e.length,v=0;v<C;v++){var A=e.substring(v,1);"0"!=A&&(c+=o[Number(A)]+u[v])}return""==c?c+=o[0]+"元整":""==e&&(c+="整"),c},r.hiddenIDCardNum=function(t){return t.replace(/(.{4}).*(.{4})/,"$1**********$2")},r.hiddenTelNum=function(t){return t.replace(/(.{4}).*(.{4})/,"$1**********$2")},r.leftPad=function(t,r,e){void 0===e&&(e="0");var n=t.length,o="",i=0;do{o+=e,++i}while(i<r-n);return o+t},r.encryptAES=function(t,r){var e=n.enc.Utf8.parse(r),o=n.enc.Utf8.parse(t.toString());return n.AES.encrypt(o,e,{mode:n.mode.ECB,padding:n.pad.Pkcs7}).toString()},r.decryptAES=function(t,r){var e=n.enc.Utf8.parse(r),o=n.AES.decrypt(t.toString(),e,{mode:n.mode.ECB,padding:n.pad.Pkcs7});return n.enc.Utf8.stringify(o).toString()},t}(),f=/*#__PURE__*/function(){function t(){}var r=t.prototype;return r.downloadExcel=function(t,r,e){void 0===r&&(r="sheetjs.xlsx"),void 0===e&&(e=[]);var n=o.utils.aoa_to_sheet(t);n["!merges"]=e;var i=o.utils.book_new();o.utils.book_append_sheet(i,n,"SheetJS"),o.writeFile(i,r)},r.downloadExcelSheets=function(t,r){void 0===r&&(r="sheetjs.xlsx");var e=o.utils.book_new();t.forEach(function(t,r){var n=o.utils.aoa_to_sheet(t);o.utils.book_append_sheet(e,n,r)}),o.writeFile(e,r)},t}(),s=function(){var n=this;this.dateHelper=new i,this.stringHelper=new c,this.excelHelper=new f,this.isNull=function(t){return""===t||null==t||"undefined"===t||"null"===t},this.getValueNotNull=function(t,r){return n.isNull(t)?r:t},this.getUniqueCode=function(r){return void 0===r&&(r=""),r+t.create().toString().replace(/\-/g,"").substring(r.length)},this.getCurrentDate=function(t){void 0===t&&(t="YYYY-MM-DD HH:mm:ss");var r=new Date;return n.dateHelper.format(r,t)},this.format=function(t,r){return void 0===r&&(r="YYYY-MM-DD HH:mm:ss"),n.getMoment(t).format(r)},this.parseApiResult=function(t,r){return void 0===r&&(r=null),n.isNull(t)?null:200!==t.code||!t.issucess&&"请求成功"!=t.msg&&"承载数据为空"!=t.msg?r:n.isNull(t.result)?t.data:t.result},this.deepCopy=function(t){return r(t).toJS()},this.getMilestone=function(t){try{var r=t.split("+"),e=r[0].match(/\d+(.\d+)?/g),n=r[1];return 1e3*Number(e)+Number(n)}catch(t){return 0}},this.getMoment=function(t){return e(t)}},d=new s;export{s as Utilities,d as utilities};
2
+ //# sourceMappingURL=tools.esm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tools.esm.js","sources":["../src/Helper/DateHelper.ts","../src/Helper/StringHelper.ts","../src/Helper/ExcelHelper.ts","../src/Utilities.ts"],"sourcesContent":["import moment, { unitOfTime } from 'moment';\r\n\r\nexport class DateHelper {\r\n\r\n /**\r\n * 增加时间\r\n * @param date 日期\r\n * @param value 值\r\n * @param unit years: 年 quarters: 季度 months: 月 weeks: 周 days: 天 hours: 小时 minutes: 分钟 seconds: 秒 milliseconds: 毫秒\r\n */\r\n add(date: Date, value: number, unit: \"years\" | \"quarters\" | \"months\" | \"weeks\" | \"days\" | \"hours\" | \"minutes\" | \"seconds\" | \"milliseconds\"): Date {\r\n return moment(date).add(value, unit).toDate();\r\n }\r\n\r\n /**\r\n * 减去时间\r\n * @param date 日期\r\n * @param value 值\r\n * @param unit years: 年 quarters: 季度 months: 月 weeks: 周 days: 天 hours: 小时 minutes: 分钟 seconds: 秒 milliseconds: 毫秒\r\n */\r\n subtract(date: Date, value: number, unit: \"years\" | \"quarters\" | \"months\" | \"weeks\" | \"days\" | \"hours\" | \"minutes\" | \"seconds\" | \"milliseconds\"): Date {\r\n return moment(date).subtract(value, unit).toDate();\r\n }\r\n\r\n /**\r\n * 通过将原始的 Date 设置为时间单位的开头来对其进行更改。\r\n * @param date 日期\r\n * @param unitOfTime \r\n * year: 年 (设置为今年一月1日上午 12:00)\r\n * month: 月 (设置为本月1日上午 12:00)\r\n * quarter: 季度 (设置为当前季度的开始,即每月的第一天上午 12:00)\r\n * week: 周 (设置为本周的第一天上午 12:00)\r\n * isoWeek: 周 (根据 ISO 8601 设置为本周的第一天上午 12:00)\r\n * day: 天 (设置为今天上午 12:00)\r\n * date: 天 (设置为今天上午 12:00)\r\n * hour: 小时 (设置为当前时间,但是 0 分钟、0 秒钟、0 毫秒)\r\n * minute: 分钟 (设置为当前时间,但是 0 秒钟、0 毫秒)\r\n * second: 秒 (设置为当前时间,但是 0 毫秒)\r\n */\r\n startOf(date: Date, unitOfTime: 'year' | 'month' | 'quarter' | 'week' | 'isoWeek' | 'day' | 'date' | 'hour' | 'minute' | 'second'): Date {\r\n return moment(date).startOf(unitOfTime).toDate();\r\n }\r\n\r\n /**\r\n * 通过将原始的 Date 设置为时间单位的结尾来对其进行更改。\r\n * @param date 日期\r\n * @param unitOfTime \r\n * year: 年\r\n * month: 月\r\n * quarter: 季度\r\n * week: 周\r\n * isoWeek: 周\r\n * day: 天\r\n * date: 天\r\n * hour: 小时\r\n * minute: 分钟\r\n * second: 秒\r\n */\r\n endOf(date: Date, unitOfTime: 'year' | 'month' | 'quarter' | 'week' | 'isoWeek' | 'day' | 'date' | 'hour' | 'minute' | 'second'): Date {\r\n return moment(date).endOf(unitOfTime).toDate();\r\n }\r\n\r\n /**\r\n * 格式化时间\r\n * @param date 日期\r\n * @param format \r\n * 年份 | YY | 70 71 ... 29 30\r\n * YYYY | 1970 1971 ... 2029 2030\r\n * Y | 1970 1971 ... 9999 +10000 +10001\r\n * 注意:对于 9999 年以后的日期,这符合 ISO 8601 标准。\r\n * 月份\t | M | 1 2 ... 11 12\r\n * Mo | 1st 2nd ... 11th 12th\r\n * MM | 01 02 ... 11 12\r\n * MMM | Jan Feb ... Nov Dec\r\n * MMMM |\tJanuary February ... November December\r\n * 月份的日期 | D | 1 2 ... 30 31\r\n * Do | 1st 2nd ... 30th 31st\r\n * DD | 01 02 ... 30 31\r\n * 小时 | H | 0 1 ... 22 23\r\n * HH | 00 01 ... 22 23\r\n * h | 1 2 ... 11 12\r\n * hh | 01 02 ... 11 12\r\n * k | 1 2 ... 23 24\r\n * kk | 01 02 ... 23 24\r\n * 分钟 | m | 0 1 ... 58 59\r\n * mm | 00 01 ... 58 59\r\n * 秒钟 | s | 0 1 ... 58 59\r\n * ss | 00 01 ... 58 59\r\n * 小数秒钟 | S | 0 1 ... 8 9\r\n * SS | 00 01 ... 98 99\r\n * SSS | 000 001 ... 998 999\r\n * SSSS | ... SSSSSSSSS\t000[0..] 001[0..] ... 998[0..] 999[0..]\r\n * ------------------------------------------------------------------------------------- \r\n * 周年 | gg | 70 71 ... 29 30\r\n * gggg | 1970 1971 ... 2029 2030\r\n * 周年(ISO) | GG | 70 71 ... 29 30\r\n * GGGG | 1970 1971 ... 2029 2030 \r\n * 季度 | Q | 1 2 3 4\r\n * Qo | 1st 2nd 3rd 4th\r\n * 年份的日期 | DDD | 1 2 ... 364 365\r\n * DDDo | 1st 2nd ... 364th 365th\r\n * DDDD | 001 002 ... 364 365\r\n * 星期几 | d | 0 1 ... 5 6\r\n * do | 0th 1st ... 5th 6th\r\n * dd | Su Mo ... Fr Sa\r\n * ddd | Sun Mon ... Fri Sat\r\n * dddd | Sunday Monday ... Friday Saturday\r\n * 星期几(语言环境) | e | 0 1 ... 5 6\r\n * 星期几(ISO) | E | 1 2 ... 6 7\r\n * 年份的星期 | w | 1 2 ... 52 53\r\n * wo | 1st 2nd ... 52nd 53rd\r\n * ww | 01 02 ... 52 53\r\n * 年份的星期(ISO) | W | 1 2 ... 52 53\r\n * Wo | 1st 2nd ... 52nd 53rd\r\n * WW | 01 02 ... 52 53\r\n * 子午线 | A | AM PM\r\n * a | am pm\r\n * 时区 | z or zz | EST CST ... MST PST\r\n * 注意:从 1.6.0 版本开始,z/zz 格式的令牌已从普通的 moment 对象中弃用。 在此处了解更多信息。 但是,如果将特定时区与 moment-timezone 插件一起使用,它们会起作用。\r\n * Z | -07:00 -06:00 ... +06:00 +07:00\r\n * ZZ | -0700 -0600 ... +0600 +0700\r\n * Unix 时间戳 | X | 1360013296\r\n * Unix 毫秒时间戳 | x | 1360013296123\r\n */\r\n format(date: Date, format: string = \"YYYY-MM-DD HH:mm:ss\"): string {\r\n return moment(date).format(format);\r\n }\r\n\r\n /**\r\n * 获取另一个度量单位中的差异\r\n * @param date 日期\r\n * @param b 对比的时间\r\n * @param unitOfTime 默认为毫秒\r\n * year: 年\r\n * month: 月\r\n * quarter: 季度\r\n * week: 周\r\n * isoWeek: 周\r\n * day: 天\r\n * date: 天\r\n * hour: 小时\r\n * minute: 分钟\r\n * second: 秒 \r\n * @param precise 是否允许小数\r\n */\r\n diff(date: Date, b: Date | string, unitOfTime?: unitOfTime.Diff, precise?: boolean): number {\r\n return moment(date).diff(b, unitOfTime, precise);\r\n }\r\n\r\n /**\r\n * 获取当前是周几\r\n * 星期日, 星期一, 星期二, 星期三, 星期四, 星期五, 星期六\r\n * @param date 日期\r\n */\r\n getWeekDay(date: Date): string {\r\n const weeks = new Array(\"星期日\", \"星期一\", \"星期二\", \"星期三\", \"星期四\", \"星期五\", \"星期六\");\r\n return weeks[moment(date).weekday()];\r\n }\r\n}\r\n\r\nexport const dateHelper: DateHelper = new DateHelper();","import { utilities } from \"../Utilities\";\r\nimport moment, { Moment } from 'moment';\r\nimport CryptoJs from 'crypto-js'\r\n\r\nconst base64EncodeChars = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\";\r\nconst base64DecodeChars = new Array(-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\r\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\r\n -1, -1, -1, -1, -1, -1, -1, 62, -1, -1, -1, 63, 52, 53, 54, 55, 56, 57,\r\n 58, 59, 60, 61, -1, -1, -1, -1, -1, -1, -1, 0, 1, 2, 3, 4, 5, 6,\r\n 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,\r\n 25, -1, -1, -1, -1, -1, -1, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,\r\n 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, -1, -1,\r\n -1, -1);\r\n\r\nexport class StringHelper {\r\n /**\r\n * 加密 Base64\r\n * @param str 字符串\r\n */\r\n encodeToBase64(str: string): string {\r\n if (utilities.isNull(str))\r\n return \"\";\r\n let out, i, len;\r\n let c1, c2, c3;\r\n len = str.length;\r\n i = 0;\r\n out = \"\";\r\n while (i < len) {\r\n c1 = str.charCodeAt(i++) & 0xff;\r\n if (i == len) {\r\n out += base64EncodeChars.charAt(c1 >> 2);\r\n out += base64EncodeChars.charAt((c1 & 0x3) << 4);\r\n out += \"==\";\r\n break\r\n }\r\n c2 = str.charCodeAt(i++);\r\n if (i == len) {\r\n out += base64EncodeChars.charAt(c1 >> 2);\r\n out += base64EncodeChars.charAt(((c1 & 0x3) << 4) | ((c2 & 0xF0) >> 4));\r\n out += base64EncodeChars.charAt((c2 & 0xF) << 2);\r\n out += \"=\";\r\n break\r\n }\r\n c3 = str.charCodeAt(i++);\r\n out += base64EncodeChars.charAt(c1 >> 2);\r\n out += base64EncodeChars.charAt(((c1 & 0x3) << 4) | ((c2 & 0xF0) >> 4));\r\n out += base64EncodeChars.charAt(((c2 & 0xF) << 2) | ((c3 & 0xC0) >> 6));\r\n out += base64EncodeChars.charAt(c3 & 0x3F)\r\n }\r\n return out\r\n }\r\n\r\n /**\r\n * 解密 Base64\r\n * @param str 字符串\r\n */\r\n decodeBase64(str: string): string {\r\n if (utilities.isNull(str))\r\n return \"\";\r\n let c1, c2, c3, c4;\r\n let i, len, out;\r\n len = str.length;\r\n i = 0;\r\n out = \"\";\r\n while (i < len) {\r\n do {\r\n c1 = base64DecodeChars[str.charCodeAt(i++) & 0xff]\r\n } while (i < len && c1 == -1);\r\n if (c1 == -1) break;\r\n do {\r\n c2 = base64DecodeChars[str.charCodeAt(i++) & 0xff]\r\n } while (i < len && c2 == -1);\r\n if (c2 == -1)\r\n break;\r\n out += String.fromCharCode((c1 << 2) | ((c2 & 0x30) >> 4));\r\n do {\r\n c3 = str.charCodeAt(i++) & 0xff;\r\n if (c3 == 61) return out;\r\n c3 = base64DecodeChars[c3]\r\n } while (i < len && c3 == -1);\r\n if (c3 == -1) break;\r\n out += String.fromCharCode(((c2 & 0XF) << 4) | ((c3 & 0x3C) >> 2));\r\n do {\r\n c4 = str.charCodeAt(i++) & 0xff;\r\n if (c4 == 61) return out;\r\n c4 = base64DecodeChars[c4]\r\n } while (i < len && c4 == -1);\r\n if (c4 == -1) break;\r\n out += String.fromCharCode(((c3 & 0x03) << 6) | c4)\r\n }\r\n return out\r\n }\r\n\r\n /**\r\n * UTF-16 转 UTF-8\r\n * @param str 字符串\r\n */\r\n utf16To8(str: string): string {\r\n let out, i, len, c;\r\n out = \"\";\r\n len = str.length;\r\n for (i = 0; i < len; i++) {\r\n c = str.charCodeAt(i);\r\n if ((c >= 0x0001) && (c <= 0x007F)) {\r\n out += str.charAt(i);\r\n } else if (c > 0x07FF) {\r\n out += String.fromCharCode(0xE0 | ((c >> 12) & 0x0F));\r\n out += String.fromCharCode(0x80 | ((c >> 6) & 0x3F));\r\n out += String.fromCharCode(0x80 | ((c >> 0) & 0x3F));\r\n } else {\r\n out += String.fromCharCode(0xC0 | ((c >> 6) & 0x1F));\r\n out += String.fromCharCode(0x80 | ((c >> 0) & 0x3F));\r\n }\r\n }\r\n return out;\r\n }\r\n\r\n /**\r\n * UTF-8 转 UTF-16\r\n * @param str 字符串\r\n */\r\n utf8To16(str: string): string {\r\n let out, i, len, c;\r\n let char2, char3;\r\n\r\n out = \"\";\r\n len = str.length;\r\n i = 0;\r\n while (i < len) {\r\n c = str.charCodeAt(i++);\r\n switch (c >> 4) {\r\n case 0:\r\n case 1:\r\n case 2:\r\n case 3:\r\n case 4:\r\n case 5:\r\n case 6:\r\n case 7:\r\n // 0xxxxxxx\r\n out += str.charAt(i - 1);\r\n break;\r\n case 12:\r\n case 13:\r\n // 110x xxxx 10xx xxxx\r\n char2 = str.charCodeAt(i++);\r\n out += String.fromCharCode(((c & 0x1F) << 6) | (char2 & 0x3F));\r\n break;\r\n case 14:\r\n // 1110 xxxx 10xx xxxx 10xx xxxx\r\n char2 = str.charCodeAt(i++);\r\n char3 = str.charCodeAt(i++);\r\n out += String.fromCharCode(((c & 0x0F) << 12) |\r\n ((char2 & 0x3F) << 6) |\r\n ((char3 & 0x3F) << 0));\r\n break;\r\n }\r\n }\r\n\r\n return out;\r\n }\r\n\r\n /**\r\n * 转换为日期\r\n * @param str 字符串\r\n */\r\n toDate(str: string): Date {\r\n return moment(str.toString()).toDate();\r\n }\r\n\r\n /**\r\n * 转换为Moment\r\n * @param str 字符串\r\n */\r\n toMoment(str: string): Moment {\r\n return moment(str.toString())\r\n }\r\n\r\n /**\r\n * 金额转换为大写\r\n * @param str 字符串\r\n */\r\n convertCurrency(str: string): string {\r\n // 汉字的数字\r\n const cnNums = new Array('零', '壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌', '玖');\r\n // 基本单位\r\n const cnIntRadice = new Array('', '拾', '佰', '仟');\r\n // 对应整数部分扩展单位\r\n const cnIntUnits = new Array('', '万', '亿', '兆');\r\n // 对应小数部分单位\r\n const cnDecUnits = new Array('角', '分', '毫', '厘');\r\n // 整数金额时后面跟的字符\r\n const cnInteger = '整';\r\n // 整型完以后的单位\r\n const cnIntLast = '元';\r\n // 最大处理的数字\r\n const maxNum = 999999999999999.9999;\r\n // 金额整数部分\r\n let integerNum;\r\n // 金额小数部分\r\n let decimalNum;\r\n // 输出的中文金额字符串\r\n let chineseStr = '';\r\n // 分离金额后用的数组,预定义\r\n let parts;\r\n\r\n if (str == '') {\r\n return '';\r\n }\r\n\r\n let money = parseFloat(str.toString());\r\n if (money == 0) {\r\n chineseStr = cnNums[0] + cnIntLast + cnInteger;\r\n return chineseStr;\r\n }\r\n\r\n if (money >= maxNum) {\r\n // 超出最大处理数字\r\n return '';\r\n }\r\n\r\n // 转换为字符串\r\n if (str.indexOf('.') == -1) {\r\n integerNum = str;\r\n decimalNum = '';\r\n } else {\r\n parts = str.split('.');\r\n integerNum = parts[0];\r\n decimalNum = parts[1].substring(0, 4);\r\n }\r\n\r\n // 获取整型部分转换\r\n if (parseInt(integerNum.toString(), 10) > 0) {\r\n let zeroCount = 0;\r\n let IntLen = integerNum.length;\r\n for (let i = 0; i < IntLen; i++) {\r\n let n = integerNum.substring(i, 1);\r\n let p = IntLen - i - 1;\r\n let q = p / 4;\r\n let m = p % 4;\r\n if (n == '0') {\r\n zeroCount++;\r\n } else {\r\n if (zeroCount > 0) {\r\n chineseStr += cnNums[0];\r\n }\r\n //归零\r\n zeroCount = 0;\r\n chineseStr += cnNums[parseInt(n)] + cnIntRadice[m];\r\n }\r\n if (m == 0 && zeroCount < 4) {\r\n chineseStr += cnIntUnits[q];\r\n }\r\n }\r\n chineseStr += cnIntLast;\r\n }\r\n\r\n // 小数部分\r\n if (decimalNum != '') {\r\n let decLen = decimalNum.length;\r\n for (let i = 0; i < decLen; i++) {\r\n let n = decimalNum.substring(i, 1);\r\n if (n != '0') {\r\n chineseStr += cnNums[Number(n)] + cnDecUnits[i];\r\n }\r\n }\r\n }\r\n\r\n if (chineseStr == '') {\r\n chineseStr += cnNums[0] + cnIntLast + cnInteger;\r\n } else if (decimalNum == '') {\r\n chineseStr += cnInteger;\r\n }\r\n\r\n return chineseStr;\r\n }\r\n\r\n /**\r\n * 隐藏身份证号\r\n * @param str 字符串\r\n */\r\n hiddenIDCardNum(str: string): string {\r\n return str.replace(/(.{4}).*(.{4})/, '$1**********$2')\r\n }\r\n\r\n /**\r\n * 隐藏电话号码\r\n * @param str 字符串\r\n */\r\n hiddenTelNum(str: string): string {\r\n return str.replace(/(.{4}).*(.{4})/, '$1**********$2')\r\n }\r\n\r\n /**\r\n * 左补位\r\n * @param str 字符串\r\n * @param count \r\n * @param pad \r\n */\r\n leftPad(str: string, count: number, pad: string = \"0\"): string {\r\n let nlen = str.length;\r\n let str1 = '';\r\n let i = 0;\r\n do {\r\n str1 += pad\r\n ++i;\r\n } while (i < (count - nlen))\r\n str1 += str;\r\n return str1;\r\n }\r\n\r\n /**\r\n * 加密 AES\r\n * @param str 字符串\r\n * @param key \r\n */\r\n encryptAES(str: string, key: string): string {\r\n let encKey = CryptoJs.enc.Utf8.parse(key);\r\n let srcs = CryptoJs.enc.Utf8.parse(str.toString());\r\n let encrypted = CryptoJs.AES.encrypt(srcs, encKey, {\r\n mode: CryptoJs.mode.ECB,\r\n padding: CryptoJs.pad.Pkcs7\r\n });\r\n return encrypted.toString();\r\n }\r\n\r\n /**\r\n * 解密 AES\r\n * @param str 字符串\r\n * @param key \r\n */\r\n decryptAES(str: string, key: string): string {\r\n let encKey = CryptoJs.enc.Utf8.parse(key);\r\n let decrypt = CryptoJs.AES.decrypt(str.toString(), encKey, {\r\n mode: CryptoJs.mode.ECB,\r\n padding: CryptoJs.pad.Pkcs7\r\n });\r\n return CryptoJs.enc.Utf8.stringify(decrypt).toString();\r\n }\r\n}\r\n\r\nexport const stringHelper: StringHelper = new StringHelper();","import XLSX from 'xlsx'\r\n\r\nexport class ExcelHelper {\r\n\r\n /**\r\n * 生成并下载excel\r\n * @param datas 数据\r\n * @param fileName 文件名\r\n */\r\n public downloadExcel(datas: any[], fileName: string = 'sheetjs.xlsx', merges: any = []) {\r\n const ws = XLSX.utils.aoa_to_sheet(datas)\r\n ws['!merges'] = merges;\r\n const wb = XLSX.utils.book_new()\r\n XLSX.utils.book_append_sheet(wb, ws, 'SheetJS')\r\n /* generate file and send to client */\r\n XLSX.writeFile(wb, fileName)\r\n }\r\n\r\n /**\r\n * 生成并加载execl 多Sheets页\r\n * @param datas \r\n * @param fileName \r\n */\r\n public downloadExcelSheets(datas: Map<string, any[]>, fileName: string = 'sheetjs.xlsx') {\r\n const wb = XLSX.utils.book_new()\r\n datas.forEach((value, key) => {\r\n const ws = XLSX.utils.aoa_to_sheet(value)\r\n XLSX.utils.book_append_sheet(wb, ws, key)\r\n })\r\n\r\n XLSX.writeFile(wb, fileName)\r\n }\r\n\r\n}\r\n","import { Guid } from 'guid-typescript';\r\nimport { fromJS } from \"immutable\";\r\nimport moment, { Moment } from 'moment';\r\nimport { DateHelper } from \"./Helper/DateHelper\";\r\nimport { StringHelper } from \"./Helper/StringHelper\";\r\nimport { ExcelHelper } from \"./Helper/ExcelHelper\";\r\n\r\nexport class Utilities {\r\n public dateHelper: DateHelper = new DateHelper();\r\n public stringHelper: StringHelper = new StringHelper();\r\n public excelHelper: ExcelHelper = new ExcelHelper();\r\n\r\n /**\r\n * 验证是否为null\r\n * @param obj \r\n * @returns \r\n */\r\n isNull = (obj: any) => {\r\n if (obj === '' || obj === null || obj === undefined || obj === 'undefined' || obj === 'null') {\r\n return true\r\n }\r\n return false\r\n }\r\n\r\n /**\r\n * 获取值,如果为空返回默认值\r\n * @param value \r\n * @param defaultValue \r\n * @returns \r\n */\r\n getValueNotNull = (value: any, defaultValue: any) => {\r\n if (this.isNull(value)) {\r\n return defaultValue;\r\n }\r\n\r\n return value;\r\n }\r\n\r\n /**\r\n * 生成唯一编码\r\n * @param prefix \r\n * @returns \r\n */\r\n getUniqueCode = (prefix: string = \"\") => {\r\n let guidStr = Guid.create().toString().replace(/\\-/g, '');\r\n guidStr = prefix + guidStr.substring(prefix.length);\r\n return guidStr;\r\n }\r\n\r\n /**\r\n * 获取当前时间\r\n * @param format \r\n * @returns \r\n */\r\n getCurrentDate = (format = \"YYYY-MM-DD HH:mm:ss\") => {\r\n const dateTime = new Date();\r\n return this.dateHelper.format(dateTime, format);\r\n }\r\n\r\n /**\r\n * 日期格式化\r\n * @param date 日期\r\n * @param format 格式\r\n * @returns \r\n */\r\n format = (date: Date | string, format = \"YYYY-MM-DD HH:mm:ss\") => {\r\n return this.getMoment(date).format(format);\r\n }\r\n\r\n /**\r\n * 解析Api接口返回数据\r\n * @param apiResult \r\n * @param defaultValue \r\n * @returns \r\n */\r\n parseApiResult = (apiResult: any, defaultValue: any = null) => {\r\n if (this.isNull(apiResult)) {\r\n return null;\r\n }\r\n\r\n if (apiResult.code === 200 && (apiResult.issucess || (apiResult.msg == '请求成功' || apiResult.msg == '承载数据为空'))) {\r\n return this.isNull(apiResult.result) ? apiResult.data : apiResult.result;\r\n } else { \r\n return defaultValue\r\n }\r\n }\r\n\r\n /**\r\n * 对象深复制\r\n * @param obj \r\n * @returns \r\n */\r\n deepCopy = (obj: any): any => {\r\n return fromJS(obj).toJS();\r\n }\r\n\r\n /**\r\n * 里程桩号转数字\r\n * @param milestone \r\n * @returns \r\n */\r\n getMilestone = (milestone: string): number => {\r\n try {\r\n let s_arr = milestone.split('+');\r\n let s_Klm = s_arr[0].match(/\\d+(.\\d+)?/g);\r\n let s_LM = s_arr[1];\r\n let sm = (Number(s_Klm) * 1000 + Number(s_LM));\r\n return sm;\r\n } catch {\r\n return 0;\r\n }\r\n }\r\n\r\n /**\r\n * 获取 Moment\r\n * @param date \r\n * @returns \r\n */\r\n getMoment = (date: any): Moment => {\r\n return moment(date);\r\n }\r\n}\r\n\r\nexport const utilities: Utilities = new Utilities();\r\n"],"names":["DateHelper","_proto","prototype","add","date","value","unit","moment","toDate","subtract","startOf","unitOfTime","endOf","format","diff","b","precise","getWeekDay","Array","weekday","base64EncodeChars","base64DecodeChars","StringHelper","encodeToBase64","str","utilities","isNull","out","i","len","c1","c2","c3","length","charCodeAt","charAt","decodeBase64","c4","String","fromCharCode","utf16To8","c","utf8To16","char2","char3","toString","toMoment","convertCurrency","integerNum","decimalNum","parts","cnNums","cnIntRadice","cnIntUnits","cnDecUnits","chineseStr","money","parseFloat","indexOf","split","substring","parseInt","zeroCount","IntLen","n","p","q","m","decLen","Number","hiddenIDCardNum","replace","hiddenTelNum","leftPad","count","pad","nlen","str1","encryptAES","key","encKey","CryptoJs","enc","Utf8","parse","srcs","AES","encrypt","mode","ECB","padding","Pkcs7","decryptAES","decrypt","stringify","ExcelHelper","downloadExcel","datas","fileName","merges","ws","XLSX","utils","aoa_to_sheet","wb","book_new","book_append_sheet","writeFile","downloadExcelSheets","forEach","Utilities","_this","dateHelper","stringHelper","this","excelHelper","obj","getValueNotNull","defaultValue","getUniqueCode","prefix","Guid","create","getCurrentDate","dateTime","Date","getMoment","parseApiResult","apiResult","code","issucess","msg","result","data","deepCopy","fromJS","toJS","getMilestone","milestone","s_arr","s_Klm","match","s_LM","_unused"],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,33 @@
1
+ {
2
+ "name": "@newview/tools",
3
+ "version": "0.0.1",
4
+ "author": "newview",
5
+ "main": "dist/tools.js",
6
+ "module": "./dist/tools.esm.js",
7
+ "typings": "types/index.d.ts",
8
+ "files": [
9
+ "dist/*",
10
+ "types/*",
11
+ "package.json",
12
+ "tsconfig.json"
13
+ ],
14
+ "scripts": {
15
+ "dev": "vite",
16
+ "build": "microbundle --entry src/index.ts --name tools --format esm",
17
+ "preview": "vite preview",
18
+ "p": "npm publish --access public"
19
+ },
20
+ "devDependencies": {
21
+ "@types/crypto-js": "^4.1.1",
22
+ "microbundle": "^0.15.1",
23
+ "typescript": "^4.9.3",
24
+ "vite": "^4.0.0"
25
+ },
26
+ "dependencies": {
27
+ "crypto-js": "^4.1.1",
28
+ "guid-typescript": "^1.0.9",
29
+ "immutable": "^4.1.0",
30
+ "moment": "^2.29.4",
31
+ "xlsx": "^0.15.6"
32
+ }
33
+ }
package/tsconfig.json ADDED
@@ -0,0 +1,19 @@
1
+ {
2
+ "compilerOptions": {
3
+ "target": "ESNext",
4
+ "useDefineForClassFields": true,
5
+ "module": "ESNext",
6
+ "lib": ["ESNext", "DOM"],
7
+ "moduleResolution": "Node",
8
+ "strict": true,
9
+ "resolveJsonModule": true,
10
+ "isolatedModules": true,
11
+ "esModuleInterop": true,
12
+ "noEmit": true,
13
+ "noUnusedLocals": true,
14
+ "noUnusedParameters": true,
15
+ "noImplicitReturns": true,
16
+ "skipLibCheck": true
17
+ },
18
+ "include": ["src", "src/String.d.ts", "types/index.d.ts"]
19
+ }
@@ -0,0 +1,137 @@
1
+ import { unitOfTime } from 'moment';
2
+ export declare class DateHelper {
3
+ /**
4
+ * 增加时间
5
+ * @param date 日期
6
+ * @param value 值
7
+ * @param unit years: 年 quarters: 季度 months: 月 weeks: 周 days: 天 hours: 小时 minutes: 分钟 seconds: 秒 milliseconds: 毫秒
8
+ */
9
+ add(date: Date, value: number, unit: "years" | "quarters" | "months" | "weeks" | "days" | "hours" | "minutes" | "seconds" | "milliseconds"): Date;
10
+ /**
11
+ * 减去时间
12
+ * @param date 日期
13
+ * @param value 值
14
+ * @param unit years: 年 quarters: 季度 months: 月 weeks: 周 days: 天 hours: 小时 minutes: 分钟 seconds: 秒 milliseconds: 毫秒
15
+ */
16
+ subtract(date: Date, value: number, unit: "years" | "quarters" | "months" | "weeks" | "days" | "hours" | "minutes" | "seconds" | "milliseconds"): Date;
17
+ /**
18
+ * 通过将原始的 Date 设置为时间单位的开头来对其进行更改。
19
+ * @param date 日期
20
+ * @param unitOfTime
21
+ * year: 年 (设置为今年一月1日上午 12:00)
22
+ * month: 月 (设置为本月1日上午 12:00)
23
+ * quarter: 季度 (设置为当前季度的开始,即每月的第一天上午 12:00)
24
+ * week: 周 (设置为本周的第一天上午 12:00)
25
+ * isoWeek: 周 (根据 ISO 8601 设置为本周的第一天上午 12:00)
26
+ * day: 天 (设置为今天上午 12:00)
27
+ * date: 天 (设置为今天上午 12:00)
28
+ * hour: 小时 (设置为当前时间,但是 0 分钟、0 秒钟、0 毫秒)
29
+ * minute: 分钟 (设置为当前时间,但是 0 秒钟、0 毫秒)
30
+ * second: 秒 (设置为当前时间,但是 0 毫秒)
31
+ */
32
+ startOf(date: Date, unitOfTime: 'year' | 'month' | 'quarter' | 'week' | 'isoWeek' | 'day' | 'date' | 'hour' | 'minute' | 'second'): Date;
33
+ /**
34
+ * 通过将原始的 Date 设置为时间单位的结尾来对其进行更改。
35
+ * @param date 日期
36
+ * @param unitOfTime
37
+ * year: 年
38
+ * month: 月
39
+ * quarter: 季度
40
+ * week: 周
41
+ * isoWeek: 周
42
+ * day: 天
43
+ * date: 天
44
+ * hour: 小时
45
+ * minute: 分钟
46
+ * second: 秒
47
+ */
48
+ endOf(date: Date, unitOfTime: 'year' | 'month' | 'quarter' | 'week' | 'isoWeek' | 'day' | 'date' | 'hour' | 'minute' | 'second'): Date;
49
+ /**
50
+ * 格式化时间
51
+ * @param date 日期
52
+ * @param format
53
+ * 年份 | YY | 70 71 ... 29 30
54
+ * YYYY | 1970 1971 ... 2029 2030
55
+ * Y | 1970 1971 ... 9999 +10000 +10001
56
+ * 注意:对于 9999 年以后的日期,这符合 ISO 8601 标准。
57
+ * 月份 | M | 1 2 ... 11 12
58
+ * Mo | 1st 2nd ... 11th 12th
59
+ * MM | 01 02 ... 11 12
60
+ * MMM | Jan Feb ... Nov Dec
61
+ * MMMM | January February ... November December
62
+ * 月份的日期 | D | 1 2 ... 30 31
63
+ * Do | 1st 2nd ... 30th 31st
64
+ * DD | 01 02 ... 30 31
65
+ * 小时 | H | 0 1 ... 22 23
66
+ * HH | 00 01 ... 22 23
67
+ * h | 1 2 ... 11 12
68
+ * hh | 01 02 ... 11 12
69
+ * k | 1 2 ... 23 24
70
+ * kk | 01 02 ... 23 24
71
+ * 分钟 | m | 0 1 ... 58 59
72
+ * mm | 00 01 ... 58 59
73
+ * 秒钟 | s | 0 1 ... 58 59
74
+ * ss | 00 01 ... 58 59
75
+ * 小数秒钟 | S | 0 1 ... 8 9
76
+ * SS | 00 01 ... 98 99
77
+ * SSS | 000 001 ... 998 999
78
+ * SSSS | ... SSSSSSSSS 000[0..] 001[0..] ... 998[0..] 999[0..]
79
+ * -------------------------------------------------------------------------------------
80
+ * 周年 | gg | 70 71 ... 29 30
81
+ * gggg | 1970 1971 ... 2029 2030
82
+ * 周年(ISO) | GG | 70 71 ... 29 30
83
+ * GGGG | 1970 1971 ... 2029 2030
84
+ * 季度 | Q | 1 2 3 4
85
+ * Qo | 1st 2nd 3rd 4th
86
+ * 年份的日期 | DDD | 1 2 ... 364 365
87
+ * DDDo | 1st 2nd ... 364th 365th
88
+ * DDDD | 001 002 ... 364 365
89
+ * 星期几 | d | 0 1 ... 5 6
90
+ * do | 0th 1st ... 5th 6th
91
+ * dd | Su Mo ... Fr Sa
92
+ * ddd | Sun Mon ... Fri Sat
93
+ * dddd | Sunday Monday ... Friday Saturday
94
+ * 星期几(语言环境) | e | 0 1 ... 5 6
95
+ * 星期几(ISO) | E | 1 2 ... 6 7
96
+ * 年份的星期 | w | 1 2 ... 52 53
97
+ * wo | 1st 2nd ... 52nd 53rd
98
+ * ww | 01 02 ... 52 53
99
+ * 年份的星期(ISO) | W | 1 2 ... 52 53
100
+ * Wo | 1st 2nd ... 52nd 53rd
101
+ * WW | 01 02 ... 52 53
102
+ * 子午线 | A | AM PM
103
+ * a | am pm
104
+ * 时区 | z or zz | EST CST ... MST PST
105
+ * 注意:从 1.6.0 版本开始,z/zz 格式的令牌已从普通的 moment 对象中弃用。 在此处了解更多信息。 但是,如果将特定时区与 moment-timezone 插件一起使用,它们会起作用。
106
+ * Z | -07:00 -06:00 ... +06:00 +07:00
107
+ * ZZ | -0700 -0600 ... +0600 +0700
108
+ * Unix 时间戳 | X | 1360013296
109
+ * Unix 毫秒时间戳 | x | 1360013296123
110
+ */
111
+ format(date: Date, format?: string): string;
112
+ /**
113
+ * 获取另一个度量单位中的差异
114
+ * @param date 日期
115
+ * @param b 对比的时间
116
+ * @param unitOfTime 默认为毫秒
117
+ * year: 年
118
+ * month: 月
119
+ * quarter: 季度
120
+ * week: 周
121
+ * isoWeek: 周
122
+ * day: 天
123
+ * date: 天
124
+ * hour: 小时
125
+ * minute: 分钟
126
+ * second: 秒
127
+ * @param precise 是否允许小数
128
+ */
129
+ diff(date: Date, b: Date | string, unitOfTime?: unitOfTime.Diff, precise?: boolean): number;
130
+ /**
131
+ * 获取当前是周几
132
+ * 星期日, 星期一, 星期二, 星期三, 星期四, 星期五, 星期六
133
+ * @param date 日期
134
+ */
135
+ getWeekDay(date: Date): string;
136
+ }
137
+ export declare const dateHelper: DateHelper;
@@ -0,0 +1,14 @@
1
+ export declare class ExcelHelper {
2
+ /**
3
+ * 生成并下载excel
4
+ * @param datas 数据
5
+ * @param fileName 文件名
6
+ */
7
+ downloadExcel(datas: any[], fileName?: string, merges?: any): void;
8
+ /**
9
+ * 生成并加载execl 多Sheets页
10
+ * @param datas
11
+ * @param fileName
12
+ */
13
+ downloadExcelSheets(datas: Map<string, any[]>, fileName?: string): void;
14
+ }
@@ -0,0 +1,68 @@
1
+ import { Moment } from 'moment';
2
+ export declare class StringHelper {
3
+ /**
4
+ * 加密 Base64
5
+ * @param str 字符串
6
+ */
7
+ encodeToBase64(str: string): string;
8
+ /**
9
+ * 解密 Base64
10
+ * @param str 字符串
11
+ */
12
+ decodeBase64(str: string): string;
13
+ /**
14
+ * UTF-16 转 UTF-8
15
+ * @param str 字符串
16
+ */
17
+ utf16To8(str: string): string;
18
+ /**
19
+ * UTF-8 转 UTF-16
20
+ * @param str 字符串
21
+ */
22
+ utf8To16(str: string): string;
23
+ /**
24
+ * 转换为日期
25
+ * @param str 字符串
26
+ */
27
+ toDate(str: string): Date;
28
+ /**
29
+ * 转换为Moment
30
+ * @param str 字符串
31
+ */
32
+ toMoment(str: string): Moment;
33
+ /**
34
+ * 金额转换为大写
35
+ * @param str 字符串
36
+ */
37
+ convertCurrency(str: string): string;
38
+ /**
39
+ * 隐藏身份证号
40
+ * @param str 字符串
41
+ */
42
+ hiddenIDCardNum(str: string): string;
43
+ /**
44
+ * 隐藏电话号码
45
+ * @param str 字符串
46
+ */
47
+ hiddenTelNum(str: string): string;
48
+ /**
49
+ * 左补位
50
+ * @param str 字符串
51
+ * @param count
52
+ * @param pad
53
+ */
54
+ leftPad(str: string, count: number, pad?: string): string;
55
+ /**
56
+ * 加密 AES
57
+ * @param str 字符串
58
+ * @param key
59
+ */
60
+ encryptAES(str: string, key: string): string;
61
+ /**
62
+ * 解密 AES
63
+ * @param str 字符串
64
+ * @param key
65
+ */
66
+ decryptAES(str: string, key: string): string;
67
+ }
68
+ export declare const stringHelper: StringHelper;
@@ -0,0 +1,67 @@
1
+ import { Moment } from 'moment';
2
+ import { DateHelper } from "./Helper/DateHelper";
3
+ import { StringHelper } from "./Helper/StringHelper";
4
+ import { ExcelHelper } from "./Helper/ExcelHelper";
5
+ export declare class Utilities {
6
+ dateHelper: DateHelper;
7
+ stringHelper: StringHelper;
8
+ excelHelper: ExcelHelper;
9
+ /**
10
+ * 验证是否为null
11
+ * @param obj
12
+ * @returns
13
+ */
14
+ isNull: (obj: any) => boolean;
15
+ /**
16
+ * 获取值,如果为空返回默认值
17
+ * @param value
18
+ * @param defaultValue
19
+ * @returns
20
+ */
21
+ getValueNotNull: (value: any, defaultValue: any) => any;
22
+ /**
23
+ * 生成唯一编码
24
+ * @param prefix
25
+ * @returns
26
+ */
27
+ getUniqueCode: (prefix?: string) => string;
28
+ /**
29
+ * 获取当前时间
30
+ * @param format
31
+ * @returns
32
+ */
33
+ getCurrentDate: (format?: string) => string;
34
+ /**
35
+ * 日期格式化
36
+ * @param date 日期
37
+ * @param format 格式
38
+ * @returns
39
+ */
40
+ format: (date: Date | string, format?: string) => string;
41
+ /**
42
+ * 解析Api接口返回数据
43
+ * @param apiResult
44
+ * @param defaultValue
45
+ * @returns
46
+ */
47
+ parseApiResult: (apiResult: any, defaultValue?: any) => any;
48
+ /**
49
+ * 对象深复制
50
+ * @param obj
51
+ * @returns
52
+ */
53
+ deepCopy: (obj: any) => any;
54
+ /**
55
+ * 里程桩号转数字
56
+ * @param milestone
57
+ * @returns
58
+ */
59
+ getMilestone: (milestone: string) => number;
60
+ /**
61
+ * 获取 Moment
62
+ * @param date
63
+ * @returns
64
+ */
65
+ getMoment: (date: any) => Moment;
66
+ }
67
+ export declare const utilities: Utilities;
@@ -0,0 +1 @@
1
+ export * from "./Utilities";