promoter.html 9.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279
  1. {extend name="public/layout"}
  2. {block name="body"}
  3. <style>
  4. .btn-bg-blue {
  5. background-color: #249efb;
  6. border: none;
  7. }
  8. .layui-table thead tr,
  9. .layui-table-header {
  10. background-color: #D8E6F1 !important;
  11. }
  12. .layui-tab-title .layui-this {
  13. background-color: #249EFB;
  14. color: #fff;
  15. }
  16. .layui-tab-title .layui-this:after {
  17. border-bottom: none;
  18. border: none;
  19. }
  20. .layui-tab-title li {
  21. background-color: #F2F2F2;
  22. margin: 0px 5px;
  23. padding: 0px 20px;
  24. }
  25. .layui-btn-xs,.layui-btn-xs:hover {
  26. border: 1px solid #249EFB;
  27. background-color: #fff;
  28. color: #249EFB;
  29. padding: 0px 10px;
  30. }
  31. .layui-btn-danger,.layui-btn-danger:hover{
  32. color: #FF5722;
  33. background-color: #fff;
  34. border: 1px solid #FF5722;
  35. padding: 0px 10px;
  36. }
  37. .layui-btn-border,.layui-btn-border:hover {
  38. background-color: #fff;
  39. color: #249EFB;
  40. border: 1px solid #249EFB;
  41. }
  42. </style>
  43. <body>
  44. <div class="layui-fluid">
  45. <div class="layui-row layui-col-space15">
  46. <div class="layui-col-md12" style="background-color:#ffffff">
  47. <div class="tplay-body-div">
  48. <div class="layui-tab">
  49. <ul class="layui-tab-title">
  50. <li class="layui-this" style="margin-left: 0px;">
  51. 新建推广
  52. </li>
  53. <li>
  54. <a href="{:url('broad/promoter_scene')}">数据报表</a>
  55. </li>
  56. </ul>
  57. </div>
  58. <div class="layui-card-body">
  59. <div class="layui-form">
  60. <div class="layui-inline">
  61. <button class="layui-btn layui-btn-border" data-type="add"><i class="layui-icon layui-icon-add-circle-fine"></i>新建团队</button>
  62. <span style="color: #afb1b6;margin-left: 20px;">新建团队以及添加员工后,当前页面可统计出本公司人员推广的总数据。</span>
  63. </div>
  64. <div class="layui-inline" style="float:right;margin-right: 100px;margin-left: 5px;">
  65. <button class="layui-btn layui-btn-primary btn-bg-blue" data-type="reload"><i class="layui-icon layui-icon-search layuiadmin-button-btn" style="color: #ffffff;"></i></button>
  66. </div>
  67. <div class="layui-inline" style="float:right;">
  68. <select id="course">
  69. <option value="">选择某场活动</option>
  70. {volist name="course" id="c"}
  71. <option value="{$c.cid}">{$c.title}
  72. </option>
  73. {/volist}
  74. </select>
  75. </div>
  76. <div class="layui-row">
  77. <table class="layui-hide" id="data" lay-filter="dataTable"></table>
  78. </div>
  79. </div>
  80. </div>
  81. </div>
  82. </div>
  83. </div>
  84. </div>
  85. {/block}
  86. {block name="js"}
  87. <script type="text/html" id="op">
  88. <a class="layui-btn layui-btn-xs" title="添加员工" lay-event="qrcode">添加员工</a>
  89. <a class="layui-btn layui-btn-xs" title="修改" lay-event="edit">修改</a>
  90. <a class="layui-btn layui-btn-xs layui-btn-danger" title="删除" lay-event="del">删除</a>
  91. </script>
  92. <script type="text/html" id="team">
  93. {{d.group_name}}(<i class="layui-icon">&#xe66f;</i><a lay-event="team">{{d.promoter}}</a>)
  94. </script>
  95. <script type="text/html" id="user">
  96. <a class="layui-btn layui-btn-primary layui-btn-xs" title="推广人" lay-event="user"><i class="layui-icon">&#xe770;</i>推广人</a>
  97. </script>
  98. <script type="text/html" id="appoint">
  99. <a class="layui-btn layui-btn-primary layui-btn-xs" title="预约用户" lay-event="appoint"><i class="layui-icon">&#xe68d;</i>预约用户</a>
  100. </script>
  101. <script type="text/html" id="join">
  102. <a class="layui-btn layui-btn-primary layui-btn-xs" title="观看人员" lay-event="join"><i class="layui-icon">&#xe6ed;</i>观看人员</a>
  103. </script>
  104. <script type="text/html" id="order">
  105. <a class="layui-btn layui-btn-primary layui-btn-xs" title="下订记录" lay-event="order"><i class="layui-icon">&#xe65e;</i>下订记录</a>
  106. </script>
  107. <script>
  108. var indexurl = '{:url("broad/promoter")}';
  109. var delurl = '{:url("broad/promoter_delgroup")}';
  110. var addurl = '{:url("broad/promoter_addgroup")}';
  111. var editurl = '{:url("broad/promoter_editgroup")}';
  112. var teamurl = '{:url("promoter/index")}';
  113. var qrcoderl = '{:url("broad/promoter_qrcode")}';
  114. var t;
  115. layui.use(['table', 'form'], function () {
  116. var form = layui.form
  117. , table = layui.table
  118. , $ = layui.jquery
  119. , active = {
  120. reload: function () {
  121. var cid = $('#course');
  122. //执行重载
  123. table.reload('dataTable', {
  124. where: {
  125. cid: cid.val()
  126. }
  127. });
  128. }
  129. , del: function () {
  130. var id = this.data.id;
  131. $.post(delurl, { id: id }, function (rs) {
  132. if (rs.code == 1) {
  133. layer.msg(rs.msg, { anim: 6 });
  134. } else {
  135. active.reload();
  136. }
  137. });
  138. }
  139. , add: function () {
  140. layer.prompt({ 'maxlength': 20, title: ['团队名称', 'color:#333333;background-color:#D8E6F1;'], }, function (value, index) {
  141. $.post(addurl, { name: value }, function (rs) {
  142. if (rs.code == 1) {
  143. layer.msg(rs.msg, { anim: 6 });
  144. } else {
  145. active.reload();
  146. }
  147. layer.close(index);
  148. });
  149. });
  150. }
  151. , edit: function () {
  152. var id = this.data.id;
  153. var oldName = this.data.group_name;
  154. layer.prompt({ 'maxlength': 20, title: ['团队名称', 'color:#333333;background-color:#D8E6F1;'], 'value': oldName }, function (value, index) {
  155. $.post(editurl, { id: id, name: value }, function (rs) {
  156. if (rs.code == 1) {
  157. layer.msg(rs.msg, { anim: 6 });
  158. } else {
  159. active.reload();
  160. }
  161. layer.close(index);
  162. });
  163. });
  164. }
  165. , team: function () {
  166. var id = this.data.id;
  167. layer.open({
  168. title: ['团队成员', 'color:#333333;background-color:#D8E6F1;'],
  169. type: 2,
  170. area: ['80%', '80%'],
  171. resize: false,
  172. content: teamurl + '?id=' + id
  173. });
  174. }
  175. , qrcode: function () {
  176. var index = layer.load();
  177. var id = this.data.id;
  178. $.post(qrcoderl, { groupId: id }, function (res) {
  179. var rs = JSON.parse(res);
  180. if (rs.code == 1) {
  181. layer.close(index);
  182. layer.msg(rs.msg, { anim: 6 });
  183. } else {
  184. layer.close(index);
  185. layer.open({
  186. type: 1,
  187. shadeClose: true,
  188. resize: false,
  189. closeBtn: 0,
  190. area: ['260px', '300px'],
  191. title: ['扫码成为推广员', 'color:#333333;background-color:#D8E6F1;'],
  192. content: '<img src="' + rs['data'] + '" style="width:250px;"/>'
  193. });
  194. }
  195. });
  196. }
  197. , user: function () {
  198. var id = this.data.id;
  199. var cid = $('#course').val();
  200. layer.open({
  201. title: ['推广用户', 'color:#333333;background-color:#D8E6F1;'],
  202. type: 2,
  203. area: ['80%', '80%'],
  204. resize: false,
  205. content: "{:url('broad/promoter_user')}" + '?id=' + id + '&cid=' + cid
  206. });
  207. }
  208. , join: function () {
  209. var id = this.data.id;
  210. var cid = $('#course').val();
  211. layer.open({
  212. title: ['用户观看', 'color:#333333;background-color:#D8E6F1;'],
  213. type: 2,
  214. area: ['80%', '80%'],
  215. resize: false,
  216. content: "{:url('broad/promoter_join')}" + '?id=' + id + '&cid=' + cid
  217. });
  218. }
  219. , order: function () {
  220. var id = this.data.id;
  221. var cid = $('#course').val();
  222. layer.open({
  223. title: ['用户下单', 'color:#333333;background-color:#D8E6F1;'],
  224. type: 2,
  225. area: ['80%', '80%'],
  226. resize: false,
  227. content: "{:url('broad/promoter_order')}" + '?id=' + id + '&cid=' + cid
  228. });
  229. }
  230. , appoint: function () {
  231. var id = this.data.id;
  232. var cid = $('#course').val();
  233. layer.open({
  234. title: ['用户预约', 'color:#333333;background-color:#D8E6F1;'],
  235. type: 2,
  236. area: ['80%', '80%'],
  237. resize: false,
  238. content: "{:url('broad/promoter_appoint')}" + '?id=' + id + '&cid=' + cid
  239. });
  240. }
  241. };
  242. //展示已知数据
  243. t = table.render({
  244. elem: '#data'
  245. , url: indexurl
  246. , page: true
  247. , height: 'full-180'
  248. , autoSort: true
  249. , cols: [[ //标题栏
  250. { field: 'group_name', templet: '#team', title: '团队名', fixed: 'left' }
  251. , { field: 'user', templet: '#user', title: '成功推广列表'}
  252. , { field: 'appoint', templet: '#appoint', title: '成功预约列表'}
  253. , { field: 'join', templet: '#join', title: '观看直播列表'}
  254. , { field: 'order', templet: '#order', title: '成功下单列表'}
  255. , { fixed: 'right', title: '操作', toolbar: '#op', width: 190 }
  256. ]]
  257. , id: 'dataTable'
  258. });
  259. $('.layui-form .layui-btn').on('click', function () {
  260. var type = $(this).data('type');
  261. active[type] ? active[type].call(this) : '';
  262. });
  263. table.on('tool(dataTable)', function (obj) {
  264. var type = obj.event;
  265. active[type] ? active[type].call(obj) : '';
  266. })
  267. });
  268. </script>
  269. {/block}