integrallist.html 9.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267
  1. <div class="layui-fluid">
  2. <div class="layui-card">
  3. <div class="layui-form layui-form-pane layui-card-header layuiadmin-card-header-auto" lay-filter="LAY-user-integrallist-search">
  4. <div class="layui-form-item">
  5. <div class="layui-inline">
  6. <label class="layui-form-label">姓名/手机号</label>
  7. <div class="layui-input-block">
  8. <input type="text" name="keywords" placeholder="请输入用户..." autocomplete="off" class="layui-input">
  9. </div>
  10. </div>
  11. <div class="layui-inline">
  12. <label class="layui-form-label">类型</label>
  13. <div class="layui-input-block">
  14. <select name="itype">
  15. <option value="">全部类型</option>
  16. <option value="1">推荐奖励</option>
  17. <option value="2">积分充值</option>
  18. <option value="3">积分兑现</option>
  19. <option value="4">招聘相关</option>
  20. <option value="5">订单相关</option>
  21. <option value="6">供人相关</option>
  22. <option value="7">兑购消费</option>
  23. <option value="8">其他</option>
  24. </select>
  25. </div>
  26. </div>
  27. <div class="layui-inline">
  28. <label class="layui-form-label">状态</label>
  29. <div class="layui-input-block">
  30. <select name="itype">
  31. <option value="">全部状态</option>
  32. <option value="1">待处理</option>
  33. <option value="2">已成功</option>
  34. </select>
  35. </div>
  36. </div>
  37. <div class="layui-inline">
  38. <button class="layui-btn" lay-submit lay-filter="LAY-user-integrallist-search-btn">
  39. <i class="layui-icon layui-icon-search layuiadmin-button-btn"></i>
  40. </button>
  41. <button class="layui-btn" lay-submit lay-filter="LAY-user-integrallist-export-btn">
  42. 导出
  43. </button>
  44. </div>
  45. </div>
  46. </div>
  47. <div class="layui-card-body">
  48. <div style="padding-bottom: 10px;">
  49. <button class="layui-btn layuiadmin-btn" data-type="batchdel">删除</button>
  50. <button class="layui-btn layuiadmin-btn" data-type="batchitype">批量通过兑现记录</button>
  51. </div>
  52. <table id="LAY-user-integrallist-table" lay-filter="LAY-user-integrallist-table"></table>
  53. <script type="text/html" id="useravatarTpl">
  54. <div id="picuser{{d.id}}" lay-event="picuser">
  55. <img style="width: 100%; height: 100%;" src="{{d.user.avatar}}">
  56. </div>
  57. </script>
  58. <script type="text/html" id="usernicknameTpl">
  59. {{d.user.nickname}}
  60. </script>
  61. <script type="text/html" id="userrealnameTpl">
  62. {{d.user.realname}}
  63. </script>
  64. <script type="text/html" id="usermobileTpl">
  65. {{d.user.mobile}}
  66. </script>
  67. <script type="text/html" id="useropenbankTpl">
  68. {{d.user.bankcard ? d.user.bankcard.openbank : ""}}
  69. </script>
  70. <script type="text/html" id="useraccountTpl">
  71. {{d.user.bankcard ? d.user.bankcard.account : ""}}
  72. </script>
  73. <script type="text/html" id="usernumberTpl">
  74. {{d.user.bankcard ? d.user.bankcard.number : ""}}
  75. </script>
  76. <script type="text/html" id="setTpl">
  77. {{# if(d.itype == 3 && d.status == 1){ }}
  78. <a class="layui-btn layui-btn-xs" lay-event="setstatus"><i class="layui-icon layui-icon-ok"></i>已处理</a>
  79. {{# } else if (d.itype == 3 && d.status == 2) { }}
  80. <a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="setstatus"><i class="layui-icon layui-icon-edit"></i>待处理</a>
  81. {{# } }}
  82. <a class="layui-btn layui-btn-normal layui-btn-xs" lay-event="edit"><i class="layui-icon layui-icon-edit"></i>编辑</a>
  83. <a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del"><i class="layui-icon layui-icon-delete"></i>删除</a>
  84. </script>
  85. </div>
  86. </div>
  87. </div>
  88. <script>
  89. layui.config({
  90. base: '/static/echoui/' //静态资源所在路径
  91. }).extend({
  92. index: 'lib/index' //主入口模块
  93. }).use(['index', 'form', 'set', 'table'], function() {
  94. var $ = layui.$,
  95. setter = layui.setter,
  96. admin = layui.admin,
  97. form = layui.form,
  98. table = layui.table;
  99. form.render();
  100. table.render({
  101. elem: '#LAY-user-integrallist-table',
  102. url: setter.baseAdminUrl + 'user/listintegral',
  103. cols: [
  104. [
  105. { type: 'checkbox', fixed: 'left' },
  106. { field: 'id', width: 80, title: 'ID', sort: true },
  107. { field: 'avatar', width: 60, title: '头像', templet: '#useravatarTpl' },
  108. { field: 'nickname', title: '昵称', templet: '#usernicknameTpl' },
  109. { field: 'realname', title: '姓名', templet: '#userrealnameTpl' },
  110. { field: 'mobile', title: '手机号', templet: '#usermobileTpl' },
  111. { field: 'bankcardopenbank', title: '开户行', templet: '#useropenbankTpl', hide: true },
  112. { field: 'bankcardaccount', title: '帐户名', templet: '#useraccountTpl', hide: true },
  113. { field: 'bankcardnumber', title: '账户号', templet: '#usernumberTpl', hide: true },
  114. { field: 'title', title: '积分标题', edit: 'text', width: 200 },
  115. { field: 'itype_text', width: 150, title: '类型', align: 'center' },
  116. { field: 'status_text', width: 150, title: '状态', align: 'center' },
  117. { field: 'intvalue', title: '积分变更值', edit: 'text', width: 120, sort: true },
  118. { field: 'intmoney', title: '积分金额', edit: 'text', width: 120, sort: true },
  119. { field: 'remark', title: '备注', edit: 'text', width: 200 },
  120. { field: 'createtime', title: '记录时间', width: 170, sort: true },
  121. { title: '操作', minWidth: 230, align: 'right', fixed: 'right', toolbar: '#setTpl' }
  122. ]
  123. ],
  124. page: true,
  125. limit: 50,
  126. toolbar: true,
  127. totalRow: true,
  128. cellMinWidth: 150,
  129. text: '对不起,加载出现异常!'
  130. });
  131. form.on('submit(LAY-user-integrallist-search-btn)', function(data) {
  132. table.reload('LAY-user-integrallist-table', {
  133. where: data.field,
  134. page: {
  135. curr: 1
  136. }
  137. });
  138. });
  139. form.on('submit(LAY-user-integrallist-export-btn)', function(data) {
  140. var url = setter.baseAdminUrl + 'user/exportintegral?';
  141. for (var item in data.field) {
  142. url = url + '&' + item + '=' + data.field[item];
  143. }
  144. window.location.href = url;
  145. });
  146. //监听单元格编辑
  147. table.on('edit(LAY-user-integrallist-table)', function(obj) {
  148. var id = obj.data.id,
  149. field = obj.field,
  150. value = obj.value;
  151. admin.req({
  152. url: setter.baseAdminUrl + 'user/fieldintegral',
  153. data: { id: id, field: field, value: value },
  154. done: function(res) {
  155. layer.msg('修改成功');
  156. // layui.table.reload('LAY-user-integrallist-table');
  157. }
  158. });
  159. });
  160. var active = {
  161. batchdel: function() {
  162. var checkStatus = table.checkStatus('LAY-user-integrallist-table'),
  163. checkData = checkStatus.data; //得到选中的数据
  164. if (checkData.length === 0) {
  165. return layer.msg('请选择数据');
  166. }
  167. var idarr = [];
  168. for (var i = 0; i < checkData.length; i++) {
  169. idarr.push(checkData[i].id);
  170. }
  171. layer.confirm('确定删除所选用户积分记录吗?', function(index) {
  172. admin.req({
  173. url: setter.baseAdminUrl + 'user/delintegral',
  174. data: {
  175. idarr: idarr
  176. },
  177. done: function(res) {
  178. table.reload('LAY-user-integrallist-table');
  179. layer.msg('已删除');
  180. }
  181. });
  182. layer.close(index);
  183. });
  184. },
  185. batchstatus: function() {
  186. var checkStatus = table.checkStatus('LAY-user-integrallist-table'),
  187. checkData = checkStatus.data; //得到选中的数据
  188. if (checkData.length === 0) {
  189. return layer.msg('请选择数据');
  190. }
  191. var idarr = [];
  192. for (var i = 0; i < checkData.length; i++) {
  193. idarr.push(checkData[i].id);
  194. }
  195. layer.confirm('确定批量通过所选兑现记录吗?', function(index) {
  196. admin.req({
  197. url: setter.baseAdminUrl + 'user/statusintegralall',
  198. data: {
  199. idarr: idarr
  200. },
  201. done: function(res) {
  202. table.reload('LAY-user-integrallist-table');
  203. layer.msg('已批量通过');
  204. }
  205. });
  206. layer.close(index);
  207. });
  208. }
  209. };
  210. table.on('tool(LAY-user-integrallist-table)', function(obj) {
  211. var data = obj.data;
  212. if (obj.event === 'del') {
  213. layer.confirm('确定删除此用户积分记录吗?', function(index) {
  214. admin.req({
  215. url: setter.baseAdminUrl + 'user/delintegral',
  216. data: {
  217. idarr: [data.id]
  218. },
  219. done: function(res) {
  220. obj.del();
  221. layer.msg('已删除');
  222. }
  223. });
  224. layer.close(index);
  225. });
  226. } else if (obj.event === 'edit') {
  227. var index = layer.open({
  228. type: 2,
  229. title: '编辑用户积分',
  230. content: 'integralupdate.html?id=' + data.id,
  231. maxmin: true,
  232. area: ['550px', '550px']
  233. });
  234. layer.full(index);
  235. } else if (obj.event === 'setstatus') {
  236. admin.req({
  237. url: setter.baseAdminUrl + 'user/statusintegral',
  238. data: { id: data.id },
  239. done: function(res) {
  240. layer.msg('兑现类型状态修改成功');
  241. layui.table.reload('LAY-user-integrallist-table');
  242. }
  243. });
  244. } else if (obj.event === 'picuser') {
  245. layer.photos({
  246. photos: '#picuser' + data.id,
  247. anim: 5,
  248. });
  249. }
  250. });
  251. $('.layui-btn.layuiadmin-btn').on('click', function() {
  252. var type = $(this).data('type');
  253. active[type] ? active[type].call(this) : '';
  254. });
  255. });
  256. </script>