detail.html 9.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252
  1. {extend name="app/shop/view/base.html"/}
  2. {block name="resources"}
  3. <style>
  4. .card-common {margin-top: 15px;margin-bottom: 0;box-shadow: initial;}
  5. .card-common .layui-card-body{padding-top: 0;}
  6. .promotion-view{display:flex;flex-wrap:wrap}
  7. .promotion-view-item{width:33.3%;padding-right:10px;box-sizing:border-box;line-height:30px}
  8. .promotion-view-item-line{padding-right:10px;box-sizing:border-box;line-height:30px;overflow: hidden;width: 100%}
  9. .promotion-view-item-custom-label{float:left}
  10. .promotion-view-item-custom-box{float:left}
  11. .promotion-stat-view{display:flex;flex-wrap:wrap}
  12. .promotion-stat-view .promotion-stat-item{width:25%;padding:0 15px 10px 15px;box-sizing:border-box}
  13. .promotion-stat-view .promotion-stat-item .promotion-stat-item-title{color:#909399;font-size:14px;margin-top:5px}
  14. .promotion-stat-view .promotion-stat-item .promotion-stat-item-value{color:#303133;font-size:26px;margin-top:10px}
  15. .todo-list .promotion-stat-item{flex:1;width:0;cursor:pointer}
  16. .layui-layout-admin .layui-body .body-content {background: 0 0;padding: 0;}
  17. .gift-card-goods span{cursor: pointer; color: var(--base-color);}
  18. .layui-tab-title{margin-bottom: 15px;}
  19. .layui-layout-admin .single-filter-box.top {padding-top: 0 !important;}
  20. .add-way .add-way-item{display: flex;margin: 8px 0;align-items: center;}
  21. .add-way .add-way-item input{margin: 0 10px;}
  22. .add-way .add-way-item .layui-form-radio{margin-right: 0;}
  23. .disabled-click{pointer-events: none;color: #999 !important;}
  24. #addFile{margin-left: 10px; cursor: pointer;color: var(--base-color);}
  25. .card-goods .layui-table{margin-bottom: 0;margin-top: 0;}
  26. #card_right_type_goods #goods{border: 0;}
  27. .card-goods .layui-table .goods-title{display: flex;align-items: center;}
  28. .card-goods .layui-table .goods-title .goods-img{width: 55px;height: 55px;line-height: 55px;flex-shrink: 0;margin-right: 10px;}
  29. .card-goods .layui-table .goods-title .goods-img img{max-width: 100%;max-height: 100%;}
  30. .card-goods .layui-table-body{overflow: auto;max-height: 425px;margin-bottom: 15px;border-bottom: 1px solid #e6e6e6;}
  31. .card-goods .layui-table-body .layui-table{border: none;}
  32. .card-goods .layui-table-body tbody tr:last-of-type td{border: none;}
  33. .card-goods .layui-table-head tr th:last-of-type{text-align: right;}
  34. .card-goods .layui-table-body tr td:last-of-type{text-align: right;}
  35. .card-tab{margin-bottom: 15px;margin-top: 15px;}
  36. /* 商品列表 */
  37. .shop-information-table > p{padding-left: 5px;padding-bottom: 5px;}
  38. .shop-information-table table {width: 100%;border: 1px solid rgb(238,238,238);}
  39. .shop-information-table .table-body {max-height: 400px;overflow: auto;}
  40. .table-trOne{height: 48px;background:rgb(245,245,245) ;}
  41. .shop-information-table th{text-align: left;padding-left:28px;box-sizing: border-box;font-weight: 500;color:#333333;}
  42. .shop-information-table th:last-child{border:none;}
  43. .table-trTow{width:100%;height:60px;border-top:1px solid rgb(238,238,238);}
  44. .table-trTow>td{text-align: left;padding-left:28px;box-sizing: border-box;font-weight: 500;color:#333333;border-right:1px solid rgb(238,238,238);}
  45. .table-trTow>td:nth-child(5){color:rgb(255,106,0)}
  46. .layui-tab-content {
  47. padding: 0;
  48. }
  49. .layui-layout-admin.admin-style-2 .screen {
  50. margin-bottom: 15px;
  51. }
  52. </style>
  53. {/block}
  54. {block name="main"}
  55. <div class="layui-card card-common card-brief">
  56. <div class="layui-card-header">
  57. <div>
  58. <span class="card-title">基本信息</span>
  59. </div>
  60. </div>
  61. <div class="layui-card-body">
  62. <div class="promotion-view">
  63. <div class="promotion-view-item">
  64. <label>卡项名称:</label>
  65. <span>{$detail.goods_name}</span>
  66. </div>
  67. <div class="promotion-view-item grouping">
  68. <label>价格:</label>
  69. <span>¥{$detail.price}</span>
  70. </div>
  71. <div class="promotion-view-item grouping">
  72. <label>所属会员:</label>
  73. <span>{$detail.nickname}</span>
  74. </div>
  75. <div class="promotion-view-item grouping">
  76. <label>卡类型:</label>
  77. <span>{$detail.card_type_name}</span>
  78. </div>
  79. <div class="promotion-view-item grouping">
  80. <label>总次数/已使用:</label>
  81. <span>{if $detail.card_type == "timecard"}不限{else/}{$detail.total_num} {/if}/{$detail.total_use_num}</span>
  82. </div>
  83. <div class="promotion-view-item grouping">
  84. <label>获取时间:</label>
  85. <span>{:date('Y-m-d H:i:s',$detail.create_time)}</span>
  86. </div>
  87. <div class="promotion-view-item grouping">
  88. <label>过期时间:</label>
  89. {if $detail.end_time > 0}
  90. <span>{:date('Y-m-d H:i:s',$detail.end_time)}</span>
  91. {else /}
  92. <span>永久有效</span>
  93. {/if}
  94. </div>
  95. </div>
  96. </div>
  97. </div>
  98. <div class="layui-card card-common card-brief">
  99. <div class="layui-card-header">
  100. <div>
  101. <span class="card-title">卡项商品</span>
  102. </div>
  103. </div>
  104. <div class="layui-card-body layui-tab layui-tab-brief" lay-filter="edit_user_tab">
  105. <ul class="layui-tab-title">
  106. <li class="layui-this" lay-id="basic_info">商品信息</li>
  107. <li lay-id="basic_info">使用记录</li>
  108. </ul>
  109. <div class="layui-tab-content">
  110. <div class="layui-tab-item layui-show">
  111. <table id="data_list" lay-filter="data_list"></table>
  112. </div>
  113. <div class="layui-tab-item">
  114. <table id="recrods_list" lay-filter="recrods_list"></table>
  115. </div>
  116. </div>
  117. </div>
  118. </div>
  119. {/block}
  120. {block name="script"}
  121. <!-- 工具栏操作 -->
  122. <script type="text/html" id="operation">
  123. <div class="table-btn">
  124. <a class="layui-btn" lay-event="order">查看订单</a>
  125. </div>
  126. </script>
  127. <script type="text/html" id="memberInfo">
  128. <div class='table-title'>
  129. <div class='title-pic'>
  130. <img layer-src src="{{ns.img(d.headimg)}}" onerror="this.src = '{:img('public/static/img/default_img/head.png')}' ">
  131. </div>
  132. <div class='title-content' onclick="location.href = ns.url('shop/member/editmember?member_id={{d.member_id}}')">
  133. <p class="layui-elip">{{d.nickname}}</p>
  134. <p class="layui-elip">{{d.mobile}}</p>
  135. </div>
  136. </div>
  137. </script>
  138. <script type="text/html" id="operation">
  139. <div class="table-btn">
  140. {{# if(d.status == 'to_activate'){ }}
  141. <a class="layui-btn" lay-event="delete">删除</a>
  142. {{# } }}
  143. {{# if(d.status != 'to_activate'){ }}
  144. <a class="layui-btn" lay-event="info">详情</a>
  145. {{# } }}
  146. </div>
  147. </script>
  148. <script>
  149. var table,element,form,laytpl,repeat_flag=false,records_table;
  150. layui.use(['form', 'element', 'laytpl','laydate'], function () {
  151. laytpl = layui.laytpl;
  152. element = layui.element;
  153. form = layui.form;
  154. form.render();
  155. table = new Table({
  156. elem: '#data_list',
  157. url: ns.url("cardservice://shop/card/getcarditem", {'card_id':"{$detail['card_id']}"}),
  158. cols: [
  159. [{
  160. field: 'goods_name',
  161. title: '商品名称',
  162. unresize: 'false',
  163. width: '50%',
  164. }, {
  165. field: '',
  166. title: '总次数',
  167. unresize: 'false',
  168. templet: function (data) {
  169. var totalNum = data.card_type == 'timecard' ? '不限' : data.num;
  170. return totalNum;
  171. }
  172. }, {
  173. field: '',
  174. title: '已使用',
  175. unresize: 'false',
  176. templet: function (data) {
  177. return data.use_num;
  178. }
  179. }]
  180. ]
  181. });
  182. records_table = new Table({
  183. elem: '#recrods_list',
  184. url: ns.url("cardservice://shop/card/records", {'card_id':"{$detail['card_id']}"}),
  185. cols: [
  186. [{
  187. field: 'sku_name',
  188. title: '卡项名称',
  189. unresize: 'false',
  190. width: '20%',
  191. },{
  192. field: 'store_name',
  193. title: '使用门店',
  194. unresize: 'false',
  195. width: '15%',
  196. }, {
  197. field: '',
  198. title: '使用次数',
  199. unresize: 'false',
  200. width: '15%',
  201. templet: function (data) {
  202. return data.num;
  203. }
  204. }, {
  205. title: '使用时间',
  206. unresize: 'false',
  207. width: '15%',
  208. templet: function (data) {
  209. return ns.time_to_date(data.create_time);
  210. }
  211. }, {
  212. title: '操作',
  213. toolbar: '#operation',
  214. unresize: 'false',
  215. align : 'right'
  216. }]
  217. ]
  218. });
  219. /**
  220. * 监听工具栏操作
  221. */
  222. records_table.tool(function(obj) {
  223. var data = obj.data;
  224. switch (obj.event) {
  225. case 'order':
  226. window.open(ns.url("shop/order/detail?order_id=" + data.order_id));
  227. break;
  228. }
  229. });
  230. /**
  231. * 搜索功能
  232. */
  233. form.on('submit(search)', function (data) {
  234. records_table.reload({
  235. page: {curr: 1},
  236. where: data.field
  237. });
  238. return false;
  239. });
  240. })
  241. </script>
  242. {/block}