VM暫存
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.

441 lines
14KB

  1. <!DOCTYPE html>
  2. <html lang="zh-TW">
  3. <head>
  4. <meta charset="utf-8">
  5. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  6. <meta name="viewport" content="width=device-width, initial-scale=1">
  7. <meta name="description" content="">
  8. <meta name="author" content="">
  9. <title>歐特儀自動化服務機</title>
  10. <!-- Bootstrap Core CSS -->
  11. <link href="<?=BOOTSTRAPS?>bower_components/bootstrap/dist/css/bootstrap.min.css" rel="stylesheet">
  12. <!-- MetisMenu CSS -->
  13. <link href="<?=BOOTSTRAPS?>bower_components/metisMenu/dist/metisMenu.min.css" rel="stylesheet">
  14. <!-- Timeline CSS -->
  15. <link href="<?=BOOTSTRAPS?>dist/css/timeline.css" rel="stylesheet">
  16. <!-- Custom CSS -->
  17. <link href="<?=BOOTSTRAPS?>dist/css/sb-admin-3.css" rel="stylesheet">
  18. <!-- Morris Charts CSS -->
  19. <link href="<?=BOOTSTRAPS?>bower_components/morrisjs/morris.css" rel="stylesheet">
  20. <!-- Custom Fonts -->
  21. <link href="<?=BOOTSTRAPS?>bower_components/font-awesome/css/font-awesome.min.css" rel="stylesheet" type="text/css">
  22. </head>
  23. <body style="font-family:Microsoft JhengHei;">
  24. <div id="wrapper">
  25. <div id="page-wrapper"><?php /* 主要資料顯示區 */ ?>
  26. <div class="row">
  27. <div class="col-lg-12">
  28. <!--h1 class="page-header">歐特儀自動化服務機</h1--><?php /* 右側小表頭 */ ?>
  29. &nbsp;
  30. </div>
  31. </div>
  32. <!-- /.row -->
  33. <?php /* ----- 查詢結果 ----- */ ?>
  34. <div data-items="not_found" class="row">
  35. <div class="col-lg-12">
  36. <div class="panel panel-default">
  37. <div class="panel-heading" style="font-size:32px;"><?php /* 資料顯示區灰色小表頭 */ ?>
  38. 查車結果:查無 <span id="not_found_lpr" style="font-size:32px;color:blue;"></span> 在席資料
  39. </div>
  40. </div>
  41. </div>
  42. </div>
  43. <?php /* ----- 查詢結果 ----- */ ?>
  44. <div data-items="output_pks" class="row" style="display:none;">
  45. <div class="col-lg-7 col-sm-7">
  46. <div class="panel panel-default">
  47. <div class="panel-heading" style="font-size:28px;"><?php /* 資料顯示區灰色小表頭 */ ?>
  48. 查車結果
  49. </div>
  50. <div class="panel-body" style="margin: 0px auto;">
  51. <div data-rows class="row">
  52. <div class="col-lg-12" style="margin: 0px auto;">
  53. <table class="table table-striped table-bordered table-hover"">
  54. <tbody style="font-size:28px;">
  55. <tr>
  56. <td style="text-align:right;vertical-align: middle;">車號</td>
  57. <td id="show_lpr" style="text-align:left;vertical-align: middle;"></td>
  58. </tr>
  59. <tr>
  60. <td style="text-align:right;vertical-align: middle;">所在樓層</td>
  61. <td id="show_floors" style="text-align:left;vertical-align: middle; font-size:28px; color:blue;"></td>
  62. </tr>
  63. <tr>
  64. <td style="text-align:right;vertical-align: middle;">停入時間</td>
  65. <td id="show_update_time" style="text-align:left;vertical-align: middle;"></td>
  66. </tr>
  67. </tbody>
  68. </table>
  69. </div>
  70. <!-- /.col-lg-6 (nested) -->
  71. </div>
  72. <!-- /.row (nested) -->
  73. </div>
  74. <!-- /.panel-body -->
  75. </div>
  76. <!-- /.panel -->
  77. </div>
  78. <div class="col-lg-5 col-sm-5">
  79. <div class="panel panel-default">
  80. <div class="panel-heading" style="font-size:28px;">
  81. 在席照片
  82. </div>
  83. </div>
  84. <div class="panel-body" style="margin: 0px auto;">
  85. <div class="col-lg-12" style="margin: 0px auto;">
  86. <table class="table table-striped table-bordered table-hover"">
  87. <tbody>
  88. <tr>
  89. <td style="text-align:center;vertical-align: middle;">
  90. <img id="show_img" style="max-height:150px" />
  91. </td>
  92. </tr>
  93. </tbody>
  94. </table>
  95. </div>
  96. </div>
  97. </div>
  98. <!-- /.col-lg-12 -->
  99. </div>
  100. <div data-items="B1" class="row" style="display:none;">
  101. <div class="col-lg-12 col-sm-12">
  102. <table class="table table-striped table-bordered table-hover"">
  103. <tbody>
  104. <tr>
  105. <td style="text-align:center;vertical-align: middle;">
  106. <canvas id="b1canvas"></canvas>
  107. </td>
  108. </tr>
  109. </tbody>
  110. </table>
  111. </div>
  112. </div>
  113. <!-- /#page-wrapper -->
  114. </div>
  115. <!-- /#wrapper -->
  116. <!-- jQuery -->
  117. <script src="<?=BOOTSTRAPS?>bower_components/jquery/dist/jquery.min.js"></script>
  118. <!-- Bootstrap Core JavaScript -->
  119. <script src="<?=BOOTSTRAPS?>bower_components/bootstrap/dist/js/bootstrap.min.js"></script>
  120. <!-- Metis Menu Plugin JavaScript -->
  121. <script src="<?=BOOTSTRAPS?>bower_components/metisMenu/dist/metisMenu.min.js"></script>
  122. <!-- Morris Charts JavaScript -->
  123. <script src="<?=BOOTSTRAPS?>bower_components/raphael/raphael-min.js"></script>
  124. <!--script src="<?=BOOTSTRAPS?>bower_components/morrisjs/morris.min.js"></script-->
  125. <!--script src="<?=BOOTSTRAPS?>js/morris-data.js"></script-->
  126. <!-- virtual keyboard -->
  127. <link href="<?=WEB_LIB?>virtual-keyboard/css/jquery-ui.min.css" rel="stylesheet">
  128. <link href="<?=WEB_LIB?>virtual-keyboard/css/keyboard.css" rel="stylesheet">
  129. <script src="<?=WEB_LIB?>virtual-keyboard/js/jquery-ui.min.js"></script>
  130. <script src="<?=WEB_LIB?>virtual-keyboard/js/jquery.keyboard.js"></script>
  131. <script src="<?=WEB_LIB?>virtual-keyboard/js/jquery.keyboard.extension-caret.js"></script>
  132. <!-- alertify -->
  133. <link href="<?=WEB_LIB?>css/alertify.core.css" rel="stylesheet">
  134. <link href="<?=WEB_LIB?>css/alertify.bootstrap.css" rel="stylesheet">
  135. <script src="<?=WEB_LIB?>js/alertify.min.js"></script>
  136. <!-- moment -->
  137. <script src="<?=WEB_LIB?>js/moment.min.js"></script>
  138. <!-- altob ats map -->
  139. <script src="<?=WEB_LIB?>js/altob-ats-map.js"></script>
  140. <!-- altob settings -->
  141. <script src="<?=WEB_LIB?>js/altob.settings.js"></script>
  142. <!-- Custom Theme JavaScript -->
  143. <script src="<?=BOOTSTRAPS?>dist/js/sb-admin-2.js"></script>
  144. <div id="works" style="display:none;"></div><?php /* 作為浮動顯示區之用 */ ?>
  145. </body>
  146. </html>
  147. <script>
  148. <?php /* alertify function */ ?>
  149. function alertify_count_down($msg, $delay)
  150. {
  151. alertify.set({delay : $delay});
  152. alertify.log($msg);
  153. }
  154. function alertify_log($msg)
  155. {
  156. alertify.set({delay : 2000});
  157. alertify.log($msg);
  158. }
  159. function alertify_error($msg)
  160. {
  161. alertify.set({delay : 2000});
  162. alertify.error($msg);
  163. }
  164. function alertify_success($msg)
  165. {
  166. alertify.set({delay : 2000});
  167. alertify.success($msg);
  168. }
  169. function alertify_msg($msg)
  170. {
  171. alertify.set({ labels: {
  172. ok : "確定"
  173. } });
  174. alertify.alert($msg, function (e){
  175. // do nothing
  176. });
  177. }
  178. function reset_query()
  179. {
  180. $("#fuzzy_input").val("");
  181. $("#carin_query_list").hide();
  182. return false;
  183. }
  184. // 取得搜尋結果
  185. var PKS_RESULT = {};
  186. PKS_RESULT.lpr = '<?= $lpr; ?>';
  187. PKS_RESULT.pksno = '<?= $pksno; ?>';
  188. PKS_RESULT.pic_name = '<?= $pic_name; ?>';
  189. PKS_RESULT.update_time = '<?= $update_time; ?>';
  190. PKS_RESULT.in_time = '<?= $in_time; ?>';
  191. PKS_RESULT.posx = '<?= $posx; ?>';
  192. PKS_RESULT.posy = '<?= $posy; ?>';
  193. PKS_RESULT.group_id = '<?= $group_id; ?>';
  194. PKS_RESULT.group_name = '<?= $group_name; ?>';
  195. PKS_RESULT.floors = '<?= $floors; ?>';
  196. if(PKS_RESULT.pksno == '')
  197. {
  198. $("#not_found_lpr").text(PKS_RESULT.lpr);
  199. show_item("not_found");
  200. }
  201. else
  202. {
  203. $("#show_lpr").text(PKS_RESULT.lpr);
  204. $("#show_floors").html(PKS_RESULT.group_name+" ( 車格: " + PKS_RESULT.pksno.substr(-3, 3) +" )");
  205. $("#show_update_time").text(PKS_RESULT.in_time);
  206. $("#show_img").attr("src", "<?=SERVER_URL?>pkspic/" + PKS_RESULT.pic_name);
  207. // 顯示查車結果
  208. show_item("output_pks");
  209. // show map
  210. $("[data-items="+PKS_RESULT.floors+"]").show();
  211. }
  212. var refreshIntervalId = 0; // timer id
  213. <?php /* 顯示指定項目 */ ?>
  214. function show_item(tags)
  215. {
  216. // 查車
  217. reset_query();
  218. // 付款
  219. $("#payment_lpr").val("");<?php /* 清除車號欄位 */ ?>
  220. $("#show_member_name").val("");
  221. $("#show_payment_lpr").val("");
  222. $("#show_end_date").val("");
  223. $("#show_next_start").val("");
  224. $("#show_next_end").val("");
  225. $("#show_amt").val("");
  226. $("#invoice_receiver").val("");
  227. $("#company_no").val("");
  228. $("#email").val("");
  229. $("#mobile").val("");
  230. $("#show_order_no").val("");
  231. $("#show_amt_detail").val("");
  232. $("#show_balance_time_limit_countdown").val("");
  233. if(tags.indexOf('payment_data') < 0 && tags.indexOf('price_data') < 0){
  234. clearInterval(refreshIntervalId); // 消除倒數計時timer
  235. }
  236. $("[data-items]").hide();
  237. $("[data-items="+tags+"]").show();
  238. return false;
  239. }
  240. <?php /* 顯示指定項目, 不修改資料 */ ?>
  241. function show_item_without_change(tags)
  242. {
  243. $("[data-items]").hide();
  244. $("[data-items="+tags+"]").show();
  245. return false;
  246. }
  247. // 查車牌
  248. function check_lpr(idx)
  249. {
  250. $.ajax
  251. ({
  252. url: "<?=APP_URL?>q_pks",
  253. dataType:"json",
  254. type:"post",
  255. data:{ "lpr" : $("#lpr_"+idx).text() },
  256. success:function(jdata)
  257. {
  258. if(!jdata)
  259. {
  260. //alertify_msg("您的愛車可能在頂樓! 謝謝");
  261. alertify_msg("找不到。。謝謝");
  262. return false;
  263. }
  264. else if (jdata["pksno"] == "0")
  265. {
  266. alertify_msg("查無資料,請鍵入正確資料");
  267. return false;
  268. }
  269. $("#show_lpr").text($("#lpr_"+idx).text());
  270. //$("#show_floors").html(jdata["group_name"]+"<br/> ( 車格: " + jdata["pksno"].charAt(0) + "-" + jdata["pksno"].substr(2) +" )");
  271. //$("#show_floors").html(jdata["group_name"]+"<br/> ( 車格: " + jdata["pksno"] +" )");
  272. $("#show_floors").html(jdata["group_name"]+"<br/> ( 車格: " + jdata["pksno"].substr(-3, 3) +" )");
  273. $("#show_update_time").text(jdata["in_time"]);
  274. $("#show_img").attr("src", "<?=SERVER_URL?>pkspic/"+jdata["pic_name"]);
  275. show_item("output_pks");
  276. // 顯示位置圖
  277. if (jdata["group_id"]){
  278. //var groupSplit = jdata["group_id"].split('-'); // ex. B3-3
  279. //var floor = groupSplit[0];
  280. var floor = jdata["floors"];
  281. var x = jdata["posx"];
  282. var y = jdata["posy"];
  283. // 畫出指定位置
  284. AltobObject.AtsMap.drawPosition(floor, x, y);
  285. // show map
  286. $("[data-items="+floor+"]").show();
  287. }
  288. }
  289. });
  290. return false;
  291. }
  292. $(document).ready(function()
  293. {
  294. <?php /* 鎖右鍵 */ ?>
  295. $(document).bind('contextmenu', function (e) {
  296. e.preventDefault();
  297. });
  298. <?php /* 車牌模糊搜尋 */ ?>
  299. $("#fuzzy_search_lpr").submit(function(event)
  300. {
  301. event.preventDefault();
  302. // 清除搜尋提示訊息
  303. $("#fuzzy_search_lpr_msg").text('');
  304. if(! $("#fuzzy_search_lpr").isValid()) return false;
  305. $.ajax
  306. ({
  307. url: "<?=APP_URL?>q_fuzzy_pks",
  308. type: "post",
  309. dataType:"json",
  310. data: $(this).serialize(),
  311. success: function(jdata)
  312. {
  313. if (!jdata)
  314. {
  315. //alert("查無此車 !");
  316. $("#fuzzy_search_lpr_msg").text('查無此車');
  317. return false;
  318. }
  319. // 清除搜尋提示訊息
  320. $("#fuzzy_search_lpr_msg").text('');
  321. var tmp_str_array = [];
  322. for(idx in jdata.result)
  323. {
  324. tmp_str_array = tmp_str_array.concat(
  325. [
  326. "<tr><td id='lpr_", idx, "' style='text-align:center;vertical-align:middle;'>", jdata.result[idx]['lpr'] ,
  327. "</td><td id='in_time_", idx, "'style='text-align:center;vertical-align:middle;'>", jdata.result[idx]['in_time'],
  328. "</td><td id='pks_pic_path_", idx, "'style='text-align:center;vertical-align:middle;'><img height='57' width='150' src='", jdata.result[idx]['pks_pic_path'], "' />",
  329. "</td><td style='text-align:center;vertical-align:middle;'><button class='btn btn-large btn-success' style='font-size:28px;' onclick='check_lpr(", idx, ");'>查詢</button>" ,
  330. "</td></tr>"
  331. ]);
  332. }
  333. $("#carin_query_tbody").html(tmp_str_array.join(''));
  334. $("#carin_query_list").show();
  335. }
  336. });
  337. });
  338. // Custom: altob-input
  339. // ********************
  340. $('#fuzzy_input').keyboard({
  341. css : {
  342. // input & preview styles
  343. input : 'ui-widget-content ui-corner-all',
  344. // keyboard container - this wraps the preview area (if `usePreview` is true) and all keys
  345. container : 'ui-widget-content ui-widget ui-corner-all ui-helper-clearfix',
  346. // default keyboard button state, these are applied to all keys, the remaining css options are toggled as needed
  347. buttonDefault : 'ui-state-default ui-corner-all',
  348. // hovered button
  349. buttonHover : 'ui-state-hover',
  350. // Action keys (e.g. Accept, Cancel, Tab, etc); this replaces the "actionClass" option
  351. buttonAction : 'ui-state-active',
  352. // used when disabling the decimal button {dec} when a decimal exists in the input area
  353. buttonDisabled : 'ui-state-disabled'
  354. },
  355. display: {
  356. 'bksp' : '\u2190',
  357. 'default' : 'ABC',
  358. 'accept' : '確 認'
  359. },
  360. layout: 'custom',
  361. customLayout: {
  362. 'default': [
  363. '1 2 3 4 5 6 7 8 9 0 {bksp}',
  364. 'Q W E R T Y U I O P',
  365. 'A S D F G H J K L',
  366. 'Z X C V B N M {accept}'
  367. ]
  368. }
  369. });
  370. <?php /* 樓層平面圖 */ ?>
  371. AltobObject.AtsMap({
  372. mapInfo: {
  373. map1: {
  374. floorName: 'B1',
  375. canvasId: 'b1canvas',
  376. src: '<?=SERVER_URL?>i3/pics/b1_map.png',
  377. initialImageRatio: AltobObject.settings.qcar2.result_page.B1.initialImageRatio,
  378. shiftLeft: AltobObject.settings.qcar2.result_page.B1.shiftLeft,
  379. shiftUp: AltobObject.settings.qcar2.result_page.B1.shiftUp
  380. }
  381. }
  382. });
  383. // 畫出指定位置
  384. AltobObject.AtsMap.drawPosition(PKS_RESULT.floors, PKS_RESULT.posx, PKS_RESULT.posy);
  385. });
  386. </script>