123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348 |
- export default {
-
- asyncTasks(promise) {
- return promise.then(data => {
- return [null, data];
- }).catch(err => [err]);
- },
-
- isObject(val) {
- return Object.prototype.toString.call(val) === '[object Object]' && val !== null && val !== undefined;
- },
-
- isArray(val) {
- return Object.prototype.toString.call(val) === '[object Array]';
- },
-
- isString(val) {
- return Object.prototype.toString.call(val) === '[object String]';
- },
-
- isDate(val) {
- return Object.prototype.toString.call(val) === '[object Date]';
- },
-
- isFunction(val) {
- return Object.prototype.toString.call(val) === '[object Function]';
- },
-
- isNumber(val) {
- return Object.prototype.toString.call(val) === '[object Number]';
- },
-
- isBoolean(val) {
- return Object.prototype.toString.call(val) === '[object Boolean]';
- },
-
- isAbsoluteURL(url) {
-
-
- return /^([a-z][a-z\d\+\-\.]*:)?\/\//i.test(url);
- },
-
- combineURLs(baseURL, relativeURL) {
- return relativeURL && this.isString(relativeURL) && this.isString(baseURL) ? baseURL.replace(/\/+$/, '') + '/' +
- relativeURL.replace(/^\/+/, '') : baseURL;
- },
-
- deepMargeObject(FirstOBJ, SecondOBJ) {
- let ResultOBJ = {};
- for (let key in FirstOBJ) {
- ResultOBJ[key] = ResultOBJ[key] && ResultOBJ[key].toString() === "[object Object]" ? this.deepMargeObject(ResultOBJ[
- key], FirstOBJ[key]) : ResultOBJ[key] = FirstOBJ[key];
- }
- for (let key in SecondOBJ) {
- ResultOBJ[key] = ResultOBJ[key] && ResultOBJ[key].toString() === "[object Object]" ? this.deepMargeObject(ResultOBJ[
- key], SecondOBJ[key]) : ResultOBJ[key] = SecondOBJ[key];
- }
- return ResultOBJ;
- },
-
-
- randomString(min, max) {
- let returnStr = "",
- range = (max ? Math.round(Math.random() * (max - min)) + min : min),
- arr = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l',
- 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I',
- 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'
- ];
- for (let i = 0; i < range; i++) {
- let index = Math.round(Math.random() * (arr.length - 1));
- returnStr += arr[index];
- }
- return returnStr;
- },
-
- formatDate(date) {
- let YYYY = null;
- let M = null;
- let MM = null;
- let D = null;
- let DD = null;
- let h = null;
- let hh = null;
- let m = null;
- let mm = null;
- let s = null;
- let ss = null;
- let ms = null;
- let ms2 = null;
- let ms3 = null;
- let ms4 = null;
- let dt = null;
-
- if (date && this.isString(date)) {
-
- let dtArr = date.replace(/\//g, '.').replace(/-/g, '.').replace(/:/g, '.').replace(/T/g, ' ').replace(' ', '.').replace(
- 'Z', '').split('.');
- let year = 2020;
- let month = 12;
- let day = 18;
- let hour = 0;
- let minute = 0;
- let second = 0;
- let millisecond = 0;
-
-
- if (dtArr.length > 0 && !isNaN(dtArr[0])) {
- year = parseInt(dtArr[0]);
- }
-
- if (dtArr.length > 1 && !isNaN(dtArr[1])) {
- month = parseInt(dtArr[1]);
- }
-
- if (dtArr.length > 2 && !isNaN(dtArr[2])) {
- day = parseInt(dtArr[2]);
- }
-
- if (dtArr.length > 3 && !isNaN(dtArr[3])) {
- hour = parseInt(dtArr[3]);
- }
-
- if (dtArr.length > 4 && !isNaN(dtArr[4])) {
- minute = parseInt(dtArr[4]);
- }
-
- if (dtArr.length > 5 && !isNaN(dtArr[5])) {
- second = parseInt(dtArr[5]);
- }
-
- if (dtArr.length > 6 && !isNaN(dtArr[6])) {
- millisecond = parseInt(dtArr[6]);
- }
- date = new Date(year, month - 1, day, hour, minute, second, millisecond);
- }
-
- if (date && this.isDate(date)) {
- YYYY = date.getFullYear();
- M = date.getMonth() + 1;
- MM = M >= 10 ? M : '0' + M;
- D = date.getDate();
- DD = D >= 10 ? D : '0' + D;
- h = date.getHours();
- hh = h >= 10 ? h : '0' + h;
- m = date.getMinutes();
- mm = m >= 10 ? m : '0' + m;
- s = date.getSeconds();
- ss = s >= 10 ? s : '0' + s;
- ms = date.getMilliseconds();
- ms2 = ms;
- ms3 = ms;
- ms4 = ms;
- if (ms < 10) {
- ms2 = '0' + ms;
- ms3 = '00' + ms;
- ms4 = '000' + ms;
- } else if (ms < 100) {
- ms3 = '0' + ms;
- ms4 = '00' + ms;
- } else {
- ms4 = '0' + ms;
- }
- }
-
- let result = {
- YYYY: YYYY,
- MM: MM,
- M: M,
- DD: DD,
- D: D,
- hh: hh,
- h: h,
- mm: mm,
- m: m,
- ss: ss,
- s: s,
- ms: ms,
- ms2: ms2,
- ms3: ms3,
- ms4: ms4,
- dt: date,
- f1: `${YYYY}-${MM}-${DD}`,
- f2: `${YYYY}年${M}月${D}日`,
- f3: `${YYYY}-${M}-${D} ${hh}:${mm}`,
- f4: `${h}:${m}:${s}`,
- f5: `${MM}-${DD}`,
- f6: `${YYYY}-${MM}`,
- f7: `${YYYY}年${M}月`,
- f8: `${h}:${m}`,
- f9: `${M}月${D}日`,
- notes: 'YYYY(年),MM(月,补0),M(月,不补0),DD(日,补0),D(日,不补0),hh(时,补0),h(时,不补0),mm(分,补0),m(分,不补0),ss(秒,补0),s(秒,不补0),ms(毫秒,不补0),ms2(毫秒,补0到2位),ms3(毫秒,补0到3位),ms4(毫秒,补0到4位),其余的f1,f2,... 看格式就知道了!'
- };
- return result;
- },
-
- numberToChinese(num) {
- if (!/^\d*(\.\d*)?$/.test(num)) return "Number is wrong!";
- let AA = new Array("零", "一", "二", "三", "四", "五", "六", "七", "八", "九");
- let BB = new Array("", "十", "百", "千", "万", "亿", "点", "");
- let a = ("" + num).replace(/(^0*)/g, "").split("."),
- k = 0,
- re = "";
- for (let i = a[0].length - 1; i >= 0; i--) {
- switch (k) {
- case 0:
- re = BB[7] + re;
- break;
- case 4:
- if (!new RegExp("0{4}\\d{" + (a[0].length - i - 1) + "}$").test(a[0]))
- re = BB[4] + re;
- break;
- case 8:
- re = BB[5] + re;
- BB[7] = BB[5];
- k = 0;
- break;
- }
- if (k % 4 == 2 && a[0].charAt(i + 2) != 0 && a[0].charAt(i + 1) == 0) re = AA[0] + re;
- if (a[0].charAt(i) != 0) re = AA[a[0].charAt(i)] + BB[k % 4] + re;
- k++;
- }
- if (a.length > 1)
- {
- re += BB[6];
- for (let i = 0; i < a[1].length; i++) re += AA[a[1].charAt(i)];
- }
- return re;
- },
-
-
- calcDistance(lng1, lat1, lng2, lat2) {
- var radLat1 = lat1 * Math.PI / 180.0;
- var radLat2 = lat2 * Math.PI / 180.0;
- var a = radLat1 - radLat2;
- var b = lng1 * Math.PI / 180.0 - lng2 * Math.PI / 180.0;
- var s = 2 * Math.asin(Math.sqrt(Math.pow(Math.sin(a / 2), 2) +
- Math.cos(radLat1) * Math.cos(radLat2) * Math.pow(Math.sin(b / 2), 2)));
- s = s * 6378.137;
- s = Math.round(s * 10000) / 10000;
- return s;
- },
-
-
- getArrayMixValueIndex(arrar) {
- let min = arrar[0];
- let index = 0;
- for (let i = 0; i < arrar.length; i++) {
- if (min > arrar[i]) {
- min = arrar[i];
- index = i;
- }
- }
- return index;
- }
- }
|