asset-common.js 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406
  1. var waittingDialog;
  2. function showWaittingDialog(msg){
  3. if(msg == undefined || typeof(msg) != "string"){
  4. msg = "正在处理,请稍后……";
  5. }
  6. // waittingDialog = $.ligerDialog.waitting(msg);
  7. waittingDialog = $.ligerDialog.open({content:msg, allowClose:false});
  8. }
  9. function closeWaittingDialog(){
  10. if(waittingDialog != undefined){
  11. waittingDialog.close();
  12. waittingDialog = undefined;
  13. }
  14. }
  15. function closeDialog(dialogObj){
  16. if(dialogObj != undefined){
  17. dialogObj.close();
  18. }
  19. }
  20. function TmsMsgRemindUtil(){
  21. this.bindEvent = function(panelObj){
  22. if(typeof(panelObj) == "string"){
  23. panelObj = $("#" + panelObj);
  24. }
  25. panelObj.children("#isMessage").bind("change", function(){
  26. var value = this.value;
  27. if(value == 0){
  28. panelObj.children(":checkbox").each(function(index, obj){
  29. obj.disabled = true;
  30. obj.checked = false;
  31. });
  32. }else{
  33. panelObj.children(":checkbox").each(function(index, obj){
  34. obj.disabled = false;
  35. if(obj.value != "1"){
  36. obj.checked = true;
  37. }
  38. });
  39. }
  40. });
  41. };
  42. this.createPanel = function(params){
  43. var msgRemindStr = '<div style="float: left; margin-right: 10px" id='+ params.panelId +'>'
  44. + '<select name="isMessage" id="isMessage" class="short-text">'
  45. + '<option value="0">不提醒</option><option value="1" selected="selected">提醒</option>'
  46. + '</select>&nbsp;&nbsp;'
  47. + '<input type="checkbox" id="msgTypeSMS" name="msgType" value="1" style="vertical-align: bottom;" />&nbsp;<label for="msgTypeSMS">短信</label>&nbsp;&nbsp;'
  48. + '<input type="checkbox" id="msgTypeMessage" name="msgType" value="2" style="vertical-align: bottom;" checked="checked"/>&nbsp;<label for="msgTypeMessage">系统消息</label>&nbsp;&nbsp;'
  49. + '<input type="checkbox" id="msgTypeEMail" name="msgType" value="3" style="vertical-align: bottom;" checked="checked"/>&nbsp;<label for="msgTypeEMail">邮件</label>&nbsp;&nbsp;'
  50. + '</div>';
  51. $("#" + params.id).append(msgRemindStr);
  52. this.bindEvent( $("#" + params.panelId) );
  53. };
  54. this.getSelectResult = function(panelObj){
  55. if(typeof(panelObj) == "string"){
  56. panelObj = $("#" + panelObj);
  57. }
  58. var result="";
  59. panelObj.children("input[name='msgType']").each(function(index, obj){
  60. var checked = obj.checked;
  61. if(checked == true){
  62. result += ("," + obj.value);
  63. }
  64. });
  65. if(result.length > 0){
  66. result = result.substring(1, result.length);
  67. }
  68. return result;
  69. };
  70. this.disable = function(params){
  71. var panelObj = $("#" + params.panelId);
  72. panelObj.children(":checkbox").each(function(index, obj){
  73. obj.disabled = true;
  74. obj.checked = false;
  75. });
  76. panelObj.children("#isMessage").attr("disabled", true);
  77. };
  78. this.enable = function(params){
  79. var panelObj = $("#" + params.panelId);
  80. panelObj.children(":checkbox").each(function(index, obj){
  81. obj.disabled = false;
  82. if(obj.value != "1"){
  83. obj.checked = true;
  84. }
  85. });
  86. panelObj.children("#isMessage").attr("disabled", false);
  87. };
  88. }
  89. function seeProject(projId){
  90. addTab("TmsProjectAction.do?task=toDetails&universalid" + projId, "项目明细", "TmsProjectAction.do?task=toDetails&universalid=" + projId, true);
  91. }
  92. function seeTask(taskId){
  93. addTab("TaskDetailAction.do?task=taskDetail&taskId=" + taskId, "任务明细", "TaskDetailAction.do?task=taskDetail&taskId=" + taskId, true);
  94. }
  95. function seeUser(userId){
  96. addTab("PersonalActivityAction.do?task=personalActivity&userId=" + userId, "个人项目活动", "PersonalActivityAction.do?task=personalActivity&userId=" + userId, true);
  97. }
  98. function displayTaskState(row){
  99. var taskState = row.task_state;
  100. var colorRGB = getTaskStateColor(taskState);
  101. return "<span style='color:" + colorRGB +"'>" + row.task_state_text + "</span>";
  102. }
  103. function displayTaskState4User(row, isDevelopUser){
  104. var taskState = row.task_state;
  105. var colorRGB = getTaskStateColor(taskState);
  106. return "<span style='color:" + colorRGB +"'>" + getTaskStateText(taskState, isDevelopUser) + "</span>";
  107. }
  108. /*
  109. function getTaskStateColor(taskState){
  110. var colorRGB = "";
  111. switch(taskState){
  112. case "1" : colorRGB = "#0000FF"; break;
  113. case "2" : colorRGB = "#008000"; break;
  114. case "3" : colorRGB = "#990000"; break;
  115. case "4" : colorRGB = "#990099"; break;
  116. case "5" : colorRGB = "#FF9900"; break;
  117. case "6" : colorRGB = "#FF2A2A"; break;
  118. case "7" : colorRGB = "#BCBCBC"; break;
  119. default: colorRGB = "#000";
  120. }
  121. return colorRGB;
  122. }
  123. */
  124. function displayBetweenDay(row){
  125. var num = row.between_day;
  126. var colorRGB = (num < 0)?"#FE6E6E":"";
  127. return '<div style="background-color:'+colorRGB+';width:100%;height:100%">'+num+'</div>';
  128. }
  129. function autoHeight(id, dh){
  130. if(!dh){
  131. dh = 50;
  132. }
  133. var height = $(window).height() - dh;
  134. if(id){
  135. $("#" + id).css("height", height);
  136. $("#" + id).css("overflow", "auto");
  137. }else{
  138. $("#bodyDiv").css("height", height);
  139. $("#bodyDiv").css("overflow", "auto");
  140. }
  141. }
  142. function getSelectedTaskId(){
  143. var taskId = "";
  144. if(taskListTable){
  145. var selectedRows = taskListTable.getCheckedRows();
  146. var size = selectedRows.length;
  147. if(size > 0){
  148. for(var i=0; i < size; i++){
  149. taskId += ("," + selectedRows[i].universalid);
  150. }
  151. taskId = taskId.substring(1, taskId.length);
  152. }
  153. }
  154. return taskId;
  155. }
  156. /**
  157. * 获取文件上传组件中,所有已上传文件的id组,格式:1,2,3....
  158. * @param *docName[String] 文件框的name属性名称
  159. */
  160. function getFileDocId(docName){
  161. var docId = "";
  162. var docList = $("input[name='"+docName+"']");
  163. var size = docList.size();
  164. docList.each(function(index, obj){
  165. if(index == size -1){
  166. docId += obj.value;
  167. }else{
  168. docId += (obj.value + ",");
  169. }
  170. });
  171. return docId;
  172. }
  173. /**
  174. * 判断某个tab是否存在,如果存在将返回这个tab,如果不存在返回null
  175. * @param params
  176. * json格式,函数将根据传递的参数来判断目标tab是否存在,如果只传tabId,那就只判断tabId
  177. * 可设置参数如下:
  178. * tabId:tab的ID
  179. * tabText:tab的text
  180. * ***********************目前这个方法还不能用*********************
  181. */
  182. function checkTabExist(params){
  183. var tab = null;
  184. var targetTab = null;
  185. var obj=window.top;
  186. try{
  187. if(obj!=undefined&&obj!=null){
  188. tab = obj.findTabContent();
  189. }
  190. // 由于没有卡拿到获取tab的text的方法,暂时先实现根据tabId查询
  191. var isExists = tab.isTabItemExist(params.tabId);
  192. }catch(e){
  193. alert("操作失败!当前页面可能不在系统框架内,请关闭!");
  194. }
  195. return targetTab;
  196. }
  197. /**
  198. * 为select表单增加“时:分”选项,从0点开始,按30分钟跨度
  199. * @param id,不需要加#号
  200. **/
  201. function createHourOption4Select(id){
  202. var count = 23;
  203. var obj = document.getElementById(id);
  204. for(var i = 0; i <= count; i++){
  205. var hour = (i < 10 ? "0"+i : i);
  206. var hourMinute1 = hour + ":" + "00";
  207. var hourMinute2 = hour + ":" + "30";
  208. addSelectOption(obj, hourMinute1, hourMinute1 + ":00");
  209. addSelectOption(obj, hourMinute2, hourMinute2 + ":00");
  210. }
  211. }
  212. /**
  213. * 去除两边的空格
  214. * @param ui
  215. * @returns
  216. */
  217. function trim(ui){
  218. var notValid=/(^\s)|(\s$)/;
  219. while(notValid.test(ui)){
  220. ui=ui.replace(notValid,"");
  221. }
  222. return ui;
  223. }
  224. /**
  225. * 往select增加一个option
  226. * @param obj 这是一个基本的html dom对象,不是jquery的!
  227. * @param name
  228. * @param value
  229. */
  230. function addSelectOption(obj ,name, value){
  231. try{
  232. obj.add(new Option(name, value));
  233. }catch(e){
  234. obj.add(new Option(name, value),null);
  235. }
  236. }
  237. /*
  238. 判断数字的有效值范围
  239. @param obj 表单对象
  240. @minValue 下限值
  241. @maxValue 上限值
  242. @message 错误消息
  243. */
  244. function checkNumValid(obj,minValue,maxValue,message,nullmessage){
  245. if(obj == undefined){
  246. return false;
  247. }
  248. if(obj.value == ""){
  249. alert(nullmessage);
  250. obj.focus();
  251. return false;
  252. }
  253. // minValue和maxValue都有设置
  254. if( minValue!=undefined && maxValue != undefined ){
  255. if(obj.value < minValue || obj.value > maxValue){
  256. alert(message);
  257. obj.focus();
  258. return false;
  259. }else{
  260. return true;
  261. }
  262. }
  263. // 只设置了maxValue
  264. else if( (minValue == undefined) && (maxValue != undefined) ){
  265. if(obj.value > maxValue){
  266. alert(message);
  267. obj.focus();
  268. return false;
  269. }else{
  270. return true;
  271. }
  272. }
  273. // 只设置了minValue
  274. else if( (minValue!=undefined) && (maxValue == undefined) ){
  275. if(obj.value < minValue){
  276. alert(message);
  277. obj.focus();
  278. return false;
  279. }else{
  280. return true;
  281. }
  282. }
  283. // minValue和maxValue都没设置 默认验证为大于0小于10000000的数字
  284. else{
  285. if(obj<0 || obj > 10000000){
  286. alert(message);
  287. obj.focus();
  288. return false;
  289. }else{
  290. return true;
  291. }
  292. }
  293. }
  294. /**
  295. 校验时间先后,startTime小于或等于endTime时返回false,否则返回true
  296. **/
  297. function checkTimeError(startTime, endTime) {
  298. if (startTime != null && startTime != "" && startTime != null && endTime != "") {
  299. var sArr = startTime.split("-");
  300. var eArr = endTime.split("-");
  301. var startDate = new Date(sArr[0], sArr[1]-1, sArr[2]);
  302. var endDate = new Date(eArr[0], eArr[1]-1, eArr[2]);
  303. var between = startDate - endDate;
  304. if (between > 0) {
  305. return true;
  306. } else {
  307. return false;
  308. }
  309. } else {
  310. return true;
  311. }
  312. }
  313. /**
  314. * 获取当天的时间格式为 yyyy-MM-dd
  315. * @returns {String}
  316. */
  317. function getDates() {
  318. var d1 = new Date();
  319. var todayStr = d1.getFullYear() + "-";
  320. if(d1.getMonth()<9){
  321. todayStr = todayStr +"0" +(d1.getMonth()+1)+"-";
  322. }
  323. else{
  324. todayStr = todayStr+(d1.getMonth()+1)+"-";
  325. }
  326. if(d1.getDate()<10){
  327. todayStr = todayStr + "0" +d1.getDate();
  328. }
  329. else{
  330. todayStr = todayStr + d1.getDate();
  331. }
  332. todayStr = todayStr + "";
  333. return todayStr;
  334. }
  335. function getObjectLeft(e) {
  336. var l=e.offsetLeft;
  337. while(e=e.offsetParent){
  338. l += e.offsetLeft;
  339. return l;
  340. }
  341. }
  342. function getObjectTop(e) {
  343. var t = e.offsetTop;
  344. while(e=e.offsetParent){
  345. t += e.offsetTop;
  346. return t;
  347. }
  348. }
  349. /** 将json对象转换成url参数,格式将变为:&key1=value1&key2=value2 **/
  350. function convertJson2UrlParams(json){
  351. var urlParams = "";
  352. $.each(json, function(key, value){
  353. urlParams += ("&" + key + "=" + value);
  354. })
  355. return urlParams;
  356. }
  357. //显示隐藏域,项目任务部门任务任务分解查询,项目进度,部门项目进度,公司项目进度
  358. function showme(nodeName,beginTime,endTime){
  359. var oSon = window.document.getElementById("hint");
  360. if (oSon == null) return;
  361. $("#hint").html("阶段名称:"+nodeName+" <br/>第一个任务开始时间:"+beginTime+"<br/>最后一个任务结束时间:"+endTime);
  362. with (oSon){
  363. //innerText =
  364. style.display = "block";
  365. style.pixelLeft = window.event.clientX + window.document.body.scrollLeft + 6;
  366. style.pixelTop = window.event.clientY + window.document.body.scrollTop + 9;
  367. }
  368. }
  369. function hidme(){
  370. var oSon = window.document.getElementById("hint");
  371. if(oSon == null) return;
  372. oSon.style.display="none";
  373. }