history-uid-list.html 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>欢迎页面</title>
  6. <meta name="renderer" content="webkit">
  7. <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
  8. <meta name="viewport"
  9. content="width=device-width,user-scalable=yes, minimum-scale=0.4, initial-scale=0.8,target-densitydpi=low-dpi"/>
  10. <link rel="shortcut icon" href="/favicon.ico" type="image/x-icon"/>
  11. <link rel="stylesheet" href="./css/font.css">
  12. <link rel="stylesheet" href="./css/xadmin.css">
  13. <script type="text/javascript" src="./js/jquery-3.3.1.min.js"></script>
  14. <script type="text/javascript" src="./lib/layui/layui.js" charset="utf-8"></script>
  15. <script type="text/javascript" src="js/admin.js"></script>
  16. <script type="text/javascript" src="./js/jquery_cookie_min.js"></script>
  17. <script type="text/javascript" src="./js/jqhttpsdk.js"></script>
  18. <!-- 让IE8/9支持媒体查询,从而兼容栅格 -->
  19. <!--[if lt IE 9]>
  20. <script src="https://cdn.staticfile.org/html5shiv/r29/html5.min.js"></script>
  21. <script src="https://cdn.staticfile.org/respond.js/1.4.2/respond.min.js"></script>
  22. <![endif]-->
  23. </head>
  24. <body>
  25. <div class="x-nav">
  26. <span class="layui-breadcrumb">
  27. <a href="">首页</a>
  28. <a href="">历史UID管理</a>
  29. <a>
  30. <cite>管理</cite></a>
  31. </span>
  32. <a class="layui-btn layui-btn-small" style="line-height:1.6em;margin-top:3px;float:right"
  33. href="javascript:location.replace(location.href);" title="刷新">
  34. <i class="layui-icon" style="line-height:30px">ဂ</i></a>
  35. </div>
  36. <div class="x-body">
  37. <div class="layui-row">
  38. <form class="layui-form layui-col-md12 x-so">
  39. <input class="layui-input" placeholder="开始日" name="start" id="start">
  40. <input class="layui-input" placeholder="截止日" name="end" id="end">
  41. <div class="layui-input-inline" style="display: none;">
  42. <label class="layui-inline">
  43. <select lay-filter="is_use_select" id="status_use_id">
  44. <option value="">状态</option>
  45. <option value="0">未占用</option>
  46. <option value="1">待占用</option>
  47. <option value="2">已占用</option>
  48. </select>
  49. </label>
  50. </div>
  51. <div class="layui-input-inline">
  52. <label class="layui-inline">
  53. <select lay-filter="is_area_select" id="status_area_id">
  54. <option value="">地区</option>
  55. <option value="0">国内</option>
  56. <option value="1">国外</option>
  57. </select>
  58. </label>
  59. </div>
  60. <div class="layui-inline x-right">
  61. <div class="layui-input-inline">
  62. <input type="text" class="layui-input searchVal" placeholder="请输入搜索的uid"/>
  63. </div>
  64. <a class="layui-btn search_btn" data-type="reload">搜索</a>
  65. </div>
  66. </form>
  67. </div>
  68. <xblock>
  69. <button class="layui-btn layui-btn-danger delAll_btn"><i class="layui-icon"></i>批量删除</button>
  70. <button class="layui-btn" onclick="x_admin_show('添加用户','./order-add.html')" style="display: none;"><i class="layui-icon"></i>添加
  71. </button>
  72. <a class="layui-btn layui-btn-normal distribute_btn" style="display: none;">开启分发</a>
  73. <button type="button" class="layui-btn" id="imuidlist" style="display: none;">
  74. <i class="layui-icon">&#xe67c;</i>导入
  75. </button>
  76. </xblock>
  77. <table id="uidlisttab" lay-filter="uidlisttab"></table>
  78. </div>
  79. <script>
  80. function print(data) {
  81. console.log(data)
  82. }
  83. layui.use(['table', 'upload', 'layer', 'form', 'laydate'], function () {
  84. var table = layui.table;
  85. var $ = jQuery = layui.$;
  86. var form = layui.form;
  87. var upload = layui.upload;
  88. var laydate = layui.laydate;
  89. //执行一个laydate实例
  90. laydate.render({
  91. elem: '#start' //指定元素
  92. , done: function (value, date, endDate) {
  93. // console.log(Date.parse(value))
  94. // print(Date.parse($('#start').val())/1000)
  95. var starttime = $('#start').val()
  96. var endtime = $('#end').val()
  97. if (starttime) {
  98. starttime = Date.parse(starttime) / 1000
  99. } else {
  100. starttime = ''
  101. }
  102. if (endtime) {
  103. endtime = Date.parse(endtime) / 1000
  104. } else {
  105. endtime = ''
  106. }
  107. searchTable({
  108. // is_use: $('#status_use_id').val(),
  109. // uid: $(".searchVal").val(),
  110. starttime: starttime,
  111. endtime: endtime
  112. })
  113. }
  114. });
  115. //执行一个laydate实例
  116. laydate.render({
  117. elem: '#end' //指定元素
  118. , done: function (value, date, endDate) {
  119. var starttime = $('#start').val()
  120. var endtime = $('#end').val()
  121. if (starttime) {
  122. starttime = Date.parse(starttime) / 1000
  123. } else {
  124. starttime = ''
  125. }
  126. if (endtime) {
  127. endtime = Date.parse(endtime) / 1000
  128. } else {
  129. endtime = ''
  130. }
  131. searchTable({
  132. // is_use: $('#status_use_id').val(),
  133. // uid: $(".searchVal").val(),
  134. starttime: starttime,
  135. endtime: endtime
  136. })
  137. }
  138. });
  139. //第一个实例
  140. var tableIns = table.render({
  141. elem: '#uidlisttab',
  142. //height: 600,
  143. height: 'full',
  144. url: http_ip_port + '/history/list', //数据接口
  145. page: true, //开启分页
  146. limit: 10,
  147. cols: [[ //表头
  148. {type: "checkbox", fixed: "left", width: 50},
  149. {field: 'uid', title: 'UID', width: 250, sort: true,},
  150. {field: 'mac', title: 'mac地址', width: 250},
  151. {field: 'area', title: '地区', width: 80, templet: '#area'},
  152. {field: 'status', title: '使用状态', width: 100, templet: '#isUse'},
  153. {field: 'add_time', title: '添加时间', width: 250, sort: true, templet: '#add_time'},
  154. {field: 'update_time', title: '修改时间', width: 250, templet:'#update_time'},
  155. {title: '操作', templet: '#ListBar', fixed: "right", align: "center"}
  156. ]],
  157. where: {token: $.cookie('access_token')},
  158. parseData: function (res) {
  159. console.log(res)
  160. return {
  161. "code": res['code'],
  162. "msg": res['msg'],
  163. "count": res['res']['count'],
  164. "data": res['res']['data'],
  165. }
  166. }
  167. });
  168. //列表操作
  169. table.on('tool(uidlisttab)', function (obj) {
  170. var layEvent = obj.event,
  171. data = obj.data;
  172. if (layEvent === 'edit') { //编辑
  173. /*var url = './uid-edit.html?uid=' + data.uid + '&mac=' + data.mac + '&status=' + data.status
  174. + '&add_time=' + data.add_time + '&update_time=' + data.update_time;
  175. x_admin_show('编辑', url);*/
  176. } else if (layEvent === 'del') { //删除
  177. layer.confirm('确定删除\r\n' + data.uid + '?', {icon: 3, title: '提示信息'}, function (index) {
  178. console.log(data);
  179. $.post(http_ip_port + "/history/delete", {
  180. uid: data.uid, //将需要删除的newsId作为参数传入
  181. token: $.cookie('access_token')
  182. }, function (data) {
  183. console.log(data);
  184. tableIns.reload();
  185. layer.close(index);
  186. })
  187. });
  188. } else if (layEvent === 'look') { //预览
  189. layer.alert("此功能需要前台展示,实际开发中传入对应的必要参数进行文章内容页面访问")
  190. }
  191. });
  192. //执行实例
  193. upload.render({
  194. elem: '#imuidlist', //绑定元素
  195. url: http_ip_port + '/uid/register/', //上传接口
  196. accept: 'file',
  197. data: {
  198. token: function () {
  199. return $.cookie('access_token')
  200. }
  201. },
  202. done: function (res) {
  203. console.log(res);
  204. layer.msg(res['msg']);
  205. //上传完毕回调
  206. if (res['code'] == 0) {
  207. tableIns.reload();
  208. }
  209. }
  210. , error: function () {
  211. //请求异常回调
  212. }
  213. });
  214. //批量删除
  215. $(".delAll_btn").click(function () {
  216. var checkStatus = table.checkStatus('uidlisttab'),
  217. data = checkStatus.data,
  218. uidlist = [];
  219. if (data.length > 0) {
  220. for (var i in data) {
  221. uidlist.push(data[i].uid);
  222. }
  223. console.log(JSON.stringify(uidlist))
  224. layer.confirm('确定删除选中的数据?', {icon: 3, title: '提示信息'}, function (index) {
  225. console.log(uidlist)
  226. $.post(
  227. http_ip_port + '/history/batchDelete',
  228. {
  229. "uidlist": JSON.stringify(uidlist),
  230. 'token': $.cookie('access_token')
  231. },
  232. function (data) {
  233. console.log(data);
  234. tableIns.reload();
  235. layer.close(index);
  236. }
  237. );
  238. })
  239. } else {
  240. layer.msg("请选择需要删除的数据");
  241. }
  242. })
  243. function searchTable(where) {
  244. // where['token'] = $.cookie('access_token')
  245. print(where);
  246. table.reload("uidlisttab", {
  247. page: {
  248. curr: 1 //重新从第 1 页开始
  249. },
  250. where: where
  251. // {
  252. // uid: $(".searchVal").val(), //搜索的关键字
  253. // mac: $(".searchVal").val()
  254. // }
  255. , parseData: function (res) { //res 即为原始返回的数据
  256. print(res);
  257. console.log(res);
  258. return {
  259. "code": res['code'],
  260. "msg": res['msg'],
  261. "count": res['res']['count'],
  262. "data": res['res']['data'],
  263. };
  264. }
  265. });
  266. }
  267. //搜索【此功能需要后台配合,所以暂时没有动态效果演示】
  268. $(".search_btn").on("click", function () {
  269. if ($(".searchVal").val() != '') {
  270. searchTable({uid: $(".searchVal").val()});
  271. } else {
  272. tableIns.reload();
  273. layer.msg("请输入搜索的内容");
  274. }
  275. });
  276. // select框bind事件
  277. form.on('select(is_use_select)', function (data) {
  278. console.log(data['value']);
  279. var is_use = data['value'];
  280. // tableIns.reload()
  281. searchTable({
  282. status: is_use,
  283. uid: $(".searchVal").val(),
  284. })
  285. });
  286. form.on('select(is_area_select)', function (data) {
  287. console.log(data['value']);
  288. var area = data['value'];
  289. // tableIns.reload()
  290. searchTable({
  291. area: area,
  292. uid: $(".searchVal").val(),
  293. })
  294. });
  295. //开启关闭分发
  296. $(".distribute_btn").on("click", function () {
  297. var distribute;
  298. var thisBtn = $(this);
  299. if ($(".distribute_btn").hasClass('layui-btn-normal')) {
  300. distribute = false;
  301. } else if ($(".distribute_btn").hasClass('layui-btn-danger')) {
  302. distribute = true;
  303. }
  304. $.ajax({
  305. method: "post",
  306. url: http_ip_port + '/sys/change/',
  307. contentType: 'application/json',
  308. data: JSON.stringify({
  309. "distribute": distribute,
  310. "token": $.cookie('access_token')
  311. }),
  312. success: function (data) {
  313. console.log(data)
  314. data = JSON.parse(data)
  315. if (data['code'] == 0) {
  316. tableIns.reload();
  317. if (data['res']['distribute']) {
  318. thisBtn.removeClass('layui-btn-danger')
  319. thisBtn.addClass('layui-btn-normal')
  320. thisBtn.html('开启分发')
  321. layer.msg('开启分发成功');
  322. } else {
  323. thisBtn.removeClass('layui-btn-normal')
  324. thisBtn.addClass('layui-btn-danger')
  325. thisBtn.html('关闭分发')
  326. layer.msg('关闭分发成功');
  327. }
  328. } else {
  329. layer.msg(data['msg']);
  330. }
  331. },
  332. error: function (data) {
  333. layer.msg(data['msg']);
  334. }
  335. });
  336. });
  337. // 初始化分发状态按钮
  338. function IndexSys() {
  339. /*$.ajax({
  340. method: "get",
  341. url: http_ip_port + '/sys/'+'?token='+$.cookie('access_token'),
  342. dataType: 'json',
  343. success: function (data) {
  344. if (data['code'] == 0) {
  345. tableIns.reload();
  346. console.log(data)
  347. if (data['res']['distribute']) {
  348. $(".distribute_btn").removeClass('layui-btn-danger')
  349. $(".distribute_btn").addClass('layui-btn-normal')
  350. $(".distribute_btn").html('开启分发')
  351. } else {
  352. $(".distribute_btn").removeClass('layui-btn-normal')
  353. $(".distribute_btn").addClass('layui-btn-danger')
  354. $(".distribute_btn").html('关闭分发')
  355. }
  356. } else {
  357. layer.msg('失败');
  358. }
  359. }
  360. });*/
  361. //tableIns.reload();
  362. }
  363. IndexSys();
  364. });
  365. </script>
  366. <script type="text/html" id="ListBar">
  367. <a class="layui-btn layui-btn-xs" lay-event="edit">编辑</a>
  368. <a class="layui-btn layui-btn-xs layui-btn-danger" lay-event="del">删除</a>
  369. <!--<a class="layui-btn layui-btn-xs layui-btn-primary" lay-event="look">预览</a>-->
  370. </script>
  371. <script type="text/html" id="isUse">
  372. {{# if(d.status == 2){ }}
  373. <span class="layui-red x-red">已占用</span>
  374. {{# } else if(d.status == 1){ }}
  375. <span class="layui-blue">待占用</span>
  376. {{# } else if(d.status == 0) {}}
  377. <span class="layui-green">未占用</span>
  378. {{# }}}
  379. </script>
  380. <script type="text/html" id="area">
  381. {{# if(d.area == 0){ }}
  382. <span class="layui-red ">国内</span>
  383. {{# } else if(d.area == 1){ }}
  384. <span class="layui-blue">国外</span>
  385. {{# }}}
  386. </script>
  387. <script type="text/html" id="add_time">
  388. {{#
  389. var fun = function formatDate(date) {
  390. var date = new Date(date);
  391. var YY = date.getFullYear() + '-';
  392. var MM = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1) + '-';
  393. var DD = (date.getDate() < 10 ? '0' + (date.getDate()) : date.getDate());
  394. var hh = (date.getHours() < 10 ? '0' + date.getHours() : date.getHours()) + ':';
  395. var mm = (date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes()) + ':';
  396. var ss = (date.getSeconds() < 10 ? '0' + date.getSeconds() : date.getSeconds());
  397. return YY + MM + DD +" "+hh + mm + ss;
  398. };
  399. }}
  400. <span class="layui-green">{{ fun(d.add_time * 1000) }}</span>
  401. </script>
  402. <script type="text/html" id="update_time">
  403. {{#
  404. var fun = function formatDate(date) {
  405. var date = new Date(date);
  406. var YY = date.getFullYear() + '-';
  407. var MM = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1) + '-';
  408. var DD = (date.getDate() < 10 ? '0' + (date.getDate()) : date.getDate());
  409. var hh = (date.getHours() < 10 ? '0' + date.getHours() : date.getHours()) + ':';
  410. var mm = (date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes()) + ':';
  411. var ss = (date.getSeconds() < 10 ? '0' + date.getSeconds() : date.getSeconds());
  412. return YY + MM + DD +" "+hh + mm + ss;
  413. };
  414. }}
  415. <span class="layui-green">{{ fun(d.update_time * 1000) }}</span>
  416. </script>
  417. </body>
  418. </html>