order.html 7.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285
  1. {extend name="base"/}
  2. {block name="resources"}
  3. {/block}
  4. {block name="main"}
  5. <div class="screen layui-collapse" lay-filter="selection_panel">
  6. <div class="layui-colla-item">
  7. <form class="layui-form layui-colla-content layui-form layui-show" lay-filter="order_list" action="javascript:;">
  8. <div class="layui-form-item">
  9. <div class="layui-inline">
  10. <label class="layui-form-label">订单号:</label>
  11. <div class="layui-input-inline">
  12. <input type="text" class="layui-input" name="order_no">
  13. </div>
  14. </div>
  15. <div class="layui-inline">
  16. <label class="layui-form-label">购买人昵称:</label>
  17. <div class="layui-input-inline">
  18. <input type="text" class="layui-input" name="nickname">
  19. </div>
  20. </div>
  21. </div>
  22. <div class="layui-form-item">
  23. <div class="layui-inline">
  24. <label class="layui-form-label">下单时间:</label>
  25. <div class="layui-input-inline">
  26. <input type="text" class="layui-input" name="start_time" placeholder="开始时间" id="start_time" readonly>
  27. <i class=" iconrili iconfont calendar"></i>
  28. </div>
  29. <div class="layui-form-mid">-</div>
  30. <div class="layui-input-inline">
  31. <input type="text" class="layui-input" name="end_time" placeholder="结束时间" id="end_time" readonly>
  32. <i class=" iconrili iconfont calendar"></i>
  33. </div>
  34. <button class="layui-btn layui-btn-primary date-picker-btn" onclick="datePick(7, this);return false;">近7天</button>
  35. <button class="layui-btn layui-btn-primary date-picker-btn" onclick="datePick(30, this);return false;">近30天</button>
  36. </div>
  37. </div>
  38. <div class="layui-form-item">
  39. <div class="layui-inline">
  40. <label class="layui-form-label">订单状态:</label>
  41. <div class="layui-input-inline">
  42. <select name="status" lay-filter="status">
  43. <option value="">全部</option>
  44. <option value="0">待支付</option>
  45. <option value="1">已支付</option>
  46. <option value="-1">已关闭</option>
  47. </select>
  48. </div>
  49. </div>
  50. </div>
  51. <div class="form-row">
  52. <button class="layui-btn" lay-submit lay-filter="search">筛选</button>
  53. <button type="reset" class="layui-btn layui-btn-primary">重置</button>
  54. </div>
  55. </form>
  56. </div>
  57. </div>
  58. <!-- 订单列表 -->
  59. <table id="order_list" lay-filter="order_list"></table>
  60. <!-- 操作 -->
  61. <script type="text/html" id="operation">
  62. <div class="table-btn">
  63. {{# if(d.order_status == 0 ){ }}
  64. <a class="layui-btn" lay-event="offlinepay">线下支付</a>
  65. {{# } }}
  66. <a class="layui-btn" lay-event="detail">详情</a>
  67. </div>
  68. </script>
  69. <!-- 用户信息 -->
  70. <script type="text/html" id="member_info">
  71. <div class="table-title">
  72. <div class='title-pic'>
  73. {{# if(d.headimg){ }}
  74. <img layer-src src="{{ns.img(d.headimg)}}" onerror="this.src = '{:img('public/static/img/default_img/head.png')}' "/>
  75. {{# } }}
  76. </div>
  77. <div class='title-content'>
  78. <p class="multi-line-hiding">{{d.nickname}}</p>
  79. </div>
  80. </div>
  81. </script>
  82. {/block}
  83. {block name="script"}
  84. <script>
  85. var table,
  86. laydate,
  87. form,
  88. repeat_flag = false; //防重复标识
  89. layui.use(['form', 'laydate'], function() {
  90. laydate = layui.laydate;
  91. form = layui.form;
  92. form.render();
  93. //渲染时间
  94. laydate.render({
  95. elem: '#start_time'
  96. ,type: 'datetime'
  97. ,change: function(value, date, endDate){
  98. $(".date-picker-btn").removeClass("selected");
  99. }
  100. });
  101. laydate.render({
  102. elem: '#end_time'
  103. ,type: 'datetime'
  104. ,change: function(value, date, endDate){
  105. $(".date-picker-btn").removeClass("selected");
  106. }
  107. });
  108. /**
  109. * 加载表格
  110. */
  111. table = new Table({
  112. elem: '#order_list',
  113. url: ns.url("shop/memberlevel/order"),
  114. cols: [
  115. [{
  116. field: 'order_no',
  117. title: '订单号',
  118. width: '14%',
  119. unresize: 'false'
  120. },
  121. {
  122. title: '购买人信息',
  123. width: '12%',
  124. templet: "#member_info"
  125. },
  126. {
  127. field: 'level_name',
  128. title: '卡名称',
  129. width: '12%',
  130. unresize: 'false'
  131. }, {
  132. title: '订单类型',
  133. width: '8%',
  134. templet: function (data) {
  135. return (data.order_type == 1 ? '开卡' : '续费');
  136. }
  137. },
  138. {
  139. title: '购买时长',
  140. width: '8%',
  141. unresize: 'false',
  142. templet: function (data) {
  143. var str = '';
  144. switch (data.period_unit) {
  145. case 'week':
  146. str = '一周';
  147. break;
  148. case 'month':
  149. str = '一月';
  150. break;
  151. case 'quarter':
  152. str = '一季';
  153. break;
  154. case 'year':
  155. str = '一年';
  156. break;
  157. }
  158. return str;
  159. }
  160. }, {
  161. title: '订单金额',
  162. width: '8%',
  163. unresize: 'false',
  164. templet: function (data) {
  165. return data.order_money;
  166. }
  167. },
  168. {
  169. title: '下单时间',
  170. width: '10%',
  171. unresize: 'false',
  172. templet: function (data) {
  173. return ns.time_to_date(data.create_time);
  174. }
  175. },
  176. {
  177. title: '订单状态',
  178. width: '8%',
  179. templet: function (data) {
  180. var str = '';
  181. switch (data.order_status) {
  182. case 0:
  183. str = '待支付';
  184. break;
  185. case 1:
  186. str = '已支付';
  187. break;
  188. case -1:
  189. str = '已关闭';
  190. break;
  191. }
  192. return str;
  193. }
  194. }, {
  195. title: '操作',
  196. unresize: 'false',
  197. toolbar: '#operation',
  198. align: 'right'
  199. }]
  200. ]
  201. });
  202. /**
  203. * 工具栏操作,编辑、删除
  204. */
  205. table.tool(function(obj) {
  206. var data = obj.data,
  207. event = obj.event;
  208. switch (event) {
  209. case 'offlinepay':
  210. $.ajax({
  211. url: ns.url("shop/memberlevel/offlinepay"),
  212. data: {
  213. out_trade_no: data.out_trade_no
  214. },
  215. type: "POST",
  216. dataType: "JSON",
  217. success: function(res) {
  218. if (res.code == 0) {
  219. table.reload();
  220. }else{
  221. layer.msg(res.message);
  222. }
  223. }
  224. });
  225. break;
  226. case 'detail':
  227. location.href = ns.url("shop/memberlevel/orderdetail?order_id=" + data.order_id);
  228. break;
  229. }
  230. });
  231. /**
  232. * 搜索功能
  233. */
  234. form.on('submit(search)', function(data) {
  235. table.reload( {
  236. page: {
  237. curr: 1
  238. },
  239. where: data.field
  240. });
  241. });
  242. });
  243. function datePick(date_num,event_obj){
  244. $(".date-picker-btn").removeClass("selected");
  245. $(event_obj).addClass('selected');
  246. Date.prototype.Format = function (fmt,date_num) { //author: meizz
  247. this.setDate(this.getDate()-date_num);
  248. var o = {
  249. "M+": this.getMonth() + 1, //月份
  250. "d+": this.getDate(), //日
  251. "H+": this.getHours(), //小时
  252. "m+": this.getMinutes(), //分
  253. "s+": this.getSeconds(), //秒
  254. "q+": Math.floor((this.getMonth() + 3) / 3), //季度
  255. "S": this.getMilliseconds() //毫秒
  256. };
  257. if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
  258. for (var k in o)
  259. if (new RegExp("(" + k + ")").test(fmt)) fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
  260. return fmt;
  261. };
  262. var now_time = new Date().Format("yyyy-MM-dd 23:59:59",0);//当前日期
  263. var before_time = new Date().Format("yyyy-MM-dd 00:00:00",date_num-1);//前几天日期
  264. $("input[name=start_time]").val(before_time,0);
  265. $("input[name=end_time]").val(now_time,date_num-1);
  266. }
  267. </script>
  268. {/block}