|
|
@@ -0,0 +1,182 @@
|
|
|
+/**
|
|
|
+ * 通用工具类
|
|
|
+ */
|
|
|
+(function() {
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 地址栏获取参数
|
|
|
+ * @param name 参数名称
|
|
|
+ * @return {*}
|
|
|
+ */
|
|
|
+ function getParameter(name) {
|
|
|
+ try {
|
|
|
+ var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");
|
|
|
+ var r = window.location.search.substr(1).match(reg);
|
|
|
+ if (r != null) {
|
|
|
+ return decodeURI(r[2]);
|
|
|
+ }
|
|
|
+ return null;
|
|
|
+ } catch (e) {
|
|
|
+ log(e.message);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ //日期处理
|
|
|
+ var date = {
|
|
|
+ //格式化时间
|
|
|
+ fmt: function(date, fmt) {
|
|
|
+ var date = new Date(date);
|
|
|
+ log(fmt);
|
|
|
+ if (fmt == undefined || validator.isEmpty(fmt)) {
|
|
|
+ fmt = "yyyy-mm-dd";
|
|
|
+ }
|
|
|
+ var o = {
|
|
|
+ "M+": date.getMonth() + 1, //月份
|
|
|
+ "d+": date.getDate(), //日
|
|
|
+ "h+": date.getHours(), //小时
|
|
|
+ "m+": date.getMinutes(), //分
|
|
|
+ "s+": date.getSeconds(), //秒
|
|
|
+ "q+": Math.floor((date.getMonth() + 3) / 3), //季度
|
|
|
+ "S": date.getMilliseconds() //毫秒
|
|
|
+ };
|
|
|
+ if (/(y+)/.test(fmt))
|
|
|
+ fmt = fmt.replace(RegExp.$1, (date.getFullYear() + "").substr(4 - RegExp.$1.length));
|
|
|
+ for (var k in o)
|
|
|
+ if (new RegExp("(" + k + ")").test(fmt))
|
|
|
+ fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
|
|
|
+ return fmt;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ var array = {
|
|
|
+
|
|
|
+ //根据key清理arr里面重复的值
|
|
|
+ unique: function(arr, key) {
|
|
|
+ if (arr.length == 0) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ var result = [arr[0]];
|
|
|
+ for (var i = 1; i < arr.length; i++) {
|
|
|
+ var item = arr[i];
|
|
|
+ var repeat = false;
|
|
|
+ var repeat = false;
|
|
|
+ for (var j = 0; j < result.length; j++) {
|
|
|
+ if (item[key] == result[j][key]) {
|
|
|
+ if (item['write'] && result[j]['write'] == false) {
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ repeat = true;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (!repeat) {
|
|
|
+ result.push(item);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return result;
|
|
|
+ },
|
|
|
+ //根据pro属性与value移除arr对应的值
|
|
|
+ remove: function(arr, attr, value) {
|
|
|
+ for (var j = 0; j < arr.length; j++) {
|
|
|
+ if (arr[j][attr] == value) {
|
|
|
+ arr.splice(j, 1);
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ var convert = {
|
|
|
+ byte: function(bytes) {
|
|
|
+ if (isNaN(bytes)) {
|
|
|
+ return '';
|
|
|
+ }
|
|
|
+ var symbols = ['bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];
|
|
|
+ var exp = Math.floor(Math.log(bytes) / Math.log(2));
|
|
|
+ if (exp < 1) {
|
|
|
+ exp = 0;
|
|
|
+ }
|
|
|
+ var i = Math.floor(exp / 10);
|
|
|
+ bytes = bytes / Math.pow(2, 10 * i);
|
|
|
+
|
|
|
+ if (bytes.toString().length > bytes.toFixed(2).toString().length) {
|
|
|
+ bytes = bytes.toFixed(2);
|
|
|
+ }
|
|
|
+ return bytes + ' ' + symbols[i];
|
|
|
+ },
|
|
|
+
|
|
|
+ //根据经纬度计算记录
|
|
|
+ distance: function(lon1, lat1, lon2, lat2) {
|
|
|
+ var DEF_PI = 3.14159265359; // PI
|
|
|
+ var DEF_2PI = 6.28318530712; // 2*PI
|
|
|
+ var DEF_PI180 = 0.01745329252; // PI/180.0
|
|
|
+ var DEF_R = 6370693.5; // radius of earth
|
|
|
+
|
|
|
+ var ew1, ns1, ew2, ns2;
|
|
|
+ var dx, dy, dew;
|
|
|
+ var distance;
|
|
|
+ // 角度转换为弧度
|
|
|
+ ew1 = lon1 * DEF_PI180;
|
|
|
+ ns1 = lat1 * DEF_PI180;
|
|
|
+ ew2 = lon2 * DEF_PI180;
|
|
|
+ ns2 = lat2 * DEF_PI180;
|
|
|
+ // 经度差
|
|
|
+ dew = ew1 - ew2;
|
|
|
+ // 若跨东经和西经180 度,进行调整
|
|
|
+ if (dew > DEF_PI)
|
|
|
+ dew = DEF_2PI - dew;
|
|
|
+ else if (dew < -DEF_PI)
|
|
|
+ dew = DEF_2PI + dew;
|
|
|
+ dx = DEF_R * Math.cos(ns1) * dew; // 东西方向长度(在纬度圈上的投影长度)
|
|
|
+ dy = DEF_R * (ns1 - ns2); // 南北方向长度(在经度圈上的投影长度)
|
|
|
+ // 勾股定理求斜边长
|
|
|
+ distance = Math.sqrt(dx * dx + dy * dy).toFixed(0);
|
|
|
+ return distance;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ var log = function(msg) {
|
|
|
+ if (ms.debug) {
|
|
|
+ console.log(msg);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ var store = {
|
|
|
+ set: function(key, value) {
|
|
|
+ window.sessionStorage.setItem(key, value);
|
|
|
+ },
|
|
|
+ get: function(key) {
|
|
|
+ return window.sessionStorage.getItem(key);
|
|
|
+ },
|
|
|
+ remove: function(key) {
|
|
|
+ window.sessionStorage.removeItem(key);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ var cookie = {
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ var util = {
|
|
|
+ getParameter: getParameter,
|
|
|
+ date: date,
|
|
|
+ array: array,
|
|
|
+ log: log,
|
|
|
+ convert: convert,
|
|
|
+ store: store,
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ if (typeof ms != "object") {
|
|
|
+ window.ms = {};
|
|
|
+ }
|
|
|
+ window.ms.util = util;
|
|
|
+}());
|