3ac1cf96481d3b196141e60cc7237c4f.php 33 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725
  1. <?php /*a:5:{s:63:"D:\phpstudy_pro\WWW\newQudou\app\admin\view\user\user\index.php";i:1655949406;s:64:"D:\phpstudy_pro\WWW\newQudou\app\admin\view\public\container.php";i:1595820902;s:65:"D:\phpstudy_pro\WWW\newQudou\app\admin\view\public\frame_head.php";i:1595820902;s:60:"D:\phpstudy_pro\WWW\newQudou\app\admin\view\public\style.php";i:1595820902;s:67:"D:\phpstudy_pro\WWW\newQudou\app\admin\view\public\frame_footer.php";i:1595820902;}*/ ?>
  2. <!DOCTYPE html>
  3. <html lang="zh-CN">
  4. <head>
  5. <meta charset="utf-8">
  6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  7. <?php if(empty($is_layui) || (($is_layui instanceof \think\Collection || $is_layui instanceof \think\Paginator ) && $is_layui->isEmpty())): ?>
  8. <link href="/system/frame/css/bootstrap.min.css?v=3.4.0" rel="stylesheet">
  9. <?php endif; ?>
  10. <link href="/static/plug/layui/css/layui.css" rel="stylesheet">
  11. <link href="/system/css/layui-admin.css" rel="stylesheet">
  12. <link href="/system/frame/css/font-awesome.min.css?v=4.3.0" rel="stylesheet">
  13. <link href="/system/frame/css/animate.min.css" rel="stylesheet">
  14. <link href="/system/frame/css/style.min.css?v=3.0.0" rel="stylesheet">
  15. <script src="/system/frame/js/jquery.min.js"></script>
  16. <script src="/system/frame/js/bootstrap.min.js"></script>
  17. <script src="/static/plug/layui/layui.all.js"></script>
  18. <script>
  19. $eb = parent._mpApi;
  20. window.controlle="<?php echo strtolower(trim(preg_replace("/[A-Z]/", "_\\0", app('request')->controller()), "_"));?>";
  21. window.module="<?php echo app('http')->getName();?>";
  22. </script>
  23. <title></title>
  24. <script src="/static/plug/city.js"></script>
  25. <style>
  26. .layui-btn-xs{margin-left: 0px !important;}
  27. legend{
  28. width: auto;
  29. border: none;
  30. font-weight: 700 !important;
  31. }
  32. .site-demo-button{
  33. padding-bottom: 20px;
  34. padding-left: 10px;
  35. }
  36. .layui-form-label{
  37. width: auto;
  38. }
  39. .layui-input-block input{
  40. width: 50%;
  41. height: 34px;
  42. }
  43. .layui-form-item{
  44. margin-bottom: 0;
  45. }
  46. .layui-input-block .time-w{
  47. width: 200px;
  48. }
  49. .layui-table-body{overflow-x: hidden;}
  50. .layui-btn-group button i{
  51. line-height: 30px;
  52. margin-right: 3px;
  53. vertical-align: bottom;
  54. }
  55. .back-f8{
  56. background-color: #F8F8F8;
  57. }
  58. .layui-input-block button{
  59. border: 1px solid #e5e5e5;
  60. }
  61. .avatar{width: 50px;height: 50px;}
  62. .layui-table-body{
  63. overflow-x: unset;
  64. }
  65. </style>
  66. <!--<script type="text/javascript" src="/static/plug/basket.js"></script>-->
  67. <script type="text/javascript" src="/static/plug/requirejs/require.js"></script>
  68. <?php /* <script type="text/javascript" src="/static/plug/requirejs/require-basket-load.js"></script> */ ?>
  69. <script>
  70. var hostname = location.hostname;
  71. if(location.port) hostname += ':' + location.port;
  72. requirejs.config({
  73. map: {
  74. '*': {
  75. 'css': '/static/plug/requirejs/require-css.js'
  76. }
  77. },
  78. shim:{
  79. 'iview':{
  80. deps:['css!iviewcss']
  81. },
  82. 'layer':{
  83. deps:['css!layercss']
  84. }
  85. },
  86. baseUrl:'//'+hostname+'/',
  87. paths: {
  88. 'static':'static',
  89. 'system':'system',
  90. 'vue':'static/plug/vue/dist/vue.min',
  91. 'axios':'static/plug/axios.min',
  92. 'iview':'static/plug/iview/dist/iview.min',
  93. 'iviewcss':'static/plug/iview/dist/styles/iview',
  94. 'lodash':'static/plug/lodash',
  95. 'layer':'static/plug/layer/layer',
  96. 'layercss':'static/plug/layer/theme/default/layer',
  97. 'jquery':'static/plug/jquery/jquery.min',
  98. 'moment':'static/plug/moment',
  99. 'sweetalert':'static/plug/sweetalert2/sweetalert2.all.min',
  100. 'formCreate':'/static/plug/form-create/form-create.min',
  101. },
  102. basket: {
  103. excludes:['system/js/index','system/util/mpVueComponent','system/util/mpVuePackage']
  104. // excludes:['system/util/mpFormBuilder','system/js/index','system/util/mpVueComponent','system/util/mpVuePackage']
  105. }
  106. });
  107. </script>
  108. <script type="text/javascript" src="/system/util/mpFrame.js"></script>
  109. </head>
  110. <body class="gray-bg">
  111. <div class="wrapper wrapper-content">
  112. <div class="row">
  113. <div class="col-sm-12">
  114. <div class="ibox float-e-margins">
  115. <div class="ibox-title">
  116. <h5>会员搜索</h5>
  117. <div class="ibox-tools">
  118. <a class="collapse-link">
  119. <i class="fa fa-chevron-up"></i>
  120. </a>
  121. </div>
  122. </div>
  123. <div class="ibox-content" style="display: block;">
  124. <!-- <div class="alert alert-success alert-dismissable">-->
  125. <!-- <button aria-hidden="true" data-dismiss="alert" class="close" type="button">×</button>-->
  126. <!-- 目前拥有<?php echo htmlentities($count_user); ?>个会员-->
  127. <!-- </div>-->
  128. <form class="layui-form">
  129. <div class="layui-form-item">
  130. <div class="layui-inline">
  131. <label class="layui-form-label">姓名编号:</label>
  132. <div class="layui-input-inline">
  133. <input id="nickname" type="text" name="nickname" lay-verify="nickname" style="width: 100%" autocomplete="off" placeholder="请输入姓名、编号、手机号" class="layui-input">
  134. </div>
  135. </div>
  136. <div class="layui-inline">
  137. <label class="layui-form-label">用户类型:</label>
  138. <div class="layui-input-inline">
  139. <select name="user_type" lay-verify="user_type">
  140. <option value="">全部</option>
  141. <option value="wechat">微信公众号</option>
  142. <option value="routine">微信小程序</option>
  143. <option value="h5">H5</option>
  144. </select>
  145. </div>
  146. </div>
  147. <div class="layui-inline">
  148. <label class="layui-form-label">状  态:</label>
  149. <div class="layui-input-inline">
  150. <select name="status" lay-verify="status">
  151. <option value="">全部</option>
  152. <option value="1">正常</option>
  153. <option value="0">锁定</option>
  154. </select>
  155. </div>
  156. </div>
  157. <div class="layui-inline">
  158. <label class="layui-form-label">性  别:</label>
  159. <div class="layui-input-inline">
  160. <select name="sex" lay-verify="sex">
  161. <option value="">全部</option>
  162. <option value="1">男</option>
  163. <option value="2">女</option>
  164. <option value="0">保密</option>
  165. </select>
  166. </div>
  167. </div>
  168. <div class="layui-inline">
  169. <label class="layui-form-label">身  份:</label>
  170. <div class="layui-input-inline">
  171. <select name="is_promoter" lay-verify="is_promoter">
  172. <option value="">全部</option>
  173. <option value="1">推广员</option>
  174. <option value="0">普通用户</option>
  175. </select>
  176. </div>
  177. </div>
  178. <div class="layui-inline">
  179. <label class="layui-form-label">会员等级:</label>
  180. <div class="layui-input-inline">
  181. <select name="level" lay-verify="level" lay-filter='level' id="level">
  182. <option value="" id="level-top">全部</option>
  183. </select>
  184. </div>
  185. </div>
  186. <div class="layui-inline">
  187. <label class="layui-form-label">会员分组:</label>
  188. <div class="layui-input-inline">
  189. <select id="group" name="group_id" lay-verify="group" lay-filter='group' id="group">
  190. <option value="" id="group-top">全部</option>
  191. </select>
  192. </div>
  193. </div>
  194. <div class="layui-inline">
  195. <label class="layui-form-label">国  家:</label>
  196. <div class="layui-input-inline">
  197. <select name="country" lay-verify="country" lay-filter='country'>
  198. <option value="" selected="selected">请选择国家</option>
  199. <option value="domestic">中国</option>
  200. <option value="abroad">外国</option>
  201. </select>
  202. </div>
  203. </div>
  204. <div class="layui-inline" id="province-div">
  205. <label class="layui-form-label">省  份:</label>
  206. <div class="layui-input-inline">
  207. <select name="province" lay-verify="province" lay-filter='province' id="province">
  208. <option value="" id="province-top">请选择省</option>
  209. </select>
  210. </div>
  211. </div>
  212. <div class="layui-inline" id="city-div">
  213. <label class="layui-form-label">市  区:</label>
  214. <div class="layui-input-inline">
  215. <select name="city" lay-verify="city" lay-filter='city' id="city">
  216. <option value="" id="city-top">请选择市</option>
  217. </select>
  218. </div>
  219. </div>
  220. </div>
  221. <div class="layui-form-item">
  222. <div class="layui-inline">
  223. <label class="layui-form-label">消费情况:</label>
  224. <div class="layui-input-inline">
  225. <select name="pay_count" lay-verify="pay_count">
  226. <option value="">全部</option>
  227. <option value="-1">0</option>
  228. <option value="0">1+</option>
  229. <option value="1">2+</option>
  230. <option value="2">3+</option>
  231. <option value="3">4+</option>
  232. <option value="4">5+</option>
  233. </select>
  234. </div>
  235. </div>
  236. <div class="layui-inline">
  237. <label class="layui-form-label">访问情况:</label>
  238. <div class="layui-input-inline">
  239. <select name="user_time_type" lay-verify="user_time_type">
  240. <option value="">全部</option>
  241. <option value="visitno">时间段未访问</option>
  242. <option value="visit">时间段访问过</option>
  243. <option value="add_time">首次访问</option>
  244. </select>
  245. </div>
  246. </div>
  247. <div class="layui-inline">
  248. <label class="layui-form-label">选择时间:</label>
  249. <div class="layui-input-inline">
  250. <input type="text" class="layui-input time-w" name="user_time" lay-verify="user_time" id="user_time" placeholder=" - ">
  251. </div>
  252. </div>
  253. </div>
  254. <div class="layui-col-lg12" id="app1">
  255. <button @click="excel" type="button"
  256. class="layui-btn layui-btn-warm layui-btn-sm export" type="button">
  257. <i class="fa fa-floppy-o" style="margin-right: 3px;"></i>导出
  258. </button>
  259. </div>
  260. <div class="layui-form-item">
  261. <label class="layui-form-label">
  262. <button class="layui-btn layui-btn-sm layui-btn-normal" lay-submit="" lay-filter="search" >
  263. <i class="layui-icon layui-icon-search layuiadmin-button-btn"></i>搜索</button>
  264. </label>
  265. </div>
  266. </form>
  267. </div>
  268. </div>
  269. </div>
  270. </div>
  271. <div class="row">
  272. <div class="col-sm-12">
  273. <div class="ibox">
  274. <div class="ibox-content">
  275. <div class="table-responsive">
  276. <div class="layui-btn-group conrelTable">
  277. <!-- <button class="layui-btn layui-btn-sm layui-btn-danger" type="button" data-type="set_status_f"><i class="fa fa-ban"></i>封禁</button>-->
  278. <!-- <button class="layui-btn layui-btn-sm layui-btn-normal" type="button" data-type="set_status_j"><i class="fa fa-check-circle-o"></i>解封</button>-->
  279. <button class="layui-btn layui-btn-sm layui-btn-normal" type="button" data-type="set_grant"><i class="fa fa-check-circle-o"></i>发送优惠券</button>
  280. <button class="layui-btn layui-btn-sm layui-btn-normal" type="button" data-type="set_custom"><i class="fa fa-check-circle-o"></i>发送客服图文消息</button>
  281. <button class="layui-btn layui-btn-sm layui-btn-normal" type="button" data-type="set_group"><i class="fa fa-check-circle-o" ></i>批量设置分组</button>
  282. <!-- <button class="layui-btn layui-btn-sm layui-btn-normal" type="button" data-type="set_template"><i class="fa fa-check-circle-o"></i>发送模板消息</button>-->
  283. <!-- <button class="layui-btn layui-btn-sm layui-btn-normal" type="button" data-type="set_info"><i class="fa fa-check-circle-o"></i>发送站内消息</button>-->
  284. <button class="layui-btn layui-btn-sm layui-btn-normal" type="button" data-type="refresh"><i class="layui-icon layui-icon-refresh" ></i>刷新</button>
  285. </div>
  286. <table class="layui-hide" id="userList" lay-filter="userList"></table>
  287. <script type="text/html" id="nickname">
  288. {{d.nickname}}
  289. {{# if(d.vip_name){ }}
  290. <p style="color:#dab176">{{d.vip_name}}</p>
  291. {{# } }}
  292. </script>
  293. <script type="text/html" id="data_time">
  294. <div >首次:{{d.add_time}}</div>
  295. <div >最近:{{d.last_time}}</div>
  296. </script>
  297. <script type="text/html" id="checkboxstatus">
  298. <input type='checkbox' name='status' lay-skin='switch' value="{{d.uid}}" lay-filter='status' lay-text='正常|冻结' {{ d.status == 1 ? 'checked' : '' }}>
  299. </script>
  300. <script type="text/html" id="barDemo">
  301. <button type="button" class="layui-btn layui-btn-xs" lay-event="edit"><i class="layui-icon layui-icon-edit"></i>编辑</button>
  302. <button type="button" class="layui-btn layui-btn-xs" onclick="dropdown(this)">操作 <span class="caret"></span></button>
  303. <ul class="layui-nav-child layui-anim layui-anim-upbit">
  304. <li>
  305. <a href="javascript:void(0);" lay-event="money">
  306. <i class="layui-icon layui-icon-edit"></i> 余额积分</a>
  307. </li>
  308. <li>
  309. <a href="javascript:void(0);" lay-event="see">
  310. <i class="layui-icon layui-icon-edit"></i> 会员详情</a>
  311. </li>
  312. <li>
  313. <a href="javascript:void(0);" lay-event="give_level">
  314. <i class="layui-icon layui-icon-star-fill" aria-hidden="true"></i> 修改会员等级</a>
  315. </li>
  316. <li>
  317. <a href="javascript:void(0);" lay-event="set_group">
  318. <i class="layui-icon layui-icon-star-fill" aria-hidden="true"></i> 设置分组</a>
  319. </li>
  320. {{# if(d.vip_name){ }}
  321. <li>
  322. <a href="javascript:void(0);" lay-event="del_level">
  323. <i class="layui-icon layui-icon-close-fill" aria-hidden="true"></i> 清除等级</a>
  324. </li>
  325. {{# } }}
  326. </ul>
  327. </script>
  328. </div>
  329. </div>
  330. </div>
  331. </div>
  332. </div>
  333. <script src="/system/js/layuiList.js"></script>
  334. <script src="/system/frame/js/content.min.js?v=1.0.0"></script>
  335. <script>
  336. var level=<?=$level?>;
  337. var group=<?=$group?>;
  338. $('#province-div').hide();
  339. $('#city-div').hide();
  340. layList.select('country',function (odj,value,name) {
  341. var html = '';
  342. $.each(city,function (index,item) {
  343. html += '<option value="'+item.label+'">'+item.label+'</option>';
  344. })
  345. if(odj.value == 'domestic'){
  346. $('#province-div').show();
  347. $('#city-div').show();
  348. $('#province-top').siblings().remove();
  349. $('#province-top').after(html);
  350. $('#province').val('');
  351. layList.form.render('select');
  352. }else{
  353. $('#province-div').hide();
  354. $('#city-div').hide();
  355. }
  356. $('#province').val('');
  357. $('#city').val('');
  358. });
  359. layList.select('province',function (odj,value,name) {
  360. var html = '';
  361. $.each(city,function (index,item) {
  362. if(item.label == odj.value){
  363. $.each(item.children,function (indexe,iteme) {
  364. html += '<option value="'+iteme.label+'">'+iteme.label+'</option>';
  365. })
  366. $('#city').val('');
  367. $('#city-top').siblings().remove();
  368. $('#city-top').after(html);
  369. layList.form.render('select');
  370. }
  371. })
  372. });
  373. layList.form.render();
  374. layList.tableList('userList',"<?php echo Url('get_user_list'); ?>",function () {
  375. return [
  376. {type:'checkbox'},
  377. {field: 'uid', title: '编号',event:'uid',width:'4%',align:'center'},
  378. {field: 'avatar', title: '头像', event:'open_image', width: '6%',align:'center', templet: '<p lay-event="open_image"><img class="avatar" style="cursor: pointer" class="open_image" data-image="{{d.avatar}}" src="{{d.avatar}}" alt="{{d.nickname}}"></p>'},
  379. {field: 'nickname', title: '姓名',templet:'#nickname',align:'center'},
  380. {field: 'group_name', title: '分组',templet:'#group_name',align:'center'},
  381. {field: 'phone', title: '手机号',align:'center',width:'8%'},
  382. {field: 'now_money', title: '余额',width:'6%',sort:true,event:'now_money',align:'center'},
  383. {field: 'pay_count', title: '购买次数',align:'center',width:'6%'},
  384. {field: 'extract_count_price', title: '累计提现',align:'center',width:'6%'},
  385. {field: 'integral', title: '趣豆',width:'6%',sort:true,event:'integral',align:'center'},
  386. {field: 'anticipate', title: '广告值',width:'6%',sort:true,event:'integral',align:'center'},
  387. {field: 'shop_integral', title: '购物券',width:'6%',sort:true,event:'shop_integral',align:'center'},
  388. {field: 'golden_bean', title: '金豆',width:'6%',sort:true,event:'golden_bean',align:'center'},
  389. {field: 'spread_uid_nickname', title: '推荐人',width:'6%',align:'center'},
  390. {field: 'sex', title: '性别',width:'4%',align:'center'},
  391. // {field: 'data_time', title: '访问日期',align:'center',width:'12%',templet:'#data_time'},
  392. {field: 'status', title: '状态',templet:"#checkboxstatus",width:'6%',align:'center'},
  393. // {field: 'user_type', title: '用户类型',width:'6%',align:'center'},
  394. {field: 'profit', title: '收益',width:'5%',align:'center'},
  395. {field: 'operate', title: '操作', width: '10%', align: 'center', toolbar: '#barDemo'}
  396. ];
  397. });
  398. //页面刷新时加载
  399. layui.use('layer',function(){
  400. var layer = layui.layer;
  401. layer.ready(function(){
  402. var html = '';
  403. $.each(level,function (index,item) {
  404. html += '<option value="'+item.id+'">'+item.name+'</option>';
  405. })
  406. $('#level-top').val('');
  407. $('#level-top').siblings().remove();
  408. $('#level-top').after(html);
  409. layList.form.render('select');
  410. var htmls = '';
  411. $.each(group,function (index,item) {
  412. htmls += '<option value="'+item.id+'">'+item.group_name+'</option>';
  413. })
  414. $('#group-top').val('');
  415. $('#group-top').siblings().remove();
  416. $('#group-top').after(htmls);
  417. layList.form.render('select');
  418. });
  419. });
  420. layList.date('last_time');
  421. layList.date('add_time');
  422. layList.date('user_time');
  423. layList.date('time');
  424. //监听并执行 uid 的排序
  425. layList.sort(function (obj) {
  426. var layEvent = obj.field;
  427. var type = obj.type;
  428. switch (layEvent){
  429. case 'uid':
  430. layList.reload({order: layList.order(type,'u.uid')},true,null,obj);
  431. break;
  432. case 'now_money':
  433. layList.reload({order: layList.order(type,'u.now_money')},true,null,obj);
  434. break;
  435. case 'integral':
  436. layList.reload({order: layList.order(type,'u.integral')},true,null,obj);
  437. break;
  438. }
  439. });
  440. //监听并执行 uid 的排序
  441. layList.tool(function (event,data,obj) {
  442. var layEvent = event;
  443. switch (layEvent){
  444. case 'edit':
  445. $eb.createModalFrame('编辑',layList.Url({a:'edit',p:{uid:data.uid}}));
  446. break;
  447. case 'see':
  448. $eb.createModalFrame(data.nickname+'-会员详情',layList.Url({a:'see',p:{uid:data.uid}}));
  449. break;
  450. case 'del_level':
  451. $eb.$swal('delete',function(){
  452. $eb.axios.get(layList.U({a:'del_level',q:{uid:data.uid}})).then(function(res){
  453. if(res.status == 200 && res.data.code == 200) {
  454. $eb.$swal('success',res.data.msg);
  455. obj.update({vip_name:false});
  456. layList.reload();
  457. }else
  458. return Promise.reject(res.data.msg || '删除失败')
  459. }).catch(function(err){
  460. $eb.$swal('error',err);
  461. });
  462. },{
  463. title:'您确定要清除【'+data.nickname+'】的会员等级吗?',
  464. text:'清除后无法恢复请谨慎操作',
  465. confirm:'是的我要清除'
  466. })
  467. break;
  468. case 'give_level':
  469. layList.createModalFrame(data.nickname+'-赠送会员',layList.Url({a:'give_level',p:{uid:data.uid}}),{w:500,h:300});
  470. break;
  471. case 'set_group':
  472. layList.createModalFrame(data.nickname+'-设置分组',layList.Url({a:'set_group',p:{uid:data.uid}}),{w:500,h:300});
  473. break;
  474. case 'money':
  475. layList.createModalFrame(data.nickname+'-积分余额修改',layList.Url({a:'edit_other',p:{uid:data.uid}}));
  476. break;
  477. case 'open_image':
  478. $eb.openImage(data.avatar);
  479. break;
  480. }
  481. });
  482. //layList.sort('uid');
  483. //监听并执行 now_money 的排序
  484. // layList.sort('now_money');
  485. //监听 checkbox 的状态
  486. layList.switch('status',function (odj,value,name) {
  487. if(odj.elem.checked==true){
  488. layList.baseGet(layList.Url({a:'set_status',p:{status:1,uid:value}}),function (res) {
  489. layList.msg(res.msg);
  490. });
  491. }else{
  492. layList.baseGet(layList.Url({a:'set_status',p:{status:0,uid:value}}),function (res) {
  493. layList.msg(res.msg);
  494. });
  495. }
  496. });
  497. layList.search('search',function(where){
  498. if(where['user_time_type'] != '' && where['user_time'] == '') return layList.msg('请选择选择时间');
  499. if(where['user_time_type'] == '' && where['user_time'] != '') return layList.msg('请选择访问情况');
  500. layList.reload(where,true);
  501. });
  502. var action={
  503. set_status_f:function () {
  504. var ids=layList.getCheckData().getIds('uid');
  505. if(ids.length){
  506. layList.basePost(layList.Url({a:'set_status',p:{is_echo:1,status:0}}),{uids:ids},function (res) {
  507. layList.msg(res.msg);
  508. layList.reload();
  509. });
  510. }else{
  511. layList.msg('请选择要封禁的会员');
  512. }
  513. },
  514. set_status_j:function () {
  515. var ids=layList.getCheckData().getIds('uid');
  516. if(ids.length){
  517. layList.basePost(layList.Url({a:'set_status',p:{is_echo:1,status:1}}),{uids:ids},function (res) {
  518. layList.msg(res.msg);
  519. layList.reload();
  520. });
  521. }else{
  522. layList.msg('请选择要解封的会员');
  523. }
  524. },
  525. set_grant:function () {
  526. var ids=layList.getCheckData().getIds('uid');
  527. if(ids.length){
  528. var str = ids.join(',');
  529. $eb.createModalFrame('发送优惠券',layList.Url({c:'ump.store_coupon',a:'grant',p:{id:str}}),{'w':800});
  530. }else{
  531. layList.msg('请选择要发送优惠券的会员');
  532. }
  533. },
  534. set_template:function () {
  535. var ids=layList.getCheckData().getIds('uid');
  536. if(ids.length){
  537. var str = ids.join(',');
  538. }else{
  539. layList.msg('请选择要发送模板消息的会员');
  540. }
  541. },
  542. set_info:function () {
  543. var ids=layList.getCheckData().getIds('uid');
  544. if(ids.length){
  545. var str = ids.join(',');
  546. $eb.createModalFrame('发送站内信息',layList.Url({c:'user.user_notice',a:'notice',p:{id:str}}),{'w':1200});
  547. }else{
  548. layList.msg('请选择要发送站内信息的会员');
  549. }
  550. },
  551. set_custom:function () {
  552. var ids=layList.getCheckData().getIds('uid');
  553. if(ids.length){
  554. var str = ids.join(',');
  555. $eb.createModalFrame('发送客服图文消息',layList.Url({c:'wechat.wechat_news_category',a:'send_news',p:{id:str,type:1}}),{'w':1200});
  556. }else{
  557. layList.msg('请选择要发送客服图文消息的会员');
  558. }
  559. },
  560. set_group:function () {
  561. var ids=layList.getCheckData().getIds('uid');
  562. if(ids.length){
  563. var str = ids.join(',');
  564. $eb.createModalFrame('批量设置分组',layList.Url({a:'set_group',p:{uid:str}}),{w:500,h:300});
  565. }else{
  566. layList.msg('请选择要批量设置分组的会员');
  567. }
  568. },
  569. refresh:function () {
  570. layList.reload();
  571. }
  572. };
  573. $('.conrelTable').find('button').each(function () {
  574. var type=$(this).data('type');
  575. $(this).on('click',function () {
  576. action[type] && action[type]();
  577. })
  578. })
  579. $(document).on('click',".open_image",function (e) {
  580. var image = $(this).data('image');
  581. $eb.openImage(image);
  582. })
  583. //下拉框
  584. $(document).click(function (e) {
  585. $('.layui-nav-child').hide();
  586. })
  587. function dropdown(that){
  588. var oEvent = arguments.callee.caller.arguments[0] || event;
  589. oEvent.stopPropagation();
  590. var offset = $(that).offset();
  591. var top=offset.top-$(window).scrollTop();
  592. var index = $(that).parents('tr').data('index');
  593. $('.layui-nav-child').each(function (key) {
  594. if (key != index) {
  595. $(this).hide();
  596. }
  597. })
  598. if($(document).height() < top+$(that).next('ul').height()){
  599. $(that).next('ul').css({
  600. 'padding': 10,
  601. 'top': - ($(that).parent('td').height() / 2 + $(that).height() + $(that).next('ul').height()/2),
  602. 'left':offset.left-$(that).parents('td').offset().left-20,
  603. 'min-width': 'inherit',
  604. 'position': 'absolute'
  605. }).toggle();
  606. }else{
  607. $(that).next('ul').css({
  608. 'padding': 10,
  609. 'top':$(that).parent('td').height() / 2 + $(that).height(),
  610. 'left':offset.left-$(that).parents('td').offset().left-20,
  611. 'min-width': 'inherit',
  612. 'position': 'absolute'
  613. }).toggle();
  614. }
  615. }
  616. require(['vue'], function (Vue) {
  617. new Vue({
  618. el: "#app1",
  619. data: {
  620. badge: [],
  621. where: {
  622. nickname: '',
  623. group: '',
  624. excel: 0,
  625. },
  626. showtime: false,
  627. },
  628. watch: {
  629. 'where.status': function () {
  630. this.where.excel = 0;
  631. this.getBadge();
  632. layList.reload(this.where, true);
  633. },
  634. 'where.data': function () {
  635. this.where.excel = 0;
  636. this.getBadge();
  637. layList.reload(this.where, true);
  638. },
  639. 'where.type': function () {
  640. this.where.excel = 0;
  641. this.getBadge();
  642. layList.reload(this.where, true);
  643. },
  644. 'where.pay_type': function () {
  645. this.where.excel = 0;
  646. this.getBadge();
  647. layList.reload(this.where, true);
  648. }
  649. },
  650. methods: {
  651. setData: function (item) {
  652. var that = this;
  653. if (item.is_zd == true) {
  654. that.showtime = true;
  655. this.where.data = this.$refs.date_time.innerText;
  656. } else {
  657. this.showtime = false;
  658. this.where.data = item.value;
  659. }
  660. },
  661. getBadge: function () {
  662. var that = this;
  663. layList.basePost(layList.Url({c: 'order.store_order', a: 'getBadge'}), this.where, function (rem) {
  664. that.badge = rem.data;
  665. });
  666. },
  667. search: function () {
  668. this.where.excel = 0;
  669. this.getBadge();
  670. layList.reload(this.where, true);
  671. },
  672. refresh: function () {
  673. layList.reload();
  674. this.getBadge();
  675. },
  676. excel: function () {
  677. var nickname = $('#nickname').val();
  678. var group = $('#group').val();
  679. this.where['nickname'] = nickname;
  680. this.where['group'] = group;
  681. this.where.excel = 1;
  682. location.href = layList.U({c: 'user.user', a: 'get_user_list', q: this.where});
  683. this.where.excel = 0;
  684. }
  685. },
  686. mounted: function () {
  687. var that = this;
  688. that.getBadge();
  689. window.formReload = this.search;
  690. layList.laydate.render({
  691. elem: this.$refs.date_time,
  692. trigger: 'click',
  693. eventElem: this.$refs.time,
  694. range: true,
  695. change: function (value) {
  696. that.where.data = value;
  697. }
  698. });
  699. }
  700. })
  701. });
  702. </script>
  703. </div>
  704. </body>
  705. </html>