VM暫存
Du kan inte välja fler än 25 ämnen Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.

433 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-6 col-sm-6">
  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-6 col-sm-6">
  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:200px" />
  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. <div class="panel panel-default">
  103. <div class="panel-heading"><span>停車位置 : B1 樓層</span></div>
  104. <div class="panel-body"><canvas id="b1canvas"></canvas></div>
  105. </div>
  106. </div>
  107. </div>
  108. <!-- /#page-wrapper -->
  109. </div>
  110. <!-- /#wrapper -->
  111. <!-- jQuery -->
  112. <script src="<?=BOOTSTRAPS?>bower_components/jquery/dist/jquery.min.js"></script>
  113. <!-- Bootstrap Core JavaScript -->
  114. <script src="<?=BOOTSTRAPS?>bower_components/bootstrap/dist/js/bootstrap.min.js"></script>
  115. <!-- Metis Menu Plugin JavaScript -->
  116. <script src="<?=BOOTSTRAPS?>bower_components/metisMenu/dist/metisMenu.min.js"></script>
  117. <!-- Morris Charts JavaScript -->
  118. <script src="<?=BOOTSTRAPS?>bower_components/raphael/raphael-min.js"></script>
  119. <!--script src="<?=BOOTSTRAPS?>bower_components/morrisjs/morris.min.js"></script-->
  120. <!--script src="<?=BOOTSTRAPS?>js/morris-data.js"></script-->
  121. <!-- virtual keyboard -->
  122. <link href="<?=WEB_LIB?>virtual-keyboard/css/jquery-ui.min.css" rel="stylesheet">
  123. <link href="<?=WEB_LIB?>virtual-keyboard/css/keyboard.css" rel="stylesheet">
  124. <script src="<?=WEB_LIB?>virtual-keyboard/js/jquery-ui.min.js"></script>
  125. <script src="<?=WEB_LIB?>virtual-keyboard/js/jquery.keyboard.js"></script>
  126. <script src="<?=WEB_LIB?>virtual-keyboard/js/jquery.keyboard.extension-caret.js"></script>
  127. <!-- alertify -->
  128. <link href="<?=WEB_LIB?>css/alertify.core.css" rel="stylesheet">
  129. <link href="<?=WEB_LIB?>css/alertify.bootstrap.css" rel="stylesheet">
  130. <script src="<?=WEB_LIB?>js/alertify.min.js"></script>
  131. <!-- moment -->
  132. <script src="<?=WEB_LIB?>js/moment.min.js"></script>
  133. <!-- altob ats map -->
  134. <script src="<?=WEB_LIB?>js/altob-ats-map.js"></script>
  135. <!-- Custom Theme JavaScript -->
  136. <script src="<?=BOOTSTRAPS?>dist/js/sb-admin-2.js"></script>
  137. <div id="works" style="display:none;"></div><?php /* 作為浮動顯示區之用 */ ?>
  138. </body>
  139. </html>
  140. <script>
  141. <?php /* alertify function */ ?>
  142. function alertify_count_down($msg, $delay)
  143. {
  144. alertify.set({delay : $delay});
  145. alertify.log($msg);
  146. }
  147. function alertify_log($msg)
  148. {
  149. alertify.set({delay : 2000});
  150. alertify.log($msg);
  151. }
  152. function alertify_error($msg)
  153. {
  154. alertify.set({delay : 2000});
  155. alertify.error($msg);
  156. }
  157. function alertify_success($msg)
  158. {
  159. alertify.set({delay : 2000});
  160. alertify.success($msg);
  161. }
  162. function alertify_msg($msg)
  163. {
  164. alertify.set({ labels: {
  165. ok : "確定"
  166. } });
  167. alertify.alert($msg, function (e){
  168. // do nothing
  169. });
  170. }
  171. function reset_query()
  172. {
  173. $("#fuzzy_input").val("");
  174. $("#carin_query_list").hide();
  175. return false;
  176. }
  177. // 取得搜尋結果
  178. var PKS_RESULT = {};
  179. PKS_RESULT.lpr = '<?= $lpr; ?>';
  180. PKS_RESULT.pksno = '<?= $pksno; ?>';
  181. PKS_RESULT.pic_name = '<?= $pic_name; ?>';
  182. PKS_RESULT.update_time = '<?= $update_time; ?>';
  183. PKS_RESULT.in_time = '<?= $in_time; ?>';
  184. PKS_RESULT.posx = '<?= $posx; ?>';
  185. PKS_RESULT.posy = '<?= $posy; ?>';
  186. PKS_RESULT.group_id = '<?= $group_id; ?>';
  187. PKS_RESULT.group_name = '<?= $group_name; ?>';
  188. PKS_RESULT.floors = '<?= $floors; ?>';
  189. if(PKS_RESULT.pksno == '')
  190. {
  191. $("#not_found_lpr").text(PKS_RESULT.lpr);
  192. show_item("not_found");
  193. }
  194. else
  195. {
  196. $("#show_lpr").text(PKS_RESULT.lpr);
  197. $("#show_floors").html(PKS_RESULT.group_name+" ( 車格: " + PKS_RESULT.pksno.substr(-3, 3) +" )");
  198. $("#show_update_time").text(PKS_RESULT.in_time);
  199. $("#show_img").attr("src", "<?=SERVER_URL?>pkspic/" + PKS_RESULT.pic_name);
  200. // 顯示查車結果
  201. show_item("output_pks");
  202. // show map
  203. $("[data-items="+PKS_RESULT.floors+"]").show();
  204. }
  205. var refreshIntervalId = 0; // timer id
  206. <?php /* 顯示指定項目 */ ?>
  207. function show_item(tags)
  208. {
  209. // 查車
  210. reset_query();
  211. // 付款
  212. $("#payment_lpr").val("");<?php /* 清除車號欄位 */ ?>
  213. $("#show_member_name").val("");
  214. $("#show_payment_lpr").val("");
  215. $("#show_end_date").val("");
  216. $("#show_next_start").val("");
  217. $("#show_next_end").val("");
  218. $("#show_amt").val("");
  219. $("#invoice_receiver").val("");
  220. $("#company_no").val("");
  221. $("#email").val("");
  222. $("#mobile").val("");
  223. $("#show_order_no").val("");
  224. $("#show_amt_detail").val("");
  225. $("#show_balance_time_limit_countdown").val("");
  226. if(tags.indexOf('payment_data') < 0 && tags.indexOf('price_data') < 0){
  227. clearInterval(refreshIntervalId); // 消除倒數計時timer
  228. }
  229. $("[data-items]").hide();
  230. $("[data-items="+tags+"]").show();
  231. return false;
  232. }
  233. <?php /* 顯示指定項目, 不修改資料 */ ?>
  234. function show_item_without_change(tags)
  235. {
  236. $("[data-items]").hide();
  237. $("[data-items="+tags+"]").show();
  238. return false;
  239. }
  240. // 查車牌
  241. function check_lpr(idx)
  242. {
  243. $.ajax
  244. ({
  245. url: "<?=APP_URL?>q_pks",
  246. dataType:"json",
  247. type:"post",
  248. data:{ "lpr" : $("#lpr_"+idx).text() },
  249. success:function(jdata)
  250. {
  251. if(!jdata)
  252. {
  253. //alertify_msg("您的愛車可能在頂樓! 謝謝");
  254. alertify_msg("找不到。。謝謝");
  255. return false;
  256. }
  257. else if (jdata["pksno"] == "0")
  258. {
  259. alertify_msg("查無資料,請鍵入正確資料");
  260. return false;
  261. }
  262. $("#show_lpr").text($("#lpr_"+idx).text());
  263. //$("#show_floors").html(jdata["group_name"]+"<br/> ( 車格: " + jdata["pksno"].charAt(0) + "-" + jdata["pksno"].substr(2) +" )");
  264. //$("#show_floors").html(jdata["group_name"]+"<br/> ( 車格: " + jdata["pksno"] +" )");
  265. $("#show_floors").html(jdata["group_name"]+"<br/> ( 車格: " + jdata["pksno"].substr(-3, 3) +" )");
  266. $("#show_update_time").text(jdata["in_time"]);
  267. $("#show_img").attr("src", "<?=SERVER_URL?>pkspic/"+jdata["pic_name"]);
  268. show_item("output_pks");
  269. // 顯示位置圖
  270. if (jdata["group_id"]){
  271. //var groupSplit = jdata["group_id"].split('-'); // ex. B3-3
  272. //var floor = groupSplit[0];
  273. var floor = jdata["floors"];
  274. var x = jdata["posx"];
  275. var y = jdata["posy"];
  276. // 畫出指定位置
  277. AltobObject.AtsMap.drawPosition(floor, x, y);
  278. // show map
  279. $("[data-items="+floor+"]").show();
  280. }
  281. }
  282. });
  283. return false;
  284. }
  285. $(document).ready(function()
  286. {
  287. <?php /* 鎖右鍵 */ ?>
  288. $(document).bind('contextmenu', function (e) {
  289. e.preventDefault();
  290. });
  291. <?php /* 車牌模糊搜尋 */ ?>
  292. $("#fuzzy_search_lpr").submit(function(event)
  293. {
  294. event.preventDefault();
  295. // 清除搜尋提示訊息
  296. $("#fuzzy_search_lpr_msg").text('');
  297. if(! $("#fuzzy_search_lpr").isValid()) return false;
  298. $.ajax
  299. ({
  300. url: "<?=APP_URL?>q_fuzzy_pks",
  301. type: "post",
  302. dataType:"json",
  303. data: $(this).serialize(),
  304. success: function(jdata)
  305. {
  306. if (!jdata)
  307. {
  308. //alert("查無此車 !");
  309. $("#fuzzy_search_lpr_msg").text('查無此車');
  310. return false;
  311. }
  312. // 清除搜尋提示訊息
  313. $("#fuzzy_search_lpr_msg").text('');
  314. var tmp_str_array = [];
  315. for(idx in jdata.result)
  316. {
  317. tmp_str_array = tmp_str_array.concat(
  318. [
  319. "<tr><td id='lpr_", idx, "' style='text-align:center;vertical-align:middle;'>", jdata.result[idx]['lpr'] ,
  320. "</td><td id='in_time_", idx, "'style='text-align:center;vertical-align:middle;'>", jdata.result[idx]['in_time'],
  321. "</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'], "' />",
  322. "</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>" ,
  323. "</td></tr>"
  324. ]);
  325. }
  326. $("#carin_query_tbody").html(tmp_str_array.join(''));
  327. $("#carin_query_list").show();
  328. }
  329. });
  330. });
  331. // Custom: altob-input
  332. // ********************
  333. $('#fuzzy_input').keyboard({
  334. css : {
  335. // input & preview styles
  336. input : 'ui-widget-content ui-corner-all',
  337. // keyboard container - this wraps the preview area (if `usePreview` is true) and all keys
  338. container : 'ui-widget-content ui-widget ui-corner-all ui-helper-clearfix',
  339. // default keyboard button state, these are applied to all keys, the remaining css options are toggled as needed
  340. buttonDefault : 'ui-state-default ui-corner-all',
  341. // hovered button
  342. buttonHover : 'ui-state-hover',
  343. // Action keys (e.g. Accept, Cancel, Tab, etc); this replaces the "actionClass" option
  344. buttonAction : 'ui-state-active',
  345. // used when disabling the decimal button {dec} when a decimal exists in the input area
  346. buttonDisabled : 'ui-state-disabled'
  347. },
  348. display: {
  349. 'bksp' : '\u2190',
  350. 'default' : 'ABC',
  351. 'accept' : '確 認'
  352. },
  353. layout: 'custom',
  354. customLayout: {
  355. 'default': [
  356. '1 2 3 4 5 6 7 8 9 0 {bksp}',
  357. 'Q W E R T Y U I O P',
  358. 'A S D F G H J K L',
  359. 'Z X C V B N M {accept}'
  360. ]
  361. }
  362. });
  363. <?php /* 樓層平面圖 */ ?>
  364. AltobObject.AtsMap({
  365. mapInfo: {
  366. map1: {
  367. floorName: 'B1',
  368. canvasId: 'b1canvas',
  369. src: '<?=SERVER_URL?>i3/pics/b1_map.png',
  370. initialImageRatio: 0.95,
  371. shiftLeft: 50,
  372. shiftUp: 0
  373. }
  374. }
  375. });
  376. // 畫出指定位置
  377. AltobObject.AtsMap.drawPosition(PKS_RESULT.floors, PKS_RESULT.posx, PKS_RESULT.posy);
  378. });
  379. </script>