subordinate.html 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362
  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: "USD",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: "wroldcion币",align: "center",
  152. field: "money_five",
  153. sort: true,
  154. width: 150
  155. },{
  156. title: "矿机分红钱包哥",align: "center",
  157. field: "money_six",
  158. sort: true,
  159. width: 150
  160. },{
  161. title: "理财每日利息",align: "center",
  162. field: "money_seven",
  163. sort: true,
  164. width: 150
  165. },{
  166. title: "团队佣金",align: "center",
  167. field: "money_eight",
  168. sort: true,
  169. width: 150
  170. },{
  171. title: "团队补贴",align: "center",
  172. field: "money_nine",
  173. sort: true,
  174. width: 150
  175. },{
  176. title: "已解冻余额",align: "center",
  177. field: "money_ten",
  178. sort: true,
  179. width: 150
  180. },{
  181. title: "大使收益钱包",align: "center",
  182. field: "money_eleven",
  183. sort: true,
  184. width: 150
  185. }
  186. ,{
  187. title: "状态",align: "center",
  188. field: "status",
  189. width: 150,
  190. templet: function (d) {
  191. let field = "status";
  192. form.on("switch("+field+")", function (data) {
  193. let load = layer.load();
  194. let postData = {};
  195. postData[field] = data.elem.checked ? 1 : 0;
  196. postData[PRIMARY_KEY] = this.value;
  197. $.post(UPDATE_API, postData, function (res) {
  198. layer.close(load);
  199. if (res.code) {
  200. return layui.popup.failure(res.msg, function () {
  201. data.elem.checked = !data.elem.checked;
  202. form.render();
  203. });
  204. }
  205. return layui.popup.success("操作成功");
  206. })
  207. });
  208. let checked = d[field] === 1 ? "checked" : "";
  209. return '<input type="checkbox" value="'+util.escape(d[PRIMARY_KEY])+'" lay-filter="'+util.escape(field)+'" lay-skin="switch" lay-text="'+util.escape('')+'" '+checked+'/>';
  210. }
  211. },{
  212. width: 100,
  213. title: "实名",align: "center",
  214. field: "is_autonym",
  215. templet: function (d) {
  216. let field = "is_autonym";
  217. if (typeof d[field] == "undefined") return "";
  218. let items = [];
  219. layui.each((d[field] + "").split(","), function (k , v) {
  220. items.push(apiResults[field][v] || v);
  221. });
  222. return util.escape(items.join(","));
  223. }
  224. },{
  225. title: "登录时间",align: "center",
  226. field: "last_time",
  227. sort: true,
  228. width: 200,
  229. },{
  230. title: "注册ip",align: "center",
  231. field: "join_ip",
  232. sort: true,
  233. width: 200,
  234. },{
  235. title: "注册时间",align: "center",
  236. field: "join_time",
  237. sort: true,
  238. width: 200,
  239. }
  240. ];
  241. // 渲染表格
  242. table.render({
  243. elem: "#data-table",
  244. url: SELECT_API,
  245. page: true,
  246. cols: [cols],
  247. skin: "line",
  248. size: "lg",
  249. toolbar: "#table-toolbar",
  250. autoSort: false,
  251. where:{
  252. pid:$('input[name=pid]').val()
  253. },
  254. defaultToolbar: [{
  255. title: "刷新",
  256. layEvent: "refresh",
  257. icon: "layui-icon-refresh",
  258. }, "filter", "print", "exports"],
  259. done: function () {
  260. layer.photos({photos: 'div[lay-id="data-table"]', anim: 5});
  261. }
  262. });
  263. // 获取表格中下拉或树形组件数据
  264. let apiResults = {};
  265. apiResults["is_autonym"] = {0:'未实名',1:'已实名'};
  266. // 编辑或删除行事件
  267. table.on("tool(data-table)", function(obj) {
  268. if (obj.event === "remove") {
  269. remove(obj);
  270. } else if (obj.event === "edit") {
  271. edit(obj);
  272. }
  273. });
  274. // 表格顶部工具栏事件
  275. table.on("toolbar(data-table)", function(obj) {
  276. if (obj.event === "add") {
  277. add();
  278. } else if (obj.event === "refresh") {
  279. refreshTable();
  280. } else if (obj.event === "batchRemove") {
  281. batchRemove(obj);
  282. }
  283. });
  284. // 表格顶部搜索事件
  285. form.on("submit(table-query)", function(data) {
  286. table.reload("data-table", {
  287. page: {
  288. curr: 1
  289. },
  290. where: data.field
  291. })
  292. return false;
  293. });
  294. // 表格顶部搜索重置事件
  295. form.on("submit(table-reset)", function(data) {
  296. table.reload("data-table", {
  297. where: {
  298. pid:$('input[name=pid]').val()
  299. }
  300. })
  301. });
  302. // 表格排序事件
  303. table.on("sort(data-table)", function(obj){
  304. table.reload("data-table", {
  305. initSort: obj,
  306. scrollPos: "fixed",
  307. where: {
  308. field: obj.field,
  309. order: obj.type,
  310. pid:$('input[name=pid]').val()
  311. }
  312. });
  313. });
  314. // 执行删除
  315. // 刷新表格数据
  316. window.refreshTable = function(param) {
  317. table.reloadData("data-table", {
  318. scrollPos: "fixed"
  319. });
  320. }
  321. })
  322. </script>
  323. </body>
  324. </html>