chat.html 7.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242
  1. {extend name="public/layout"}
  2. {block name="body"}
  3. <style>
  4. .layui-table thead tr,
  5. .layui-table-header {
  6. background-color: #D8E6F1 !important;
  7. }
  8. .layui-tab-title .layui-this {
  9. background-color: #249EFB;
  10. color: #fff;
  11. }
  12. .layui-tab-title .layui-this:after {
  13. border-bottom: none;
  14. border: none;
  15. }
  16. .layui-tab-title li {
  17. background-color: #F2F2F2;
  18. margin: 0px 5px;
  19. }
  20. .layui-btn-xs,.layui-btn-xs:hover {
  21. border: 1px solid #249EFB;
  22. background-color: #fff;
  23. color: #249EFB;
  24. padding: 0px 10px;
  25. }
  26. .layui-btn-danger,.layui-btn-danger:hover{
  27. color: #FF5722;
  28. background-color: #fff;
  29. border: 1px solid #FF5722;
  30. padding: 0px 10px;
  31. }
  32. </style>
  33. <body>
  34. <div class="layui-fluid">
  35. <div class="layui-row layui-col-space15">
  36. <div class="layui-col-md12" style="background-color:#ffffff">
  37. <div class="tplay-body-div">
  38. <div class="layui-tab">
  39. <ul class="layui-tab-title">
  40. <li class="layui-this" style="margin-left: 0px;">
  41. 聊天记录
  42. </li>
  43. <li>
  44. <a href="{:url('broad/blacklist')}">黑名单</a>
  45. </li>
  46. {if condition="$marketing_account eq 1"}
  47. <li>
  48. <a href="{:url('broad/waistcoat')}">系统客服</a>
  49. </li>
  50. {/if}
  51. </ul>
  52. </div>
  53. <div class="layui-card-body">
  54. <div class="layui-form">
  55. <div class="layui-inline">
  56. <select id="course">
  57. {volist name="course" id="item"}
  58. {eq name="item.status" value="1"}
  59. <option selected value="{$item.cid}">{$item.title}</option>
  60. {else/}
  61. <option value="{$item.cid}">{$item.title}</option>
  62. {/eq}
  63. {/volist}
  64. </select>
  65. </div>
  66. <div class="layui-inline" style="width:300px;">
  67. <input type="text" class="layui-input" id="date" placeholder="开始 到 结束"
  68. autocomplete="off">
  69. </div>
  70. <div class="layui-inline">
  71. <input type="text" class="layui-input" id="nickname" placeholder="昵称">
  72. </div>
  73. <div class="layui-inline">
  74. <input type="text" class="layui-input" id="msg" placeholder="消息内容">
  75. </div>
  76. <button class="layui-btn" data-type="reload"><i class="layui-icon layui-icon-search layuiadmin-button-btn"></i></button>
  77. </div>
  78. <table class="layui-hide" id="user" lay-filter="user"></table>
  79. </div>
  80. </div>
  81. </div>
  82. </div>
  83. </div>
  84. {/block}
  85. {block name="js"}
  86. <script type="text/html" id="result">
  87. <a class="layui-btn layui-btn-xs layui-btn-danger" title="删除" lay-event="del">删除</a>
  88. {{# if (d.user_type == 'u') { }}
  89. <a class="layui-btn layui-btn-xs layui-btn-danger" title="封禁" lay-event="black">封禁</a>
  90. {{# } }}
  91. </script>
  92. <script type="text/html" id="nicknameTpl">
  93. {{# if(d.user_type == 'u'){ }}
  94. {{d.nickname}}
  95. {{# }else if(d.user_type == 't'){ }}
  96. {{d.tname}}
  97. {{# }else{ }}
  98. {{d.wname}}
  99. {{# } }}
  100. </script>
  101. <script type="text/html" id="msgTpl">
  102. {{# if(d.fortype == 'chat'){ }}
  103. {{d.chat_msg}}
  104. {{# }else{ }}
  105. <img src="{{d.chat_msg}}" url="{{d.chat_msg}}" style="height: 30px;" class="show" onclick="showBigImage(this)">
  106. {{# } }}
  107. </script>
  108. <script>
  109. var indexurl = '{:url("broad/chat")}';
  110. var delurl = '{:url("live/chat_delete")}';
  111. var blackurl = '{:url("live/blacklist_add_two")}';
  112. var t;
  113. layui.use(['table', 'form', 'laydate'], function () {
  114. var form = layui.form
  115. , table = layui.table
  116. , $ = layui.jquery
  117. , laydate = layui.laydate
  118. , active = {
  119. reload: function () {
  120. var course = $('#course');
  121. var date = $('#date');
  122. var msg = $('#msg');
  123. var nickname = $('#nickname');
  124. //执行重载
  125. table.reload('userTable', {
  126. page: {
  127. curr: 1 //重新从第 1 页开始
  128. }
  129. , where: {
  130. cid: course.val(),
  131. date: date.val(),
  132. msg: msg.val(),
  133. nickname: nickname.val()
  134. }
  135. });
  136. }
  137. , del: function () {
  138. var id = this.data.id;
  139. layer.confirm('确定删除该条评论么?',{title: ['信息', 'color:#333333;background-color:#D8E6F1;']}, function (index) {
  140. $.post(delurl, { id: id }, function (res) {
  141. var resp = JSON.parse(res);
  142. if (resp.code == 0) {
  143. layer.msg(resp.msg, { anim: 0 });
  144. active.reload();
  145. layer.close(index);
  146. } else {
  147. layer.msg(resp.msg, { anim: 6 });
  148. }
  149. })
  150. });
  151. }
  152. , black: function () {
  153. var uuid = this.data.uuid;
  154. layer.confirm('确定要将该用户添加到黑名单么?',{title: ['信息', 'color:#333333;background-color:#D8E6F1;']}, function (index) {
  155. layer.close(index);
  156. $.post(blackurl, { uuid: uuid }, function (res) {
  157. var resp = JSON.parse(res);
  158. if (resp.code == 0) {
  159. layer.msg(resp.msg, { anim: 0 });
  160. } else {
  161. layer.msg(resp.msg, { anim: 6 });
  162. }
  163. })
  164. });
  165. }
  166. };
  167. laydate.render({
  168. elem: '#date'
  169. , range: true
  170. , type: 'datetime'
  171. });
  172. //展示已知数据
  173. t = table.render({
  174. elem: '#user'
  175. , url: indexurl
  176. , page: true
  177. , autoSort: true
  178. , cols: [[ //标题栏
  179. { type: 'numbers', title: '序号', fixed: 'left', width: 50 }
  180. , { field: 'addtime', title: '时间', width: 180 }
  181. , { title: '昵称', width: 150, templet: '#nicknameTpl'}
  182. , {
  183. field: 'user_type', title: '类型', width: 150, templet: function (d) {
  184. if (d.user_type == 't') {
  185. return '主持人';
  186. } else if (d.user_type == 'w') {
  187. return '系统客服';
  188. } else {
  189. return '用户发言';
  190. }
  191. }
  192. }
  193. , { title: '消息记录', templet: '#msgTpl'}
  194. , { fixed: 'right', title: '操作', toolbar: '#result', width: 130 }
  195. ]]
  196. , id: 'userTable'
  197. });
  198. $('.layui-form>.layui-btn').on('click', function () {
  199. var type = $(this).data('type');
  200. active[type] ? active[type].call(this) : '';
  201. });
  202. table.on('tool(user)', function (obj) {
  203. var type = obj.event;
  204. active[type] ? active[type].call(obj) : '';
  205. })
  206. });
  207. //点击图片放大
  208. function showBigImage(e) {
  209. var width=$(e).width();
  210. var height=$(e).height();
  211. if(width>height*1.8){
  212. layer.open({
  213. type: 1,
  214. title: false,
  215. closeBtn: 0,
  216. shadeClose: true, //点击阴影关闭
  217. area: ['80%','auto'], //宽高
  218. content: "<img style='width:100%;' src=" + $(e).attr('src') + " />"
  219. });
  220. }else{
  221. layer.open({
  222. type: 1,
  223. title: false,
  224. closeBtn: 0,
  225. shadeClose: true, //点击阴影关闭
  226. area: ['auto','80%'], //宽高
  227. content: "<img style='height:100%;' src=" + $(e).attr('src') + " />"
  228. });
  229. }
  230. }
  231. </script>
  232. {/block}