From ee40ff0a94c0e9ad8f8091fa252f8485d815db53 Mon Sep 17 00:00:00 2001 From: ms group dev Date: Tue, 9 Apr 2019 17:34:58 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B5=84=E6=BA=90=E6=9C=AC=E5=9C=B0=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../webapp/static/plugins/ms/1.0.0/ms.http.js | 173 +++++++++++++++++ src/main/webapp/static/plugins/ms/1.0.0/ms.js | 11 ++ .../webapp/static/plugins/ms/1.0.0/ms.util.js | 182 ++++++++++++++++++ 3 files changed, 366 insertions(+) create mode 100644 src/main/webapp/static/plugins/ms/1.0.0/ms.http.js create mode 100644 src/main/webapp/static/plugins/ms/1.0.0/ms.js create mode 100644 src/main/webapp/static/plugins/ms/1.0.0/ms.util.js diff --git a/src/main/webapp/static/plugins/ms/1.0.0/ms.http.js b/src/main/webapp/static/plugins/ms/1.0.0/ms.http.js new file mode 100644 index 00000000..11fc5c78 --- /dev/null +++ b/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; +}()); \ No newline at end of file diff --git a/src/main/webapp/static/plugins/ms/1.0.0/ms.js b/src/main/webapp/static/plugins/ms/1.0.0/ms.js new file mode 100644 index 00000000..8331481b --- /dev/null +++ b/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); \ No newline at end of file diff --git a/src/main/webapp/static/plugins/ms/1.0.0/ms.util.js b/src/main/webapp/static/plugins/ms/1.0.0/ms.util.js new file mode 100644 index 00000000..f438605b --- /dev/null +++ b/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; +}()); \ No newline at end of file