ReceiptManagement.blade.php 14KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304
  1. @extends('admin.master')
  2. @section('content')
  3. <div class="row">
  4. <div class="col-lg-12">
  5. <div class="contentpanel">
  6. <form id="listForm" method="post">
  7. <!-- 功能按鈕(新增/批量處理等等) -->
  8. <div class="row" style="margin-bottom: 5px;">
  9. <div class="col-lg-12">
  10. <ol class="headermenu">
  11. <li>
  12. <button class="btn btn-darkblue btn-xs" id="export"><strong>匯出</strong></button>
  13. </li>
  14. <li>
  15. <button class="btn btn-darkblue btn-xs" id="btnRedeemDone"><strong>發放</strong></button>
  16. </li>
  17. <li>
  18. <button class="btn btn-darkblue btn-xs" id="btnRedeemFail"><strong>不發放</strong></button>
  19. </li>
  20. </ol>
  21. </div>
  22. </div>
  23. <!-- 搜尋段 -->
  24. <div class="panel panel-default">
  25. <div class="panel-heading" data-toggle="collapse" data-target="#search_content">
  26. <h3 class="panel-title">登記資料維護</h3>
  27. </div>
  28. <div id="search_content" class="collapse in">
  29. <div class="panel-body">
  30. <!-- 交易日期 from -->
  31. <div class="form-group col-xs-12 col-sm-6 col-lg-6">
  32. <label for="tranDateStart">交易日期(起)</label>
  33. <input type="text" class="form-control input-sm" id="tranDateStart"
  34. maxlength="10">
  35. </div>
  36. <!-- 交易日期 to -->
  37. <div class="form-group col-xs-12 col-sm-6 col-lg-6">
  38. <label for="tranDateFinal">交易日期(迄)</label>
  39. <input type="text" class="form-control input-sm" id="tranDateFinal"
  40. maxlength="10">
  41. </div>
  42. <!-- 交易行號 -->
  43. <div class="form-group col-xs-12 col-sm-6 col-lg-6">
  44. <label for="tranBank">交易行號</label>
  45. <input type="text" class="form-control input-sm" id="tranBank" maxlength="10">
  46. </div>
  47. <!-- 交易帳號 -->
  48. <div class="form-group col-xs-12 col-sm-6 col-lg-6">
  49. <label for="tranAccount">交易帳號</label>
  50. <input type="text" class="form-control input-sm" id="tranAccount" maxlength="30">
  51. </div>
  52. <!-- 訂單編號 -->
  53. <div class="form-group col-xs-12 col-sm-6 col-lg-6">
  54. <label for="tranOrderNo">訂單編號</label>
  55. <input type="text" class="form-control input-sm" id="tranOrderNo" maxlength="30">
  56. </div>
  57. <!-- 玩家 LINE ID -->
  58. <div class="form-group col-xs-12 col-sm-6 col-lg-6">
  59. <label for="lineId">玩家 LINE ID</label>
  60. <input type="text" class="form-control input-sm" id="lineId" maxlength="64">
  61. </div>
  62. <!-- 玩家 LINE 姓名 -->
  63. <div class="form-group col-xs-12 col-sm-6 col-lg-6">
  64. <label for="lineName">玩家 LINE 姓名</label>
  65. <input type="text" class="form-control input-sm" id="lineName" maxlength="64">
  66. </div>
  67. <!-- 活動名稱 -->
  68. <div class="form-group col-xs-12 col-sm-6 col-lg-6">
  69. <label for="valid">活動名稱</label>
  70. <select class="form-control input-sm" id="activity">
  71. <option value="">全部</option>
  72. @foreach($activity as $data)
  73. <option value="{{ $data['id'] }}">{{ $data['activityName'] }}</option>
  74. @endforeach
  75. </select>
  76. </div>
  77. <!-- 狀態 -->
  78. <div class="form-group col-xs-12 col-sm-6 col-lg-6">
  79. <label for="valid">狀態</label>
  80. <select class="form-control input-sm" id="rStatus">
  81. <option value="">全部</option>
  82. @foreach($rStatus as $k => $data)
  83. <option value="{{ $k }}">{{ $data['back'] }}</option>
  84. @endforeach
  85. </select>
  86. </div>
  87. <!-- 是否發放 -->
  88. <div class="form-group col-xs-12 col-sm-6 col-lg-6">
  89. <label for="valid">是否發放</label>
  90. <select class="form-control input-sm" id="canGet">
  91. <option value="">全部</option>
  92. @foreach($canGet as $k => $v)
  93. <option value="{{ $k }}">{{ $v }}</option>
  94. @endforeach
  95. </select>
  96. </div>
  97. <!-- Search -->
  98. <div class="form-group col-xs-12 col-sm-12 col-lg-12">
  99. <a class="btn btn-success btn-xs" onclick="javascript: custom_search();">
  100. <div class="glyphicon glyphicon-search"></div>
  101. </a>
  102. </div>
  103. </div>
  104. </div>
  105. </div>
  106. <hr class="search-hr"/>
  107. <!-- 列表段 -->
  108. <div class="row">
  109. <div class="col-lg-12">
  110. <table id="GridView1" class="table table-striped table-bordered" cellspacing="0">
  111. <thead>
  112. <tr>
  113. <th>ID</th>
  114. <th>交易日期</th>
  115. <th>交易行號</th>
  116. <th>交易帳號</th>
  117. <th>訂單編號</th>
  118. <th>玩家 LINE ID</th>
  119. <th>玩家 LINE 姓名</th>
  120. <th>活動名稱</th>
  121. <th>狀態</th>
  122. <th>是否發放</th>
  123. <th>建立時間</th>
  124. <th>修改時間</th>
  125. <th>修改人</th>
  126. </tr>
  127. </thead>
  128. </table>
  129. </div>
  130. </div>
  131. </form>
  132. <!-- row -->
  133. </div>
  134. </div>
  135. </div>
  136. @endsection
  137. @section('extjs')
  138. <script>
  139. $(document).ready(function () {
  140. var table = $('#GridView1').dataTable({
  141. "scrollX": true,
  142. "processing": true,
  143. "serverSide": true,
  144. "ajax": "receiptManagement/grid",
  145. "paging": true,
  146. "ordering": true,
  147. "info": true,
  148. "order": [[0, "desc"]],
  149. "stateSave": true,
  150. "pagingType": "full",
  151. "bFilter": true,
  152. "aoColumnDefs": [{
  153. 'bSortable': false,
  154. 'aTargets': [] //不想參加排序的欄位,可指定多個,逗號分隔
  155. }]
  156. });
  157. // 從網址參觸發搜尋
  158. custom_search();
  159. $('#GridView1_filter').hide();
  160. });
  161. //客製化搜尋欄位
  162. function custom_search() {
  163. $('#GridView1').DataTable()
  164. .column(1).search($('#tranDateStart').val() + "\n" + $('#tranDateFinal').val())
  165. .column(2).search($('#tranBank').val())
  166. .column(3).search($('#tranAccount').val())
  167. .column(4).search($('#tranOrderNo').val())
  168. .column(5).search($('#lineId').val())
  169. .column(6).search($('#lineName').val())
  170. .column(7).search($('#activity').val())
  171. .column(8).search($('#rStatus').val())
  172. .column(9).search($('#canGet').val())
  173. ;
  174. $('#GridView1').dataTable().fnDraw(true);
  175. }
  176. // 匯出報告
  177. $("#export").click(function () {
  178. //加個讀取中畫面
  179. $.blockUI({
  180. css: {
  181. border: 'none',
  182. padding: '15px',
  183. backgactivityColor: '#000',
  184. '-webkit-border-radius': '10px',
  185. '-moz-border-radius': '10px',
  186. opacity: .5,
  187. color: '#FFF'
  188. }
  189. });
  190. var http = new XMLHttpRequest();
  191. http.responseType = 'blob';
  192. var header;
  193. var blob;
  194. var url = 'receiptManagement/export';
  195. var params =
  196. ''
  197. + 'tranDateStart=' + $('#tranDateStart').val()
  198. + '&tranDateFinal=' + $('#tranDateFinal').val()
  199. + '&tranBank=' + $('#tranBank').val()
  200. + '&tranAccount=' + $('#tranAccount').val()
  201. + '&tranOrderNo=' + $('#tranOrderNo').val()
  202. + '&lineId=' + $('#lineId').val()
  203. + '&lineName=' + $('#lineName').val()
  204. + '&activity=' + $('#activity').val()
  205. + '&rStatus=' + $('#rStatus').val()
  206. + '&canGet=' + $('#canGet').val()
  207. ;
  208. http.open("POST", url, true);
  209. http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
  210. http.onreadystatechange = function () {//Call a function when the state changes.
  211. if (http.readyState == 4 && http.status == 200) {
  212. var filename = "";
  213. var disposition = http.getResponseHeader('Content-Disposition');
  214. if (disposition && disposition.indexOf('attachment') !== -1) {
  215. var filenameRegex = /filename[^;=\n]*=((['"]).*?\2|[^;\n]*)/;
  216. var matches = filenameRegex.exec(disposition);
  217. if (matches != null && matches[1]) filename = matches[1].replace(/['"]/g, '');
  218. }
  219. var type = http.getResponseHeader('Content-Type');
  220. blob = new Blob([http.response], {type: type, endings: 'native'});
  221. var URL = window.URL || window.webkitURL;
  222. var downloadUrl = URL.createObjectURL(blob);
  223. var a = document.createElement("a");
  224. a.href = downloadUrl;
  225. a.download = filename;
  226. document.body.appendChild(a);
  227. a.click();
  228. }
  229. //解除鎖定
  230. $.unblockUI();
  231. }
  232. http.send(params);
  233. return false;
  234. });
  235. // 發放
  236. $("#btnRedeemDone").click(function () {
  237. var ids = $("input[name^='chk']").map(function (idx, ele) {
  238. if ($(ele).is(":checked")) {
  239. return $(ele).attr('name').replace(/\D/g, '');
  240. }
  241. }).get();
  242. $.ajax({
  243. url: 'receiptManagement/redeemDone',
  244. method: 'POST',
  245. dataType: 'JSON',
  246. data: {
  247. chk: ids
  248. },
  249. success: function (response) {
  250. alert('執行成功');
  251. },
  252. error: function () {
  253. alert('執行失敗,請稍後再試');
  254. }
  255. });
  256. $('#GridView1').dataTable().fnDraw(true);
  257. return false;
  258. });
  259. // 不發放
  260. $("#btnRedeemFail").click(function () {
  261. var ids = $("input[name^='chk']").map(function (idx, ele) {
  262. if ($(ele).is(":checked")) {
  263. return $(ele).attr('name').replace(/\D/g, '');
  264. }
  265. }).get();
  266. $.ajax({
  267. url: 'receiptManagement/redeemFail',
  268. method: 'POST',
  269. dataType: 'JSON',
  270. data: {
  271. chk: ids
  272. },
  273. success: function (response) {
  274. alert('執行成功');
  275. },
  276. error: function () {
  277. alert('執行失敗,請稍後再試');
  278. }
  279. });
  280. $('#GridView1').dataTable().fnDraw(true);
  281. return false;
  282. });
  283. //日期選擇器
  284. $('#tranDateStart').datepicker({
  285. dateFormat: 'yy-mm-dd'
  286. });
  287. $('#tranDateFinal').datepicker({
  288. dateFormat: 'yy-mm-dd'
  289. });
  290. setInterval(function () {
  291. $('[data-toggle="popover"]').popover();
  292. }, 1000);
  293. </script>
  294. @endsection