|
|
@@ -1,77 +1,4 @@
|
|
|
-// 比较微信版本v1:用户当前版本;v2:当前程序所需要求兼容的版本
|
|
|
-function compareVersion(v1, v2) {
|
|
|
- v1 = v1.split('.')
|
|
|
- v2 = v2.split('.')
|
|
|
- const len = Math.max(v1.length, v2.length)
|
|
|
|
|
|
- while (v1.length < len) {
|
|
|
- v1.push('0')
|
|
|
- }
|
|
|
- while (v2.length < len) {
|
|
|
- v2.push('0')
|
|
|
- }
|
|
|
-
|
|
|
- for (let i = 0; i < len; i++) {
|
|
|
- const num1 = parseInt(v1[i])
|
|
|
- const num2 = parseInt(v2[i])
|
|
|
-
|
|
|
- if (num1 > num2) {
|
|
|
- return 1
|
|
|
- } else if (num1 < num2) {
|
|
|
- return -1
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- return 0
|
|
|
-}
|
|
|
-
|
|
|
-/* 系统当前日期+时间 */
|
|
|
-function formatTime(date) {
|
|
|
- var year = date.getFullYear()
|
|
|
- var month = date.getMonth() + 1
|
|
|
- var day = date.getDate()
|
|
|
-
|
|
|
- var hour = date.getHours()
|
|
|
- var minute = date.getMinutes()
|
|
|
- var second = date.getSeconds()
|
|
|
-
|
|
|
-
|
|
|
- return [year, month, day].map(formatNumber).join('/') + ' ' + [hour, minute, second].map(formatNumber).join(':')
|
|
|
-}
|
|
|
-
|
|
|
-function formatTime2(date) {
|
|
|
- var year = date.getFullYear()
|
|
|
- var month = date.getMonth() + 1
|
|
|
- var day = date.getDate()
|
|
|
-
|
|
|
-
|
|
|
- return [year, month, day].map(formatNumber).join('-')
|
|
|
-}
|
|
|
-
|
|
|
-function formatTime3(number, format) {
|
|
|
-
|
|
|
- var formateArr = ['Y', 'M', 'D', 'h', 'm', 's'];
|
|
|
- var returnArr = [];
|
|
|
-
|
|
|
- var date = new Date(number * 1000);
|
|
|
- returnArr.push(date.getFullYear());
|
|
|
- returnArr.push(formatNumber(date.getMonth() + 1));
|
|
|
- returnArr.push(formatNumber(date.getDate()));
|
|
|
-
|
|
|
- returnArr.push(formatNumber(date.getHours()));
|
|
|
- returnArr.push(formatNumber(date.getMinutes()));
|
|
|
- returnArr.push(formatNumber(date.getSeconds()));
|
|
|
-
|
|
|
- for (var i in returnArr) {
|
|
|
- format = format.replace(formateArr[i], returnArr[i]);
|
|
|
- }
|
|
|
- return format;
|
|
|
-}
|
|
|
-
|
|
|
-function formatNumber(n) {
|
|
|
- n = n.toString()
|
|
|
- return n[1] ? n : '0' + n
|
|
|
-}
|
|
|
/* 日期转时间戳 */
|
|
|
function timeToUnix(stringTime) {
|
|
|
if (stringTime) {
|
|
|
@@ -84,14 +11,14 @@ function timeToUnix(stringTime) {
|
|
|
}
|
|
|
/* 倒计时:时+分+秒 */
|
|
|
function changeTimeStamp(timeStamp, hasTimeRemaining) {
|
|
|
- var distancetime;
|
|
|
- if(hasTimeRemaining){
|
|
|
- distancetime = timeStamp;
|
|
|
- }else{
|
|
|
- var curTimeStamp = timeToUnix();
|
|
|
- distancetime = parseInt(timeStamp) - curTimeStamp;
|
|
|
- }
|
|
|
-
|
|
|
+ var distancetime;
|
|
|
+ if (hasTimeRemaining) {
|
|
|
+ distancetime = timeStamp;
|
|
|
+ } else {
|
|
|
+ var curTimeStamp = timeToUnix();
|
|
|
+ distancetime = parseInt(timeStamp) - curTimeStamp;
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
if (distancetime > 0) {
|
|
|
//如果大于0.说明尚未到达截止时间
|
|
|
@@ -115,491 +42,4 @@ function changeTimeStamp(timeStamp, hasTimeRemaining) {
|
|
|
} else {
|
|
|
return false
|
|
|
}
|
|
|
-}
|
|
|
-
|
|
|
-// md5
|
|
|
-function md5(string) {
|
|
|
- var x = Array();
|
|
|
- var k, AA, BB, CC, DD, a, b, c, d;
|
|
|
- var S11 = 7,
|
|
|
- S12 = 12,
|
|
|
- S13 = 17,
|
|
|
- S14 = 22;
|
|
|
- var S21 = 5,
|
|
|
- S22 = 9,
|
|
|
- S23 = 14,
|
|
|
- S24 = 20;
|
|
|
- var S31 = 4,
|
|
|
- S32 = 11,
|
|
|
- S33 = 16,
|
|
|
- S34 = 23;
|
|
|
- var S41 = 6,
|
|
|
- S42 = 10,
|
|
|
- S43 = 15,
|
|
|
- S44 = 21;
|
|
|
- string = Utf8Encode(string);
|
|
|
- x = ConvertToWordArray(string);
|
|
|
- a = 0x67452301;
|
|
|
- b = 0xEFCDAB89;
|
|
|
- c = 0x98BADCFE;
|
|
|
- d = 0x10325476;
|
|
|
- for (k = 0; k < x.length; k += 16) {
|
|
|
- AA = a;
|
|
|
- BB = b;
|
|
|
- CC = c;
|
|
|
- DD = d;
|
|
|
- a = FF(a, b, c, d, x[k + 0], S11, 0xD76AA478);
|
|
|
- d = FF(d, a, b, c, x[k + 1], S12, 0xE8C7B756);
|
|
|
- c = FF(c, d, a, b, x[k + 2], S13, 0x242070DB);
|
|
|
- b = FF(b, c, d, a, x[k + 3], S14, 0xC1BDCEEE);
|
|
|
- a = FF(a, b, c, d, x[k + 4], S11, 0xF57C0FAF);
|
|
|
- d = FF(d, a, b, c, x[k + 5], S12, 0x4787C62A);
|
|
|
- c = FF(c, d, a, b, x[k + 6], S13, 0xA8304613);
|
|
|
- b = FF(b, c, d, a, x[k + 7], S14, 0xFD469501);
|
|
|
- a = FF(a, b, c, d, x[k + 8], S11, 0x698098D8);
|
|
|
- d = FF(d, a, b, c, x[k + 9], S12, 0x8B44F7AF);
|
|
|
- c = FF(c, d, a, b, x[k + 10], S13, 0xFFFF5BB1);
|
|
|
- b = FF(b, c, d, a, x[k + 11], S14, 0x895CD7BE);
|
|
|
- a = FF(a, b, c, d, x[k + 12], S11, 0x6B901122);
|
|
|
- d = FF(d, a, b, c, x[k + 13], S12, 0xFD987193);
|
|
|
- c = FF(c, d, a, b, x[k + 14], S13, 0xA679438E);
|
|
|
- b = FF(b, c, d, a, x[k + 15], S14, 0x49B40821);
|
|
|
- a = GG(a, b, c, d, x[k + 1], S21, 0xF61E2562);
|
|
|
- d = GG(d, a, b, c, x[k + 6], S22, 0xC040B340);
|
|
|
- c = GG(c, d, a, b, x[k + 11], S23, 0x265E5A51);
|
|
|
- b = GG(b, c, d, a, x[k + 0], S24, 0xE9B6C7AA);
|
|
|
- a = GG(a, b, c, d, x[k + 5], S21, 0xD62F105D);
|
|
|
- d = GG(d, a, b, c, x[k + 10], S22, 0x2441453);
|
|
|
- c = GG(c, d, a, b, x[k + 15], S23, 0xD8A1E681);
|
|
|
- b = GG(b, c, d, a, x[k + 4], S24, 0xE7D3FBC8);
|
|
|
- a = GG(a, b, c, d, x[k + 9], S21, 0x21E1CDE6);
|
|
|
- d = GG(d, a, b, c, x[k + 14], S22, 0xC33707D6);
|
|
|
- c = GG(c, d, a, b, x[k + 3], S23, 0xF4D50D87);
|
|
|
- b = GG(b, c, d, a, x[k + 8], S24, 0x455A14ED);
|
|
|
- a = GG(a, b, c, d, x[k + 13], S21, 0xA9E3E905);
|
|
|
- d = GG(d, a, b, c, x[k + 2], S22, 0xFCEFA3F8);
|
|
|
- c = GG(c, d, a, b, x[k + 7], S23, 0x676F02D9);
|
|
|
- b = GG(b, c, d, a, x[k + 12], S24, 0x8D2A4C8A);
|
|
|
- a = HH(a, b, c, d, x[k + 5], S31, 0xFFFA3942);
|
|
|
- d = HH(d, a, b, c, x[k + 8], S32, 0x8771F681);
|
|
|
- c = HH(c, d, a, b, x[k + 11], S33, 0x6D9D6122);
|
|
|
- b = HH(b, c, d, a, x[k + 14], S34, 0xFDE5380C);
|
|
|
- a = HH(a, b, c, d, x[k + 1], S31, 0xA4BEEA44);
|
|
|
- d = HH(d, a, b, c, x[k + 4], S32, 0x4BDECFA9);
|
|
|
- c = HH(c, d, a, b, x[k + 7], S33, 0xF6BB4B60);
|
|
|
- b = HH(b, c, d, a, x[k + 10], S34, 0xBEBFBC70);
|
|
|
- a = HH(a, b, c, d, x[k + 13], S31, 0x289B7EC6);
|
|
|
- d = HH(d, a, b, c, x[k + 0], S32, 0xEAA127FA);
|
|
|
- c = HH(c, d, a, b, x[k + 3], S33, 0xD4EF3085);
|
|
|
- b = HH(b, c, d, a, x[k + 6], S34, 0x4881D05);
|
|
|
- a = HH(a, b, c, d, x[k + 9], S31, 0xD9D4D039);
|
|
|
- d = HH(d, a, b, c, x[k + 12], S32, 0xE6DB99E5);
|
|
|
- c = HH(c, d, a, b, x[k + 15], S33, 0x1FA27CF8);
|
|
|
- b = HH(b, c, d, a, x[k + 2], S34, 0xC4AC5665);
|
|
|
- a = II(a, b, c, d, x[k + 0], S41, 0xF4292244);
|
|
|
- d = II(d, a, b, c, x[k + 7], S42, 0x432AFF97);
|
|
|
- c = II(c, d, a, b, x[k + 14], S43, 0xAB9423A7);
|
|
|
- b = II(b, c, d, a, x[k + 5], S44, 0xFC93A039);
|
|
|
- a = II(a, b, c, d, x[k + 12], S41, 0x655B59C3);
|
|
|
- d = II(d, a, b, c, x[k + 3], S42, 0x8F0CCC92);
|
|
|
- c = II(c, d, a, b, x[k + 10], S43, 0xFFEFF47D);
|
|
|
- b = II(b, c, d, a, x[k + 1], S44, 0x85845DD1);
|
|
|
- a = II(a, b, c, d, x[k + 8], S41, 0x6FA87E4F);
|
|
|
- d = II(d, a, b, c, x[k + 15], S42, 0xFE2CE6E0);
|
|
|
- c = II(c, d, a, b, x[k + 6], S43, 0xA3014314);
|
|
|
- b = II(b, c, d, a, x[k + 13], S44, 0x4E0811A1);
|
|
|
- a = II(a, b, c, d, x[k + 4], S41, 0xF7537E82);
|
|
|
- d = II(d, a, b, c, x[k + 11], S42, 0xBD3AF235);
|
|
|
- c = II(c, d, a, b, x[k + 2], S43, 0x2AD7D2BB);
|
|
|
- b = II(b, c, d, a, x[k + 9], S44, 0xEB86D391);
|
|
|
- a = AddUnsigned(a, AA);
|
|
|
- b = AddUnsigned(b, BB);
|
|
|
- c = AddUnsigned(c, CC);
|
|
|
- d = AddUnsigned(d, DD);
|
|
|
- }
|
|
|
- var temp = WordToHex(a) + WordToHex(b) + WordToHex(c) + WordToHex(d);
|
|
|
- return temp.toUpperCase();
|
|
|
-}
|
|
|
-
|
|
|
-function RotateLeft(lValue, iShiftBits) {
|
|
|
- return (lValue << iShiftBits) | (lValue >>> (32 - iShiftBits));
|
|
|
-}
|
|
|
-
|
|
|
-function AddUnsigned(lX, lY) {
|
|
|
- var lX4, lY4, lX8, lY8, lResult;
|
|
|
- lX8 = (lX & 0x80000000);
|
|
|
- lY8 = (lY & 0x80000000);
|
|
|
- lX4 = (lX & 0x40000000);
|
|
|
- lY4 = (lY & 0x40000000);
|
|
|
- lResult = (lX & 0x3FFFFFFF) + (lY & 0x3FFFFFFF);
|
|
|
- if (lX4 & lY4) {
|
|
|
- return (lResult ^ 0x80000000 ^ lX8 ^ lY8);
|
|
|
- }
|
|
|
- if (lX4 | lY4) {
|
|
|
- if (lResult & 0x40000000) {
|
|
|
- return (lResult ^ 0xC0000000 ^ lX8 ^ lY8);
|
|
|
- } else {
|
|
|
- return (lResult ^ 0x40000000 ^ lX8 ^ lY8);
|
|
|
- }
|
|
|
- } else {
|
|
|
- return (lResult ^ lX8 ^ lY8);
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
-function F(x, y, z) {
|
|
|
- return (x & y) | ((~x) & z);
|
|
|
-}
|
|
|
-
|
|
|
-function G(x, y, z) {
|
|
|
- return (x & z) | (y & (~z));
|
|
|
-}
|
|
|
-
|
|
|
-function H(x, y, z) {
|
|
|
- return (x ^ y ^ z);
|
|
|
-}
|
|
|
-
|
|
|
-function I(x, y, z) {
|
|
|
- return (y ^ (x | (~z)));
|
|
|
-}
|
|
|
-
|
|
|
-function FF(a, b, c, d, x, s, ac) {
|
|
|
- a = AddUnsigned(a, AddUnsigned(AddUnsigned(F(b, c, d), x), ac));
|
|
|
- return AddUnsigned(RotateLeft(a, s), b);
|
|
|
-}
|
|
|
-
|
|
|
-function GG(a, b, c, d, x, s, ac) {
|
|
|
- a = AddUnsigned(a, AddUnsigned(AddUnsigned(G(b, c, d), x), ac));
|
|
|
- return AddUnsigned(RotateLeft(a, s), b);
|
|
|
-}
|
|
|
-
|
|
|
-function HH(a, b, c, d, x, s, ac) {
|
|
|
- a = AddUnsigned(a, AddUnsigned(AddUnsigned(H(b, c, d), x), ac));
|
|
|
- return AddUnsigned(RotateLeft(a, s), b);
|
|
|
-}
|
|
|
-
|
|
|
-function II(a, b, c, d, x, s, ac) {
|
|
|
- a = AddUnsigned(a, AddUnsigned(AddUnsigned(I(b, c, d), x), ac));
|
|
|
- return AddUnsigned(RotateLeft(a, s), b);
|
|
|
-}
|
|
|
-
|
|
|
-function ConvertToWordArray(string) {
|
|
|
- var lWordCount;
|
|
|
- var lMessageLength = string.length;
|
|
|
- var lNumberOfWords_temp1 = lMessageLength + 8;
|
|
|
- var lNumberOfWords_temp2 = (lNumberOfWords_temp1 - (lNumberOfWords_temp1 % 64)) / 64;
|
|
|
- var lNumberOfWords = (lNumberOfWords_temp2 + 1) * 16;
|
|
|
- var lWordArray = Array(lNumberOfWords - 1);
|
|
|
- var lBytePosition = 0;
|
|
|
- var lByteCount = 0;
|
|
|
- while (lByteCount < lMessageLength) {
|
|
|
- lWordCount = (lByteCount - (lByteCount % 4)) / 4;
|
|
|
- lBytePosition = (lByteCount % 4) * 8;
|
|
|
- lWordArray[lWordCount] = (lWordArray[lWordCount] | (string.charCodeAt(lByteCount) << lBytePosition));
|
|
|
- lByteCount++;
|
|
|
- }
|
|
|
- lWordCount = (lByteCount - (lByteCount % 4)) / 4;
|
|
|
- lBytePosition = (lByteCount % 4) * 8;
|
|
|
- lWordArray[lWordCount] = lWordArray[lWordCount] | (0x80 << lBytePosition);
|
|
|
- lWordArray[lNumberOfWords - 2] = lMessageLength << 3;
|
|
|
- lWordArray[lNumberOfWords - 1] = lMessageLength >>> 29;
|
|
|
- return lWordArray;
|
|
|
-}
|
|
|
-
|
|
|
-function WordToHex(lValue) {
|
|
|
- var WordToHexValue = "",
|
|
|
- WordToHexValue_temp = "",
|
|
|
- lByte, lCount;
|
|
|
- for (lCount = 0; lCount <= 3; lCount++) {
|
|
|
- lByte = (lValue >>> (lCount * 8)) & 255;
|
|
|
- WordToHexValue_temp = "0" + lByte.toString(16);
|
|
|
- WordToHexValue = WordToHexValue + WordToHexValue_temp.substr(WordToHexValue_temp.length - 2, 2);
|
|
|
- }
|
|
|
- return WordToHexValue;
|
|
|
-}
|
|
|
-
|
|
|
-function Utf8Encode(string) {
|
|
|
- var utftext = "";
|
|
|
- for (var n = 0; n < string.length; n++) {
|
|
|
- var c = string.charCodeAt(n);
|
|
|
- if (c < 128) {
|
|
|
- utftext += String.fromCharCode(c);
|
|
|
- } else if ((c > 127) && (c < 2048)) {
|
|
|
- utftext += String.fromCharCode((c >> 6) | 192);
|
|
|
- utftext += String.fromCharCode((c & 63) | 128);
|
|
|
- } else {
|
|
|
- utftext += String.fromCharCode((c >> 12) | 224);
|
|
|
- utftext += String.fromCharCode(((c >> 6) & 63) | 128);
|
|
|
- utftext += String.fromCharCode((c & 63) | 128);
|
|
|
- }
|
|
|
- }
|
|
|
- return utftext;
|
|
|
-}
|
|
|
-// md5 end
|
|
|
-
|
|
|
-// base64_encode
|
|
|
-function base64_encode(str) { // 编码,配合encodeURIComponent使用
|
|
|
- var c1, c2, c3;
|
|
|
- var base64EncodeChars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
|
|
|
- var i = 0,
|
|
|
- len = str.length,
|
|
|
- strin = '';
|
|
|
- while (i < len) {
|
|
|
- c1 = str.charCodeAt(i++) & 0xff;
|
|
|
- if (i == len) {
|
|
|
- strin += base64EncodeChars.charAt(c1 >> 2);
|
|
|
- strin += base64EncodeChars.charAt((c1 & 0x3) << 4);
|
|
|
- strin += "==";
|
|
|
- break;
|
|
|
- }
|
|
|
- c2 = str.charCodeAt(i++);
|
|
|
- if (i == len) {
|
|
|
- strin += base64EncodeChars.charAt(c1 >> 2);
|
|
|
- strin += base64EncodeChars.charAt(((c1 & 0x3) << 4) | ((c2 & 0xF0) >> 4));
|
|
|
- strin += base64EncodeChars.charAt((c2 & 0xF) << 2);
|
|
|
- strin += "=";
|
|
|
- break;
|
|
|
- }
|
|
|
- c3 = str.charCodeAt(i++);
|
|
|
- strin += base64EncodeChars.charAt(c1 >> 2);
|
|
|
- strin += base64EncodeChars.charAt(((c1 & 0x3) << 4) | ((c2 & 0xF0) >> 4));
|
|
|
- strin += base64EncodeChars.charAt(((c2 & 0xF) << 2) | ((c3 & 0xC0) >> 6));
|
|
|
- strin += base64EncodeChars.charAt(c3 & 0x3F)
|
|
|
- }
|
|
|
- return strin
|
|
|
-}
|
|
|
-
|
|
|
-function base64_decode(input) { // 解码,配合decodeURIComponent使用
|
|
|
- var base64EncodeChars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
|
|
|
- var output = "";
|
|
|
- var chr1, chr2, chr3;
|
|
|
- var enc1, enc2, enc3, enc4;
|
|
|
- var i = 0;
|
|
|
- input = input.replace(/[^A-Za-z0-9\+\/\=]/g, "");
|
|
|
- while (i < input.length) {
|
|
|
- enc1 = base64EncodeChars.indexOf(input.charAt(i++));
|
|
|
- enc2 = base64EncodeChars.indexOf(input.charAt(i++));
|
|
|
- enc3 = base64EncodeChars.indexOf(input.charAt(i++));
|
|
|
- enc4 = base64EncodeChars.indexOf(input.charAt(i++));
|
|
|
- chr1 = (enc1 << 2) | (enc2 >> 4);
|
|
|
- chr2 = ((enc2 & 15) << 4) | (enc3 >> 2);
|
|
|
- chr3 = ((enc3 & 3) << 6) | enc4;
|
|
|
- output = output + String.fromCharCode(chr1);
|
|
|
- if (enc3 != 64) {
|
|
|
- output = output + String.fromCharCode(chr2);
|
|
|
- }
|
|
|
- if (enc4 != 64) {
|
|
|
- output = output + String.fromCharCode(chr3);
|
|
|
- }
|
|
|
- }
|
|
|
- return utf8_decode(output);
|
|
|
-}
|
|
|
-
|
|
|
-
|
|
|
-function utf8_decode(utftext) { // utf-8解码
|
|
|
- var string = '';
|
|
|
- let i = 0;
|
|
|
- let c = 0;
|
|
|
- let c1 = 0;
|
|
|
- let c2 = 0;
|
|
|
- while (i < utftext.length) {
|
|
|
- c = utftext.charCodeAt(i);
|
|
|
- if (c < 128) {
|
|
|
- string += String.fromCharCode(c);
|
|
|
- i++;
|
|
|
- } else if ((c > 191) && (c < 224)) {
|
|
|
- c1 = utftext.charCodeAt(i + 1);
|
|
|
- string += String.fromCharCode(((c & 31) << 6) | (c1 & 63));
|
|
|
- i += 2;
|
|
|
- } else {
|
|
|
- c1 = utftext.charCodeAt(i + 1);
|
|
|
- c2 = utftext.charCodeAt(i + 2);
|
|
|
- string += String.fromCharCode(((c & 15) << 12) | ((c1 & 63) << 6) | (c2 & 63));
|
|
|
- i += 3;
|
|
|
- }
|
|
|
- }
|
|
|
- return string;
|
|
|
-}
|
|
|
-// base64_encode end
|
|
|
-
|
|
|
-// emoji图片表情转表情字符串
|
|
|
-function emoji_utf16toEntities(str='') {
|
|
|
- var patt = /[\ud800-\udbff][\udc00-\udfff]/g; // 检测utf16字符正则
|
|
|
- str = str.replace(patt, function (char) {
|
|
|
- var H, L, code;
|
|
|
- if (char.length === 2) {
|
|
|
- H = char.charCodeAt(0); // 取出高位
|
|
|
- L = char.charCodeAt(1); // 取出低位
|
|
|
- code = (H - 0xD800) * 0x400 + 0x10000 + L - 0xDC00; // 转换算法
|
|
|
- return "&#" + code + ";";
|
|
|
- } else {
|
|
|
- return char;
|
|
|
- }
|
|
|
- });
|
|
|
- return str;
|
|
|
-}
|
|
|
-
|
|
|
-// 表情字符串转emoji图片表情
|
|
|
-function emoji_uncodeUtf16(str='') {
|
|
|
- var reg = /\&#.*?;/g;
|
|
|
- var result = str.replace(reg, function (char) {
|
|
|
- var H, L, code;
|
|
|
- if (char.length == 9) {
|
|
|
- code = parseInt(char.match(/[0-9]+/g));
|
|
|
- H = Math.floor((code - 0x10000) / 0x400) + 0xD800;
|
|
|
- L = (code - 0x10000) % 0x400 + 0xDC00;
|
|
|
- return unescape("%u" + H.toString(16) + "%u" + L.toString(16));
|
|
|
- } else {
|
|
|
- return char;
|
|
|
- }
|
|
|
- });
|
|
|
- return result;
|
|
|
-}
|
|
|
-// 时间戳转日期
|
|
|
-function formatDateTime(timeStamp, type = 'datetime', delimiter = '-') {
|
|
|
- var date = new Date();
|
|
|
- // date.setTime(timeStamp / 1000);
|
|
|
- date.setTime(timeStamp);
|
|
|
- var y = date.getFullYear();
|
|
|
- var m = date.getMonth() + 1;
|
|
|
- m = m < 10 ? ('0' + m) : m;
|
|
|
- var d = date.getDate();
|
|
|
- d = d < 10 ? ('0' + d) : d;
|
|
|
- var h = date.getHours();
|
|
|
- h = h < 10 ? ('0' + h) : h;
|
|
|
- var minute = date.getMinutes();
|
|
|
- var second = date.getSeconds();
|
|
|
- minute = minute < 10 ? ('0' + minute) : minute;
|
|
|
- second = second < 10 ? ('0' + second) : second;
|
|
|
- if (type == 'date') {
|
|
|
- return y + delimiter + m + delimiter + d;
|
|
|
- }
|
|
|
- if (type == 'datehm') {
|
|
|
- return y + delimiter + m + delimiter + d + ' ' + h + ':' + minute;
|
|
|
- }
|
|
|
- if (type == 'hz') {
|
|
|
- return y + "年" + m + "月" + d + '日 ' + h + '时' + minute + '分' + second + '秒';
|
|
|
- }
|
|
|
- if (type == 'hzhm') {
|
|
|
- return y + "年" + m + "月" + d + '日 ' + h + '时' + minute + '分';
|
|
|
- }
|
|
|
- return y + delimiter + m + delimiter + d + ' ' + h + ':' + minute + ':' + second;
|
|
|
-};
|
|
|
-/**
|
|
|
- * canvas绘图相关,把文字转化成只能行数,多余显示省略号
|
|
|
- * ctx: 当前的canvas
|
|
|
- * text: 文本
|
|
|
- * contentWidth: 文本最大宽度
|
|
|
- * lineNumber: 显示几行
|
|
|
- */
|
|
|
-function transformContentToMultiLineText(ctx, text='', contentWidth, lineNumber) {
|
|
|
- var textArray = text.split(""); // 分割成字符串数组
|
|
|
- var temp = "";
|
|
|
- var row = [];
|
|
|
-
|
|
|
- for (var i = 0; i < textArray.length; i++) {
|
|
|
- if (ctx.measureText(temp).width < contentWidth) {
|
|
|
- temp += textArray[i];
|
|
|
- } else {
|
|
|
- i--; // 这里添加i--是为了防止字符丢失
|
|
|
- row.push(temp);
|
|
|
- temp = "";
|
|
|
- }
|
|
|
- }
|
|
|
- row.push(temp);
|
|
|
-
|
|
|
- // 如果数组长度大于2,则截取前两个
|
|
|
- if (row.length > lineNumber) {
|
|
|
- var rowCut = row.slice(0, lineNumber);
|
|
|
- var rowPart = rowCut[lineNumber-1];
|
|
|
- var test = "";
|
|
|
- var empty = [];
|
|
|
- for (var a = 0; a < rowPart.length; a++) {
|
|
|
- if (ctx.measureText(test).width < contentWidth) {
|
|
|
- test += rowPart[a];
|
|
|
- } else {
|
|
|
- break;
|
|
|
- }
|
|
|
- }
|
|
|
- empty.push(test); // 处理后面加省略号
|
|
|
- var group = empty[0] + '...'
|
|
|
- rowCut.splice(lineNumber - 1, 1, group);
|
|
|
- row = rowCut;
|
|
|
- }
|
|
|
-
|
|
|
- return row;
|
|
|
-}
|
|
|
-
|
|
|
-/* 保留两位小数 */
|
|
|
-function getTwoFloat(num = 0) {
|
|
|
- return (Math.round(num * 100) / 100).toFixed(2);
|
|
|
-}
|
|
|
-//验证手机号码
|
|
|
-function checkPhoneNum(str){
|
|
|
- if (!str || str == '') {
|
|
|
- return false;
|
|
|
- }
|
|
|
- var phoneTest = /(^1[3|4|5|6|7|8|9][0-9]{9}$)/;
|
|
|
- return phoneTest.test(str);
|
|
|
-}
|
|
|
-
|
|
|
-class ToPayOpre {
|
|
|
- // 支付
|
|
|
- toPay(info = appEv.parameter("info"), callback) {
|
|
|
- var that = this;
|
|
|
- uni.requestPayment({
|
|
|
- ...info,
|
|
|
- success: function (res) {
|
|
|
- that.payReturn(false, callback);
|
|
|
- },
|
|
|
- fail: function (res) {
|
|
|
- that.payReturn(true, callback);
|
|
|
- }
|
|
|
- })
|
|
|
- }
|
|
|
- payReturn(isFail, callback) {
|
|
|
- uni.hideLoading();
|
|
|
- // 支付失败
|
|
|
- if (isFail) {
|
|
|
- appEv.errTips('支付失败', 3000);
|
|
|
- } else {
|
|
|
- // 支付成功
|
|
|
- uni.showToast({
|
|
|
- title: '支付成功',
|
|
|
- icon: 'success',
|
|
|
- duration: 1200,
|
|
|
- mask: true
|
|
|
- })
|
|
|
- }
|
|
|
-
|
|
|
- // 跳转订单列表
|
|
|
- setTimeout(function () {
|
|
|
- if (callback) {
|
|
|
- callback(isFail);
|
|
|
- } else {
|
|
|
- uni.redirectTo({
|
|
|
- url: '/pages/chengbei-order-list/index'
|
|
|
- })
|
|
|
- }
|
|
|
- }, 1200);
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
-
|
|
|
-module.exports = {
|
|
|
- compareVersion: compareVersion,
|
|
|
- formatTime: formatTime,
|
|
|
- formatTime2: formatTime2,
|
|
|
- formatTime3: formatTime3,
|
|
|
- unxiNum: timeToUnix,
|
|
|
- changeTimeStamp: changeTimeStamp,
|
|
|
- md5: md5,
|
|
|
- base64_encode,
|
|
|
- base64_decode,
|
|
|
- utf8_decode,
|
|
|
- emoji_utf16toEntities,
|
|
|
- emoji_uncodeUtf16,
|
|
|
- formatDateTime,
|
|
|
- transformContentToMultiLineText,
|
|
|
- getTwoFloat,
|
|
|
- ToPayOpre
|
|
|
}
|