ms group dev před 6 roky
rodič
revize
ee40ff0a94

+ 173 - 0
src/main/webapp/static/plugins/ms/1.0.0/ms.http.js

@@ -0,0 +1,173 @@
+(function() {
+
+    axios.defaults.timeout = 1000 * 60;
+    axios.defaults.baseURL = ''; 
+
+    //http request 拦截器
+    axios.interceptors.request.use(
+
+        function(config) {
+            config.headers = {
+                'Content-Type': 'application/x-www-form-urlencoded',
+                'X-Requested-With': 'XMLHttpRequest'
+            }
+            if (config.method === 'post' && config.headers["Content-Type"] === "application/x-www-form-urlencoded") {
+                config.data = Qs.stringify(config.data, {
+                    allowDots: true
+                });
+            }
+            return config;
+        },
+        function(error) {
+            return Promise.reject(err);
+        }
+    );
+
+
+    //http response 拦截器
+    axios.interceptors.response.use(
+        function(response) {
+            //登录失效
+            if (response.data.bizCode == "401") {
+                window.parent.location.href = ms.base + "/" + ms.login + "?backurl=" + encodeURIComponent(window.parent.location.href);
+                return;
+            }
+            return response;
+        },
+        function(error) {
+            return Promise.reject(error)
+        }
+    )
+
+    function ajax(conf) {
+        if (conf != undefined) {
+            var _axios = axios.create({
+                baseURL: conf.baseURL == undefined ? axios.defaults.baseURL : conf.baseURL,
+                timeout: conf.timeout == undefined ? axios.defaults.timeout : conf.timeout,
+                headers: conf.headers == undefined ? null : conf.headers,
+            });
+            _axios.interceptors.request.use(
+                function(config) {
+                    if (config.method === 'post' && config.headers["Content-Type"] === "application/x-www-form-urlencoded") {
+                        config.data = Qs.stringify(config.data, {
+                            allowDots: true
+                        });
+                    }
+                    return config;
+                },
+                function(error) {
+                    return Promise.reject(err);
+                }
+            );
+            return _axios;
+        }
+        return axios;
+    }
+
+
+
+    /**
+     * 封装get方法
+     * @param url
+     * @param data
+     * @returns {Promise}
+     */
+
+    function get(url, params) {
+        if (params == undefined) {
+            params = {}
+        }
+        return new Promise(function(resolve, reject) {
+            ajax().get(url, {
+                    params: params
+                })
+                .then(function(response) {
+                    resolve(response.data);
+                })
+                .catch(function(err) {
+                    reject(err)
+                })
+        })
+    }
+
+
+    /**
+     * 封装post请求
+     * @param url
+     * @param data
+     * @returns {Promise}
+     */
+
+    function post(url, data, conf) {
+
+        if (data == undefined) {
+            data = {}
+        }
+
+        return new Promise(function(resolve, reject) {
+            ajax(conf).post(url, data, conf)
+                .then(function(response) {
+                    resolve(response.data);
+                }, function(err) {
+                    reject(err)
+                })
+        })
+    }
+
+    /**
+     * 封装patch请求
+     * @param url
+     * @param data
+     * @returns {Promise}
+     */
+
+    function patch(url, data, conf) {
+
+        if (data == undefined) {
+            data = {}
+        }
+        return new Promise(function(resolve, reject) {
+            ajax(conf).patch(url, data, conf)
+                .then(function(response) {
+                    resolve(response);
+                }, function(err) {
+                    reject(err)
+                })
+        })
+    }
+
+    /**
+     * 封装put请求
+     * @param url
+     * @param data
+     * @returns {Promise}
+     */
+    function put(url, data, conf) {
+
+        if (data == undefined) {
+            data = {}
+        }
+        return new Promise(function(resolve, reject) {
+            ajax(conf).put(url, data, conf)
+                .then(function(response) {
+                    resolve(response.data);
+                }, function(err) {
+                    reject(err)
+                })
+        })
+    }
+
+
+    var http = {
+        get: get,
+        post: post,
+        put: put,
+        patch: patch
+
+    }
+
+    if (typeof ms != "object") {
+        window.ms = {};
+    }
+    window.ms.http = http;
+}());

+ 11 - 0
src/main/webapp/static/plugins/ms/1.0.0/ms.js

@@ -0,0 +1,11 @@
+(function(window) {
+	var ms = {
+		base: null, //主机地址
+		login:"/login.htm", //登录页面
+		debug:true, //测试模式
+		log:function(msg) {
+			console.log(msg);
+		}
+	}
+	window.ms = ms;
+})(window); 

+ 182 - 0
src/main/webapp/static/plugins/ms/1.0.0/ms.util.js

@@ -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;
+}());