subordinate.html 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317
  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 class="layui-input-block">
  18. <input type="text" autocomplete="off" name="name" class="layui-input">
  19. </div>
  20. </div>
  21. </div>
  22. <div class="layui-form-item">
  23. <label class="layui-form-label">手机</label>
  24. <div class="layui-input-block">
  25. <div class="layui-input-block">
  26. <input type="number" autocomplete="off" name="mobile" class="layui-input">
  27. </div>
  28. </div>
  29. </div>
  30. <div class="layui-form-item">
  31. <label class="layui-form-label">实名</label>
  32. <div class="layui-input-block">
  33. <div name="is_autonym" id="is_autonym" value="" ></div>
  34. </div>
  35. </div>
  36. <div class="layui-form-item layui-inline">
  37. <label class="layui-form-label"></label>
  38. <button class="pear-btn pear-btn-md pear-btn-primary" lay-submit lay-filter="table-query">
  39. <i class="layui-icon layui-icon-search"></i>查询
  40. </button>
  41. <button type="reset" class="pear-btn pear-btn-md" lay-submit lay-filter="table-reset">
  42. <i class="layui-icon layui-icon-refresh"></i>重置
  43. </button>
  44. </div>
  45. <input type="hidden" name="pid" value="<?=$id?>">
  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/subordinate";
  67. const UPDATE_API = "/app/admin/user/update";
  68. // 字段 登录时间 last_time
  69. layui.use(["laydate"], function() {
  70. layui.laydate.render({
  71. elem: "#last_time",
  72. range: ["#last_time-date-start", "#last_time-date-end"],
  73. type: "datetime",
  74. });
  75. })
  76. // 字段 注册时间 join_time
  77. layui.use(["laydate"], function() {
  78. layui.laydate.render({
  79. elem: "#join_time",
  80. range: ["#join_time-date-start", "#join_time-date-end"],
  81. type: "datetime",
  82. });
  83. })
  84. // 字段 实名: 1未实名 2已实名 is_autonym
  85. layui.use(["jquery", "xmSelect"], function() {
  86. let value = layui.$("#is_autonym").attr("value");
  87. let initValue = value ? value.split(",") : [];
  88. layui.xmSelect.render({
  89. el: "#is_autonym",
  90. name: "is_autonym",
  91. filterable: true,
  92. initValue: initValue,
  93. model: {"icon":"hidden","label":{"type":"text"}},
  94. clickClose: true,
  95. radio: true,
  96. data:[{value:0,name:"未实名"},{value:1,name:"已实名"}]
  97. })
  98. });
  99. // 字段 创建时间 created_at
  100. layui.use(["laydate"], function() {
  101. layui.laydate.render({
  102. elem: "#created_at",
  103. range: ["#created_at-date-start", "#created_at-date-end"],
  104. type: "datetime",
  105. });
  106. })
  107. // 表格渲染
  108. layui.use(["table", "form", "common", "popup","drawer"], function() {
  109. let drawer = layui.drawer;
  110. let table = layui.table;
  111. let form = layui.form;
  112. let $ = layui.$;
  113. let common = layui.common;
  114. let util = layui.util;
  115. // 表头参数
  116. let cols = [
  117. {
  118. title: "邀请码",align: "center",
  119. field: "id",
  120. sort: true,
  121. width: 150
  122. },{
  123. title: "昵称",align: "center",
  124. field: "name",
  125. width: 150
  126. },{
  127. title: "手机",align: "center",
  128. field: "mobile",
  129. width: 150
  130. },{{
  131. title: "我的资产",align: "center",
  132. field: "money",
  133. sort: true,
  134. width: 150
  135. },{
  136. title: "推荐奖",align: "center",
  137. field: "money_one",
  138. sort: true,
  139. width: 150
  140. },{
  141. title: "持股数量",align: "center",
  142. field: "money_two",
  143. sort: true,
  144. width: 150
  145. },{
  146. title: "持股总价值",align: "center",
  147. field: "money_four",
  148. sort: true,
  149. width: 150
  150. },{
  151. title: "股权分红",align: "center",
  152. field: "money_five",
  153. sort: true,
  154. width: 150
  155. }
  156. ,{
  157. title: "状态",align: "center",
  158. field: "status",
  159. width: 150,
  160. templet: function (d) {
  161. let field = "status";
  162. form.on("switch("+field+")", function (data) {
  163. let load = layer.load();
  164. let postData = {};
  165. postData[field] = data.elem.checked ? 1 : 0;
  166. postData[PRIMARY_KEY] = this.value;
  167. $.post(UPDATE_API, postData, function (res) {
  168. layer.close(load);
  169. if (res.code) {
  170. return layui.popup.failure(res.msg, function () {
  171. data.elem.checked = !data.elem.checked;
  172. form.render();
  173. });
  174. }
  175. return layui.popup.success("操作成功");
  176. })
  177. });
  178. let checked = d[field] === 1 ? "checked" : "";
  179. return '<input type="checkbox" value="'+util.escape(d[PRIMARY_KEY])+'" lay-filter="'+util.escape(field)+'" lay-skin="switch" lay-text="'+util.escape('')+'" '+checked+'/>';
  180. }
  181. },{
  182. width: 100,
  183. title: "实名",align: "center",
  184. field: "is_autonym",
  185. templet: function (d) {
  186. let field = "is_autonym";
  187. if (typeof d[field] == "undefined") return "";
  188. let items = [];
  189. layui.each((d[field] + "").split(","), function (k , v) {
  190. items.push(apiResults[field][v] || v);
  191. });
  192. return util.escape(items.join(","));
  193. }
  194. }
  195. ];
  196. // 渲染表格
  197. table.render({
  198. elem: "#data-table",
  199. url: SELECT_API,
  200. page: true,
  201. cols: [cols],
  202. skin: "line",
  203. size: "lg",
  204. toolbar: "#table-toolbar",
  205. autoSort: false,
  206. where:{
  207. pid:$('input[name=pid]').val()
  208. },
  209. defaultToolbar: [{
  210. title: "刷新",
  211. layEvent: "refresh",
  212. icon: "layui-icon-refresh",
  213. }, "filter", "print", "exports"],
  214. done: function () {
  215. layer.photos({photos: 'div[lay-id="data-table"]', anim: 5});
  216. }
  217. });
  218. // 获取表格中下拉或树形组件数据
  219. let apiResults = {};
  220. apiResults["is_autonym"] = {0:'未实名',1:'已实名'};
  221. // 编辑或删除行事件
  222. table.on("tool(data-table)", function(obj) {
  223. if (obj.event === "remove") {
  224. remove(obj);
  225. } else if (obj.event === "edit") {
  226. edit(obj);
  227. }
  228. });
  229. // 表格顶部工具栏事件
  230. table.on("toolbar(data-table)", function(obj) {
  231. if (obj.event === "add") {
  232. add();
  233. } else if (obj.event === "refresh") {
  234. refreshTable();
  235. } else if (obj.event === "batchRemove") {
  236. batchRemove(obj);
  237. }
  238. });
  239. // 表格顶部搜索事件
  240. form.on("submit(table-query)", function(data) {
  241. table.reload("data-table", {
  242. page: {
  243. curr: 1
  244. },
  245. where: data.field
  246. })
  247. return false;
  248. });
  249. // 表格顶部搜索重置事件
  250. form.on("submit(table-reset)", function(data) {
  251. table.reload("data-table", {
  252. where: {
  253. pid:$('input[name=pid]').val()
  254. }
  255. })
  256. });
  257. // 表格排序事件
  258. table.on("sort(data-table)", function(obj){
  259. table.reload("data-table", {
  260. initSort: obj,
  261. scrollPos: "fixed",
  262. where: {
  263. field: obj.field,
  264. order: obj.type,
  265. pid:$('input[name=pid]').val()
  266. }
  267. });
  268. });
  269. // 执行删除
  270. // 刷新表格数据
  271. window.refreshTable = function(param) {
  272. table.reloadData("data-table", {
  273. scrollPos: "fixed"
  274. });
  275. }
  276. })
  277. </script>
  278. </body>
  279. </html>