mode_rjz_car_apply.js 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311
  1. //流程模块【rjz_car_apply.任家庄用车申请】下录入页面自定义js页面,初始函数
  2. function initbodys() {
  3. var car_type = getUrlParamCN("car_type");
  4. var free_con = getUrlParamCN("free_con");
  5. if (car_type) {
  6. $("*[name=car_type]").val(car_type);
  7. if (free_con) {
  8. $("*[name=free_car_con]").val(free_con);
  9. }
  10. }
  11. c.onselectdata['car_type'] = function (d) {
  12. // console.log(d);
  13. js.ajax(geturlact('getFreeCarCon'), {car_type: d.name}, function (res) {
  14. var data = JSON.parse(res);
  15. if (data.success) {
  16. if (isMobile()) {
  17. var htmlDom = $('.lumtr .form_title')[1];
  18. var htmlStr = '<font color="red">*</font>车辆类型<font color="red" font-szie="12"> (剩余 '+data.data.car_free_con+' 辆 '+d.name+')</font>';
  19. $(htmlDom).html(htmlStr);
  20. form('free_car_con').value = data.data.car_free_con;
  21. } else {
  22. form('free_car_con').value = data.data.car_free_con;
  23. }
  24. }
  25. }, 'get, json');
  26. }
  27. if (isMobile()) {
  28. setTimeout(function() {
  29. var time = getNowDatetime();
  30. var step = getStep();
  31. // 获取车辆类型
  32. var carType = getInputVal('input_car_type');
  33. console.log(step);
  34. if (step === 'dispatch_assess') {
  35. setCarFreeCon(carType);
  36. } else if (step === 'fleet_select_car') {
  37. // 显示数量
  38. setCarFreeCon(carType);
  39. // 选择车辆
  40. setSelectCar(carType);
  41. } else if(step === 'load_car_succ') {
  42. // 设置装车结束时间
  43. $("#div_load_end_time input").attr('value', time);
  44. $("*[name='load_end_time']").removeAttr('onclick');
  45. } else if (step == 'fleet_assess_load_car_succ') {
  46. // 设置实际使用完毕时间
  47. load_end_use();
  48. } else if (step == 'load_end_use') {
  49. // 设置实际使用完毕时间
  50. $("*[name='actual_end_time']").attr('value', time);
  51. $("*[name='actual_end_time']").removeAttr('onclick');
  52. } else if (step === 'fleet_assess_load_end_use') {
  53. setAssessSuccStep();
  54. submitAssessSucc();
  55. } else {
  56. }
  57. }, 100);
  58. }
  59. function getUrlParamCN(name) {
  60. var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)"); //构造一个含有目标参数的正则表达式对象
  61. var r = decodeURI(window.location.search).substr(1).match(reg); //匹配目标参数
  62. if (r != null) return unescape(r[2]); return null; //返回参数值
  63. }
  64. function load_end_use() {
  65. // 判断是否同意
  66. // 同意需要先处理数据,再提交;不同意则用原始方法提交。
  67. $("*[name='check_status']").click(function(){
  68. var agree = $(this).attr('value');
  69. if (agree == 1) {
  70. getUpdateCarStateApi('使用中');
  71. } else {
  72. check(0);
  73. }
  74. });
  75. }
  76. // 判断函数
  77. function getStep() {
  78. var step_text_original = '';
  79. step_text_original = $("#input_step").text();
  80. var step_text = step_text_original.split('(')[0];
  81. var carnameStep = $("#btn_carname").length; // 选择车辆步骤
  82. var loadCarSuccStep = $("*[name='load_end_time']").length; // 装车完成1
  83. var endUseStep = $("*[name='end_time']").length; // 使用结束时间
  84. var parkingLocationStep = $("*[name='parking_location']").length; // 停车场
  85. var assesLocationStep = $("*[name=assess_car_location]").length; // 审核车场
  86. // var assesTimeStep = $("*[name=assess_time]").length; // 审核时间
  87. if (step_text == '调度室审批') {
  88. return 'dispatch_assess';
  89. } else if (step_text == '运输队审批' && carnameStep == 1) {
  90. return 'fleet_select_car';
  91. } else if (step_text == '装车完成' && loadCarSuccStep == 1) {
  92. return 'load_car_succ';
  93. } else if ((step_text == '运输队审核' || step_text == '运输队审批') && endUseStep == 1) {
  94. return 'fleet_assess_load_car_succ';
  95. } else if (step_text == '使用完毕' && parkingLocationStep == 1) {
  96. return 'load_end_use';
  97. } else if (step_text == '运输队审核' && assesLocationStep == 1) {
  98. return 'fleet_assess_load_end_use';
  99. }
  100. }
  101. function getInputVal(inputNameStr) {
  102. carType = $("*[name="+inputNameStr+"]").val();
  103. return carType;
  104. }
  105. function isMobile() {
  106. var userAgentInfo = navigator.userAgent;
  107. var mobileAgents = ["Android", "iPhone", "SymbianOS", "Windows Phone", "iPad", "iPod"];
  108. var mobile_flag = false;
  109. //根据userAgent判断是否是手机
  110. for (var v = 0; v < mobileAgents.length; v++) {
  111. if (userAgentInfo.indexOf(mobileAgents[v]) > 0) {
  112. mobile_flag = true;
  113. break;
  114. }
  115. }
  116. var screen_width = window.screen.width;
  117. var screen_height = window.screen.height;
  118. //根据屏幕分辨率判断是否是手机
  119. if (screen_width > 325 && screen_height < 750) {
  120. mobile_flag = true;
  121. }
  122. return mobile_flag;
  123. }
  124. function getNowDatetime() {
  125. var date = new Date();
  126. var year = date.getFullYear(); // 返回的是年份
  127. var month = date.getMonth() + 1; // 返回的月份上个月的月份,记得+1才是当月
  128. var dates = date.getDate();
  129. var h = date.getHours();
  130. var m = date.getMinutes();
  131. var s = date.getSeconds();
  132. if(month<10)month="0"+month;
  133. if(date<10)date="0"+date;
  134. var time=year + "-" + month + "-" + dates + ' ' + h + ':' + m + ':' + s;
  135. return time;
  136. }
  137. // 操作函数
  138. function setCarFreeCon(carType) {
  139. $(".car_con_col").show();
  140. var carTypeJson = "car_type="+carType;
  141. // 显示申请车辆类型剩余数量
  142. js.ajax(geturlact('getFreeCarCon'), carTypeJson, function (res) {
  143. if(res.success) {
  144. var trStr = '<tr><td style="vertical-align:text-top;"><div align="left" style="color:#000;padding:6px 0px 3px;font-size:16px;font-weight:bold;color: red">空闲的 '+carType+' 数量</div><div style="padding:8px 10px 8px 10px;color:#3A3A3C;font-size:15px;width:94%;min-height:15px;border:1px solid #dcdcdc;border-radius:5px;color: red" align="left">'+res.data.car_free_con+'</div></td><td></td></tr>'
  145. $("#mobile_info_table").append(trStr);
  146. console.log(res);
  147. $('*[name=surplus]').val(res.data.car_free_con);
  148. $('*[name=car_con]').val(res.data.car_con);
  149. }
  150. }, 'get, json');
  151. }
  152. function setSelectCar(carType) {
  153. // 替换原来onclick方法,增加参数
  154. $("#btn_carname").removeAttr('onclick');
  155. $("#btn_carname").click(function (){
  156. c.selectdata('carNum',false,'carname','申请车辆',1, carType);
  157. });
  158. // 选择车辆
  159. var carnameStep = $("#btn_carname").length; // 选择车辆步骤
  160. // 判断是否选择车辆步骤,不是选择车辆步骤,则用默认方式提交
  161. if (carnameStep > 0) {
  162. var isAgree;
  163. // 判断是否同意
  164. $("*[name='check_status']").click(function(){
  165. var agree = $(this).attr('value');
  166. console.log(agree);
  167. if (agree == 1) {
  168. getUpdateCarStateApi('装车');
  169. } else {
  170. check(0);
  171. }
  172. c.changecheck_status(this);
  173. });
  174. }
  175. }
  176. function setAssessSuccStep() {
  177. // 设置默认值(出现控件时再设置)
  178. var input_parking_location = $("*[name=input_parking_location]").val();
  179. $("*[name=assess_car_location]").val(input_parking_location);
  180. $("*[name=assess_time]").attr('id','assess_time');
  181. var assess_time = $("*[name=assess_time]").length;
  182. var input_actual_end_time = $("*[name=input_actual_end_time]").val();
  183. if (assess_time && input_actual_end_time != null) {
  184. $("*[name=assess_time]").val(input_actual_end_time);
  185. }
  186. $("*[name=assess_location]").val('否');
  187. $("*[name=assess_car_location]").attr('id','assess_car_location');
  188. $('#assess_car_location').change(function () {
  189. var sj = $("*[name=input_parking_location]").val();
  190. var sh = $(this).val();
  191. if (sj != sh) {
  192. var sj = $("*[name=assess_location]").val('是');
  193. } else {
  194. var sj = $("*[name=assess_location]").val('否');
  195. }
  196. })
  197. }
  198. function submitAssessSucc() {
  199. // 替换原提交方法,处理后再提交 check(0)
  200. // $("#check_btn").removeAttr('onclick');
  201. // 审核还车时间
  202. var car_location = getInputVal('input_parking_location'); // 车场
  203. var assess_car_location = getInputVal('assess_car_location'); // 审核车场
  204. var end_time = getInputVal('input_actual_end_time'); // 实际还车时间
  205. var assess_time = getInputVal('assess_time'); // 审核还车时间
  206. var time1 = new Date(end_time);
  207. var time2 = new Date(assess_time);
  208. // 时间差半小时考核
  209. var date = time2.getTime() - time1.getTime();
  210. var days = date / 1000 / 60 / 60 / 24;
  211. var daysRound = Math.floor(days);
  212. var hours = date/ 1000 / 60 / 60 - (24 * daysRound);
  213. var hoursRound = Math.floor(hours);
  214. var minutes = date / 1000 /60 - (24 * 60 * daysRound) - (60 * hoursRound);
  215. // 超时
  216. if (minutes <= 30) {
  217. $('*[name=assess_timeout]').val('否');
  218. } else {
  219. $('*[name=assess_timeout]').val('是');
  220. }
  221. // 车场审核位置不同则考核
  222. if (car_location == assess_car_location) {
  223. $('*[name=assess_location]').val('否');
  224. } else {
  225. $('*[name=assess_location]').val('是');
  226. }
  227. getUpdateCarStateApi('正常');
  228. }
  229. function getUpdateCarStateApi(carstate) {
  230. // 替换原提交方法,处理后再提交 check(0)
  231. $("#check_btn").removeAttr('onclick');
  232. $("#check_btn").click(function () {
  233. var carname = $("*[name='input_carname']").val();
  234. if (carname == null) {
  235. carname = $("*[name='carname_success']").val();
  236. }
  237. var data = "carname="+carname+"&carstate="+carstate;
  238. js.ajax(geturlact('updateCarState'), data, function (res) {
  239. console.log(res);
  240. res = JSON.parse(res);
  241. if (res.success) {
  242. check(0);
  243. } else {
  244. $('#msgview').text(res.msg);
  245. }
  246. }, 'get');
  247. });
  248. }
  249. }