index.php 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322
  1. <div class="row content-nav inline-page-box">
  2. <div class="col-xs-12">
  3. <ul>
  4. <li><a href="javascript:;"><i></i>&nbsp;微信管理</a></li>
  5. <li><a href="javascript:;">公众号</a></li>
  6. </ul>
  7. </div>
  8. </div>
  9. <section class="content">
  10. <div class="row">
  11. <div class="col-md-3 l-col-md-3">
  12. <div class="box box-solid">
  13. <div class="box-header with-border">
  14. <h3 class="box-title">菜单</h3>
  15. <div class="box-tools">
  16. <button type="button" class="btn btn-box-tool" data-widget="collapse"><i class="fa fa-minus"></i>
  17. </button>
  18. </div>
  19. </div>
  20. <div class="box-body no-padding">
  21. {include file="wechat/common/wechat_menu"}
  22. </div>
  23. </div>
  24. </div>
  25. <div class="col-md-9 r-col-md-9">
  26. <div class="layui-fluid">
  27. <div class="layui-card">
  28. <div class="layui-card-body">
  29. <form class="layui-form layui-form-pane" action="">
  30. <div class="layui-form-item">
  31. <div class="layui-inline">
  32. <label class="layui-form-label seller-inline-2">用户昵称:</label>
  33. <div class="layui-input-inline seller-inline-4">
  34. <input type="text" name="title" placeholder="请输入用户昵称" autocomplete="off" class="layui-input">
  35. </div>
  36. </div>
  37. <div class="layui-inline">
  38. <button type="button" id="search-btn" class="layui-btn layui-btn-sm layui-bg-light-blue"><i class="layui-icon layui-icon-search"></i> 搜索</button>
  39. </div>
  40. </div>
  41. </form>
  42. </div>
  43. </div>
  44. </div>
  45. <section class="content clearfix">
  46. <div class="layui-list-box">
  47. <table class="layui-hide" id="list-box" lay-filter="list-box"></table>
  48. </div>
  49. </section>
  50. <script type="text/html" id="list-toolbar">
  51. <div class="layui-btn-container">
  52. <button lay-event="refresh" type="button" class="layui-btn layui-btn-sm layui-bg-red"><i class="layui-icon">&#xe9aa;</i> 刷新</button>
  53. <button lay-event="sync-tags" type="button" class="layui-btn layui-btn-sm layui-bg-light-blue"><i class="layui-icon">&#xe61f;</i> 同步标签</button>
  54. <button lay-event="sync-black" type="button" class="layui-btn layui-btn-sm layui-bg-light-blue"><i class="layui-icon">&#xe61f;</i> 同步黑名单</button>
  55. <button lay-event="add-black" type="button" class="layui-btn layui-btn-sm layui-bg-orange"><i class="layui-icon">&#xe624;</i> 加入黑名单</button>
  56. <button lay-event="remove-black" type="button" class="layui-btn layui-btn-sm layui-bg-green"><i class="layui-icon">&#xe67e;</i> 移出黑名单</button>
  57. </div>
  58. </script>
  59. <script type="text/html" id="list-bar">
  60. <a class="layui-btn layui-btn-xs" lay-event="edit">{{ d.is_black ? '已拉黑' : '拉黑' }}</a>
  61. <a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">删除</a>
  62. </script>
  63. </div>
  64. </div>
  65. </section>
  66. <style type="text/css">.layui-table-cell{ height:auto !important; }</style>
  67. <script>
  68. layui.use(['table','form'], function () {
  69. var table = layui.table;
  70. var form = layui.form;
  71. table.render({
  72. elem: '#list-box'
  73. , url: '{:createUrl("wechat.fans/index")}'
  74. , toolbar: '#list-toolbar'
  75. , defaultToolbar: []
  76. , title: '数据表'
  77. , cols: [[
  78. {type: 'checkbox'}
  79. , {field: 'id', title: 'ID', width: 80, unresize: true, sort: true,align:"center"}
  80. , {field:'photo', title:'头像', width:60,templet: function(res){
  81. return '<img src="'+ res.photo +'" style="max-width:30px; max-height:30px;">';
  82. }}
  83. , {field: 'nickname', title: '微信昵称',align:"center"}
  84. , {field: 'tags', title: 'tag',width:130,align:"center"}
  85. , {field: 'area', title: '区域',width:130,align:"center"}
  86. , {field: 'sex', title: '性别', width: 100, align:"center",templet(res){
  87. var str = '';
  88. if(res.sex == 1) {
  89. str = '男';
  90. }else if(res.sex == 2){
  91. str = '女';
  92. }else{
  93. str = '未知';
  94. }
  95. return str;
  96. }}
  97. , {field: 'status', title: '状态', width: 80,align:"center", templet(res){
  98. var str = '';
  99. str += '<span class="layui-badge">'+(res.subscribe ? "已关注" : "未关注")+'</span>';
  100. str += '<br>';
  101. str += '<span class="layui-badge layui-bg-green layui-is-black">'+(res.is_black ? "已拉黑" : "未拉黑")+'</span>';
  102. return str;
  103. }}
  104. , {field: 'create_time', title: '关注时间', width: 180, align: "center"}
  105. , {align: 'center', title: '操作', toolbar: '#list-bar', width: 130}
  106. ]]
  107. , text: {
  108. none: '<div><i class="layui-icon">&#xe702;</i>暂无相关数据</div>'
  109. }
  110. , page: true
  111. , id: 'list-table'
  112. , height: 'full-255'
  113. // ,limit:30
  114. });
  115. $("#search-btn").on("click",function (){
  116. table.reload('list-table', {
  117. page: {
  118. curr: 1
  119. }
  120. ,where: {
  121. key: {
  122. title : $('[name="title"]').val()
  123. }
  124. }
  125. }, 'data');
  126. });
  127. // 头工具栏事件
  128. table.on('toolbar(list-box)', function (obj) {
  129. var checkStatus = table.checkStatus(obj.config.id);
  130. switch (obj.event) {
  131. case 'sync-fans':
  132. layer.confirm('您确定要同步粉丝数据?', {
  133. btn: ['确定','取消']
  134. }, function(i){
  135. layer.close(i);
  136. var index = layer.load(1, {
  137. shade: [0.2,'#000']
  138. });
  139. $.get("{:createUrl('wechat.fans/sync_fans')}",function (result){
  140. if(result.code){
  141. window.location.reload();
  142. }else{
  143. layer.close(index);
  144. layer.msg(result.msg,{ icon : 2 });
  145. }
  146. },"json");
  147. }, function(){});
  148. break;
  149. case 'sync-black':
  150. layer.confirm('您确定要同步黑名单数据?', {
  151. btn: ['确定','取消']
  152. }, function(i){
  153. layer.close(i);
  154. var index = layer.load(1, {
  155. shade: [0.2,'#000']
  156. });
  157. $.get("{:createUrl('wechat.fans/sync_black')}",function (result){
  158. if(result.code){
  159. window.location.reload();
  160. }else{
  161. layer.close(index);
  162. layer.msg(result.msg,{ icon : 2 });
  163. }
  164. },"json");
  165. }, function(){});
  166. break;
  167. case 'sync-tags':
  168. layer.confirm('您确定要同步粉丝标签数据?', {
  169. btn: ['确定','取消']
  170. }, function(i){
  171. layer.close(i);
  172. var index = layer.load(1, {
  173. shade: [0.2,'#000']
  174. });
  175. $.get("{:createUrl('wechat.fans/sync_tags')}",function (result){
  176. if(result.code){
  177. window.location.reload();
  178. }else{
  179. layer.close(index);
  180. layer.msg(result.msg,{ icon : 2 });
  181. }
  182. },"json");
  183. }, function(){});
  184. break;
  185. case 'refresh':
  186. window.location.reload();
  187. break;
  188. case 'add-black':
  189. var data = checkStatus.data;
  190. var arr = [];
  191. for(var i in data){
  192. arr.push(data[i].openid);
  193. }
  194. if(arr.length == 0){
  195. layer.msg("您还没有选择用户",{ icon : 2 });
  196. return false;
  197. }
  198. $.post("{:createUrl('wechat.fans/add_black')}",{ openid : arr.join(",") },function (result){
  199. if(result.code){
  200. window.location.reload();
  201. }else{
  202. layer.msg(result.msg,{ icon : 2 });
  203. }
  204. },"json");
  205. break;
  206. case 'remove-black':
  207. var data = checkStatus.data;
  208. var arr = [];
  209. for(var i in data){
  210. arr.push(data[i].openid);
  211. }
  212. if(arr.length == 0){
  213. layer.msg("您还没有选择用户",{ icon : 2 });
  214. return false;
  215. }
  216. $.post("{:createUrl('wechat.fans/remove_black')}",{ openid : arr.join(",") },function (result){
  217. if(result.code){
  218. window.location.reload();
  219. }else{
  220. layer.msg(result.msg,{ icon : 2 });
  221. }
  222. },"json");
  223. break;
  224. }
  225. });
  226. // 监听行工具事件
  227. table.on('tool(list-box)', function (obj) {
  228. var data = obj.data;
  229. if (obj.event === 'del') {
  230. layer.confirm('你确定要删除吗?', function (index) {
  231. $.get('{:createUrl("wechat.fans/delete")}',{
  232. id : data.id
  233. },function(result){
  234. layer.close(index);
  235. if(result.code){
  236. obj.del();
  237. }else{
  238. layer.msg(result.msg,{ icon : 2 });
  239. }
  240. },"json");
  241. });
  242. } else if (obj.event === 'edit') {
  243. if(data.is_black){
  244. $.post("{:createUrl('wechat.fans/remove_black')}",{ openid : data.openid },function (result){
  245. if(result.code){
  246. $('[lay-event="edit"]',$(obj.tr)).html("拉黑");
  247. $(".layui-is-black",$(obj.tr)).html("未拉黑");
  248. obj.update({
  249. is_black : 0
  250. });
  251. }else{
  252. layer.msg(result.msg,{ icon : 2 });
  253. }
  254. },"json");
  255. }else{
  256. $.post("{:createUrl('wechat.fans/add_black')}",{ openid : data.openid },function (result){
  257. if(result.code){
  258. $('[lay-event="edit"]',$(obj.tr)).html("移出黑名单");
  259. $(".layui-is-black",$(obj.tr)).html("已拉黑");
  260. obj.update({
  261. is_black : 1
  262. });
  263. }else{
  264. layer.msg(result.msg,{ icon : 2 });
  265. }
  266. },"json");
  267. }
  268. }
  269. });
  270. // 监听锁定操作
  271. form.on('checkbox(status-filter)', function(obj){
  272. var that = this;
  273. $.get('{:createUrl("wechat.fans/field")}',{
  274. name : that.name,
  275. value : (obj.elem.checked ? 0 : 1),
  276. id : that.value
  277. },function (result){
  278. if(!result.code){
  279. layer.msg(result.msg,{ icon : 2 });
  280. }
  281. },"json");
  282. });
  283. // 监听单元格编辑
  284. table.on('edit(list-box)', function(obj){
  285. $.get('{:createUrl("wechat.fans/field")}',{
  286. name : obj.field,
  287. value : obj.value,
  288. id : obj.data.id
  289. },function (result){
  290. if(!result.code){
  291. layer.msg(result.msg,{ icon : 2 });
  292. }
  293. },"json");
  294. });
  295. });
  296. </script>