(function () { 'use strict'; angular.module('core.service') .factory('Utils', Utils) ; function Utils() { return { showDots: showDots, findEleFromArrByCol: findEleFromArrByCol, isBlank: isBlank, stringToDate:stringToDate, delFromArray: delFromArray, findFromArray: findFromArray, delFromArrayById: delFromArrayById, findMaxFromArray: findMaxFromArray, delEleFromArray: delEleFromArray, existFromArray: existFromArray, getDateStr: getDateStr, getSimpleDateStr: getSimpleDateStr, getTimeStr: getTimeStr, check: check, isIn: isIn, findIndex: findIndex, checkAll: checkAll, findRecursiveEleFromArrByCol: findRecursiveEleFromArrByCol, isIE: isIE, isIE8: isIE8, getDocument: getDocument, initEcharts: initEcharts, //判断是否包含某一字符串,模糊查询 isContain:isContain }; function isIE() { return (/ie/i).test(window.navigator.userAgent); } /** * 判断是否包含某一字符串 * @param resoureString 原字符串 * @param x * @returns {boolean} */ function isContain(resoureString,x){ return resoureString.indexOf(x)>0?true:false; } function isIE8() { var bIsIE = (/ie/i).test(window.navigator.userAgent); var browser = navigator.appName; var b_version = navigator.appVersion; var version = b_version.split(";"); var trim_Version = ""; if (version.length > 1) { var trim_Version = version[1].replace(/[ ]/g, ""); } return b_version.search("MSIE 8.0") != -1 || b_version.search("MSIE 7.0") != -1; } function findIndex(arr, d) { var res = -1; for (var i = 0; i < arr.length; i++) { if (arr[i] == d) { res = i; break; } } return res; } function isIn(arr, d) { for (var i = 0; i < arr.length; i++) { if (arr[i] == d) { return true; } } return false; } function delEleFromArray(arr, d) { for (var i = 0; i < arr.length; i++) { if (arr[i] == d) { arr.splice(i, 1); break; } } } function delFromArray(arr, id) { for (var i = 0; i < arr.length; i++) { if (arr[i].id == id) { arr.splice(i, 1); break; } } } function delFromArrayById(arr, id, idName) { for (var i = 0; i < arr.length; i++) { if (arr[i][idName] == id) { arr.splice(i, 1); break; } } } function findFromArray(arr, id) { for (var i = 0; i < arr.length; i++) { if (arr[i].id == id) { return arr[i]; } } return {}; } function existFromArray(arr, obj) { for (var i = 0; i < arr.length; i++) { if (arr[i] == obj) { return true; } } return false; } function findMaxFromArray(arr, column) { var max = 0; for (var i = 0; i < arr.length; i++) { if (parseInt(arr[i][column]) > max) { max = parseInt(arr[i][column]); } } return max; } function isBlank(s) { if (s == undefined) { return true; } if (s == null) { return true; } s += ""; return s.trim() == ""; } function getDateStr(date) { var year = date.getFullYear(); var month = date.getMonth() + 1; var day = date.getDate(); var hour = date.getHours(); var min = date.getMinutes(); var sec = date.getSeconds(); if (month <= 9) { month = "0" + month; } if (day <= 9) { day = "0" + day; } if (hour <= 9) { hour = "0" + hour; } if (min <= 9) { min = "0" + min; } if (sec <= 9) { sec = "0" + sec; } return year + "-" + month + "-" + day + " " + hour + ":" + min + ":" + sec; } function getTimeStr(date) { var hour = date.getHours(); var min = date.getMinutes(); var sec = date.getSeconds() - 10; if (hour <= 9) { hour = "0" + hour; } if (min <= 9 && min >= 0) { min = "0" + min; } if (sec <= 9 && sec >= 0) { sec = "0" + sec; } else if (sec < 0) { min = min - 1; sec = 60 + sec; if (min < 0) { hour = hour - 1; min = 60 + min; } } return hour + ":" + min + ":" + sec; } function getSimpleDateStr(date) { var year = date.getFullYear(); var month = date.getMonth() + 1; var day = date.getDate(); if (month <= 9) { month = "0" + month; } if (day <= 9) { day = "0" + day; } return year + "-" + month + "-" + day; } function stringToDate(val) { var date = new Date(parseInt(val.replace("/Date(", "").replace(")/", ""), 10)); //月份为0-11,所以+1,月份小于10时补个0 var month = date.getMonth() + 1 < 10 ? "0" + (date.getMonth() + 1) : date.getMonth() + 1; var currentDate = date.getDate() < 10 ? "0" + date.getDate() : date.getDate(); var hour = date.getHours(); var minute = date.getMinutes(); var second = date.getSeconds(); var theTime = date.getFullYear() + "-" + month + "-" + currentDate + " " + hour + ":" + minute + ":" + second; return theTime; } function check(str, len) { var forbiddenWords = ["$", "**", "* or *"]; str = str + ""; if (str.length > len) { alert("对不起,您输入的内容超过了" + len + "个字符!"); return false; } for (var i = 0; i < forbiddenWords.length; i++) { if (str.indexOf(forbiddenWords[i]) >= 0) { alert("对不起,您输入的内容里含有非安全字符“" + forbiddenWords[i] + "”"); return false; } } return true; } function checkAll(strs, len) { for (var i = 0; i < strs.length; i++) { if (!check(strs[i], len)) { return false; } } return true; } function findEleFromArrByCol(arr, colName, colVal) { for (var i = 0; i < arr.length; i++) { if (arr[i][colName] == colVal) { return arr[i]; } } return "NOT_FOUND"; } function findRecursiveEleFromArrByCol(arr, colName, colVal) { for (var i = 0; i < arr.length; i++) { if (arr[i][colName] == colVal) { return arr[i]; } else { var res = findRecursiveEleFromArrByCol(arr[i].children, colName, colVal); if (res != "NOT_FOUND") { return res; } } } return "NOT_FOUND"; } /** * 判断字符串长度是否超过max,超过则超过部分用省略号代替 * @param value * @param max * @returns {*} */ function showDots(value, max) { if(value==null){ return; } return value.length > max ? value.substring(0, max) + "..." : value; } function getDocument(iframe) { var doc; try { doc = iframe.contentWindow.document;// For IE5.5 and IE6 } catch (ex) { } if (!doc) { doc = iframe.contentDocument;// For NS6 } return doc; } /** * 用来帮助创建使用自定义主题的echarts插件 * @param id * @returns {*} */ function initEcharts(id) { return echarts.init(document.getElementById(id),'custom'); } } })();