VM暫存
選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。

458 行
16KB

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