mode_rjz_car_apply.js 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433
  1. //流程模块【rjz_car_apply.任家庄用车申请】下录入页面自定义js页面,初始函数
  2. function initbodys() {
  3. var carTypeJson;
  4. var car_type = getUrlParamCN("car_type");
  5. var free_con = getUrlParamCN("free_con");
  6. if (car_type) {
  7. $("*[name=car_type]").val(car_type);
  8. if (free_con) {
  9. $("*[name=free_car_con]").val(free_con);
  10. }
  11. }
  12. var applyInfo = '';
  13. c.onselectdata['car_type'] = function (d) {
  14. js.ajax(geturlact('getFreeCarCon'), {car_type: JSON.stringify(d)}, function (res) {
  15. var result = JSON.parse(res);
  16. console.log(result);
  17. if (result.success) {
  18. if (isMobile()) {
  19. console.log(result.data);
  20. // 添加申请类型数量控件
  21. var htmlTrs = '';
  22. for (var i = 0; i < result.data.length; i++) {
  23. var info = result.data[i];
  24. htmlTrs += '<tr class="lumtr car_type_con"><td class="lulim" nowrap=""><div class="form_title">['+info.car_type+']申请数量<font color="red" font-szie="12">(空闲'+info.car_free_con+'辆)</font></div>';
  25. htmlTrs += '<div class="form_content"><div class="divinput">';
  26. htmlTrs += '<input class="inputs" value="1" tag="'+info.car_type+'" type="number" onfocus="js.focusval=this.value" onblur="js.number(this);c.inputblur(this,0)" name="apply_con"></div></div></td><td></td></tr>';
  27. }
  28. $('.car_type_con').remove();
  29. $('.tablelum .lumtr').eq(1).after(htmlTrs);
  30. console.log(htmlTrs);
  31. // 申请信息
  32. var applyConParams = {};
  33. var applyConInfo = '';
  34. $("input[name=apply_con]").each(function() {
  35. var value = $(this).val();
  36. var key = $(this).attr('tag');
  37. applyConParams[key] = value;
  38. applyConInfo += key+' '+value+' 辆\n';
  39. });
  40. applyInfo = applyConParams;
  41. form('apply_con_info').value = applyConInfo;
  42. form('apply_con_json').value = JSON.stringify(applyConParams);
  43. console.log(applyConParams);
  44. // $('.tablelum').append('<input class="inputs" name="apply_con_json" type="hidden" value=\''+JSON.stringify(applyConParams)+'\' />');
  45. $("*[name=apply_con]").change(function(){
  46. applyConInfo = '';
  47. applyConParams = {};
  48. $("input[name=apply_con]").each(function() {
  49. var value = $(this).val();
  50. var key = $(this).attr('tag');
  51. applyConParams[key] = value;
  52. applyConInfo += key+' '+value+' 辆\n';
  53. });
  54. form('apply_con_info').value = applyConInfo;
  55. form('apply_con_json').value = JSON.stringify(applyConParams);
  56. });
  57. // form('Usage').value = '下井转转';
  58. } else {
  59. form('free_car_con').value = result.data.car_free_con;
  60. }
  61. }
  62. }, 'get, json');
  63. }
  64. // $('input[name=apply_con]').change(function () {
  65. // console.log($(this).val())
  66. // $("input[name=apply_con]").each(function() {
  67. // var value = $(this).val();
  68. // var key = $(this).attr('tag');
  69. // applyConInfo += key+' '+value+' 辆\n';
  70. // });
  71. // form('apply_con_info').value = applyConInfo;
  72. // });
  73. if (isMobile()) {
  74. setTimeout(function() {
  75. $("#title_explain").text("调度说明");
  76. var time = getNowDatetime();
  77. var step = getStep();
  78. // 获取车辆类型
  79. // carTypeJson = getInputVal('input_apply_con_json');
  80. carTypeJson = $("#data_apply_con_json").text();
  81. console.log(step);
  82. console.log("APP端");
  83. // 1 - 领导审核(暂时隐藏)
  84. if (step === 'leader_review') {
  85. $(".car_con_col").show();
  86. } else
  87. // 2 - 调度室审批
  88. if (step === 'dispatch_assess') {
  89. // 设置空闲车数量
  90. setCarFreeCon(carTypeJson);
  91. } else
  92. // 3 - 运输队审批
  93. if (step === 'fleet_select_car') {
  94. // 设置空闲车数量
  95. setCarFreeCon(carTypeJson);
  96. // 选择车辆
  97. setSelectCar();
  98. } else
  99. // 4 - 装车完成
  100. if(step === 'load_car_succ') {
  101. // 设置装车结束时间
  102. $("*[name='load_end_time']").attr('value', time);
  103. $("*[name='load_end_time']").removeAttr('onclick');
  104. } else
  105. // 5 - 运输队审核(车辆下放)
  106. if (step == 'fleet_assess_load_car_succ') {
  107. // load_end_use();
  108. $("*[name='down_time']").attr('value', time);
  109. $("*[name='down_time']").removeAttr('onclick');
  110. getUpdateCarStateApi('卸车');
  111. } else
  112. // 6 - 使用完毕
  113. if (step == 'load_end_use') {
  114. $("*[name='actual_end_time']").attr('value', time);
  115. $("*[name='actual_end_time']").removeAttr('onclick');
  116. } else
  117. // 7 - 运输队审核
  118. if (step === 'fleet_assess_load_end_use') {
  119. setAssessSuccStep();
  120. submitAssessSucc();
  121. }
  122. }, 100);
  123. }
  124. function getUrlParamCN(name) {
  125. var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)"); //构造一个含有目标参数的正则表达式对象
  126. var r = decodeURI(window.location.search).substr(1).match(reg); //匹配目标参数
  127. if (r != null) return unescape(r[2]); return null; //返回参数值
  128. }
  129. function load_end_use() {
  130. // 判断是否同意
  131. // 同意需要先处理数据,再提交;不同意则用原始方法提交。
  132. $("*[name='check_status']").click(function(){
  133. var agree = $(this).attr('value');
  134. if (agree == 1) {
  135. getUpdateCarStateApi('使用中');
  136. } else {
  137. check(0);
  138. }
  139. });
  140. }
  141. // 以下开始
  142. // 判断函数
  143. function getStep() {
  144. var step_text_original = $("#input_step").html();
  145. if(step_text_original == null) return;
  146. var step_text = step_text_original.split('(')[0];
  147. var carnameStep = $("#btn_carname").length; // 选择车辆步骤
  148. var loadCarSuccStep = $("*[name='load_end_time']").length; // 装车完成1
  149. var endUseStep = $("*[name='end_time']").length; // 使用结束时间
  150. var parkingLocationStep = $("*[name='parking_location']").length; // 停车场
  151. var assesLocationStep = $("*[name=assess_location]").length; // 审核车场
  152. // var assesTimeStep = $("*[name=assess_time]").length; // 审核时间
  153. console.log(step_text);
  154. if (step_text == '领导审核') {
  155. return 'leader_review';
  156. } else if (step_text == '调度室审批') {
  157. return 'dispatch_assess';
  158. } else if (step_text == '运输队审批' && carnameStep == 1) {
  159. return 'fleet_select_car';
  160. } else if (step_text == '装车完成' && loadCarSuccStep == 1) {
  161. return 'load_car_succ';
  162. // } else if (step_text == '运输队审核' && endUseStep == 1) {
  163. } else if (step_text == '运输下放') {
  164. return 'fleet_assess_load_car_succ';
  165. } else if (step_text == '使用完毕') {
  166. return 'load_end_use';
  167. } else if (step_text == '运输队审核' && assesLocationStep >= 1) {
  168. return 'fleet_assess_load_end_use';
  169. }
  170. }
  171. function getInputVal(inputNameStr) {
  172. carType = $("*[name="+inputNameStr+"]").val();
  173. return carType;
  174. }
  175. function isMobile() {
  176. console.log("判断是否手机");
  177. var userAgentInfo = navigator.userAgent;
  178. var mobileAgents = ["Android", "iPhone", "SymbianOS", "Windows Phone", "iPad", "iPod"];
  179. var mobile_flag = false;
  180. //根据userAgent判断是否是手机
  181. for (var v = 0; v < mobileAgents.length; v++) {
  182. if (userAgentInfo.indexOf(mobileAgents[v]) > 0) {
  183. mobile_flag = true;
  184. break;
  185. }
  186. }
  187. var screen_width = window.screen.width;
  188. var screen_height = window.screen.height;
  189. //根据屏幕分辨率判断是否是手机
  190. if (screen_width > 325 && screen_height < 750) {
  191. mobile_flag = true;
  192. }
  193. return mobile_flag;
  194. }
  195. function getNowDatetime() {
  196. var date = new Date();
  197. var year = date.getFullYear(); // 返回的是年份
  198. var month = date.getMonth() + 1; // 返回的月份上个月的月份,记得+1才是当月
  199. var dates = date.getDate();
  200. var h = date.getHours();
  201. var m = date.getMinutes();
  202. var s = date.getSeconds();
  203. if(month<10)month="0"+month;
  204. if(date<10)date="0"+date;
  205. var time=year + "-" + month + "-" + dates + ' ' + h + ':' + m + ':' + s;
  206. return time;
  207. }
  208. // 操作函数
  209. function setCarFreeCon(carType) {
  210. $(".car_con_col").show();
  211. var carTypeJson = "car_type="+carType;
  212. // console.log(carType);
  213. // 显示申请车辆类型剩余数量
  214. js.ajax(geturlact('getFreeCarCon'), carTypeJson, function (res) {
  215. if(res.success) {
  216. $('*[name=surplus]').val(res.data.car_free_con);
  217. $('*[name=car_con]').val(res.data.car_con);
  218. }
  219. }, 'get, json');
  220. }
  221. function setSelectCar() {
  222. // 替换原来onclick方法,增加参数
  223. $("#btn_carname").removeAttr('onclick');
  224. $("#btn_carname").click(function (){
  225. c.selectdata('carNum',true,'carname','申请车辆',0, carTypeJson);
  226. });
  227. console.log(carTypeJson);
  228. c.onselectdata['carname'] = function (d) {
  229. var carJson = '';
  230. console.log(d);
  231. for (var i = 0; i < d.length; i++) {
  232. var data = d[i];
  233. var subname = data.subname;
  234. var subType = '"'+subname.substring(1,subname.indexOf("】"))+'"';
  235. var carId = data.value;
  236. console.log(data);
  237. carJson += subType + ":" + carId;
  238. if(i < d.length - 1){ carJson += ',' }
  239. console.log(carJson);
  240. }
  241. $('input[name=car_name_json]').val(carJson);
  242. }
  243. // 选择车辆
  244. var carnameStep = $("#btn_carname").length; // 选择车辆步骤
  245. // 判断是否选择车辆步骤,不是选择车辆步骤,则用默认方式提交
  246. if (carnameStep > 0) {
  247. // 判断是否同意
  248. $("*[name='check_status']").click(function(){
  249. var agree = $(this).attr('value');
  250. if (agree == 1) {
  251. getUpdateCarStateApi('装车');
  252. } else {
  253. check(0);
  254. }
  255. c.changecheck_status(this);
  256. });
  257. }
  258. }
  259. function setAssessSuccStep() {
  260. // 设置默认值(出现控件时再设置)
  261. var input_parking_location = $("*[name=input_parking_location]").val();
  262. $("*[name=assess_car_location]").val(input_parking_location);
  263. $("*[name=assess_time]").attr('id','assess_time');
  264. var assess_time = $("*[name=assess_time]").length;
  265. var input_actual_end_time = $("*[name=input_actual_end_time]").val();
  266. if (assess_time && input_actual_end_time != null) {
  267. $("*[name=assess_time]").val(input_actual_end_time);
  268. }
  269. // 车场考核
  270. // $("*[name=assess_location]").val('否');
  271. $("*[name=assess_car_location]").attr('id','assess_car_location');
  272. $('#assess_car_location').change(function () {
  273. var sj = $("*[name=input_parking_location]").val();
  274. var sh = $(this).val();
  275. // if (sj != sh) {
  276. // var sj = $("*[name=assess_location]").val('是');
  277. // } else {
  278. // var sj = $("*[name=assess_location]").val('否');
  279. // }
  280. })
  281. }
  282. // 装车完成
  283. function load_end_use() {
  284. // 判断是否同意
  285. // 同意需要先处理数据,再提交;不同意则用原始方法提交。
  286. $("*[name='check_status']").click(function(){
  287. var agree = $(this).attr('value');
  288. if (agree == 1) {
  289. getUpdateCarStateApi('使用中');
  290. } else {
  291. check(0);
  292. }
  293. });
  294. }
  295. function submitAssessSucc() {
  296. // 替换原提交方法,处理后再提交 check(0)
  297. // $("#check_btn").removeAttr('onclick');
  298. // 审核还车时间
  299. var car_location = getInputVal('input_parking_location'); // 车场
  300. var assess_car_location = getInputVal('assess_car_location'); // 审核车场
  301. var end_time = getInputVal('input_actual_end_time'); // 实际还车时间
  302. var assess_time = getInputVal('assess_time'); // 审核还车时间
  303. var time1 = new Date(end_time);
  304. var time2 = new Date(assess_time);
  305. // 时间差半小时考核
  306. var date = time2.getTime() - time1.getTime();
  307. var days = date / 1000 / 60 / 60 / 24;
  308. var daysRound = Math.floor(days);
  309. var hours = date/ 1000 / 60 / 60 - (24 * daysRound);
  310. var hoursRound = Math.floor(hours);
  311. var minutes = date / 1000 /60 - (24 * 60 * daysRound) - (60 * hoursRound);
  312. // 超时
  313. if (minutes <= 30) {
  314. $('*[name=assess_timeout]').val('否');
  315. } else {
  316. $('*[name=assess_timeout]').val('是');
  317. }
  318. // 车场审核位置不同则考核
  319. // if (car_location == assess_car_location) {
  320. // $('*[name=assess_location]').val('否');
  321. // } else {
  322. // $('*[name=assess_location]').val('是');
  323. // }
  324. getUpdateCarStateApi('正常');
  325. // $("#check_btn").click(function () {
  326. //
  327. // var carname = $("*[name='carname_success']").val();
  328. // var data = "carname="+carname+"&carstate=正常";
  329. // js.ajax(geturlact('updateCarState'), data, function (res) {
  330. // res = JSON.parse(res);
  331. // if (res.success) {
  332. // check(0);
  333. // } else {
  334. // $('#msgview').text(res.msg);
  335. // }
  336. // }, 'get');
  337. // });
  338. }
  339. function getUpdateCarStateApi(carstate) {
  340. // 替换原提交方法,处理后再提交 check(0)
  341. $("#check_btn").removeAttr('onclick');
  342. $("#check_btn").click(function () {
  343. var carname = $("*[name='carname']").val();
  344. if (carname == null) {
  345. carname = $("*[name='carname_success']").val();
  346. }
  347. if (carname == null) {
  348. carname = $("*[name='input_carname']").val();
  349. }
  350. var data = "carname="+carname+"&carstate="+carstate;
  351. // input_carname
  352. js.ajax(geturlact('updateCarState'), data, function (res) {
  353. res = JSON.parse(res);
  354. console.log(res);
  355. if (res.success) {
  356. check(0);
  357. } else {
  358. $('#msgview').text(res.msg);
  359. }
  360. }, 'get');
  361. });
  362. }
  363. }