You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

select_date.js 14 KiB

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