stream.html 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291
  1. <!DOCTYPE html>
  2. <html lang="zh-cn">
  3. <head>
  4. <meta charset="utf-8">
  5. <title>浏览页面</title>
  6. <link rel="stylesheet" href="/app/admin/component/pear/css/pear.css" />
  7. <link rel="stylesheet" href="/app/admin/admin/css/reset.css" />
  8. </head>
  9. <body class="pear-container">
  10. <!-- 顶部查询表单 -->
  11. <div class="layui-card">
  12. <div class="layui-card-body">
  13. <form class="layui-form top-search-from">
  14. <div class="layui-form-item">
  15. <label class="layui-form-label">流水类型</label>
  16. <div class="layui-input-block">
  17. <div name="type" id="type" value="" ></div>
  18. </div>
  19. </div>
  20. <div class="layui-form-item">
  21. <label class="layui-form-label">钱包类型</label>
  22. <div class="layui-input-block">
  23. <div name="mold" id="mold" value="" ></div>
  24. </div>
  25. </div>
  26. <div class="layui-form-item">
  27. <label class="layui-form-label">创建时间</label>
  28. <div class="layui-input-block">
  29. <div class="layui-input-block" id="created_at">
  30. <input type="text" autocomplete="off" name="created_at[]" id="created_at-date-start" class="layui-input inline-block" placeholder="开始时间">
  31. -
  32. <input type="text" autocomplete="off" name="created_at[]" id="created_at-date-end" class="layui-input inline-block" placeholder="结束时间">
  33. </div>
  34. </div>
  35. </div>
  36. <input type="hidden" name="user_id" value="<?=$id?>">
  37. <div class="layui-form-item layui-inline">
  38. <label class="layui-form-label"></label>
  39. <button class="pear-btn pear-btn-md pear-btn-primary" lay-submit lay-filter="table-query">
  40. <i class="layui-icon layui-icon-search"></i>查询
  41. </button>
  42. <button type="reset" class="pear-btn pear-btn-md" lay-submit lay-filter="table-reset">
  43. <i class="layui-icon layui-icon-refresh"></i>重置
  44. </button>
  45. </div>
  46. <div class="toggle-btn">
  47. <a class="layui-hide">展开<i class="layui-icon layui-icon-down"></i></a>
  48. <a class="layui-hide">收起<i class="layui-icon layui-icon-up"></i></a>
  49. </div>
  50. </form>
  51. </div>
  52. </div>
  53. <!-- 数据表格 -->
  54. <div class="layui-card">
  55. <div class="layui-card-body">
  56. <table id="data-table" lay-filter="data-table"></table>
  57. </div>
  58. </div>
  59. <script src="/app/admin/component/layui/layui.js?v=2.8.12"></script>
  60. <script src="/app/admin/component/pear/pear.js"></script>
  61. <script src="/app/admin/admin/js/permission.js"></script>
  62. <script src="/app/admin/admin/js/common.js"></script>
  63. <script>
  64. // 相关常量
  65. const PRIMARY_KEY = "id";
  66. const SELECT_API = "/app/admin/user/stream";
  67. // 字段 类型 1购买 2返利 3 佣金 4充值 5 提现 6 退单 type
  68. layui.use(["jquery", "xmSelect", "popup"], function() {
  69. layui.$.ajax({
  70. url: "/app/admin/stream/addselect",
  71. dataType: "json",
  72. success: function (res) {
  73. let value = layui.$("#type").attr("value");
  74. let initValue = value ? value.split(",") : [];
  75. layui.xmSelect.render({
  76. el: "#type",
  77. name: "type",
  78. initValue: initValue,
  79. filterable: true,
  80. data: res.data,
  81. model: {"icon":"hidden","label":{"type":"text"}},
  82. clickClose: true,
  83. radio: true,
  84. });
  85. if (res.code) {
  86. layui.popup.failure(res.msg);
  87. }
  88. }
  89. });
  90. });
  91. layui.use(["jquery", "xmSelect", "popup"], function() {
  92. layui.$.ajax({
  93. url: "/app/admin/stream/addmoldselect",
  94. dataType: "json",
  95. success: function (res) {
  96. let value = layui.$("#mold").attr("value");
  97. let initValue = value ? value.split(",") : [];
  98. layui.xmSelect.render({
  99. el: "#mold",
  100. name: "mold",
  101. initValue: initValue,
  102. filterable: true,
  103. data: res.data,
  104. model: {"icon":"hidden","label":{"type":"text"}},
  105. clickClose: true,
  106. radio: true,
  107. });
  108. if (res.code) {
  109. layui.popup.failure(res.msg);
  110. }
  111. }
  112. });
  113. });
  114. // 字段 创建时间 created_at
  115. layui.use(["laydate"], function() {
  116. layui.laydate.render({
  117. elem: "#created_at",
  118. range: ["#created_at-date-start", "#created_at-date-end"],
  119. type: "datetime",
  120. });
  121. })
  122. // 表格渲染
  123. layui.use(["table", "form", "common", "popup", "util"], function() {
  124. let table = layui.table;
  125. let form = layui.form;
  126. let $ = layui.$;
  127. let common = layui.common;
  128. let util = layui.util;
  129. // 表头参数
  130. let cols = [
  131. {
  132. title: "余额",align: "center",
  133. field: "money",
  134. sort: true,
  135. },{
  136. title: "调整后的余额",align: "center",
  137. field: "total_money",
  138. sort: true,
  139. },{
  140. title: "流水类型",align: "center",
  141. field: "type",
  142. },{
  143. title: "创建时间",align: "center",
  144. field: "created_at",
  145. sort: true,
  146. }
  147. ];
  148. // 渲染表格
  149. function render()
  150. {
  151. table.render({
  152. elem: "#data-table",
  153. url: SELECT_API,
  154. page: true,
  155. cols: [cols],
  156. where:{
  157. user_id:$('input[name=user_id]').val()
  158. },
  159. skin: "line",
  160. size: "lg",
  161. toolbar: "#table-toolbar",
  162. autoSort: false,
  163. defaultToolbar: [{
  164. title: "刷新",
  165. layEvent: "refresh",
  166. icon: "layui-icon-refresh",
  167. }, "filter", "print", "exports"],
  168. done: function () {
  169. layer.photos({photos: 'div[lay-id="data-table"]', anim: 5});
  170. }
  171. });
  172. }
  173. // 获取表格中下拉或树形组件数据
  174. let apis = [];
  175. apis.push(["type", "/app/admin/stream/addselect"]);
  176. let apiResults = {};
  177. apiResults["type"] = [];
  178. let count = apis.length;
  179. layui.each(apis, function (k, item) {
  180. let [field, url] = item;
  181. $.ajax({
  182. url: url,
  183. dateType: "json",
  184. success: function (res) {
  185. if (res.code) {
  186. return layui.popup.failure(res.msg);
  187. }
  188. function travel(items) {
  189. for (let k in items) {
  190. let item = items[k];
  191. apiResults[field][item.value] = item.name;
  192. if (item.children) {
  193. travel(item.children);
  194. }
  195. }
  196. }
  197. travel(res.data);
  198. },
  199. complete: function () {
  200. if (--count === 0) {
  201. render();
  202. }
  203. }
  204. });
  205. });
  206. if (!count) {
  207. render();
  208. }
  209. // 表格顶部工具栏事件
  210. table.on("toolbar(data-table)", function(obj) {
  211. if (obj.event === "add") {
  212. add();
  213. } else if (obj.event === "refresh") {
  214. refreshTable();
  215. } else if (obj.event === "batchRemove") {
  216. batchRemove(obj);
  217. }
  218. });
  219. // 表格顶部搜索事件
  220. form.on("submit(table-query)", function(data) {
  221. table.reload("data-table", {
  222. page: {
  223. curr: 1
  224. },
  225. where: data.field
  226. })
  227. return false;
  228. });
  229. // 表格顶部搜索重置事件
  230. form.on("submit(table-reset)", function(data) {
  231. table.reload("data-table", {
  232. where: {
  233. user_id:$('input[name=user_id]').val()
  234. }
  235. })
  236. });
  237. // 表格排序事件
  238. table.on("sort(data-table)", function(obj){
  239. table.reload("data-table", {
  240. initSort: obj,
  241. scrollPos: "fixed",
  242. where: {
  243. field: obj.field,
  244. order: obj.type,
  245. user_id:$('input[name=user_id]').val()
  246. }
  247. });
  248. });
  249. // 刷新表格数据
  250. window.refreshTable = function(param) {
  251. table.reloadData("data-table", {
  252. scrollPos: "fixed"
  253. });
  254. }
  255. })
  256. </script>
  257. </body>
  258. </html>