Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.
 
 
 
 
 

455 строки
15 KiB

  1. var httpData;
  2. var m_projcode = '';
  3. if (window.ActiveXObject) {
  4. var myreq = new ActiveXObject("Microsoft.XMLHTTP");
  5. } else {
  6. var myreq = new XMLHttpRequest();
  7. }
  8. function getPar(par){
  9. //获取当前URL
  10. var local_url = document.location.href;
  11. local_url = decodeURI(local_url);
  12. //获取要取得的get参数位置
  13. var get = local_url.indexOf(par +"=");
  14. if(get == -1){
  15. return false;
  16. }
  17. //截取字符串
  18. var get_par = local_url.slice(par.length + get + 1);
  19. //判断截取后的字符串是否还有其他get参数
  20. var nextPar = get_par.indexOf("&");
  21. if(nextPar != -1){
  22. get_par = get_par.slice(0, nextPar);
  23. }
  24. return get_par;
  25. }
  26. var m_url = '/core/partner.asp?';
  27. var userId = '';
  28. var linkName = '';
  29. var linkPhone = '';
  30. var linkIdno = '';
  31. var m_godate = '';
  32. var m_gotime = '';
  33. var m_backdate = '';
  34. var m_backtime = '';
  35. var m_projcode = '';
  36. var m_go_run_id = '';
  37. var arrayGoDate = new Array();
  38. var arrayBackDate = new Array();
  39. window.onload = function(){
  40. m_projcode = getPar('prodcode');
  41. userId = getPar('user_id');
  42. if(!userId){
  43. }else{
  44. linkName = getPar('link_name');
  45. linkPhone = getPar('link_phone');
  46. linkIdno = getPar('link_idno');
  47. }
  48. document.getElementById('div_date_run_title').innerHTML = '请选择出行日期';
  49. var tnowtime = getDateTime(4);
  50. var myURL = m_url + 'op=godate&projcode=' + m_projcode + '&tt=' + tnowtime;
  51. myreq.open("get",myURL,true);
  52. myreq.onreadystatechange = show_gorundate;
  53. myreq.send(null);
  54. }
  55. function get_backrundate(gorunid) {
  56. m_go_run_id = gorunid;
  57. var myURL = m_url + 'op=backdate&projcode=' + m_projcode + '&runid=' + gorunid;
  58. myreq.open("get",myURL,true);
  59. myreq.onreadystatechange = show_backrundate;
  60. myreq.send(null);
  61. }
  62. function show_gorundate(){
  63. if (myreq.readyState == 4)
  64. {
  65. var newstr = myreq.responseText;
  66. httpData = JSON.parse(newstr);
  67. var c_code = httpData.code;
  68. if (c_code == '0')
  69. {
  70. arrayGoDate.length = 0;
  71. for (var i = 0;i<httpData.date_list.length;i++)
  72. {
  73. arrayGoDate[i] = httpData.date_list[i].godate;
  74. }
  75. }else{
  76. alert(httpData.info);
  77. return;
  78. }
  79. if (arrayGoDate.length > 0)
  80. {
  81. show_calendar(arrayGoDate[0],0);
  82. }else{
  83. alert('没有可选择的发车日期');
  84. show_calendar(getDateTime(0)) ;
  85. }
  86. }
  87. }
  88. function show_backrundate(){
  89. arrayBackDate.length = 0;
  90. if (myreq.readyState == 4)
  91. {
  92. var newstr = myreq.responseText;
  93. document.getElementById('div_date_runlist').innerHTML = '';
  94. httpData = JSON.parse(newstr);
  95. var c_code = httpData.code;
  96. if (c_code == '0')
  97. {
  98. for (var i = 0;i<httpData.date_list.length;i++)
  99. {
  100. arrayBackDate[i] = httpData.date_list[i].backdate;
  101. }
  102. }else{
  103. alert(httpData.info);
  104. return;
  105. }
  106. if (arrayBackDate.length > 0) show_calendar(arrayBackDate[0],1);
  107. }
  108. }
  109. function show_calendar(cshowdate,goback,date)
  110. {
  111. var arrayRunDate = new Array();
  112. if (goback == 0){
  113. arrayRunDate = arrayGoDate;
  114. }else{
  115. arrayRunDate = arrayBackDate;
  116. }
  117. var cnowdate = str2date(cshowdate);
  118. var cnowyear = cnowdate.getYear();
  119. var cnowfullyear = cnowdate.getFullYear();
  120. var cnowmonth = cnowdate.getMonth();
  121. var ddate1 = new Date(cnowfullyear,cnowmonth+1,1);
  122. var denddate = new Date(ddate1-86400000);
  123. var cendday = denddate.getDate();
  124. var clistdateweek = 0;
  125. var cnowdate2 = parseInt(cnowmonth)+1;
  126. cnowdate2 = cnowfullyear + '年' + cnowdate2 + '月';
  127. var cnowdate3 = cnowfullyear + '-' + cnowmonth + '-1';
  128. var cshow1 = '<span class="span_move_month" id="span_last_month" onclick="show_next_calendar(\'' + cnowdate3 + '\',0,' + goback + ')" ><<</span>';
  129. cshow1 += '<span id="span_now_month" >' + cnowdate2 + '</span>';
  130. cshow1 += '<span class="span_move_month" id="span_next_month" onclick="show_next_calendar(\'' + cnowdate3 + '\',2,' + goback + ')" >>></span>';
  131. document.getElementById('div_date_run_date').innerHTML = cshow1;
  132. var cshow = '<span class="span_calendar_title" >一</span><span class="span_calendar_title" >二</span><span class="span_calendar_title" >三</span><span class="span_calendar_title" >四</span><span class="span_calendar_title" >五</span><span class="span_calendar_title" >六</span><span class="span_calendar_title" >日</span>';
  133. var nnum1 = 0;
  134. var dgodate = str2date(arrayRunDate[0]);
  135. var nnum2 = arrayRunDate.length;
  136. for (var i=1;i<=cendday;i++)
  137. {
  138. var clistdate = new Date(cnowfullyear,cnowmonth,i);
  139. clistdateweek = clistdate.getDay();
  140. if (i==1)
  141. {
  142. if (clistdateweek == 0) clistdateweek = 7;
  143. for (var j=1;j<clistdateweek;j++)
  144. {
  145. cshow += '<span class="span_calendar_blank" >&nbsp;</span>';
  146. }
  147. }
  148. while ((dgodate - clistdate < 0) && (nnum1 < nnum2))
  149. {
  150. nnum1++;
  151. if (nnum1<arrayRunDate.length) dgodate = str2date(arrayRunDate[nnum1]);
  152. }
  153. var c11 = clistdate.getYear();
  154. var c12 = clistdate.getMonth();
  155. var c13 = clistdate.getDate();
  156. var c21 = dgodate.getYear();
  157. var c22 = dgodate.getMonth();
  158. var c23 = dgodate.getDate();
  159. if (c11==c21 && c12==c22 && c13==c23 && arrayRunDate.length>0) {
  160. if (goback == 0){
  161. if(date &&(i == date)){
  162. cshow += '<span class="span_calendar_enable_select" onclick=get_gorun(\'' + arrayRunDate[nnum1]+'\',\''+dgodate.getDate()+'\',\''+dgodate.getDay()+'\',\''+1 + '\')>' + i + '</span>';
  163. }else{
  164. cshow += '<span class="span_calendar_enable" onclick=get_gorun(\'' + arrayRunDate[nnum1]+'\',\''+dgodate.getDate()+'\',\''+dgodate.getDay()+'\',\''+0 + '\')>' + i + '</span>';
  165. }
  166. }else{
  167. if(date &&(i == date)){
  168. cshow += '<span class="span_calendar_enable_select" onclick=get_backrun(\'' + arrayRunDate[nnum1] +'\',\''+dgodate.getDate()+'\',\''+dgodate.getDay()+'\',\''+1 + '\')>' + i + '</span>';
  169. }else{
  170. cshow += '<span class="span_calendar_enable" onclick=get_backrun(\'' + arrayRunDate[nnum1] +'\',\''+dgodate.getDate()+'\',\''+dgodate.getDay()+'\',\''+0 + '\')>' + i + '</span>';
  171. }
  172. }
  173. }else{
  174. cshow += '<span class="span_calendar_disable" >' + i + '</span>';
  175. }
  176. }
  177. if (clistdateweek>0)
  178. {
  179. for (var i=clistdateweek;i<7;i++)
  180. {
  181. cshow += '<span class="span_calendar_blank" >&nbsp;</span>';
  182. }
  183. }
  184. document.getElementById('div_date_calendar1').innerHTML = cshow;
  185. }
  186. var go_date = '';
  187. var go_day = '';
  188. function get_gorun(godate, date, day, type){
  189. if(type == 0){
  190. show_calendar(arrayGoDate[0],0, date);
  191. }
  192. go_date = date;
  193. go_day = strday(day);
  194. var tnowtime = getDateTime(4);
  195. m_godate = godate;
  196. var myURL = m_url + 'op=gorun&tt=' + tnowtime + '&projcode=' + m_projcode + '&godate=' + godate;
  197. //alert(myURL);
  198. //location.href = myURL;
  199. myreq.open("get",myURL,true);
  200. myreq.onreadystatechange = show_gorun;
  201. myreq.send(null);
  202. }
  203. var back_date = '';
  204. var back_day = '';
  205. function get_backrun(backdate, date, day, type){
  206. if(type == 0){
  207. show_calendar(arrayBackDate[0],1,date);
  208. }
  209. back_date = date;
  210. back_day = strday(day);
  211. var runid = m_go_run_id;
  212. m_backdate = backdate;
  213. var myURL = m_url + 'op=backrun&runid=' + runid + '&projcode=' + m_projcode + '&backdate=' + backdate;
  214. myreq.open("get",myURL,true);
  215. myreq.onreadystatechange = show_backrun;
  216. myreq.send(null);
  217. }
  218. function show_gorun()
  219. {
  220. if (myreq.readyState == 4)
  221. {
  222. var newstr = myreq.responseText;
  223. var cshow ='';
  224. httpData = JSON.parse(newstr);
  225. var c_code = httpData.code;
  226. if (c_code == '0')
  227. {
  228. var nnum1 = httpData.go_run_list.length;
  229. num2 = nnum1;
  230. if (nnum1 -0>0)
  231. {
  232. cshow += '<div style="width: 100%; height: 320px; border: 1px solid #E2E2E2; overflow: hidden; background: #FFFFFF;">';
  233. cshow += '<div style="width: 100%; height: 42px; line-height: 42px;">';
  234. cshow += '<span style="float: left; margin-left: 4%; font-size: 12px; color: #999999;">您已选择:</span>';
  235. cshow += '<span style="float: left; margin-left: 4%; font-size: 12px; color: #FF8800;">'+go_date+'日&nbsp'+go_day+'</span>';
  236. cshow += '</div>';
  237. for (var i=0;i<httpData.go_run_list.length;i++)
  238. {
  239. //此处以后应加上runback的处理代码
  240. cshow += '<div style="width: 92%; padding-top: 10px; padding-bottom: 10px; border-top: 1px solid #E2E2E2; border-bottom: 1px solid #E2E2E2; overflow: hidden; margin-left: 4%; margin-right: 4%;" onclick="get_next(\'' + i + '\',\'' + httpData.go_run_list[i].runid + '\',\'' + httpData.go_run_list[i].runback + '\',\'' + httpData.go_run_list[i].runtime + '\')">';
  241. cshow += '<span style="float:left; font-size: 12px; color: #1F1F1F; width: 70%;">'+httpData.go_run_list[i].runinfo+'</span>';
  242. // cshow += '<span style="float:left; font-size: 12px; color: #1F1F1F; width: 70%;">朱家尖码头去程 6:20-17:35</span>';
  243. if(i == 0){
  244. cshow += '<img id="id_'+i +'" style="float:left; margin-left:15%; width:15px; height: 15px;" src="../img/check_press.png"/>';
  245. }else{
  246. cshow += '<img id="id_'+i +'" style="float:left; margin-left:15%; width:15px; height: 15px;" src="../img/check_nor.png"/>';
  247. }
  248. cshow += '</div>';
  249. }
  250. cshow += '</div>';
  251. }
  252. var obj1 = document.getElementById('div_date_runlist');
  253. obj1.innerHTML = cshow;
  254. }else{
  255. alert(httpData.info);
  256. return;
  257. }
  258. }
  259. }
  260. var num2 = 0;
  261. function show_backrun()
  262. {
  263. if (myreq.readyState == 4)
  264. {
  265. var newstr = myreq.responseText;
  266. var cshow ='';
  267. httpData = JSON.parse(newstr);
  268. var c_code = httpData.code;
  269. if (c_code == '0')
  270. {
  271. run_list = httpData.back_run_list;
  272. var nnum1 = httpData.back_run_list.length;
  273. num2 = nnum1;
  274. if (nnum1 -0>0){
  275. cshow += '<div style="width: 100%; height: 320px; border: 1px solid #CCCCCC; overflow: hidden; background: #FFFFFF;">';
  276. cshow += '<div style="width: 100%; height: 42px; line-height: 42px;">';
  277. cshow += '<span style="float: left; margin-left: 4%; font-size: 12px; color: #999999;">您已选择:</span>';
  278. cshow += '<span style="float: left; margin-left: 4%; font-size: 12px; color: #FF8800;">'+back_date+'日&nbsp'+back_day+'</span>';
  279. cshow += '</div>';
  280. for (var i=0;i<httpData.back_run_list.length;i++){
  281. cshow += '<div style="width: 92%; padding-top: 10px; padding-bottom: 10px; border-top: 1px solid #CCCCCC; overflow: hidden; margin-left: 4%; margin-right: 4%;" onclick="get_ticket(\'' + i + '\',\'' + httpData.back_run_list[i].runid +'\',\'' + httpData.back_run_list[i].runtime + '\',1)">';
  282. cshow += '<span style="float:left; font-size: 12px; color: #1F1F1F;">'+httpData.back_run_list[i].runinfo+'</span>';
  283. if(i == 0){
  284. cshow += '<img id="id_'+i +'" style="float:left; margin-left:15%; width:15px; height: 15px;" src="../img/check_press.png"/>';
  285. }else{
  286. cshow += '<img id="id_'+i +'" style="float:left; margin-left:15%; width:15px; height: 15px;" src="../img/check_nor.png"/>';
  287. }
  288. cshow += '</div>';
  289. }
  290. cshow += '</div>';
  291. }
  292. var obj1 = document.getElementById('div_date_runlist');
  293. obj1.innerHTML = cshow;
  294. }else{
  295. alert(httpData.info);
  296. return;
  297. }
  298. }
  299. }
  300. function get_next(i,gorunid,ifback,runtime)
  301. {
  302. m_ifback = ifback;
  303. m_gotime = runtime;
  304. if (ifback == '0'){
  305. get_ticket(i,gorunid,'',0);
  306. }else{
  307. //此处添加选返程日期的代码
  308. document.getElementById('div_date_run_title').innerHTML = '请选择返程日期';
  309. get_backrundate(gorunid);
  310. return;
  311. }
  312. }
  313. function get_ticket(i,runid,runtime,goback){
  314. if(num2-0 > 0){
  315. for(var j=0; j<num2-0; j++){
  316. if(i==j){
  317. document.getElementById("id_"+j).src="../img/check_press.png";
  318. }else{
  319. document.getElementById("id_"+j).src="../img/check_nor.png";
  320. }
  321. }
  322. }
  323. if (goback-1 == 0){
  324. m_backtime = runtime;
  325. var listURL = "./reserve_style2.html?prodcode="+m_projcode+"&runid="+runid+"&m_godate="+m_godate+"&m_gotime="+m_gotime
  326. +"&m_backdate="+m_backdate+"&m_backtime="+m_backtime;
  327. if(!userId){
  328. }else{
  329. listURL += ("&user_id="+userId+"&link_name="+linkName+"&link_phone="+linkPhone+"&link_idno="+linkIdno);
  330. }
  331. listURL = encodeURI(listURL);
  332. window.location.href = listURL;
  333. }else{
  334. var listURL = "./reserve_style2.html?prodcode="+m_projcode+"&runid="+runid+"&m_godate="+m_godate+"&m_gotime="+m_gotime;
  335. if(!userId){
  336. }else{
  337. listURL += ("&user_id="+userId+"&link_name="+linkName+"&link_phone="+linkPhone+"&link_idno="+linkIdno);
  338. }
  339. listURL = encodeURI(listURL);
  340. window.location.href = listURL;
  341. }
  342. }
  343. function getDateTime(nTypeFlag)
  344. {
  345. var tNowTime = new Date();
  346. var myYear = ';' + tNowTime.getFullYear() + ';';
  347. var myMonth = ';' + (tNowTime.getMonth()+1-0) + ';';
  348. var myDay = ';' + tNowTime.getDate()+ ';';
  349. var myHour = ';' + tNowTime.getHours()+ ';';
  350. var myMinu = ';' + tNowTime.getMinutes()+ ';';
  351. var mySecond = ';' + tNowTime.getSeconds()+ ';';
  352. if (myMonth.length < 4) myMonth = '0' + myMonth;
  353. if (myDay.length < 4) myDay = '0' + myDay;
  354. if (myHour.length < 4) myHour = '0' + myHour;
  355. if (myMinu.length < 4) myMinu = '0' + myMinu;
  356. if (mySecond.length < 4) mySecond = '0' + mySecond;
  357. var cNewTimeStr;
  358. //alert(tNowTime);
  359. switch (nTypeFlag+1-1)
  360. {
  361. case 0:
  362. cNewTimeStr = myYear + '-' + myMonth + '-' + myDay;
  363. break;
  364. case 1:
  365. cNewTimeStr = myYear + myMonth + myDay;
  366. break;
  367. case 2:
  368. cNewTimeStr = myHour + ':' + myMinu + ':' + mySecond;
  369. break;
  370. case 3:
  371. cNewTimeStr = myHour + myMinu + mySecond;
  372. break;
  373. case 4:
  374. cNewTimeStr = myYear + myMonth + myDay + myHour + myMinu + mySecond;
  375. break;
  376. case 5:
  377. cNewTimeStr = myYear + '年' + myMonth + '月' + myDay + '日';
  378. break;
  379. case 6:
  380. cNewTimeStr = myYear;
  381. break;
  382. case 7:
  383. cNewTimeStr = myYear + '-' + myMonth;
  384. break;
  385. default:
  386. cNewTimeStr = myYear + '-' + myMonth + '-' + myDay + ' ' + myHour + ':' + myMinu + ':' + mySecond;
  387. break;
  388. }
  389. cNewTimeStr = cNewTimeStr.replace(/;/g,"");
  390. return cNewTimeStr;
  391. }
  392. function show_next_calendar(cshowdate,dealflag,goback)
  393. {
  394. var cnowdate = str2date(cshowdate);
  395. var cnowyear = cnowdate.getYear();
  396. var cnowfullyear = cnowdate.getFullYear();
  397. var cnowmonth = cnowdate.getMonth();
  398. var ddate1 = new Date(cnowfullyear,cnowmonth+dealflag,1);
  399. var cnextfullyear = ddate1.getFullYear();
  400. var cnextmonth = ddate1.getMonth();
  401. var cnextdate = parseInt(cnextmonth)+1;
  402. cnextdate = cnextfullyear + '-' + cnextdate + '-1';
  403. show_calendar(cnextdate,goback);
  404. }
  405. function str2date(DateStr){
  406. if(typeof DateStr=="undefined")return new Date();
  407. if(typeof DateStr=="date")return DateStr;
  408. var converted = Date.parse(DateStr);
  409. var myDate = new Date(converted);
  410. if(isNaN(myDate)){
  411. DateStr=DateStr.replace(/:/g,"-");
  412. DateStr=DateStr.replace(" ","-");
  413. DateStr=DateStr.replace(".","-");
  414. var arys= DateStr.split('-');
  415. switch(arys.length){
  416. case 7 : myDate = new Date(arys[0],--arys[1],arys[2],arys[3],arys[4],arys[5],arys[6]);
  417. break;
  418. case 6 : myDate = new Date(arys[0],--arys[1],arys[2],arys[3],arys[4],arys[5]);
  419. break;
  420. default: myDate = new Date(arys[0],--arys[1],arys[2]);
  421. break;
  422. };
  423. };
  424. return myDate;
  425. }
  426. function strday(day){
  427. if(day == 0){
  428. return "周日";
  429. }else if(day == 1){
  430. return "周一";
  431. }else if(day == 2){
  432. return "周二";
  433. }else if(day == 3){
  434. return "周三";
  435. }else if(day == 4){
  436. return "周四";
  437. }else if(day == 5){
  438. return "周五";
  439. }else if(day == 6){
  440. return "周六";
  441. }else{
  442. return 0;
  443. }
  444. }