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