| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631 |
- /**
- * 是否相等
- */
- //
- // var local = window.location;
- // var contextPath = local.pathname.split("/")[1];
- // 目前只支持年-月-日这样的格式
- function compareDate(DateOne, DateTwo) {
- var OneMonth = DateOne.substring(5, DateOne.lastIndexOf("-"));
- var OneDay = DateOne.substring(DateOne.length, DateOne.lastIndexOf("-") + 1);
- var OneYear = DateOne.substring(0, DateOne.indexOf("-"));
- var TwoMonth = DateTwo.substring(5, DateTwo.lastIndexOf("-"));
- var TwoDay = DateTwo.substring(DateTwo.length, DateTwo.lastIndexOf("-") + 1);
- var TwoYear = DateTwo.substring(0, DateTwo.indexOf("-"));
- if (Date.parse(OneMonth + "/" + OneDay + "/" + OneYear) > Date.parse(TwoMonth + "/" + TwoDay + "/" + TwoYear)) {
- return true;
- } else {
- return false;
- }
- }
- function isfloat4Fn(val) {
- if (/^\d+(\.\d{1,4})?$/.test(String(val)) == false) {
- errorMessage("小数点后最多4位小数");
- return false;
- }
- return true;
- }
- jQuery.validator.addMethod("isFloat", function (value, element) {
- return this.optional(element) || /^[-\+]?\d+(\.\d+)?$/.test(value);
- }, "请输入有效的数字");
- jQuery.validator.addMethod("isFloat2Fn", function (value, element) {
- return this.optional(element) || /^\d+(\.\d{1,2})?$/.test(value);
- }, "小数点后最多2位小数");
- jQuery.validator.addMethod("isFloat4Fn", function (value, element) {
- return this.optional(element) || /^\d+(\.\d{1,4})?$/.test(value);
- }, "小数点后最多4位小数");
- jQuery.validator.addMethod("isFloat6Fn", function (value, element) {
- return this.optional(element) || /^\d+(\.\d{1,6})?$/.test(value);
- }, "小数点后最多6位小数");
- //联系电话(手机/电话皆可)验证
- jQuery.validator.addMethod("isTel", function (value, element) {
- var length = value.length;
- var mobile = /^(((13[0-9]{1})|(14[0-9]{1})|(15[0-9]{1})|(16[0-9]{1})|(17[0-9]{1})|(18[0-9]{1})|(19[0-9]{1}))+\d{8})$/;
- var tel = /^(\d{3,4}-?)?\d{7,9}$/g;
- return this.optional(element) || tel.test(value) || (length == 11 && mobile.test(value));
- }, "请填写正确的联系方式");
- //联系电话(手机)验证
- jQuery.validator.addMethod("isMobile", function (value, element) {
- var length = value.length;
- var mobile = /^(((13[0-9]{1})|(14[0-9]{1})|(15[0-9]{1})|(16[0-9]{1})|(17[0-9]{1})|(18[0-9]{1})|(19[0-9]{1}))+\d{8})$/;
- return this.optional(element) || (length == 11 && mobile.test(value));
- }, "请填写正确的联系方式");
- //邮箱验证
- jQuery.validator.addMethod("isEmail", function (value, element) {
- var length = value.length;
- var email = /^([\w-_])+(\.\w+)*@(\w)+((\.\w{2,3}){1,3})$/;
- return this.optional(element) || email.test(value);
- }, "请填写正确的邮箱");
- //判断整数value是否大于0
- jQuery.validator.addMethod("isGtZero", function (value, element) {
- var re = /^\d*$/;
- if (!re.test(value)) {
- return false;
- } else {
- return this.optional(element) || parseInt(value) > 0;
- }
- }, "请填写大于0的整数");
- //判断身份证号
- jQuery.validator.addMethod("isIdNo", function (value, element) {
- //var pattern = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/;
- return this.optional(element) || isIdCardNo(value);
- }, "请填写正确的身份证号");
- //身份证号码的验证规则
- function isIdCardNo(num) {
- //if (isNaN(num)) {alert("输入的不是数字!"); return false;}
- var len = num.length, re;
- if (len == 15)
- re = new RegExp(/^(\d{6})()?(\d{2})(\d{2})(\d{2})(\d{2})(\d|X|x)$/);
- else if (len == 18)
- re = new RegExp(/^(\d{6})()?(\d{4})(\d{2})(\d{2})(\d{3})(\d|X|x)$/);
- else {
- //alert("输入的数字位数不对。");
- return false;
- }
- var a = num.match(re);
- if (a != null) {
- if (len == 15) {
- var D = new Date("19" + a[3] + "/" + a[4] + "/" + a[5]);
- var B = D.getYear() == a[3] && (D.getMonth() + 1) == a[4] && D.getDate() == a[5];
- } else {
- var D = new Date(a[3] + "/" + a[4] + "/" + a[5]);
- var B = D.getFullYear() == a[3] && (D.getMonth() + 1) == a[4] && D.getDate() == a[5];
- }
- if (!B) {
- //alert("输入的身份证号 "+ a[0] +" 里出生日期不对。");
- return false;
- }
- }
- if (!re.test(num)) {
- //alert("身份证最后一位只能是数字和字母。");
- return false;
- }
- return true;
- }
- //浮点数加减乘除
- function accAdd(arg1, arg2) {
- var r1, r2, m;
- arg1 = parseFloat(arg1.toPrecision(12));
- arg2 = parseFloat(arg2.toPrecision(12));
- try {
- r1 = arg1.toString().split(".")[1].length
- } catch (e) {
- r1 = 0
- }
- try {
- r2 = arg2.toString().split(".")[1].length
- } catch (e) {
- r2 = 0
- }
- m = Math.pow(10, Math.max(r1, r2))
- return (arg1 * m + arg2 * m) / m;
- }
- function Subtr(arg1, arg2) {
- var r1, r2, m, n;
- try {
- r1 = arg1.toString().split(".")[1].length
- } catch (e) {
- r1 = 0
- }
- try {
- r2 = arg2.toString().split(".")[1].length
- } catch (e) {
- r2 = 0
- }
- m = Math.pow(10, Math.max(r1, r2));
- //动态控制精度长度
- n = (r1 >= r2) ? r1 : r2;
- return ((arg1 * m - arg2 * m) / m).toFixed(n);
- }
- function accMul(arg1, arg2) {
- var m = 0, s1 = arg1.toString(), s2 = arg2.toString();
- try {
- m += s1.split(".")[1].length
- } catch (e) {
- }
- try {
- m += s2.split(".")[1].length
- } catch (e) {
- }
- return Number(s1) * Number(s2) / Math.pow(10, m);
- }
- function accDiv(arg1, arg2) {
- var t1 = 0, t2 = 0, r1, r2;
- try {
- t1 = arg1.toString(".").split()[1].length
- } catch (e) {
- }
- try {
- t2 = arg2.toString(".").split()[1].length
- } catch (e) {
- }
- with (Math) {
- r1 = Number(arg1.toString())
- r2 = Number(arg2.toString())
- return (r1 / r2) * pow(10, t2 - t1);
- }
- }
- //浮点数加减乘除
- var pagePath = $("meta[name='_ctx']").attr("content");
- pagePath = pagePath.substring(0, pagePath.length - 1);
- // var pagePath = /*[[@{/}]]*/ '';
- var array = ["source", "|", "undo", "redo", "|", "preview", "print", "template", "code", "cut", "copy", "paste", "plainpaste", "wordpaste", "|", "justifyleft", "justifycenter", "justifyright", "justifyfull", "insertorderedlist", "insertunorderedlist", "indent", "outdent", "subscript", "superscript", "clearhtml", "quickformat",
- "selectall", "|", "fullscreen", "/", "formatblock", "fontname", "fontsize", "|",
- "forecolor", "hilitecolor", "bold", "italic", "underline", "strikethrough",
- "lineheight", "removeformat", "|", "image", "multiimage",
- "table", "hr", "emoticons", "baidumap", "pagebreak", "link", "unlink", "|", "about"];
- function equals(obj1, obj2) {
- if (obj1 == obj2)
- return true;
- if (typeof (obj1) == "undefined" || obj1 == null
- || typeof (obj1) != "object")
- return false;
- if (typeof (obj2) == "undefined" || obj2 == null
- || typeof (obj2) != "object")
- return false;
- var length1 = 0;
- var length2 = 0;
- for (var ele in obj1) {
- length1++;
- }
- for (var ele in obj2) {
- length2++;
- }
- if (length1 != length2)
- return false;
- if (obj1.constructor == obj2.constructor) {
- for (var ele in obj1) {
- if (typeof (obj1[ele]) == "object") {
- if (!equals(obj1[ele], obj2[ele]))
- return false;
- } else if (typeof (obj1[ele]) == "function") {
- if (!obj1[ele].toString() != (obj2[ele].toString()))
- return false;
- } else if (obj1[ele] != obj2[ele])
- return false;
- }
- return true;
- }
- return false;
- }
- /**
- * 是否包含对象
- *
- * @param obj
- * @returns {Boolean}
- */
- Array.prototype.inArray = function (obj) {
- for (i = 0; i < this.length; i++) {
- if (equals(this[i], obj))
- return true;
- }
- return false;
- }
- /**
- * 查找对象在数组中的位置
- * @param obj
- * @returns
- */
- Array.prototype.indexOf = function (obj) {
- for (var i = 0; i < this.length; i++) {
- if (equals(this[i], obj))
- return i;
- }
- return -1;
- }
- /**
- * 方法:removeObject(obj)
- * 功能:根据元素值删除数组元素.
- * 参数:obj
- * 返回:在原数组上修改数组
- */
- Array.prototype.removeObject = function (obj) {
- var index = this.indexOf(obj);
- if (index > -1) {
- this.splice(index, 1);
- }
- return this;
- };
- /**
- * 方法:removeObjectById(id)
- * 功能:根据元素值删除数组元素.
- * 参数:id
- * 返回:在原数组上修改数组
- */
- Array.prototype.removeObjectById = function (id) {
- for (var i = 0; i < this.length; i++) {
- if (this[i].id == id) {
- return this.splice(i, 1);
- }
- }
- return this;
- };
- /**
- * 方法:removeObjectAtIndex(dx)
- * 功能:根据元素位置值删除数组元素.
- * 参数:dx
- * 返回:在原数组上修改数组
- */
- Array.prototype.removeObjectAtIndex = function (dx) {
- if (isNaN(dx) || dx < this.length || dx > this.length) {
- return this;
- }
- return this.splice(dx, 1);
- };
- /**
- * 方法:findObjectById(id)
- * 功能:根据id查找数组元素.
- * 参数:id
- * 返回:数组元素
- */
- Array.prototype.findObjectById = function (id) {
- for (var i = 0; i < this.length; i++) {
- if (this[i].id == id) {
- return this[i];
- }
- }
- return null;
- };
- /**
- * 删除所有空白
- * @returns
- */
- String.prototype.trim = function () {
- return this.replace(/\s+/g, "");
- }
- /**
- * 是否为空白
- * @returns {Boolean}
- */
- function strIsBlank(str2check) {
- return !str2check;
- }
- /**
- * 删除左边的空白
- *
- * @returns
- */
- String.prototype.lTrim = function () {
- return this.replace(/(^\s+)/g, "");
- }
- /**
- * 删除右边的空白
- *
- * @returns
- */
- String.prototype.rTrim = function () {
- return this.replace(/(\s+$)/g, "");
- }
- /**
- * 是否有效的手机号码
- *
- * @returns
- */
- String.prototype.test = function () {
- return (new RegExp(/^([\S^'^‘^’]{6,20})$/)
- .test(this));
- }
- /**
- * 是否有效的手机号码
- *
- * @returns
- */
- String.prototype.isMobileNum = function () {
- return (new RegExp(/^((13[0-9])|(14[4,7])|(15[^4,\D])|(17[6-8])|(18[0-9]))(\d{8})$/)
- .test(this));
- }
- /**
- * 是否有效的邮箱
- *
- * @returns
- */
- String.prototype.isEmail = function () {
- return (new RegExp(
- // /^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+((\.([a-zA-Z0-9_-]){2,3}){1,2})$/)
- /^([\w-_])+(\.\w+)*@(\w)+((\.\w{2,3}){1,3})$/)
- .test(this));
- }
- /**
- * 是否是QQ邮箱
- */
- String.prototype.isQQEmail = function () {
- /*
- var k = '@';
- var i = this.indexOf(k);
- var qq = this.substr((i + 1), 2);
- if(qq == 'qq' || qq == 'QQ')
- return true;
- */
- return false;
- }
- //验证身份证
- String.prototype.isCardNo = function () {
- return (new RegExp(/^[1-9]([0-9]{16}|[0-9]{13})[xX0-9]$/)
- .test(this));
- }
- /**
- * 是否为数字
- */
- String.prototype.isNumber = function () {
- return (new RegExp(/^[0-9]*$/).test(this));
- }
- /**
- * 密码是否正确
- */
- String.prototype.password = function () {
- return (new RegExp(/^[\w]{6,12}$/).test(this));
- }
- /**
- * 是否日期
- *
- * @returns
- */
- String.prototype.isDate = function () {
- return (new RegExp(
- /^([1-2]\d{3})[\/|\-](0?[1-9]|10|11|12)[\/|\-]([1-2]?[0-9]|0[1-9]|30|31)$/ig)
- .test(this));
- }
- /**
- * 替换全部
- */
- String.prototype.replaceAll = function (s1, s2) {
- return this.replace(new RegExp(s1, "gm"), s2);
- }
- /**
- * 克隆(深拷贝)
- *
- * @param obj
- * @returns
- */
- function clone(obj) {
- if (typeof (obj) != 'object') {
- return obj;
- }
- var re = {};
- if (obj.constructor == Array) {
- re = [];
- }
- for (var i in obj) {
- re[i] = clone(obj[i]);
- }
- return re;
- }
- /**
- * 公共方法
- * @param obj
- * @param id
- */
- /* 替换被拦截的html代码,请遵循JAVA定义规则 */
- function replaceAllHTML(content) {
- if (content == null || content == '')
- return '';
- content = content.replaceAll("#", "html_j");
- content = content.replaceAll("<img", "html_i");
- content = content.replaceAll("<a", "html_a");
- content = content.replaceAll("<frame", "html_f");
- return content;
- }
- /**
- * 替换全部
- */
- String.prototype.replaceAll = function (s1, s2) {
- return this.replace(new RegExp(s1, "gm"), s2);
- }
- /**
- * 全局的ajax访问,处理ajax清求时sesion超时和无权限提示
- */
- $.ajaxSetup({
- contentType: "application/x-www-form-urlencoded;charset=utf-8",
- beforeSend: function (XMLHttpRequest) {
- //弹出遮罩层
- loadingMessage();
- //禁用页面submit按钮既可以一定程度防止表单的重复提交,又能大大减轻服务器端压力.
- $("form").find(":submit").attr("disabled", true);
- },
- complete: function (XMLHttpRequest, textStatus, errorMsg) {
- //关闭遮罩层
- closeMessage(loading);
- //重新启用页面submit按钮,使其可以再次点击
- $("form").find(":submit").attr("disabled", false);
- //Http响应状态码
- var status = XMLHttpRequest.status;
- if (status == 400) { //请求参数不合法
- var resJson = eval('(' + XMLHttpRequest.responseText + ')');
- //后端数据校验未通过
- if (resJson.code == 2000) {
- //通过XMLHttpRequest取得响应头,X-Refresh-Token-Form,获取refreshTokenForm用于刷新页面tokenForm
- var refreshTokenForm = XMLHttpRequest.getResponseHeader("X-Refresh-Token-Form");
- //刷新页面所有的tokenForm
- if (refreshTokenForm != "" && refreshTokenForm != null) {
- $("input[name='tokenForm']").val(refreshTokenForm);
- }
- }
- //表单重复提交
- if (resJson.code == 2075) {
- sadMessage(resJson.msg);
- }
- } else if (status == 401) { //session超时
- //登录状态,通过XMLHttpRequest取得响应头,X-Session-Status
- var sessionStatus = XMLHttpRequest.getResponseHeader("X-Session-Status");
- if (sessionStatus == 'Session-Timeout') {
- sadMessage("登录超时,请重新登录!");
- top.location = "/admin/login";
- }
- var resJson = eval('(' + XMLHttpRequest.responseText + ')');
- //已被踢出登录
- if (resJson.code == 2076) {
- layer.confirm(resJson.msg, {icon: 5, title: '提示', btn: ['重新登录', '取消']}, function (index) {
- //执行退出并跳转到登录
- top.location = "/admin/logout";
- closeMessage(index);
- });
- }
- } else if (status == 403) { //没有权限
- //权限状态,通过XMLHttpRequest取得响应头,X-No-Permission
- var noPermission = XMLHttpRequest.getResponseHeader("X-No-Permission");
- if (noPermission == 'No-Permission') {
- sadMessage('没有操作权限!');
- }
- }
- }
- });
- // tab切换
- function tabChange(tabMenu, tabContent) {
- var $tab = $(tabMenu);
- $tab.find("span").eq(0).addClass("current");
- $(tabContent).eq(0).show();
- $tab.find("span").on("click", function () {
- var index = $(this).index();
- $(this).addClass("current").siblings().removeClass("current");
- $(tabContent).eq(index).show().siblings().hide();
- })
- }
- //去除form表单回车提交
- $(document).ready(function () {
- var form = $(".form");
- $(form).keydown(function (e) {
- var keyCode = e.keyCode;
- if (keyCode == 13) {
- return false;
- }
- });
- setTableTdTitle();
- });
- //流程信息表格悬浮框展示内容
- function setTableTdTitle() {
- $(".processTb tbody tr").each(function () {
- $(this).children("td").mouseover(function () {
- $(this).attr("title", $(this).text());
- });
- });
- $("a[download]").attr("title", "如直接点击文件无法下载,请右击另存为。");
- }
- //表单转json
- $.fn.toJSON = function () {
- var o = {};
- var a = this.serializeArray();
- $.each(a, function () {
- var value = this.value;
- var paths = this.name.split(".");
- var len = paths.length;
- var obj = o;
- $.each(paths, function (i, e) {
- if (i == len - 1) {
- if (obj[e]) {
- if (!obj[e].push) {
- obj[e] = [obj[e]];
- }
- if (value && value != '') obj[e].push(value || '');
- } else {
- if (value && value != '') obj[e] = value || '';
- }
- } else {
- if (!obj[e]) {
- obj[e] = {};
- }
- }
- obj = o[e];
- });
- });
- return o;
- };
|