whzl.js 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450
  1. $.fn.panel.defaults.loadingMessage = '加载中....';
  2. $.fn.datagrid.defaults.loadMsg = '加载中....';
  3. var easyuiErrorFunction = function(XMLHttpRequest) {
  4. alert("加载错误!!!");
  5. };
  6. $.fn.datagrid.defaults.onLoadError = easyuiErrorFunction;
  7. $.fn.treegrid.defaults.onLoadError = easyuiErrorFunction;
  8. $.fn.tree.defaults.onLoadError = easyuiErrorFunction;
  9. $.fn.combogrid.defaults.onLoadError = easyuiErrorFunction;
  10. $.fn.combobox.defaults.onLoadError = easyuiErrorFunction;
  11. $.fn.form.defaults.onLoadError = easyuiErrorFunction;
  12. //easyui 的validatebox()提供了自定义验证的方法
  13. $.extend($.fn.validatebox.defaults.rules, {
  14. CHS: {
  15. validator: function (value, param) {
  16. return /^[\u0391-\uFFE5]+$/.test(value);
  17. },
  18. message: '请输入汉字'
  19. },
  20. ZIP: {
  21. validator: function (value, param) {
  22. return /^[1-9]\d{5}$/.test(value);
  23. },
  24. message: '邮政编码不存在'
  25. },
  26. QQ: {
  27. validator: function (value, param) {
  28. return /^[1-9]\d{4,12}$/.test(value);
  29. },
  30. message: 'QQ号码不正确'
  31. },
  32. loginName: {
  33. validator: function (value, param) {
  34. return /^[\u0391-\uFFE5\w]+$/.test(value);
  35. },
  36. message: '登录名称只允许汉字、英文字母、数字及下划线。'
  37. },
  38. safepass: {
  39. validator: function (value, param) {
  40. return safePassword(value);
  41. },
  42. message: '密码由字母和数字组成,至少6位'
  43. },
  44. myDecimal: {
  45. validator: function (value, param) {
  46. return /^[0-9]+(.[0-9]{1,3})?$/.test(value);
  47. },
  48. message: '请输入数字,小数最多3位!'
  49. },
  50. equals: {
  51. validator: function (value, param) {
  52. return value == $(param[0]).val();
  53. },
  54. message: '两次输入不一至'
  55. },
  56. mobile: {
  57. validator: function (value, param) {
  58. return /^(13|15|18)\d{9}$/i.test(value);
  59. },
  60. message: '手机号码格式不正确'
  61. },
  62. number: {
  63. validator: function (value, param) {
  64. return /^\d+$/.test(value);
  65. },
  66. message: '请输入数字'
  67. },
  68. idcard: {
  69. validator: function (value, param) {
  70. return idCard(value);
  71. },
  72. message:'请输入正确的身份证号码'
  73. }
  74. });
  75. /* 密码由字母和数字组成,至少6位 */
  76. var safePassword = function (value) {
  77. return !(/^(([A-Z]*|[a-z]*|\d*|[-_\~!@#\$%\^&\*\.\(\)\[\]\{\}<>\?\\\/\'\"]*)|.{0,5})$|\s/.test(value));
  78. };
  79. var idCard1 = function (value) {
  80. if (value.length == 18 && 18 != value.length) return false;
  81. var number = value.toLowerCase();
  82. var d, sum = 0, v = '10x98765432', w = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2], a = '11,12,13,14,15,21,22,23,31,32,33,34,35,36,37,41,42,43,44,45,46,50,51,52,53,54,61,62,63,64,65,71,81,82,91';
  83. var re = number.match(/^(\d{2})\d{4}(((\d{2})(\d{2})(\d{2})(\d{3}))|((\d{4})(\d{2})(\d{2})(\d{3}[x\d])))$/);
  84. if (re == null || a.indexOf(re[1]) < 0) return false;
  85. if (re[2].length == 9) {
  86. number = number.substr(0, 6) + '19' + number.substr(6);
  87. d = ['19' + re[4], re[5], re[6]].join('-');
  88. } else d = [re[9], re[10], re[11]].join('-');
  89. if (!isDateTime.call(d, 'yyyy-MM-dd')) return false;
  90. for (var i = 0; i < 17; i++) sum += number.charAt(i) * w[i];
  91. return (re[2].length == 9 || number.charAt(17) == v.charAt(sum % 11));
  92. };
  93. var isDateTime = function (format, reObj) {
  94. format = format || 'yyyy-MM-dd';
  95. var input = this, o = {}, d = new Date();
  96. var f1 = format.split(/[^a-z]+/gi), f2 = input.split(/\D+/g), f3 = format.split(/[a-z]+/gi), f4 = input.split(/\d+/g);
  97. var len = f1.length, len1 = f3.length;
  98. if (len != f2.length || len1 != f4.length) return false;
  99. for (var i = 0; i < len1; i++) if (f3[i] != f4[i]) return false;
  100. for (var i = 0; i < len; i++) o[f1[i]] = f2[i];
  101. o.yyyy = s(o.yyyy, o.yy, d.getFullYear(), 9999, 4);
  102. o.MM = s(o.MM, o.M, d.getMonth() + 1, 12);
  103. o.dd = s(o.dd, o.d, d.getDate(), 31);
  104. o.hh = s(o.hh, o.h, d.getHours(), 24);
  105. o.mm = s(o.mm, o.m, d.getMinutes());
  106. o.ss = s(o.ss, o.s, d.getSeconds());
  107. o.ms = s(o.ms, o.ms, d.getMilliseconds(), 999, 3);
  108. if (o.yyyy + o.MM + o.dd + o.hh + o.mm + o.ss + o.ms < 0) return false;
  109. if (o.yyyy < 100) o.yyyy += (o.yyyy > 30 ? 1900 : 2000);
  110. d = new Date(o.yyyy, o.MM - 1, o.dd, o.hh, o.mm, o.ss, o.ms);
  111. var reVal = d.getFullYear() == o.yyyy && d.getMonth() + 1 == o.MM && d.getDate() == o.dd && d.getHours() == o.hh && d.getMinutes() == o.mm && d.getSeconds() == o.ss && d.getMilliseconds() == o.ms;
  112. return reVal && reObj ? d : reVal;
  113. function s(s1, s2, s3, s4, s5) {
  114. s4 = s4 || 60, s5 = s5 || 2;
  115. var reVal = s3;
  116. if (s1 != undefined && s1 != '' || !isNaN(s1)) reVal = s1 * 1;
  117. if (s2 != undefined && s2 != '' && !isNaN(s2)) reVal = s2 * 1;
  118. return (reVal == s1 && s1.length != s5 || reVal > s4) ? -10000 : reVal;
  119. }
  120. };
  121. //var getUrl = "http://192.168.16.177:7007/hafile/department/";
  122. var getUrl = "http://10.76.130.221:7002/hafile/department/";
  123. var setValue = function(arr,value,comId){
  124. for(var i = 0; i < arr.length; i++ ){
  125. if(value == arr[i].code){
  126. $("#"+comId).text(arr[i].value);
  127. break;
  128. }
  129. }
  130. }
  131. var getValue = function(arr,value){
  132. var result = "";
  133. for(var i = 0; i < arr.length; i++ ){
  134. if(value == arr[i].code){
  135. result = arr[i].value;
  136. break;
  137. }
  138. }
  139. return result;
  140. }
  141. var dealSelect = function(data,value,sId){
  142. var select_arr = [];
  143. for(var nItem = 0; nItem < data.length; nItem++ ){
  144. select_arr.push("<option value="+data[nItem].code+">"+data[nItem].value+"</option>");
  145. }
  146. $("#"+sId).append(select_arr.join(""));
  147. $("#"+sId).val(value);
  148. }
  149. var dealzero = function(value,sId)
  150. {
  151. if(value == 0)
  152. {
  153. $("#"+sId).val("");
  154. }
  155. else
  156. {
  157. $("#"+sId).val(value);
  158. }
  159. }
  160. //取时间去掉时分秒
  161. var dealDate = function(value){
  162. if(value){
  163. return value.replace(/ .+/,"");
  164. }
  165. return "";
  166. }
  167. //打开等待窗口
  168. var openwait = function(id,left_v,top_v){
  169. $("<div class='datagrid-mask'></div>").css({display:"block",width:"100%",height:"100%"}).appendTo("#"+id);//等待效果显示在wnavt控件
  170. $("<div class='datagrid-mask-msg'></div>").html("请稍后...").appendTo("#"+id).css({display:"block",left:left_v,top:top_v});
  171. }
  172. //关闭等待窗口
  173. var closewait = function(id){
  174. $("#"+id).find("div.datagrid-mask-msg").remove();
  175. $("#"+id).find("div.datagrid-mask").remove();
  176. }
  177. //去掉字符串头尾空格
  178. function trim(str) {
  179. if(str == "" || str == null)
  180. {
  181. return "";
  182. }else
  183. {
  184. return str.replace(/(^\s*)|(\s*$)/g, "");
  185. }
  186. }
  187. function delValinArray(val,array){
  188. for(var a in array){
  189. if(array[a] == val){
  190. array.splice(a,1);
  191. }
  192. }
  193. }
  194. //获取当前格式化后的时间
  195. function getNowFormatDate()
  196. {
  197. var day = new Date();
  198. var Year = 0;
  199. var Month = 0;
  200. var Day = 0;
  201. var CurrentDate = "";
  202. //初始化时间
  203. Year = day.getFullYear();
  204. Month = day.getMonth()+1;
  205. Day = day.getDate();
  206. CurrentDate += Year + "-";
  207. if (Month >= 10 )
  208. {
  209. CurrentDate += Month + "-";
  210. }
  211. else
  212. {
  213. CurrentDate += "0" + Month + "-";
  214. }
  215. if (Day >= 10 )
  216. {
  217. CurrentDate += Day ;
  218. }
  219. else
  220. {
  221. CurrentDate += "0" + Day ;
  222. }
  223. return CurrentDate;
  224. }
  225. function addDate(date,days){
  226. var oDate = date.split("-");
  227. var d = new Date(oDate[0], oDate[1]-1, oDate[2]);
  228. d.setDate(d.getDate()+days);
  229. var m=d.getMonth()+1;
  230. return d.getFullYear()+'-'+m+'-'+d.getDate();
  231. }
  232. //增加分钟
  233. function AddMinutes(date, value) {
  234. var time = new Date(date.replace("-","/").replace("-","/"));
  235. if(value == ''){
  236. value = 0;
  237. }
  238. time.setMinutes(parseInt(time.getMinutes()) + parseInt(value));
  239. return time.Format("yyyy-MM-dd hh:mm:ss");
  240. }
  241. //比较时间
  242. function compareDate(date1, date2) {
  243. var time1 = new Date(date1.replace("-","/").replace("-","/"));
  244. var time2 = new Date(date2.replace("-","/").replace("-","/"));
  245. if(time1 >= time2){
  246. return true;
  247. }else{
  248. return false;
  249. }
  250. }
  251. // 对Date的扩展,将 Date 转化为指定格式的String
  252. // 月(M)、日(d)、小时(h)、分(m)、秒(s)、季度(q) 可以用 1-2 个占位符,
  253. // 年(y)可以用 1-4 个占位符,毫秒(S)只能用 1 个占位符(是 1-3 位的数字)
  254. // 例子:
  255. // (new Date()).Format("yyyy-MM-dd hh:mm:ss.S") ==> 2006-07-02 08:09:04.423
  256. // (new Date()).Format("yyyy-M-d h:m:s.S") ==> 2006-7-2 8:9:4.18
  257. Date.prototype.Format = function(fmt)
  258. { //author: meizz
  259. var o = {
  260. "M+" : this.getMonth()+1, //月份
  261. "d+" : this.getDate(), //日
  262. "h+" : this.getHours(), //小时
  263. "m+" : this.getMinutes(), //分
  264. "s+" : this.getSeconds(), //秒
  265. "q+" : Math.floor((this.getMonth()+3)/3), //季度
  266. "S" : this.getMilliseconds() //毫秒
  267. };
  268. if(/(y+)/.test(fmt))
  269. fmt=fmt.replace(RegExp.$1, (this.getFullYear()+"").substr(4 - RegExp.$1.length));
  270. for(var k in o)
  271. if(new RegExp("("+ k +")").test(fmt))
  272. fmt = fmt.replace(RegExp.$1, (RegExp.$1.length==1) ? (o[k]) : (("00"+ o[k]).substr((""+ o[k]).length)));
  273. return fmt;
  274. }
  275. function setId(){
  276. user_frozenColumns.push({field:'id',title:'ID',checkbox:'true',width:100});
  277. }
  278. function toolBar(dg,dialog,tname){
  279. $('#'+dg).datagrid().datagrid('getPager').pagination({
  280. buttons:[{
  281. iconCls:'icon-cog',
  282. handler:function(){
  283. ColumnSet(dialog,tname);
  284. }
  285. }]
  286. });
  287. }
  288. function addTabFunction(sId,options) {
  289. var t = parent.$("#"+sId);
  290. if (t.tabs('exists', options.title)) {
  291. t.tabs('select', options.title);
  292. } else {
  293. t.tabs('add', options);
  294. }
  295. }
  296. /**个性化设置*/
  297. function ColumnSet(dialog,tname){
  298. //setUserDialog
  299. $('#'+dialog).dialog(
  300. {
  301. buttons : [
  302. {
  303. text : '应用',
  304. iconCls : 'icon-ok',
  305. handler : function(){
  306. user_frozenColumns = [];
  307. user_columns = [];
  308. columns=[];
  309. frozenColumns=[];
  310. var frozenColumnsStr = "";
  311. var columnsStr = "";
  312. setId();
  313. $("input[name='user_frozenColumns']").each(
  314. function(){
  315. if($(this).get(0).checked){
  316. var width = $("#column_whzl_width_set_"+$(this).val().split('_')[0]).numberspinner('getValue');
  317. user_frozenColumns.push({field:$(this).val().split('_')[0],title:$(this).val().split('_')[1],width:width});
  318. frozenColumnsStr = frozenColumnsStr + $(this).val() + "_" + $("#column_whzl_width_set_"+$(this).val().split('_')[0]).val() + ",";
  319. }
  320. }
  321. );
  322. $("input[name='user_columns']").each(
  323. function(){
  324. //alert("#column_whzl_width_set_"+$(this).val().split('_')[0]);
  325. //alert($("#column_whzl_width_set_"+$(this).val().split('_')[0]).val());
  326. var width = $("#column_whzl_width_set_"+$(this).val().split('_')[0]).numberspinner('getValue');
  327. if($(this).get(0).checked){
  328. if(frozenColumnsStr.indexOf($(this).val())<0){
  329. if($(this).val().split('_')[2] != ''){
  330. var fun = eval($(this).val().split('_')[2]);
  331. user_columns.push({field:$(this).val().split('_')[0],title:$(this).val().split('_')[1],formatter:fun,width:width});
  332. }else{
  333. user_columns.push({field:$(this).val().split('_')[0],title:$(this).val().split('_')[1],width:width});
  334. }
  335. }
  336. columnsStr = columnsStr + $(this).val() + "_1" + "_" + width + ",";
  337. }else{
  338. if(frozenColumnsStr.indexOf($(this).val())<0){
  339. columnsStr = columnsStr + $(this).val() + "_0" + "_" + width + ",";
  340. }else{
  341. columnsStr = columnsStr + $(this).val() + "_1"+ "_" + width + ",";
  342. }
  343. }
  344. }
  345. );
  346. columns.push(user_columns);
  347. frozenColumns.push(user_frozenColumns);
  348. $.ajax({
  349. type: "post",//使用post方法访问后台
  350. dataType: "json",//返回json格式的数据
  351. //data:{'columnsStr':columnsStr,'frozenColumnsStr':frozenColumnsStr,'tname':tname},
  352. url: encodeURI("columnSetAction_updateSet?columnsStr="+columnsStr + "&frozenColumnsStr="+frozenColumnsStr+"&tname="+tname),//要访问的后台地址
  353. //url: "columnSetAction_updateSet",//要访问的后台地址
  354. complete :function(){$("#load").hide();},//AJAX请求完成时隐藏loading提示
  355. success: function(msg){//msg为返回的数据,在这里做数据绑定
  356. if(msg.success){
  357. $('#'+dialog).dialog("close");
  358. searchFun();
  359. }
  360. }
  361. });
  362. }
  363. },
  364. {
  365. text : '还原',
  366. iconCls : 'icon-cancel',
  367. handler : function(){
  368. user_frozenColumns = [];
  369. user_columns = [];
  370. columns=[];
  371. frozenColumns=[];
  372. $.ajax({
  373. type: "post",//使用post方法访问后台
  374. dataType: "json",//返回json格式的数据
  375. url: "columnSetAction_initSet?tname=" + tname,//要访问的后台地址
  376. complete :function(){$("#load").hide();},//AJAX请求完成时隐藏loading提示
  377. success: function(msg){//msg为返回的数据,在这里做数据绑定
  378. if(msg.success){
  379. var data = msg.obj;
  380. for(var i = 0; i < data.length; i++ ){
  381. if(typeof(data[i].formatter) != "undefined"){
  382. data[i].formatter = eval(data[i].formatter);
  383. }
  384. user_columns.push(data[i]);
  385. }
  386. columns.push(user_columns);
  387. $('#'+dialog).dialog("close");
  388. searchFun();
  389. }
  390. }
  391. });
  392. }
  393. }
  394. ]
  395. }
  396. );
  397. }
  398. var columns=[];
  399. var user_columns = [];
  400. var frozenColumns=[];
  401. var user_frozenColumns = [];