1 define(["utils/common"], function() { 2 var util = function() {}; 3 util.prototype = { 4 /** 5 * 函数描述:下载图片,构造img ok 6 * @param {string} url 请求路径 7 * @return {object} img 8 */ 9 _loadImage: function (imgId, imgUrl, callback) { 10 var img = new Image(); 11 img.src = imgUrl; 12 img.id = imgId; 13 img.onload = function () { //图片下载完毕时异步调用callback函数。 14 callback({'img': img}); 15 }; 16 }, 17 /** 18 * 函数描述:将portal中的时间格式化 例如:2016-12-06 19 * @param {string} dd 20 * @return {string} time 21 */ 22 formatDate: function(dd) { 23 var now = new Date(dd); 24 var year = now.getFullYear(); 25 var month = now.getMonth() + 1; 26 var date = now.getDate(); 27 var hour = now.getHours(); 28 var minute = now.getMinutes(); 29 var second = now.getSeconds(); 30 var newMonth = (month < 10) ? "0" + month : month; 31 var newDate = (date < 10) ? "0" + date : date; 32 var newHour = (hour < 10) ? "0" + hour : hour; 33 var newMinute = (minute < 10) ? "0" + minute : minute; 34 var newSecond = (second < 10) ? "0" + second : second; 35 return year + "-" + newMonth + "-" + newDate; 36 }, 37 getQueryStringByKey: function(key, toEnd /* optional */) { 38 var regSuffix = toEnd ? "=*(.+$)" : "=(.*?)(?=&|$)"; 39 return (document.location.search.match(new RegExp("(?:^\\?|&)" + key + regSuffix)) || ['', null])[1]; 40 }, 41 replaceQueryStringValue: function(key, value, changePage) { 42 var newhref = ''; 43 //default is true, change page to 1 44 changePage = ((changePage == null && key != 'page') ? true : changePage); 45 if (document.location.search.match(new RegExp("(?:^\\?|&)" + key + "=(.*?)(?=&|$)"))) { 46 var queryString = document.location.search.match(new RegExp("(?:^\\?|&)" + key + "=(.*?)(?=&|$)")); 47 var newQuery = queryString[0].replace(queryString[1], value); 48 newhref = document.location.href.replace(queryString[0], newQuery); 49 } else { 50 if (document.location.href.indexOf('?') > -1) 51 newhref = (document.location.href + '&' + key + '=' + value) 52 else 53 newhref = (document.location.href + '?' + key + '=' + value) 54 } 55 56 if (changePage && document.location.search.match(new RegExp("(?:^\\?|&)" + 'page' + "=(.*?)(?=&|$)"))) { 57 var pageString = document.location.search.match(new RegExp("(?:^\\?|&)" + 'page' + "=(.*?)(?=&|$)")); 58 var newPage = pageString[0].replace(pageString[1], '1'); 59 newhref = newhref.replace(pageString[0], newPage); 60 } 61 62 return newhref; 63 }, 64 deleteQueryStringByKey: function(key) { 65 var queryString = document.location.search.match(new RegExp("(?:^\\?|&)" + key + "=(.*?)(?=&|$)")); 66 if (queryString == null) return document.location.href; 67 var queryCount = queryString.input.split('&').length; 68 69 if (queryCount == 1) 70 return document.location.href.replace(queryString[0], ''); 71 else { 72 if (queryString[0].indexOf('?') > -1) 73 return document.location.href.replace(queryString[0] + '&', '?'); 74 else 75 return document.location.href.replace(queryString[0], ''); 76 } 77 78 }, 79 setCookie: function(name, value, hours, path,domain) { 80 var name = escape(name); 81 var value = escape(value); 82 var expires = new Date(); 83 expires.setTime(expires.getTime() + hours * 3600000); 84 path = path == "" ? "" : ";path=" + path; 85 domain = domain =="" ?"" : ";domain=" + domain; 86 _expires = (typeof hours) == "string" ? "" : ";expires=" + expires.toUTCString(); 87 document.cookie = name + "=" + value + _expires + path + domain; 88 }, 89 getCookieValue: function(name) { 90 var name = escape(name); 91 var allcookies = document.cookie; 92 name += "="; 93 var pos = allcookies.indexOf(name); 94 if (pos != -1) { 95 var start = pos + name.length; 96 var end = allcookies.indexOf(";", start); 97 if (end == -1) end = allcookies.length; 98 var value = allcookies.substring(start, end); 99 return unescape(value);100 } else return "";101 },102 deleteCookie: function(name, path) {103 var name = escape(name);104 var expires = new Date(0);105 path = path == "" ? "" : ";path=" + path;106 document.cookie = name + "=" + ";expires=" + expires.toUTCString() + path;107 },108 disabledItem: function(select) {109 $(select).attr('disabled', 'disabled');110 },111 enabledItem: function(select) {112 $(select).removeAttr('disabled');113 },114 newDate: function(dateString) {115 if (/msie/.test(navigator.userAgent.toLowerCase())) {116 var isoExp = /^\s*(\d{4})-(\d\d)-(\d\d)\s*$/,117 date = new Date(NaN),118 month,119 parts = isoExp.exec(dateString);120 121 if (parts) {122 month = +parts[2];123 date.setFullYear(parts[1], month - 1, parts[3]);124 if (month != date.getMonth() + 1) {125 date.setTime(NaN);126 }127 }128 return date;129 } else {130 return new Date(dateString);131 }132 },133 fixBug: function() {134 135 },136 137 /*****************************CHEN START******************************/138 139 140 formatDateYear: function(dd) {141 var now = new Date(dd);142 var year = now.getFullYear();143 return year;144 },145 //html转义146 htmlEncode: function (str) {147 var s = "";148 if (!str || str.length == 0) return "";149 s = str.replace(/&/g, ">");150 s = s.replace(//g, ">");152 s = s.replace(/ /g, " ");153 s = s.replace(/\'/g, "'");154 s = s.replace(/\"/g, """);155 s = s.replace(/\n/g, "");156 return s;157 },158 159 //HTML反转义160 htmlDecode: function (str) {161 var s = "";162 if (!str || str.length == 0) return "";163 s = str.replace(/>/g, "&");164 s = s.replace(/</g, "<");165 s = s.replace(/>/g, ">");166 s = s.replace(/ /g, " ");167 s = s.replace(/'/g, "\'");168 s = s.replace(/"/g, "\"");169 s = s.replace(//g, "\n");170 return s;171 },172 173 rgb2hex: function(rgb) {174 rgb = rgb.match(/^rgb\((\d+),\s*(\d+),\s*(\d+)\)$/);175 176 function hex(x) {177 return ("0" + parseInt(x).toString(16)).slice(-2);178 }179 return "#" + hex(rgb[1]) + hex(rgb[2]) + hex(rgb[3]);180 },181 182 fullScreen: function() {183 var el = document.documentElement,184 rfs = el.requestFullScreen || el.webkitRequestFullScreen || el.mozRequestFullScreen || el.msRequestFullScreen,185 wscript;186 if (typeof rfs != "undefined" && rfs) {187 rfs.call(el);188 return;189 }190 if (typeof window.ActiveXObject != "undefined") {191 wscript = new ActiveXObject("WScript.Shell");192 if (wscript) {193 wscript.SendKeys("{F11}");194 }195 }196 },197 exitFullScreen: function() {198 var el = document,199 cfs = el.cancelFullScreen || el.webkitCancelFullScreen || el.mozCancelFullScreen || el.exitFullScreen,200 wscript;201 if (typeof cfs != "undefined" && cfs) {202 cfs.call(el);203 return;204 }205 if (typeof window.ActiveXObject != "undefined") {206 wscript = new ActiveXObject("WScript.Shell");207 if (wscript != null) {208 wscript.SendKeys("{F11}");209 }210 }211 },212 /*****************************CHEN END******************************/213 //触发回车事件兼容,ie、Firefox、Chrome214 quickQueryCust: function(evt) {215 evt = (evt) ? evt : ((window.event) ? window.event : ""); //兼容IE和Firefox获得keyBoardEvent对象216 var key = evt.keyCode ? evt.keyCode : evt.which; //兼容IE和Firefox获得keyBoardEvent对象的键值217 if (key == 13) { //判断是否是回车事件。218 //根据需要执行某种操作。219 return true; //return false是为了停止表单提交,如果return true或者不写的话,表单照样是会提交的。220 }221 return false;222 },223 scroll: function(obj, time) {224 var height = $(obj).offset().top;225 $("body,html").animate({226 scrollTop: $(obj).offset().top227 }, time);228 },229 //平滑滚动到某元素中部230 scrollMiddle: function(obj, time) {231 $(document.body).animate({232 scrollTop: $(obj).offset().top + $(selector).height() / 2 - $(window).height() / 2233 }, time);234 },235 fixExtention: function() {236 //ie trim237 if (!String.prototype.trim) {238 String.prototype.trim = function() {239 return this.replace(/^\s\s*/, '').replace(/\s\s*$/, '');240 };241 }242 //ie Array243 if (!Array.prototype.indexOf) {244 Array.prototype.indexOf = function(elt /*, from*/ ) {245 var len = this.length >>> 0;246 var from = Number(arguments[1]) || 0;247 from = (from < 0) ? Math.ceil(from) : Math.floor(from);248 if (from < 0)249 from += len;250 for (; from < len; from++) {251 if (from in this &&252 this[from] === elt)253 return from;254 }255 return -1;256 };257 }258 259 // 对Date的扩展,将 Date 转化为指定格式的String260 Date.prototype.Format = function(fmt) {261 var o = {262 "M+": this.getMonth() + 1, //月份263 "d+": this.getDate(), //日264 "h+": this.getHours(), //小时265 "m+": this.getMinutes(), //分266 "s+": this.getSeconds(), //秒267 "q+": Math.floor((this.getMonth() + 3) / 3), //季度268 "S": this.getMilliseconds() //毫秒269 };270 if (/(y+)/.test(fmt))271 fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));272 for (var k in o)273 if (new RegExp("(" + k + ")").test(fmt))274 fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));275 return fmt;276 };277 },278 transformData: function(attr) {279 var firstlevel = [];280 for (var i = 0; i < attr.length; i++) {281 for (var j = 0; j < attr.length; j++) {282 if (attr[i].id == attr[j].parentid) {283 if (!attr[i].child) {284 attr[i].child = [];285 }286 attr[i].child.push(attr[j]);287 }288 }289 }290 for (var i = 0; i < attr.length; i++) {291 if (attr[i].parentid == -1) {292 firstlevel.push(attr[i])293 }294 }295 return firstlevel;296 }297 };298 return util;299 });