subordinate.html 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307
  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. ,{
  147. title: "状态",align: "center",
  148. field: "status",
  149. width: 150,
  150. templet: function (d) {
  151. let field = "status";
  152. form.on("switch("+field+")", function (data) {
  153. let load = layer.load();
  154. let postData = {};
  155. postData[field] = data.elem.checked ? 1 : 0;
  156. postData[PRIMARY_KEY] = this.value;
  157. $.post(UPDATE_API, postData, function (res) {
  158. layer.close(load);
  159. if (res.code) {
  160. return layui.popup.failure(res.msg, function () {
  161. data.elem.checked = !data.elem.checked;
  162. form.render();
  163. });
  164. }
  165. return layui.popup.success("操作成功");
  166. })
  167. });
  168. let checked = d[field] === 1 ? "checked" : "";
  169. return '<input type="checkbox" value="'+util.escape(d[PRIMARY_KEY])+'" lay-filter="'+util.escape(field)+'" lay-skin="switch" lay-text="'+util.escape('')+'" '+checked+'/>';
  170. }
  171. },{
  172. width: 100,
  173. title: "实名",align: "center",
  174. field: "is_autonym",
  175. templet: function (d) {
  176. let field = "is_autonym";
  177. if (typeof d[field] == "undefined") return "";
  178. let items = [];
  179. layui.each((d[field] + "").split(","), function (k , v) {
  180. items.push(apiResults[field][v] || v);
  181. });
  182. return util.escape(items.join(","));
  183. }
  184. }
  185. ];
  186. // 渲染表格
  187. table.render({
  188. elem: "#data-table",
  189. url: SELECT_API,
  190. page: true,
  191. cols: [cols],
  192. skin: "line",
  193. size: "lg",
  194. toolbar: "#table-toolbar",
  195. autoSort: false,
  196. where:{
  197. pid:$('input[name=pid]').val()
  198. },
  199. defaultToolbar: [{
  200. title: "刷新",
  201. layEvent: "refresh",
  202. icon: "layui-icon-refresh",
  203. }, "filter", "print", "exports"],
  204. done: function () {
  205. layer.photos({photos: 'div[lay-id="data-table"]', anim: 5});
  206. }
  207. });
  208. // 获取表格中下拉或树形组件数据
  209. let apiResults = {};
  210. apiResults["is_autonym"] = {0:'未实名',1:'已实名'};
  211. // 编辑或删除行事件
  212. table.on("tool(data-table)", function(obj) {
  213. if (obj.event === "remove") {
  214. remove(obj);
  215. } else if (obj.event === "edit") {
  216. edit(obj);
  217. }
  218. });
  219. // 表格顶部工具栏事件
  220. table.on("toolbar(data-table)", function(obj) {
  221. if (obj.event === "add") {
  222. add();
  223. } else if (obj.event === "refresh") {
  224. refreshTable();
  225. } else if (obj.event === "batchRemove") {
  226. batchRemove(obj);
  227. }
  228. });
  229. // 表格顶部搜索事件
  230. form.on("submit(table-query)", function(data) {
  231. table.reload("data-table", {
  232. page: {
  233. curr: 1
  234. },
  235. where: data.field
  236. })
  237. return false;
  238. });
  239. // 表格顶部搜索重置事件
  240. form.on("submit(table-reset)", function(data) {
  241. table.reload("data-table", {
  242. where: {
  243. pid:$('input[name=pid]').val()
  244. }
  245. })
  246. });
  247. // 表格排序事件
  248. table.on("sort(data-table)", function(obj){
  249. table.reload("data-table", {
  250. initSort: obj,
  251. scrollPos: "fixed",
  252. where: {
  253. field: obj.field,
  254. order: obj.type,
  255. pid:$('input[name=pid]').val()
  256. }
  257. });
  258. });
  259. // 执行删除
  260. // 刷新表格数据
  261. window.refreshTable = function(param) {
  262. table.reloadData("data-table", {
  263. scrollPos: "fixed"
  264. });
  265. }
  266. })
  267. </script>
  268. </body>
  269. </html>