index.html 8.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244
  1. {extend name="app/shop/view/base.html"/}
  2. {block name="resources"}
  3. <style>
  4. .calendar{text-align: center;line-height: 34px;}
  5. .layui-layout-admin .single-filter-box{padding-bottom: 0;}
  6. </style>
  7. {/block}
  8. {block name='main'}
  9. <!-- 筛选面板 -->
  10. <div class="single-filter-box">
  11. <div class="layui-form">
  12. <div class="layui-inline">
  13. <div class="layui-inline">
  14. <div class="layui-input-inline"></div>
  15. </div>
  16. <div class="layui-input-inline">
  17. <select name="store_id" lay-filter="store_id">
  18. <option value="">请选择门店</option>
  19. {foreach name="$store_list" item="store"}
  20. <option value="{$store['store_id']}">{$store['store_name']}</option>
  21. {/foreach}
  22. </select>
  23. </div>
  24. <div class="layui-input-inline">
  25. <input type="text" name="start_time" id="start_time" placeholder="结算开始时间" class="layui-input" autocomplete="off" readonly>
  26. <i class=" iconrili iconfont calendar"></i>
  27. </div>
  28. <div class="layui-input-inline end-time">
  29. <input type="text" name="end_time" id="end_time" placeholder="结算结束时间" class="layui-input" autocomplete="off" readonly>
  30. <i class=" iconrili iconfont calendar"></i>
  31. </div>
  32. <button class="layui-btn layui-btn-primary" lay-submit lay-filter="search">搜索</button>
  33. </div>
  34. </div>
  35. </div>
  36. <div class="layui-tab table-tab">
  37. <div class="layui-tab-content">
  38. <table id="account_list" lay-filter="account_list"></table>
  39. </div>
  40. </div>
  41. {/block}
  42. {block name="script"}
  43. <script type="text/html" id="operation">
  44. <div class="table-btn">
  45. {{# if(d.is_settlement == 0){ }}
  46. <a class="layui-btn" lay-event="settlement">结算</a>
  47. {{# } }}
  48. <a class="layui-btn" lay-event="detail">详情</a>
  49. </div>
  50. </script>
  51. <script type="text/html" id="shop_money">
  52. <span style="color: red;">¥{{d.shop_money}}</span>
  53. </script>
  54. <script type="text/html" id="reviewReason">
  55. <div class="layui-form">
  56. <div class="layui-form-item layui-form-text">
  57. <label class="layui-form-label mid">结算备注:</label>
  58. <div class="layui-input-block len-mid">
  59. <textarea name="remark" placeholder="请输入内容" class="layui-textarea" maxlength="150"></textarea>
  60. </div>
  61. </div>
  62. <input name="settlement_id" value="{{d.id}}" type="hidden"/>
  63. <div class="form-row mid">
  64. <button class="layui-btn" lay-submit lay-filter="save">结算</button>
  65. <button onclick="cancel()" class="layui-btn layui-btn-primary">取消</button>
  66. </div>
  67. </div>
  68. </script>
  69. <script>
  70. var start_time,end_time,
  71. repeat_flag = false;
  72. layui.use(['laydate','form','laytpl'], function () {
  73. var laydate = layui.laydate,
  74. laytpl = layui.laytpl,
  75. form = layui.form;
  76. form.render();
  77. //开始时间
  78. laydate.render({
  79. elem: '#start_time' //指定元素
  80. ,done: function(value, date, endDate){
  81. start_time = ns.date_to_time(value);
  82. }
  83. });
  84. //结束时间
  85. laydate.render({
  86. elem: '#end_time' //指定元素
  87. ,done: function(value, date, endDate){
  88. end_time = ns.date_to_time(value);
  89. }
  90. });
  91. /**
  92. * 搜索功能
  93. */
  94. form.on('submit(search)', function (data) {
  95. data.field.start_time = start_time;
  96. data.field.end_time = end_time;
  97. table.reload({
  98. page: {
  99. curr: 1
  100. },
  101. where: data.field
  102. });
  103. return false;
  104. });
  105. function settlement(data) {
  106. laytpl($("#reviewReason").html()).render(data, function(html){
  107. layer.open({
  108. type: 1,
  109. title:'结算',
  110. content: html,
  111. area: ['500px']
  112. });
  113. })
  114. }
  115. form.on('submit(save)', function (data) {
  116. if (repeat_flag) return;
  117. repeat_flag = true;
  118. $.ajax({
  119. type: 'POST',
  120. dataType: 'JSON',
  121. url: ns.url("store://shop/settlement/settlement"),
  122. data: data.field,
  123. success: function(res) {
  124. repeat_flag = false;
  125. if (res.code == 0) {
  126. layer.msg('操作成功!');
  127. location.reload();
  128. }else{
  129. layer.msg(res.message);
  130. }
  131. }
  132. });
  133. });
  134. var table = new Table({
  135. elem: '#account_list',
  136. url: ns.url("store://shop/settlement/index"),
  137. cols: [
  138. [{
  139. field:'settlement_no',
  140. title: '账单编号',
  141. unresize: 'false',
  142. width:'16%',
  143. },{
  144. field: 'store_name',
  145. title: '门店',
  146. width:'10%',
  147. }, {
  148. title: '订单总额',
  149. unresize: 'false',
  150. width:'8%',
  151. align: 'right',
  152. templet: function (res){
  153. return '¥' + (res.order_money*1 + res.offline_order_money*1 - res.refund_shop_money*1- res.offline_refund_money*1);
  154. }
  155. }, {
  156. title: '线上结算金额',
  157. unresize: 'false',
  158. width:'9%',
  159. align: 'right',
  160. templet: function (res) {
  161. return '<span style="color: red;">¥'+ (res.order_money*1 - res.refund_shop_money*1 -res.commission*1) + '</span>';
  162. }
  163. }, {
  164. title: '线下结算金额',
  165. unresize: 'false',
  166. width:'9%',
  167. align: 'right',
  168. templet: function (res){
  169. return '<span style="color: red;">¥'+ (res.offline_order_money*1 - res.offline_refund_money*1) + '</span>';
  170. }
  171. },{
  172. title: '门店抽成金额',
  173. unresize: 'false',
  174. width:'10%',
  175. align: 'right',
  176. templet: function (res){
  177. return '<span style="color: red;">¥'+ (res.store_commission) + '</span>';
  178. }
  179. }, {
  180. title: '结算开始时间',
  181. unresize: 'false',
  182. width:'14%',
  183. templet: function (res){
  184. if(res.start_time == 0){
  185. return '--';
  186. }else{
  187. return ns.time_to_date(res.start_time)
  188. }
  189. }
  190. }, {
  191. title: '结算结束时间',
  192. unresize: 'false',
  193. width:'14%',
  194. templet: function (res){
  195. if(res.end_time == 0){
  196. return '--';
  197. }else{
  198. return ns.time_to_date(res.end_time)
  199. }
  200. }
  201. }, {
  202. title: '操作',
  203. toolbar: '#operation',
  204. unresize: 'false',
  205. align:'right'
  206. }]
  207. ]
  208. });
  209. /**
  210. * 监听工具栏操作
  211. */
  212. table.tool(function(obj) {
  213. var data = obj.data;
  214. switch (obj.event) {
  215. case 'settlement': //编辑
  216. settlement(data);
  217. break;
  218. case 'detail':
  219. location.href = ns.url("store://shop/settlement/detail", {'settlement_id': data.id});
  220. break;
  221. }
  222. });
  223. });
  224. function cancel(){
  225. layer.closeAll()
  226. }
  227. </script>
  228. {/block}