common.js
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, "<"); 151 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, "<br>"); 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(/<br>/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、Chrome 214 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().top 227 }, time); 228 }, 229 //平滑滚动到某元素中部 230 scrollMiddle: function(obj, time) { 231 $(document.body).animate({ 232 scrollTop: $(obj).offset().top + $(selector).height() / 2 - $(window).height() / 2 233 }, time); 234 }, 235 fixExtention: function() { 236 //ie trim 237 if (!String.prototype.trim) { 238 String.prototype.trim = function() { 239 return this.replace(/^\s\s*/, '').replace(/\s\s*$/, ''); 240 }; 241 } 242 //ie Array 243 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 转化为指定格式的String 260 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 });