mode_rjz_car_apply.js 14 KB

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