umlist.html 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464
  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">
  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 layui-btn-normal history_btn">转为历史</button>
  71. <button class="layui-btn" onclick="x_admin_show('添加用户','./order-add.html')" style="display: none;"><i class="layui-icon"></i>添加
  72. </button>
  73. <a class="layui-btn layui-btn-normal distribute_btn" style="display: none;">开启分发</a>
  74. <button type="button" class="layui-btn" id="imuidlist" style="display: none;">
  75. <i class="layui-icon">&#xe67c;</i>导入
  76. </button>
  77. </xblock>
  78. <table id="uidlisttab" lay-filter="uidlisttab"></table>
  79. </div>
  80. <script>
  81. function print(data) {
  82. console.log(data)
  83. }
  84. layui.use(['table', 'upload', 'layer', 'form', 'laydate'], function () {
  85. var table = layui.table;
  86. var $ = jQuery = layui.$;
  87. var form = layui.form;
  88. var upload = layui.upload;
  89. var laydate = layui.laydate;
  90. //执行一个laydate实例
  91. laydate.render({
  92. elem: '#start' //指定元素
  93. , done: function (value, date, endDate) {
  94. // console.log(Date.parse(value))
  95. // print(Date.parse($('#start').val())/1000)
  96. var starttime = $('#start').val()
  97. var endtime = $('#end').val()
  98. if (starttime) {
  99. starttime = Date.parse(starttime) / 1000
  100. } else {
  101. starttime = ''
  102. }
  103. if (endtime) {
  104. endtime = Date.parse(endtime) / 1000
  105. } else {
  106. endtime = ''
  107. }
  108. searchTable({
  109. // is_use: $('#status_use_id').val(),
  110. // uid: $(".searchVal").val(),
  111. starttime: starttime,
  112. endtime: endtime
  113. })
  114. }
  115. });
  116. //执行一个laydate实例
  117. laydate.render({
  118. elem: '#end' //指定元素
  119. , done: function (value, date, endDate) {
  120. var starttime = $('#start').val()
  121. var endtime = $('#end').val()
  122. if (starttime) {
  123. starttime = Date.parse(starttime) / 1000
  124. } else {
  125. starttime = ''
  126. }
  127. if (endtime) {
  128. endtime = Date.parse(endtime) / 1000
  129. } else {
  130. endtime = ''
  131. }
  132. searchTable({
  133. // is_use: $('#status_use_id').val(),
  134. // uid: $(".searchVal").val(),
  135. starttime: starttime,
  136. endtime: endtime
  137. })
  138. }
  139. });
  140. //第一个实例
  141. var tableIns = table.render({
  142. elem: '#uidlisttab',
  143. //height: 600,
  144. height: 'full',
  145. url: http_ip_port + '/uid/list', //数据接口
  146. page: true, //开启分页
  147. limit: 10,
  148. cols: [[ //表头
  149. {type: "checkbox", fixed: "left", width: 50},
  150. {field: 'uid', title: 'UID', width: 250, sort: true,},
  151. {field: 'mac', title: 'mac地址', width: 250},
  152. {field: 'area', title: '地区', width: 80, templet: '#area'},
  153. {field: 'status', title: '使用状态', width: 100, templet: '#isUse'},
  154. {field: 'add_time', title: '添加时间', width: 250, sort: true, templet: '#add_time'},
  155. {field: 'update_time', title: '修改时间', width: 250, templet:'#update_time'},
  156. {title: '操作', templet: '#ListBar', fixed: "right", align: "center"}
  157. ]],
  158. where: {token: $.cookie('access_token')},
  159. parseData: function (res) {
  160. console.log(res)
  161. return {
  162. "code": res['code'],
  163. "msg": res['msg'],
  164. "count": res['res']['count'],
  165. "data": res['res']['data'],
  166. }
  167. }
  168. });
  169. //列表操作
  170. table.on('tool(uidlisttab)', function (obj) {
  171. var layEvent = obj.event,
  172. data = obj.data;
  173. if (layEvent === 'edit') { //编辑
  174. var url = './uid-edit.html?uid=' + data.uid + '&mac=' + data.mac + '&status=' + data.status
  175. + '&add_time=' + data.add_time + '&update_time=' + data.update_time + '&area=' + data.area;
  176. x_admin_show('编辑', url);
  177. } else if (layEvent === 'del') { //删除
  178. layer.confirm('确定删除\r\n' + data.uid + '?', {icon: 3, title: '提示信息'}, function (index) {
  179. console.log(data)
  180. $.post(http_ip_port + "/uid/delete", {
  181. uid: data.uid, //将需要删除的newsId作为参数传入
  182. token: $.cookie('access_token')
  183. }, function (data) {
  184. console.log(data)
  185. tableIns.reload();
  186. layer.close(index);
  187. })
  188. });
  189. } else if (layEvent === 'look') { //预览
  190. layer.alert("此功能需要前台展示,实际开发中传入对应的必要参数进行文章内容页面访问")
  191. }
  192. });
  193. //执行实例
  194. upload.render({
  195. elem: '#imuidlist', //绑定元素
  196. url: http_ip_port + '/uid/register/', //上传接口
  197. accept: 'file',
  198. data: {
  199. token: function () {
  200. return $.cookie('access_token')
  201. }
  202. },
  203. done: function (res) {
  204. console.log(res)
  205. layer.msg(res['msg'])
  206. //上传完毕回调
  207. if (res['code'] == 0) {
  208. tableIns.reload();
  209. }
  210. }
  211. , error: function () {
  212. //请求异常回调
  213. }
  214. });
  215. //批量删除
  216. $(".delAll_btn").click(function () {
  217. var checkStatus = table.checkStatus('uidlisttab'),
  218. data = checkStatus.data,
  219. uidlist = [];
  220. if (data.length > 0) {
  221. for (var i in data) {
  222. uidlist.push(data[i].uid);
  223. }
  224. console.log(JSON.stringify(uidlist))
  225. layer.confirm('确定删除选中的数据?', {icon: 3, title: '提示信息'}, function (index) {
  226. console.log(uidlist)
  227. $.post(
  228. http_ip_port + '/uid/batchDelete',
  229. {
  230. "uidlist": JSON.stringify(uidlist),
  231. 'token': $.cookie('access_token')
  232. },
  233. function (data) {
  234. console.log(data);
  235. tableIns.reload();
  236. layer.close(index);
  237. }
  238. );
  239. })
  240. } else {
  241. layer.msg("请选择需要删除的数据");
  242. }
  243. });
  244. //批量删除
  245. $(".history_btn").click(function () {
  246. layer.confirm('确定把已占用的UID转为“历史UID”?', {icon: 3, title: '提示信息'}, function (index) {
  247. $.post(
  248. http_ip_port + '/uid/history',
  249. {
  250. 'token': $.cookie('access_token')
  251. },
  252. function (data) {
  253. console.log(data);
  254. tableIns.reload();
  255. layer.close(index);
  256. }
  257. );
  258. });
  259. });
  260. function searchTable(where) {
  261. // where['token'] = $.cookie('access_token')
  262. print(where);
  263. table.reload("uidlisttab", {
  264. page: {
  265. curr: 1 //重新从第 1 页开始
  266. },
  267. where: where
  268. // {
  269. // uid: $(".searchVal").val(), //搜索的关键字
  270. // mac: $(".searchVal").val()
  271. // }
  272. , parseData: function (res) { //res 即为原始返回的数据
  273. print(res);
  274. console.log(res);
  275. return {
  276. "code": res['code'],
  277. "msg": res['msg'],
  278. "count": res['res']['count'],
  279. "data": res['res']['data'],
  280. };
  281. }
  282. });
  283. }
  284. //搜索【此功能需要后台配合,所以暂时没有动态效果演示】
  285. $(".search_btn").on("click", function () {
  286. if ($(".searchVal").val() != '') {
  287. searchTable({uid: $(".searchVal").val()});
  288. } else {
  289. tableIns.reload();
  290. layer.msg("请输入搜索的内容");
  291. }
  292. });
  293. // select框bind事件
  294. form.on('select(is_use_select)', function (data) {
  295. console.log(data['value']);
  296. var is_use = data['value'];
  297. // tableIns.reload()
  298. searchTable({
  299. status: is_use,
  300. uid: $(".searchVal").val(),
  301. })
  302. });
  303. form.on('select(is_area_select)', function (data) {
  304. console.log(data['value']);
  305. var area = data['value'];
  306. // tableIns.reload()
  307. searchTable({
  308. area: area,
  309. uid: $(".searchVal").val(),
  310. })
  311. });
  312. //开启关闭分发
  313. $(".distribute_btn").on("click", function () {
  314. var distribute;
  315. var thisBtn = $(this);
  316. if ($(".distribute_btn").hasClass('layui-btn-normal')) {
  317. distribute = false;
  318. } else if ($(".distribute_btn").hasClass('layui-btn-danger')) {
  319. distribute = true;
  320. }
  321. $.ajax({
  322. method: "post",
  323. url: http_ip_port + '/sys/change/',
  324. contentType: 'application/json',
  325. data: JSON.stringify({
  326. "distribute": distribute,
  327. "token": $.cookie('access_token')
  328. }),
  329. success: function (data) {
  330. console.log(data)
  331. data = JSON.parse(data)
  332. if (data['code'] == 0) {
  333. tableIns.reload();
  334. if (data['res']['distribute']) {
  335. thisBtn.removeClass('layui-btn-danger')
  336. thisBtn.addClass('layui-btn-normal')
  337. thisBtn.html('开启分发')
  338. layer.msg('开启分发成功');
  339. } else {
  340. thisBtn.removeClass('layui-btn-normal')
  341. thisBtn.addClass('layui-btn-danger')
  342. thisBtn.html('关闭分发')
  343. layer.msg('关闭分发成功');
  344. }
  345. } else {
  346. layer.msg(data['msg']);
  347. }
  348. },
  349. error: function (data) {
  350. layer.msg(data['msg']);
  351. }
  352. });
  353. });
  354. // 初始化分发状态按钮
  355. function IndexSys() {
  356. /*$.ajax({
  357. method: "get",
  358. url: http_ip_port + '/sys/'+'?token='+$.cookie('access_token'),
  359. dataType: 'json',
  360. success: function (data) {
  361. if (data['code'] == 0) {
  362. tableIns.reload();
  363. console.log(data)
  364. if (data['res']['distribute']) {
  365. $(".distribute_btn").removeClass('layui-btn-danger')
  366. $(".distribute_btn").addClass('layui-btn-normal')
  367. $(".distribute_btn").html('开启分发')
  368. } else {
  369. $(".distribute_btn").removeClass('layui-btn-normal')
  370. $(".distribute_btn").addClass('layui-btn-danger')
  371. $(".distribute_btn").html('关闭分发')
  372. }
  373. } else {
  374. layer.msg('失败');
  375. }
  376. }
  377. });*/
  378. //tableIns.reload();
  379. }
  380. IndexSys();
  381. });
  382. </script>
  383. <script type="text/html" id="ListBar">
  384. <a class="layui-btn layui-btn-xs" lay-event="edit">编辑</a>
  385. <a class="layui-btn layui-btn-xs layui-btn-danger" lay-event="del">删除</a>
  386. <!--<a class="layui-btn layui-btn-xs layui-btn-primary" lay-event="look">预览</a>-->
  387. </script>
  388. <script type="text/html" id="isUse">
  389. {{# if(d.status == 2){ }}
  390. <span class="layui-red x-red">已占用</span>
  391. {{# } else if(d.status == 1){ }}
  392. <span class="layui-blue">待占用</span>
  393. {{# } else if(d.status == 0) {}}
  394. <span class="layui-green">未占用</span>
  395. {{# }}}
  396. </script>
  397. <script type="text/html" id="area">
  398. {{# if(d.area == 0){ }}
  399. <span class="layui-red ">国内</span>
  400. {{# } else if(d.area == 1){ }}
  401. <span class="layui-blue">国外</span>
  402. {{# }}}
  403. </script>
  404. <script type="text/html" id="add_time">
  405. {{#
  406. var fun = function formatDate(date) {
  407. var date = new Date(date);
  408. var YY = date.getFullYear() + '-';
  409. var MM = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1) + '-';
  410. var DD = (date.getDate() < 10 ? '0' + (date.getDate()) : date.getDate());
  411. var hh = (date.getHours() < 10 ? '0' + date.getHours() : date.getHours()) + ':';
  412. var mm = (date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes()) + ':';
  413. var ss = (date.getSeconds() < 10 ? '0' + date.getSeconds() : date.getSeconds());
  414. return YY + MM + DD +" "+hh + mm + ss;
  415. };
  416. }}
  417. <span class="layui-green">{{ fun(d.add_time * 1000) }}</span>
  418. </script>
  419. <script type="text/html" id="update_time">
  420. {{#
  421. var fun = function formatDate(date) {
  422. var date = new Date(date);
  423. var YY = date.getFullYear() + '-';
  424. var MM = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1) + '-';
  425. var DD = (date.getDate() < 10 ? '0' + (date.getDate()) : date.getDate());
  426. var hh = (date.getHours() < 10 ? '0' + date.getHours() : date.getHours()) + ':';
  427. var mm = (date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes()) + ':';
  428. var ss = (date.getSeconds() < 10 ? '0' + date.getSeconds() : date.getSeconds());
  429. return YY + MM + DD +" "+hh + mm + ss;
  430. };
  431. }}
  432. <span class="layui-green">{{ fun(d.update_time * 1000) }}</span>
  433. </script>
  434. </body>
  435. </html>