FieldQuery.html 7.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217
  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, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0"/>
  10. <link rel="stylesheet" href="../../static/css/font.css"/>
  11. <link rel="stylesheet" href="../../static/css/weadmin.css"/>
  12. </head>
  13. <body>
  14. <div class="weadmin-nav">
  15. <span class="layui-breadcrumb">
  16. <a href="javascript:;">首页</a> <a href="javascript:;">日志分析</a>
  17. <a href="javascript:;"> <cite>字段查询</cite></a>
  18. </span>
  19. <a class="layui-btn layui-btn-sm" style="margin-top:3px;float:right"
  20. href="javascript:location.replace(location.href);"
  21. title="刷新">
  22. <i class="layui-icon layui-icon-refresh"></i>
  23. <!-- <i class="layui-icon" style="line-height:30px">&#x1002;</i> -->
  24. </a>
  25. </div>
  26. <div class="weadmin-body" id="app">
  27. <div class="layui-row">
  28. <form class="layui-form layui-col-md12 we-search">
  29. <div class="layui-inline">
  30. <input class="layui-input" placeholder="日期范围" name="start" id="dateRange"
  31. autocomplete="off"/>
  32. </div>
  33. <div class="layui-inline">
  34. <input type="text" name="username" placeholder="问题" class="layui-input" id="question"/>
  35. </div>
  36. <div class="layui-inline">
  37. <select name="app_key" id="app_key" lay-filter="app_key" lay-search>
  38. </select>
  39. </div>
  40. <div class="layui-inline">
  41. <div class="layui-input-inline">
  42. <a class="layui-btn" id="search"><i class="layui-icon"></i>查询</a>
  43. </div>
  44. </div>
  45. </form>
  46. </div>
  47. <div class="layui-row">
  48. <div class="layui-col-md12">
  49. <div class="weadmin-block">
  50. <button class="layui-btn layui-btn-danger" onclick="deleteAll()">
  51. <i class="layui-icon layui-icon-delete"></i>批量删除
  52. </button>
  53. <button class="layui-btn" onclick="WeAdminShow('添加用户','./add.html',600,400)">
  54. <i class="layui-icon layui-icon-add-circle-fine"></i>添加
  55. </button>
  56. <span class="fr" style="line-height:40px">共有数据:<span id="total">0</span> 条</span>
  57. </div>
  58. <!--表格-->
  59. <table class="layui-hide" id="table" lay-filter="test"></table>
  60. <script type="text/html" id="barDemo">
  61. <a class="layui-btn layui-btn-primary layui-btn-xs" lay-event="edit">编辑</a>
  62. <a class="layui-btn layui-btn-primary layui-btn-xs" lay-event="detail">详情</a>
  63. <a class="layui-btn layui-btn-primary layui-btn-xs" lay-event="del">详情</a>
  64. </script>
  65. </div>
  66. </div>
  67. </div>
  68. <script src="../../static/js/axios.min.js"></script>
  69. <script src="../../lib/layui/layui.all.js" charset="utf-8"></script>
  70. <script src="../../static/js/eleDel.js"></script>
  71. <script src="../../config/app.js"></script>
  72. </body>
  73. <script>
  74. let $ = layui.jquery;
  75. let table = layui.table;
  76. let queryData = {
  77. question: "",
  78. app_key: "",
  79. beginDate: "",
  80. endDate: "",
  81. }
  82. function getParam() {
  83. /**
  84. * 日期
  85. */
  86. let rangeArray = $("#dateRange").val().split(' - ');
  87. if (rangeArray.length === 2) {
  88. queryData.beginDate = rangeArray[0];
  89. queryData.endDate = rangeArray[1];
  90. } else {
  91. queryData.beginDate = "1997-01-01";
  92. queryData.endDate = "2999-01-01";
  93. }
  94. queryData.question = $("#question").val();
  95. return queryData;
  96. }
  97. /**
  98. * 渲染
  99. */
  100. layui.laydate.render({
  101. elem: "#dateRange",
  102. range: true,
  103. });
  104. /**
  105. * 绑定select和事件
  106. */
  107. axios.get(
  108. app.baseUrl + "/api/log/getField?fieldName=app_key"
  109. ).then(res => {
  110. let dom = $("#app_key");
  111. dom.html("");
  112. dom.append(`<option value=''>--请选择---</option>`);
  113. for (let i = 0; i < res.data.length; i++) {
  114. const item = res.data[i];
  115. dom.append("<option value='" + item.id + "'>" + item.name + "</option>")
  116. }
  117. layui.form.on('select(app_key)', function (data) {
  118. queryData.app_key = data.value;
  119. });
  120. layui.form.render();
  121. });
  122. /**
  123. * 初始化查询表格
  124. */
  125. table.render({
  126. elem: '#table',
  127. id: "id" // 单行唯一标识
  128. , height: "auto"
  129. , url: app.baseUrl + "/api/log/query" //数据接口
  130. , where: getParam()
  131. , method: "post"
  132. , contentType: 'application/json'
  133. , title: '用户表'
  134. , page: true //开启分页
  135. , cols: [[ //表头
  136. {type: 'checkbox', fixed: 'left',field: 'id'}
  137. , {
  138. field: 'app_key', title: 'app_key', width: 150, sort: true, fixed: 'left',
  139. templet: '<div><span title="{{d.app_key}}">{{d.app_key}}</span></div>'
  140. }
  141. , {
  142. field: 'question',
  143. title: 'question',
  144. width: 280,
  145. templet: '<div><span title="{{d.question}}">{{d.question}}</span></div>'
  146. }
  147. , {field: 'scenario', title: 'scenario', width: 180, sort: true}
  148. , {field: 'style', title: 'style', width: 110, sort: true}
  149. , {field: 'wakeup_word', title: 'wakeup_word', width: 120}
  150. , {fixed: 'right', title: '操作', toolbar: '#barDemo'}
  151. ]]
  152. , parseData: function (res) { //res 即为原始返回的数据
  153. return {
  154. "code": res.code, //解析接口状态
  155. "msg": res.message, //解析提示文本
  156. "count": res.data.total, //解析数据长度
  157. "data": res.data.rows //解析数据列表
  158. };
  159. },
  160. done: (res, curr, count) => {
  161. $("#total").html(count);
  162. }
  163. });
  164. table.on('tool(test)', function(obj){ //注:tool 是工具条事件名,test 是 table 原始容器的属性 lay-filter="对应的值"
  165. let data = obj.data; //获得当前行数据
  166. let layEvent = obj.event; //获得 lay-event 对应的值(也可以是表头的 event 参数对应的值)
  167. console.log(data);
  168. if(layEvent === 'detail'){ //查看
  169. //do something
  170. } else if(layEvent === 'del'){ //删除
  171. layer.confirm('真的删除行么', function(index){
  172. layer.close(index);
  173. //向服务端发送删除指令
  174. });
  175. } else if(layEvent === 'edit'){ //编辑
  176. //do something
  177. WeAdminEdit('编辑', '../member/edit.html', 1, 600, 400);
  178. }
  179. });
  180. $("#search").click(function () {
  181. getParam()
  182. table.reload({
  183. where: queryData
  184. , page: {
  185. curr: 1
  186. }
  187. });
  188. return false;
  189. });
  190. function deleteAll() {
  191. let checkStatus = table.checkStatus('id');
  192. console.log(checkStatus);
  193. }
  194. </script>
  195. </html>