mode_rjz_car_apply.js 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382
  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. console.log("APP端");
  35. // if (step === 'dispatch_assess') {
  36. // setCarFreeCon(carType);
  37. // } else if (step === 'fleet_select_car') {
  38. // // 显示数量
  39. // setCarFreeCon(carType);
  40. // // 选择车辆
  41. // setSelectCar(carType);
  42. // } else if(step === 'load_car_succ') {
  43. // // 设置装车结束时间
  44. // $("#div_load_end_time input").attr('value', time);
  45. // $("*[name='load_end_time']").removeAttr('onclick');
  46. // } else if (step == 'fleet_assess_load_car_succ') {
  47. // // 设置实际使用完毕时间
  48. // load_end_use();
  49. // } else if (step == 'load_end_use') {
  50. // // 设置实际使用完毕时间
  51. // $("*[name='actual_end_time']").attr('value', time);
  52. // $("*[name='actual_end_time']").removeAttr('onclick');
  53. // } else if (step === 'fleet_assess_load_end_use') {
  54. // setAssessSuccStep();
  55. // submitAssessSucc();
  56. // } else {
  57. //
  58. // }
  59. // 1 - 领导审核(暂时隐藏)
  60. if (step === 'leader_review') {
  61. $(".car_con_col").show();
  62. } else
  63. // 2 - 调度室审批
  64. if (step === 'dispatch_assess') {
  65. // 设置空闲车数量
  66. setCarFreeCon(carType);
  67. } else
  68. // 3 - 运输队审批
  69. if (step === 'fleet_select_car') {
  70. // 设置空闲车数量
  71. setCarFreeCon(carType);
  72. // 选择车辆
  73. setSelectCar();
  74. } else
  75. // 4 - 装车完成
  76. if(step === 'load_car_succ') {
  77. // 设置装车结束时间
  78. $("*[name='load_end_time']").attr('value', time);
  79. $("*[name='load_end_time']").removeAttr('onclick');
  80. } else
  81. // 5 - 运输队审核(车辆下放)
  82. if (step == 'fleet_assess_load_car_succ') {
  83. // load_end_use();
  84. $("*[name='down_time']").attr('value', time);
  85. $("*[name='down_time']").removeAttr('onclick');
  86. getUpdateCarStateApi('卸车');
  87. } else
  88. // 6 - 使用完毕
  89. if (step == 'load_end_use') {
  90. $("*[name='actual_end_time']").attr('value', time);
  91. $("*[name='actual_end_time']").removeAttr('onclick');
  92. } else
  93. // 7 - 运输队审核
  94. if (step === 'fleet_assess_load_end_use') {
  95. setAssessSuccStep();
  96. submitAssessSucc();
  97. }
  98. }, 100);
  99. }
  100. function getUrlParamCN(name) {
  101. var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)"); //构造一个含有目标参数的正则表达式对象
  102. var r = decodeURI(window.location.search).substr(1).match(reg); //匹配目标参数
  103. if (r != null) return unescape(r[2]); return null; //返回参数值
  104. }
  105. function load_end_use() {
  106. // 判断是否同意
  107. // 同意需要先处理数据,再提交;不同意则用原始方法提交。
  108. $("*[name='check_status']").click(function(){
  109. var agree = $(this).attr('value');
  110. if (agree == 1) {
  111. getUpdateCarStateApi('使用中');
  112. } else {
  113. check(0);
  114. }
  115. });
  116. }
  117. // 以下开始
  118. // 判断函数
  119. function getStep() {
  120. var step_text_original = $("#input_step").html();
  121. var step_text = step_text_original.split('(')[0];
  122. var carnameStep = $("#btn_carname").length; // 选择车辆步骤
  123. var loadCarSuccStep = $("*[name='load_end_time']").length; // 装车完成1
  124. var endUseStep = $("*[name='end_time']").length; // 使用结束时间
  125. var parkingLocationStep = $("*[name='parking_location']").length; // 停车场
  126. var assesLocationStep = $("*[name=assess_location]").length; // 审核车场
  127. // var assesTimeStep = $("*[name=assess_time]").length; // 审核时间
  128. console.log(step_text);
  129. if (step_text == '领导审核') {
  130. return 'leader_review';
  131. } else if (step_text == '调度室审批') {
  132. return 'dispatch_assess';
  133. } else if (step_text == '运输队审批' && carnameStep == 1) {
  134. return 'fleet_select_car';
  135. } else if (step_text == '装车完成' && loadCarSuccStep == 1) {
  136. return 'load_car_succ';
  137. // } else if (step_text == '运输队审核' && endUseStep == 1) {
  138. } else if (step_text == '运输下放') {
  139. return 'fleet_assess_load_car_succ';
  140. } else if (step_text == '使用完毕') {
  141. return 'load_end_use';
  142. } else if (step_text == '运输队审核' && assesLocationStep >= 1) {
  143. return 'fleet_assess_load_end_use';
  144. }
  145. }
  146. function getInputVal(inputNameStr) {
  147. carType = $("*[name="+inputNameStr+"]").val();
  148. return carType;
  149. }
  150. function isMobile() {
  151. var userAgentInfo = navigator.userAgent;
  152. var mobileAgents = ["Android", "iPhone", "SymbianOS", "Windows Phone", "iPad", "iPod"];
  153. var mobile_flag = false;
  154. //根据userAgent判断是否是手机
  155. for (var v = 0; v < mobileAgents.length; v++) {
  156. if (userAgentInfo.indexOf(mobileAgents[v]) > 0) {
  157. mobile_flag = true;
  158. break;
  159. }
  160. }
  161. var screen_width = window.screen.width;
  162. var screen_height = window.screen.height;
  163. //根据屏幕分辨率判断是否是手机
  164. if (screen_width > 325 && screen_height < 750) {
  165. mobile_flag = true;
  166. }
  167. return mobile_flag;
  168. }
  169. function getNowDatetime() {
  170. var date = new Date();
  171. var year = date.getFullYear(); // 返回的是年份
  172. var month = date.getMonth() + 1; // 返回的月份上个月的月份,记得+1才是当月
  173. var dates = date.getDate();
  174. var h = date.getHours();
  175. var m = date.getMinutes();
  176. var s = date.getSeconds();
  177. if(month<10)month="0"+month;
  178. if(date<10)date="0"+date;
  179. var time=year + "-" + month + "-" + dates + ' ' + h + ':' + m + ':' + s;
  180. return time;
  181. }
  182. // 操作函数
  183. function setCarFreeCon(carType) {
  184. $(".car_con_col").show();
  185. var carTypeJson = "car_type="+carType;
  186. // 显示申请车辆类型剩余数量
  187. js.ajax(geturlact('getFreeCarCon'), carTypeJson, function (res) {
  188. if(res.success) {
  189. $('*[name=surplus]').val(res.data.car_free_con);
  190. $('*[name=car_con]').val(res.data.car_con);
  191. }
  192. }, 'get, json');
  193. }
  194. function setSelectCar() {
  195. // 替换原来onclick方法,增加参数
  196. $("#btn_carname").removeAttr('onclick');
  197. $("#btn_carname").click(function (){
  198. c.selectdata('carNum',false,'carname','申请车辆',1, carType);
  199. });
  200. // 选择车辆
  201. var carnameStep = $("#btn_carname").length; // 选择车辆步骤
  202. // 判断是否选择车辆步骤,不是选择车辆步骤,则用默认方式提交
  203. if (carnameStep > 0) {
  204. var isAgree;
  205. // 判断是否同意
  206. $("*[name='check_status']").click(function(){
  207. var agree = $(this).attr('value');
  208. if (agree == 1) {
  209. getUpdateCarStateApi('装车');
  210. } else {
  211. check(0);
  212. }
  213. c.changecheck_status(this);
  214. });
  215. }
  216. }
  217. function setAssessSuccStep() {
  218. // 设置默认值(出现控件时再设置)
  219. var input_parking_location = $("*[name=input_parking_location]").val();
  220. $("*[name=assess_car_location]").val(input_parking_location);
  221. $("*[name=assess_time]").attr('id','assess_time');
  222. var assess_time = $("*[name=assess_time]").length;
  223. var input_actual_end_time = $("*[name=input_actual_end_time]").val();
  224. if (assess_time && input_actual_end_time != null) {
  225. $("*[name=assess_time]").val(input_actual_end_time);
  226. }
  227. // 车场考核
  228. // $("*[name=assess_location]").val('否');
  229. $("*[name=assess_car_location]").attr('id','assess_car_location');
  230. $('#assess_car_location').change(function () {
  231. var sj = $("*[name=input_parking_location]").val();
  232. var sh = $(this).val();
  233. // if (sj != sh) {
  234. // var sj = $("*[name=assess_location]").val('是');
  235. // } else {
  236. // var sj = $("*[name=assess_location]").val('否');
  237. // }
  238. })
  239. }
  240. // 装车完成
  241. function load_end_use() {
  242. // 判断是否同意
  243. // 同意需要先处理数据,再提交;不同意则用原始方法提交。
  244. $("*[name='check_status']").click(function(){
  245. var agree = $(this).attr('value');
  246. if (agree == 1) {
  247. getUpdateCarStateApi('使用中');
  248. } else {
  249. check(0);
  250. }
  251. });
  252. }
  253. function submitAssessSucc() {
  254. // 替换原提交方法,处理后再提交 check(0)
  255. // $("#check_btn").removeAttr('onclick');
  256. // 审核还车时间
  257. var car_location = getInputVal('input_parking_location'); // 车场
  258. var assess_car_location = getInputVal('assess_car_location'); // 审核车场
  259. var end_time = getInputVal('input_actual_end_time'); // 实际还车时间
  260. var assess_time = getInputVal('assess_time'); // 审核还车时间
  261. var time1 = new Date(end_time);
  262. var time2 = new Date(assess_time);
  263. // 时间差半小时考核
  264. var date = time2.getTime() - time1.getTime();
  265. var days = date / 1000 / 60 / 60 / 24;
  266. var daysRound = Math.floor(days);
  267. var hours = date/ 1000 / 60 / 60 - (24 * daysRound);
  268. var hoursRound = Math.floor(hours);
  269. var minutes = date / 1000 /60 - (24 * 60 * daysRound) - (60 * hoursRound);
  270. // 超时
  271. if (minutes <= 30) {
  272. $('*[name=assess_timeout]').val('否');
  273. } else {
  274. $('*[name=assess_timeout]').val('是');
  275. }
  276. // 车场审核位置不同则考核
  277. // if (car_location == assess_car_location) {
  278. // $('*[name=assess_location]').val('否');
  279. // } else {
  280. // $('*[name=assess_location]').val('是');
  281. // }
  282. getUpdateCarStateApi('正常');
  283. // $("#check_btn").click(function () {
  284. //
  285. // var carname = $("*[name='carname_success']").val();
  286. // var data = "carname="+carname+"&carstate=正常";
  287. // js.ajax(geturlact('updateCarState'), data, function (res) {
  288. // res = JSON.parse(res);
  289. // if (res.success) {
  290. // check(0);
  291. // } else {
  292. // $('#msgview').text(res.msg);
  293. // }
  294. // }, 'get');
  295. // });
  296. }
  297. function getUpdateCarStateApi(carstate) {
  298. // 替换原提交方法,处理后再提交 check(0)
  299. $("#check_btn").removeAttr('onclick');
  300. $("#check_btn").click(function () {
  301. var carname = $("*[name='carname']").val();
  302. if (carname == null) {
  303. carname = $("*[name='carname_success']").val();
  304. }
  305. var data = "carname="+carname+"&carstate="+carstate;
  306. js.ajax(geturlact('updateCarState'), data, function (res) {
  307. res = JSON.parse(res);
  308. if (res.success) {
  309. check(0);
  310. } else {
  311. $('#msgview').text(res.msg);
  312. }
  313. }, 'get');
  314. });
  315. }
  316. }