common.js 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472
  1. window.host_url = "http://localhost:9090/aeeaps";
  2. $(function() {
  3. var ww = $(window).width();
  4. var wh = $(window).height();
  5. var mainbox = $('.ui_mainbox');
  6. if (wh - 123 < 425) {
  7. mainbox.height(425);
  8. } else {
  9. mainbox.height(wh - 123);
  10. }
  11. if (ww > 1600) {
  12. mainbox.width(1600);
  13. $('.ui_button').width(1580);
  14. } else {
  15. mainbox.width(1200);
  16. $('.ui_button').width(1180);
  17. }
  18. //$('.cb,.rb').inputbox();
  19. $(window).resize(function() {
  20. ww = $(window).width();
  21. wh = $(window).height();
  22. if (wh - 123 < 425) {
  23. mainbox.height(425);
  24. } else {
  25. mainbox.height(wh - 123);
  26. }
  27. if (ww > 1600) {
  28. mainbox.width(1600);
  29. $('.ui_button').width(1580);
  30. } else {
  31. mainbox.width(1200);
  32. $('.ui_button').width(1180);
  33. }
  34. });
  35. $('.ui_mainbox .tabcnt').mCustomScrollbar();
  36. $('.ui_topbar .menu,.s-menu').on('mouseover', function() {
  37. $(".s-menu").show();
  38. }).on('mouseout', function() {
  39. $(".s-menu").hide();
  40. });
  41. $('.ui_menubox em.close').on('click', function() {
  42. $('.ui_menubox').hide();
  43. });
  44. $('.ui_mainbox .table tbody.list').on('click', 'tr', function() {
  45. $(this).toggleClass('on').siblings().removeClass('on');
  46. });
  47. });
  48. (function($) {
  49. //设置Ajax全局属性
  50. $.ajaxSetup({
  51. timeout: 180000,
  52. cache: false,
  53. async: true,
  54. contentType: 'application/json;charset=UTF-8',
  55. error: function(XMLHttpRequest, textStatus, errorThrown) { //当response 的status 不是200时,触发error
  56. if (XMLHttpRequest.responseText) {
  57. var errorObj = eval('[' + XMLHttpRequest.responseText + ']')[0];
  58. if (errorObj) {
  59. var callBackFunc = undefined;
  60. if (XMLHttpRequest.status == 900) {
  61. //会话超时 定向之后 重新登录
  62. document.location.href = host_url + "/student/login.html";
  63. }
  64. if (XMLHttpRequest.status == 902 || XMLHttpRequest.status == 904) {
  65. //会话超时 定向之后 重新登录
  66. dialog({
  67. title:'提示',
  68. content:'<div class="menu_tips">'+errorObj.errorMsg+'</div>',
  69. width:300,
  70. ok:function(){ },
  71. okValue:'确定',
  72. cancel:function(){},
  73. cancelValue:'取消'
  74. }).showModal();
  75. //alert(errorObj.errorMsg);
  76. }
  77. //var errorMessage = "系统错误<br>错误码:" + XMLHttpRequest.status + "<br>错误信息:" + errorObj.errorMsg;
  78. //showError(errorMessage, callBackFunc);
  79. }
  80. }
  81. }
  82. });
  83. $(document).ajaxStop(function(){
  84. $('.ui_loading').hide();
  85. $('.btn').removeAttr('disabled');
  86. });
  87. $(document).ajaxStart(function(){
  88. $('.btn').attr('disabled','disabled');
  89. });
  90. //占位符
  91. String.prototype.format = function() {
  92. var args = arguments;
  93. return this.replace(/\{(\d+)\}/g,
  94. function(m, i) {
  95. return args[i];
  96. });
  97. }
  98. })(jQuery);
  99. function goUrl(url) {
  100. document.location.href = url;
  101. }
  102. //退出登录
  103. function goLogout() {
  104. var url = host_url + '/api/UserLogouts';
  105. $.ajax({
  106. url: url,
  107. type: "POST",
  108. dataType: "JSON",
  109. success: function(data) {
  110. if (data.success) {
  111. if (data.map.code == 1) {
  112. document.location.href = "./login.html";
  113. $.removeCookie('userid');
  114. $.removeCookie('uname');
  115. }
  116. }
  117. }
  118. });
  119. }
  120. function getPercentage(){
  121. var num = 1;
  122. var percentagesData = {
  123. card:''
  124. }
  125. $.ajax({
  126. url: host_url + '/api/StudentInfoPercentageQuerys/'+$.cookie('userid'),
  127. type: "POST",
  128. data: JSON.stringify(percentagesData),
  129. dataType: "JSON",
  130. success: function(data) {
  131. if(data.success){
  132. $.each(data.map.studentInfoPercentages,function(i,n){
  133. switch (n.card){
  134. case '一':
  135. if(n.percent == '1'){
  136. $('.ui_menubox .box a').eq(0).addClass('curr');
  137. }
  138. break;
  139. case '二':
  140. if(n.percent == '1'){
  141. $('.ui_menubox .box a').eq(1).addClass('curr');
  142. }
  143. break;
  144. case '三':
  145. if(n.percent == '1'){
  146. $('.ui_menubox .box a').eq(2).addClass('curr');
  147. }
  148. break;
  149. case '四':
  150. if(n.percent == '1'){
  151. $('.ui_menubox .box a').eq(3).addClass('curr');
  152. }
  153. break;
  154. case '五':
  155. if(n.percent == '1'){
  156. $('.ui_menubox .box a').eq(4).addClass('curr');
  157. }
  158. break;
  159. case '六':
  160. if(n.percent == '1'){
  161. $('.ui_menubox .box a').eq(5).addClass('curr');
  162. }
  163. break;
  164. case '七':
  165. if(n.percent == '1'){
  166. $('.ui_menubox .box a').eq(6).addClass('curr');
  167. }
  168. break;
  169. case '八':
  170. if(n.percent == '1'){
  171. $('.ui_menubox .box a').eq(7).addClass('curr');
  172. }
  173. break;
  174. case '九':
  175. if(n.percent == '1'){
  176. $('.ui_menubox .box a').eq(8).addClass('curr');
  177. }
  178. break;
  179. }
  180. num += n.percent;
  181. });
  182. $('#percentStatus').width(num*10+'%').text(num*10+'%');
  183. if(num == 10){
  184. $('#dataSubmit').removeAttr('class');
  185. }
  186. }
  187. }
  188. });
  189. }
  190. //单选默认选中
  191. function initradio(rName, rValue) {
  192. var rObj = document.getElementsByName(rName);
  193. for (var i = 0; i < rObj.length; i++) {
  194. if (rObj[i].value == rValue) {
  195. rObj[i].checked = 'checked';
  196. }
  197. }
  198. }
  199. //jQuery.validate验证扩展
  200. /**
  201. * isMobile :手机号码验证
  202. */
  203. $.validator.addMethod("isMobile", function(value, element) {
  204. var length = value.length;
  205. var mobile = /^(13[0-9]{9})|(18[0-9]{9})|(14[0-9]{9})|(17[0-9]{9})|(15[0-9]{9})$/;
  206. return this.optional(element) || (length == 11 && mobile.test(value));
  207. }, "请正确填写您的手机号码");
  208. /**
  209. * isIdCardNo :身份证验证
  210. */
  211. //增加身份证验证
  212. $.validator.addMethod("isIdCardNo", function(value, element){
  213. return this.optional(element) || isIdCardNo(value);
  214. }, "请正确输入您的身份证号码");
  215. function isIdCardNo(num) {
  216. var factorArr = new Array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2, 1);
  217. var parityBit = new Array("1", "0", "X", "9", "8", "7", "6", "5", "4", "3", "2");
  218. var varArray = new Array();
  219. var intValue;
  220. var lngProduct = 0;
  221. var intCheckDigit;
  222. var intStrLen = num.length;
  223. var idNumber = num;
  224. // initialize
  225. if ((intStrLen != 15) && (intStrLen != 18)) {
  226. return false;
  227. }
  228. // check and set value
  229. for (i = 0; i < intStrLen; i++) {
  230. varArray[i] = idNumber.charAt(i);
  231. if ((varArray[i] < '0' || varArray[i] > '9') && (i != 17)) {
  232. return false;
  233. } else if (i < 17) {
  234. varArray[i] = varArray[i] * factorArr[i];
  235. }
  236. }
  237. if (intStrLen == 18) {
  238. //check date
  239. var date8 = idNumber.substring(6, 14);
  240. if (isDate8(date8) == false) {
  241. return false;
  242. }
  243. // calculate the sum of the products
  244. for (i = 0; i < 17; i++) {
  245. lngProduct = lngProduct + varArray[i];
  246. }
  247. // calculate the check digit
  248. intCheckDigit = parityBit[lngProduct % 11];
  249. // check last digit
  250. if (varArray[17] != intCheckDigit) {
  251. return false;
  252. }
  253. } else {
  254. //length is 15
  255. //check date
  256. var date6 = idNumber.substring(6, 12);
  257. if (isDate6(date6) == false) {
  258. return false;
  259. }
  260. }
  261. return true;
  262. }
  263. function isDate6(sDate) {
  264. if (!/^[0-9]{6}$/.test(sDate)) {
  265. return false;
  266. }
  267. var year, month, day;
  268. year = sDate.substring(0, 4);
  269. month = sDate.substring(4, 6);
  270. if (year < 1700 || year > 2500) return false
  271. if (month < 1 || month > 12) return false
  272. return true
  273. }
  274. function isDate8(sDate) {
  275. if (!/^[0-9]{8}$/.test(sDate)) {
  276. return false;
  277. }
  278. var year, month, day;
  279. year = sDate.substring(0, 4);
  280. month = sDate.substring(4, 6);
  281. day = sDate.substring(6, 8);
  282. var iaMonthDays = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
  283. if (year < 1700 || year > 2500) return false
  284. if (((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0)) iaMonthDays[1] = 29;
  285. if (month < 1 || month > 12) return false
  286. if (day < 1 || day > iaMonthDays[month - 1]) return false
  287. return true
  288. }
  289. function GetDateStr(AddDayCount) {
  290. var dd = new Date();
  291. dd.setDate(dd.getDate() + AddDayCount); //获取AddDayCount天后的日期
  292. var y = dd.getFullYear();
  293. var m = dd.getMonth() + 1; //获取当前月份的日期
  294. var d = dd.getDate();
  295. return y + "-" + m + "-" + d;
  296. }
  297. //弹出框添加新内容
  298. function popAddCont(o, b) {
  299. $(o).find('input').val('');
  300. var d = dialog({
  301. width: 600,
  302. title: '添加数据',
  303. content: $(o),
  304. okValue: '确定',
  305. ok: function() {
  306. if ($(o).find('input.txt').val() != '') {
  307. var tdhtml = '';
  308. var len = $(o).find('input.txt').length;
  309. console.log(len);
  310. $.each($(o).find('input.txt'), function(i) {
  311. if(i+1 < len){
  312. tdhtml += '<td>' + this.value + '</td>';
  313. }else if(i+1 == len){
  314. //如果最后一个文本框不是用来上传附件的,即
  315. if ($(this).hasClass('not_file')) {
  316. tdhtml += '<td>' + this.value + '</td>';
  317. }
  318. else{
  319. tdhtml += '<td><em fileid="'+$(this).attr("fileid")+'">预览</em></td>';
  320. }
  321. }
  322. });
  323. $(b).append('<tr>' + tdhtml + '</tr>');
  324. }
  325. },
  326. cancelValue: '取消',
  327. cancel: function() {}
  328. });
  329. d.showModal();
  330. }
  331. //弹出框添加新内容
  332. function popAddTr(o, b) {
  333. $(b).append($(o).find("tr").clone());
  334. }
  335. function popEditCont(o, b) {
  336. if ($(b).find('tr.on').length) {
  337. $(b).find('tr.on td').each(function(i) {
  338. console.log()
  339. $(o).find('input.txt').eq(i).val($(this).text());
  340. });
  341. var d = dialog({
  342. width: 600,
  343. title: '修改数据',
  344. content: $(o),
  345. okValue: '确定',
  346. ok: function() {
  347. var tdhtml = '';
  348. var len = $(o).find('input.txt').length;
  349. $.each($(o).find('input.txt'), function(i) {
  350. if(i+1 < len){
  351. tdhtml += '<td>' + this.value + '</td>';
  352. }else if(i+1 == len){
  353. //如果最后一个文本框不是用来上传附件的,即
  354. if ($(this).hasClass('not_file')) {
  355. tdhtml += '<td>' + this.value + '</td>';
  356. }
  357. else{
  358. tdhtml += '<td><em fileid="'+$(this).attr("fileid")+'">预览</em></td>';
  359. }
  360. }
  361. });
  362. $(b).find('tr.on').html(tdhtml);
  363. },
  364. cancelValue: '取消',
  365. cancel: function() {}
  366. });
  367. d.showModal();
  368. }
  369. }
  370. function resizeimg(obj,maxW,maxH)
  371. {
  372. var imgW=obj.width;
  373. var imgH=obj.height;
  374. var Wn=obj.width/maxW;
  375. var Hn=obj.height/maxH;
  376. if(Wn>Hn)
  377. {
  378. obj.width=maxW;
  379. obj.height=parseInt(imgH/Wn);
  380. }else{
  381. obj.width=parseInt(imgW/Hn);
  382. obj.height=maxH;
  383. }
  384. }
  385. function imgPreview(o){
  386. $('.img_preview').remove();
  387. var fileIds = $(o).attr('fileId');
  388. if(fileIds != 'undefined' || fileIds != ''){
  389. var url = host_url+'/api/FilePreviews/'+ fileIds;
  390. $.getJSON(url,function(data){
  391. if(data.success){
  392. var html = '';
  393. html += '<div class="img_preview">';
  394. html += ' <ul>';
  395. $.each(data.map.urls,function(){
  396. html += ' <li><a href="'+this+'" target="_blank"><img onload="resizeimg(this,800,550)" _src="'+this+'" /></a></li>';
  397. })
  398. html += ' </ul>';
  399. html += ' <span class="prev">&lt;</span>';
  400. html += ' <span class="next">&gt;</span>';
  401. html += '</div>';
  402. var d = dialog({
  403. title:'图片预览',
  404. width:800,
  405. height:550,
  406. content:html
  407. });
  408. d.showModal();
  409. $(".img_preview").slide({ mainCell:"ul", effect:"left", autoPage:true,pnLoop:false, switchLoad:"_src"});
  410. }
  411. });
  412. }else{
  413. var d = dialog({
  414. content:'<div class="noimg">无预览图片</div>'
  415. });
  416. d.showModal();
  417. setTimeout(function(){
  418. d.close();
  419. },1000);
  420. }
  421. }
  422. function verifyEmail(str) {
  423. var myreg = /^([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+@([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+\.[a-zA-Z]{2,3}$/;
  424. if (!myreg.test(str.value)){
  425. $(str).parent().find('em').text('请输入正确的邮件格式!');
  426. return false;
  427. }else{
  428. $(str).parent().find('em').text('');
  429. }
  430. }
  431. function verifyStdEmail(str) {
  432. var myreg = /^([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+@([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+\.[a-zA-Z]{2,3}$/;
  433. if (!myreg.test(str.value)){
  434. $(str).addClass('erro');
  435. return false;
  436. }else{
  437. $(str).removeClass('erro');
  438. }
  439. }
  440. function getImgType(file_name){
  441. var result =/\.[^\.]+/.exec(file_name);
  442. if(result == '.jpg' || result == '.png' || result == '.bmp'){
  443. return true;
  444. }else{
  445. return false;
  446. }
  447. }