zhengjinyi 1 gadu atpakaļ
vecāks
revīzija
6bcb0c44d7
1 mainītis faili ar 382 papildinājumiem un 382 dzēšanām
  1. 382 382
      src/main/resources/static/js/utils.js

+ 382 - 382
src/main/resources/static/js/utils.js

@@ -1,382 +1,382 @@
-/*封装部分公共方法
- * @auth zhjy
- */
-var CAIMEI = window.CAIMEI = {};
-var isWuHeng = isLocalStorageSupported();//无痕
-var AmtRegExp =/^(([1-9]\d{0,9})|0)(\.\d{1,2})?$/;
-CAIMEI.Storage = {
-    setItem:function(key,val){
-        if(isWuHeng){
-            window.localStorage.setItem(key,val);
-        }else{
-            setCookie(key,val,{maxAge:300000});
-        }
-    },
-    getItem:function(key){
-        if(isWuHeng){
-            return window.localStorage.getItem(key);
-        }else{
-            var name = getCookie(key);
-            return name;
-        }
-    },
-    removeItem:function(key){
-        if(isWuHeng){
-            return window.localStorage.removeItem(key);
-        }else{
-            var name = getCookie(key);
-            return name;
-        }
-    },
-    clear:function(){
-        if(isWuHeng){
-            window.localStorage.clear();
-        }else{
-            clearCookie();
-        }
-    }
-};
-function isLocalStorageSupported(){
-    var testKey = 'testWu',
-        storage = window.sessionStorage;
-    try {
-        storage.setItem(testKey, 'testValue');
-        storage.removeItem(testKey);
-        return true;
-    } catch (error) {
-        return false;
-    }
-};
-function getCookiesObj(){
-    var cookies = {};
-    if(document.cookie){
-        var objs = document.cookie.split('; ');
-        for(var i in objs){
-            var index = objs[i].indexOf('='),
-                name = objs[i].substr(0, index),
-                value = objs[i].substr(index + 1, objs[i].length);
-            cookies[name] = value;
-        }
-    }
-    return cookies;
-};
-function setCookie(name, value,opts){
-    if(name && value){
-        var cookie = encodeURIComponent(name) + '=' + encodeURIComponent(value);
-        if(opts){
-            if(opts.maxAge){
-                cookie += '; max-age=' + opts.maxAge;
-            }
-        }
-        document.cookie = cookie;
-    }else{
-        return '';
-    }
-};
-//获取cookie
-function getCookie(name){
-    return decodeURIComponent(getCookiesObj()[name]) || null;
-};
-//清除所有cookie
-function clearCookie(){
-    var cookies = getCookiesObj();
-    for(var key in cookies){
-        document.cookie = key + '=; max-age=0';
-    }
-};
-/*获取URL后的传递参数
- * @param key 参数的传递字段
- * @auth zhjy
- */
-CAIMEI.getUrlParam=function(key){
-    var href = window.location.href;
-    var param = href.substr(href.indexOf('?')+1).split('&'),obj={};
-    for(var i=0;i<param.length;i++){
-        var arr = param[i].split('=');
-        obj[arr[0]] = arr[1];
-    }
-    return obj[key];
-};
-/*取消,确定提示弹窗
- * @param content 提示文字信息
- * @param cancelText 自定义取消按钮文字
- * @param confitmText 自定义确认按钮文字
- * @param callback 回调函数
- * @auth zhjy
- */
-CAIMEI.Modal = function(content,cancelText,confitmText,callback){
-    $.confirm({
-        boxWidth: (isPC?'300px':'70%'),
-        title:'提示',
-        content: content,
-        closeIcon: true,
-        animation: 'opacity',
-        closeAnimation: 'opacity',
-        useBootstrap: false,
-        animateFromElement: false,
-        buttons: {
-            cancel: {
-                text: cancelText,
-                btnClass: 'btn-cancel',
-                action:function () {}
-            },
-            confirm:{
-                text: confitmText,
-                btnClass: 'btn-confirm',
-                action:function () {
-                    callback();
-                }
-            }
-        }
-    });
-};
-/*自定义双回调弹窗
- * @param  params{
- *      content, 提示文字信息
- *      confitmBtnText,自定义确认按钮文字
- *      confirmCallback, 回调函数
- *      cancelBtnText, 自定义取消按钮文字
- *      cancelCallback 回调函数
- * }
- * @auth charles
- */
-CAIMEI.Popup = function(params,confirmCallback, cancelCallback){
-    document.body.style.overflow = 'hidden';
-    $.confirm({
-        boxWidth: (isPC?'300px':'70%'),
-        title:'提示',
-        content: params.content,
-        closeIcon: params.closeIcon,
-        animation: 'opacity',
-        closeAnimation: 'opacity',
-        useBootstrap: false,
-        animateFromElement: false,
-        buttons: {
-            cancel: {
-                text: params.cancelBtnText,
-                btnClass: 'btn-cancel',
-                action: cancelCallback
-            },
-            confirm:{
-                text: params.confitmBtnText,
-                btnClass: 'btn-confirm',
-                action: confirmCallback
-            }
-        },
-        onOpen(){
-            document.body.style.overflow = 'hidden';
-        },
-        onClose(){
-            document.body.style.overflow = 'auto';
-        }
-    });
-};
-
-/*单个确定提示弹窗
- * @param content 提示文字信息
- * @param confitmText 自定义按钮文字内容
- * @param flg 判断是否需要回调函数
- * @param callback 回调函数
- * @auth zhjy
- */
-CAIMEI.Alert = function(content,confitmText,flg,callback){
-    $.confirm({
-        boxWidth: (isPC?'300px':'70%'),
-        title:'提示',
-        content: content,
-        closeIcon: true,
-        animation: 'opacity',
-        closeAnimation: 'opacity',
-        useBootstrap: false,
-        animateFromElement: false,
-        buttons: {
-            confirm:{
-                text: confitmText,
-                btnClass: 'btn-confirm',
-                action:function () {
-                    if(flg){
-                        callback();
-                    }
-                }
-            },
-        },
-        onOpen(){
-            document.body.style.overflow = 'hidden';
-        },
-        onClose(){
-            document.body.style.overflow = 'auto';
-        }
-    });
-};
-/*封装的吐司提示
- * @param content 提示文字信息
- * @param flg 判断是否需要执行回调函数
- * @param callback 回调函数
- * @auth zhjy
- */
-CAIMEI.dialog = function(content,flg,callback){
-    $.confirm({
-        title: false,
-        content: '<div class="dialog">'+content+'</div>',
-        boxWidth: (isPC?'300px':'70%'),
-        autoClose: 'close|2000',
-        useBootstrap:false,
-        buttons: {
-            close:{
-                isHidden: true,
-                action: function () {
-                    if(flg){
-                        callback()
-                    }
-                }
-            }
-        }
-    });
-};
-/*对象合并 IE 兼容方法
- * @param
- * @auth zhjy
- */
-CAIMEI.returnedTarget = function(){
-    if (typeof Object.assign != 'function') {
-        Object.assign = function(target) {
-            'use strict';
-            if (target == null) {throw new TypeError('Cannot convert undefined or null to object');}
-            target = Object(target);
-            for (var index = 1; index < arguments.length; index++) {
-                var source = arguments[index];
-                if (source != null) {
-                    for (var key in source) {
-                        if (Object.prototype.hasOwnProperty.call(source, key)) {
-                            target[key] = source[key];
-                        }
-                    }
-                }
-            }
-            return target;
-        };
-    }
-};
-/*手机校验
- * @param m 输入的手机号
- * @auth zhjy
- */
-CAIMEI.isPhone = function(mobile){
-    var reg =  /^(13[0-9]|14[579]|15[0-3,5-9]|16[6]|17[0135678]|18[0-9]|19[89])\d{8}$/;
-    return reg.test(mobile);
-};
-/*固话校验
- * @param m 输入的固定电话
- * @auth zhjy
- */
-CAIMEI.isTel = function(mobile){
-    var reg =  /^0\d{2,3}-?\d{7,8}$/;//固定电话
-    return reg.test(mobile)
-};
-/*金额格式校验
- * @param m 输入的金额
- * @auth zhjy
- */
-CAIMEI.isMoney = function(m){
-    if(!AmtRegExp.test(m)){
-        return true;
-    }else{
-        return false;
-    }
-};
-/*邮箱校验
- * @param m 输入的邮箱号
- * @auth zhjy
- */
-CAIMEI.isEmail = function(m){
-    var reg =  /^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(.[a-zA-Z0-9_-])+/;//邮箱正则
-    return reg.test(m)
-};
-CAIMEI.returnedTarget = function(){//对象合并 IE 兼容方法
-    if (typeof Object.assign != 'function') {
-        Object.assign = function(target) {
-            'use strict';
-            if (target == null) {
-                throw new TypeError('Cannot convert undefined or null to object');
-            }
-            target = Object(target);
-            for (var index = 1; index < arguments.length; index++) {
-                var source = arguments[index];
-                if (source != null) {
-                    for (var key in source) {
-                        if (Object.prototype.hasOwnProperty.call(source, key)) {
-                            target[key] = source[key];
-                        }
-                    }
-                }
-            }
-            return target;
-        };
-    }
-};
-
-/**
- * @description: 根据年份月份计算当月天数
- * @param year 年份
- * @param month 月份
- * @return 返回日期格式
- */
-function fetchDaysByYear(year, month) {
-  // 该函数没有对参数进行校验  必须确保传入年份月份为正确的数字
-  year = parseInt(year, 10);
-  month = parseInt(month, 10);
-  let days;
-  switch (month) {
-    case 1:
-    case 3:
-    case 5:
-    case 7:
-    case 8:
-    case 10:
-    case 12:
-      days = 31;
-      break;
-    case 4:
-    case 6:
-    case 9:
-    case 11:
-      days = 30;
-      break;
-    case 2:
-      // 判断是否闰年
-      if ((year % 4 === 0 && year % 100 !== 0) || year % 400 === 0) {
-        days = 29;
-      } else {
-        days = 28;
-      }
-  }
-  return days;
-}
-
-/**
- * 防抖
- * @param {Function} func 需要包装的函数
- * @param {string} wait 等待执行时间
- * @param {string} immediate 是否是立即执行 默认不立即执行
- * @returns {Function} 返回包装后的函数
- */
-function debounce(func, wait = 200, immediate = false) {
-    let timeout, result
-    return function () {
-        const context = this
-        const args = arguments
-        if (timeout) clearTimeout(timeout)
-        if (immediate) {
-            const callNow = !timeout
-            timeout = setTimeout(function () {
-                timeout = null
-            }, wait)
-            if (callNow) result = func.apply(context, args)
-        } else {
-            timeout = setTimeout(function () {
-                func.apply(context, args)
-            }, wait)
-        }
-        return result
-    }
-}
+/*封装部分公共方法
+ * @auth zhjy
+ */
+var CAIMEI = window.CAIMEI = {};
+var isWuHeng = isLocalStorageSupported();//无痕
+var AmtRegExp =/^(([1-9]\d{0,9})|0)(\.\d{1,2})?$/;
+CAIMEI.Storage = {
+    setItem:function(key,val){
+        if(isWuHeng){
+            window.localStorage.setItem(key,val);
+        }else{
+            setCookie(key,val,{maxAge:300000});
+        }
+    },
+    getItem:function(key){
+        if(isWuHeng){
+            return window.localStorage.getItem(key);
+        }else{
+            var name = getCookie(key);
+            return name;
+        }
+    },
+    removeItem:function(key){
+        if(isWuHeng){
+            return window.localStorage.removeItem(key);
+        }else{
+            var name = getCookie(key);
+            return name;
+        }
+    },
+    clear:function(){
+        if(isWuHeng){
+            window.localStorage.clear();
+        }else{
+            clearCookie();
+        }
+    }
+};
+function isLocalStorageSupported(){
+    var testKey = 'testWu',
+        storage = window.sessionStorage;
+    try {
+        storage.setItem(testKey, 'testValue');
+        storage.removeItem(testKey);
+        return true;
+    } catch (error) {
+        return false;
+    }
+};
+function getCookiesObj(){
+    var cookies = {};
+    if(document.cookie){
+        var objs = document.cookie.split('; ');
+        for(var i in objs){
+            var index = objs[i].indexOf('='),
+                name = objs[i].substr(0, index),
+                value = objs[i].substr(index + 1, objs[i].length);
+            cookies[name] = value;
+        }
+    }
+    return cookies;
+};
+function setCookie(name, value,opts){
+    if(name && value){
+        var cookie = encodeURIComponent(name) + '=' + encodeURIComponent(value);
+        if(opts){
+            if(opts.maxAge){
+                cookie += '; max-age=' + opts.maxAge;
+            }
+        }
+        document.cookie = cookie;
+    }else{
+        return '';
+    }
+};
+//获取cookie
+function getCookie(name){
+    return decodeURIComponent(getCookiesObj()[name]) || null;
+};
+//清除所有cookie
+function clearCookie(){
+    var cookies = getCookiesObj();
+    for(var key in cookies){
+        document.cookie = key + '=; max-age=0';
+    }
+};
+/*获取URL后的传递参数
+ * @param key 参数的传递字段
+ * @auth zhjy
+ */
+CAIMEI.getUrlParam=function(key){
+    var href = window.location.href;
+    var param = href.substr(href.indexOf('?')+1).split('&'),obj={};
+    for(var i=0;i<param.length;i++){
+        var arr = param[i].split('=');
+        obj[arr[0]] = arr[1];
+    }
+    return obj[key];
+};
+/*取消,确定提示弹窗
+ * @param content 提示文字信息
+ * @param cancelText 自定义取消按钮文字
+ * @param confitmText 自定义确认按钮文字
+ * @param callback 回调函数
+ * @auth zhjy
+ */
+CAIMEI.Modal = function(content,cancelText,confitmText,callback){
+    $.confirm({
+        boxWidth: (isPC?'300px':'70%'),
+        title:'提示',
+        content: content,
+        closeIcon: true,
+        animation: 'opacity',
+        closeAnimation: 'opacity',
+        useBootstrap: false,
+        animateFromElement: false,
+        buttons: {
+            cancel: {
+                text: cancelText,
+                btnClass: 'btn-cancel',
+                action:function () {}
+            },
+            confirm:{
+                text: confitmText,
+                btnClass: 'btn-confirm',
+                action:function () {
+                    callback();
+                }
+            }
+        }
+    });
+};
+/*自定义双回调弹窗
+ * @param  params{
+ *      content, 提示文字信息
+ *      confitmBtnText,自定义确认按钮文字
+ *      confirmCallback, 回调函数
+ *      cancelBtnText, 自定义取消按钮文字
+ *      cancelCallback 回调函数
+ * }
+ * @auth charles
+ */
+CAIMEI.Popup = function(params,confirmCallback, cancelCallback){
+    document.body.style.overflow = 'hidden';
+    $.confirm({
+        boxWidth: (isPC?'300px':'70%'),
+        title:'提示',
+        content: params.content,
+        closeIcon: params.closeIcon,
+        animation: 'opacity',
+        closeAnimation: 'opacity',
+        useBootstrap: false,
+        animateFromElement: false,
+        buttons: {
+            cancel: {
+                text: params.cancelBtnText,
+                btnClass: 'btn-cancel',
+                action: cancelCallback
+            },
+            confirm:{
+                text: params.confitmBtnText,
+                btnClass: 'btn-confirm',
+                action: confirmCallback
+            }
+        },
+        onOpen(){
+            document.body.style.overflow = 'hidden';
+        },
+        onClose(){
+            document.body.style.overflow = 'auto';
+        }
+    });
+};
+
+/*单个确定提示弹窗
+ * @param content 提示文字信息
+ * @param confitmText 自定义按钮文字内容
+ * @param flg 判断是否需要回调函数
+ * @param callback 回调函数
+ * @auth zhjy
+ */
+CAIMEI.Alert = function(content,confitmText,flg,callback){
+    $.confirm({
+        boxWidth: (isPC?'300px':'70%'),
+        title:'提示',
+        content: content,
+        closeIcon: true,
+        animation: 'opacity',
+        closeAnimation: 'opacity',
+        useBootstrap: false,
+        animateFromElement: false,
+        buttons: {
+            confirm:{
+                text: confitmText,
+                btnClass: 'btn-confirm',
+                action:function () {
+                    if(flg){
+                        callback();
+                    }
+                }
+            },
+        },
+        onOpen(){
+            document.body.style.overflow = 'hidden';
+        },
+        onClose(){
+            document.body.style.overflow = 'auto';
+        }
+    });
+};
+/*封装的吐司提示
+ * @param content 提示文字信息
+ * @param flg 判断是否需要执行回调函数
+ * @param callback 回调函数
+ * @auth zhjy
+ */
+CAIMEI.dialog = function(content,flg,callback){
+    $.confirm({
+        title: false,
+        content: '<div class="dialog">'+content+'</div>',
+        boxWidth: (isPC?'300px':'70%'),
+        autoClose: 'close|2000',
+        useBootstrap:false,
+        buttons: {
+            close:{
+                isHidden: true,
+                action: function () {
+                    if(flg){
+                        callback()
+                    }
+                }
+            }
+        }
+    });
+};
+/*对象合并 IE 兼容方法
+ * @param
+ * @auth zhjy
+ */
+CAIMEI.returnedTarget = function(){
+    if (typeof Object.assign != 'function') {
+        Object.assign = function(target) {
+            'use strict';
+            if (target == null) {throw new TypeError('Cannot convert undefined or null to object');}
+            target = Object(target);
+            for (var index = 1; index < arguments.length; index++) {
+                var source = arguments[index];
+                if (source != null) {
+                    for (var key in source) {
+                        if (Object.prototype.hasOwnProperty.call(source, key)) {
+                            target[key] = source[key];
+                        }
+                    }
+                }
+            }
+            return target;
+        };
+    }
+};
+/*手机校验
+ * @param m 输入的手机号
+ * @auth zhjy
+ */
+CAIMEI.isPhone = function(mobile){
+    var reg =  /^(13[0-9]|14[579]|15[0-3,5-9]|16[6]|17[0135678]|18[0-9]|19[89])\d{8}$/;
+    return reg.test(mobile);
+};
+/*固话校验
+ * @param m 输入的固定电话
+ * @auth zhjy
+ */
+CAIMEI.isTel = function(mobile){
+    var reg =  /^0\d{2,3}-?\d{7,8}$/;//固定电话
+    return reg.test(mobile)
+};
+/*金额格式校验
+ * @param m 输入的金额
+ * @auth zhjy
+ */
+CAIMEI.isMoney = function(m){
+    if(!AmtRegExp.test(m)){
+        return true;
+    }else{
+        return false;
+    }
+};
+/*邮箱校验
+ * @param m 输入的邮箱号
+ * @auth zhjy
+ */
+CAIMEI.isEmail = function(m){
+    var reg =  /^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(.[a-zA-Z0-9_-])+/;//邮箱正则
+    return reg.test(m)
+};
+CAIMEI.returnedTarget = function(){//对象合并 IE 兼容方法
+    if (typeof Object.assign != 'function') {
+        Object.assign = function(target) {
+            'use strict';
+            if (target == null) {
+                throw new TypeError('Cannot convert undefined or null to object');
+            }
+            target = Object(target);
+            for (var index = 1; index < arguments.length; index++) {
+                var source = arguments[index];
+                if (source != null) {
+                    for (var key in source) {
+                        if (Object.prototype.hasOwnProperty.call(source, key)) {
+                            target[key] = source[key];
+                        }
+                    }
+                }
+            }
+            return target;
+        };
+    }
+};
+
+/**
+ * @description: 根据年份月份计算当月天数
+ * @param year 年份
+ * @param month 月份
+ * @return 返回日期格式
+ */
+function fetchDaysByYear(year, month) {
+  // 该函数没有对参数进行校验  必须确保传入年份月份为正确的数字
+  year = parseInt(year, 10);
+  month = parseInt(month, 10);
+  let days;
+  switch (month) {
+    case 1:
+    case 3:
+    case 5:
+    case 7:
+    case 8:
+    case 10:
+    case 12:
+      days = 31;
+      break;
+    case 4:
+    case 6:
+    case 9:
+    case 11:
+      days = 30;
+      break;
+    case 2:
+      // 判断是否闰年
+      if ((year % 4 === 0 && year % 100 !== 0) || year % 400 === 0) {
+        days = 29;
+      } else {
+        days = 28;
+      }
+  }
+  return days;
+}
+
+/**
+ * 防抖
+ * @param {Function} func 需要包装的函数
+ * @param {string} wait 等待执行时间
+ * @param {string} immediate 是否是立即执行 默认不立即执行
+ * @returns {Function} 返回包装后的函数
+ */
+function debounce(func, wait = 200, immediate = false) {
+    let timeout, result
+    return function () {
+        const context = this
+        const args = arguments
+        if (timeout) clearTimeout(timeout)
+        if (immediate) {
+            const callNow = !timeout
+            timeout = setTimeout(function () {
+                timeout = null
+            }, wait)
+            if (callNow) result = func.apply(context, args)
+        } else {
+            timeout = setTimeout(function () {
+                func.apply(context, args)
+            }, wait)
+        }
+        return result
+    }
+}