list.html 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470
  1. {extend name="public/layout" /} {block name="title"}活动管理{/block} {block name="body"}
  2. <link rel="stylesheet" href="__LAYUI__/common.css" media="all">
  3. <style type="text/css">
  4. html,
  5. body {
  6. display: block;
  7. min-width: 1100px;
  8. font-family: inherit;
  9. }
  10. .layui-table thead tr,
  11. .layui-table-header {
  12. background-color: #D8E6F1 !important;
  13. }
  14. .layui-fluid {
  15. display: block;
  16. box-shadow: 0 0 4px 0 #B6CADE;
  17. border-radius: 5px;
  18. margin: 15px;
  19. background-color: #ffffff;
  20. }
  21. .layui-form-label {
  22. width: auto;
  23. }
  24. .layui-laydate-range {
  25. width: 581px;
  26. }
  27. .layui-table-page>div {
  28. display: flex;
  29. justify-content: flex-start;
  30. }
  31. .layui-btn-primary,
  32. .layui-btn-primary:hover {
  33. border: 1px solid #249EFB;
  34. background-color: #fff;
  35. color: #249EFB;
  36. }
  37. .layui-form-item .layui-inline {
  38. margin-right: 0px;
  39. }
  40. .layui-btn-normal,
  41. .layui-btn-normal:hover {
  42. border: 1px solid #249EFB;
  43. background-color: #fff;
  44. color: #249EFB;
  45. }
  46. .layui-btn-danger,
  47. .layui-btn-danger:hover {
  48. color: #FF5722;
  49. border: 1px solid #FF5722;
  50. background-color: #fff;
  51. }
  52. .layui-form-select dl {
  53. z-index: 999999999;
  54. }
  55. </style>
  56. <body>
  57. <div class="layui-fluid">
  58. <div class="layui-card">
  59. <div class="layui-form layui-card-header layuiadmin-card-header-auto">
  60. <div class="layui-form-item">
  61. <div class="layui-inline" style="float: left;">
  62. {auth:check name="activity/add"}
  63. <button class="layui-btn layui-btn-primary layuiadmin-btn-course" data-type="add">添加活动</button>
  64. {/auth:check}
  65. </div>
  66. <div style="float:right;">
  67. <div class="layui-inline">
  68. <label class="layui-form-label">活动名称</label>
  69. <div class="layui-input-inline">
  70. <input type="text" name="keyword" placeholder="请输入活动名称" autocomplete="off"
  71. class="layui-input">
  72. </div>
  73. </div>
  74. <!-- <div class="layui-inline">
  75. <label class="layui-form-label">分类</label>
  76. <div class="layui-input-inline">
  77. <select name="type" lay-filter="type" id="type">
  78. <option value="">请选择分类</option>
  79. </select>
  80. </div>
  81. </div> -->
  82. <div class="layui-inline">
  83. <label class="layui-form-label">活动时间</label>
  84. <div class="layui-input-inline select-date">
  85. <input type="text" name="date" id="select_date" placeholder="活动时间" autocomplete="off"
  86. class="layui-input">
  87. </div>
  88. </div>
  89. <!-- <div class="layui-inline">
  90. <label class="layui-form-label">标签</label>
  91. <div class="layui-input-inline">
  92. <select name="label" id="label">
  93. <option value="">请选择标签</option>
  94. </select>
  95. </div>
  96. </div> -->
  97. <div class="layui-inline" style="margin-right: 0px;">
  98. <label class="layui-form-label">上传人</label>
  99. <div class="layui-input-inline">
  100. <select name="employee_id" id="employee">
  101. <option value="">请选择人员</option>
  102. {volist name="employee" id="e"}
  103. <option value="{$e.id}">{$e.name}</option>
  104. {/volist}
  105. </select>
  106. </div>
  107. </div>
  108. <div class="layui-inline">
  109. <button class="layui-btn layuiadmin-btn-course searchBtn" lay-submit
  110. lay-filter="LAY-user-front-search">
  111. <i class="layui-icon layui-icon-search layuiadmin-button-btn"></i>
  112. </button>
  113. </div>
  114. </div>
  115. </div>
  116. </div>
  117. <div class="layui-card-body" style="text-align: center;">
  118. <table id="company-activity" lay-filter="company-activity"></table>
  119. <script type="text/html" id="cover">
  120. {{# if(d.cover){ }}
  121. <img style="display: inline-block; width: 25%; height: 100%;" src="{{d.cover}}?x-oss-process=image/resize,w_50">
  122. {{# }else{ }}
  123. <span style="color: #cccccc;">无</span>
  124. {{# } }}
  125. </script>
  126. <script type="text/html" id="numbertpl">
  127. {{# if(d.number){ }}
  128. <span>{{d.number}}</span>
  129. {{# }else{ }}
  130. <span style="color: #cccccc;">无</span>
  131. {{# } }}
  132. </script>
  133. <script type="text/html" id="type">
  134. {{# if(d.type == 1){ }}
  135. 获客
  136. {{# }else{ }}
  137. 定金
  138. {{# } }}
  139. </script>
  140. <script type="text/html" id="titletpl">
  141. {{# if(d.title){ }}
  142. <span>{{d.title}}</span>
  143. {{# }else{ }}
  144. <span style="color: #cccccc;">无</span>
  145. {{# } }}
  146. </script>
  147. <script type="text/html" id="start_datetpl">
  148. {{# if(d.start_date){ }}
  149. <span>{{d.start_date}}</span>
  150. {{# }else{ }}
  151. <span style="color: #cccccc;">无</span>
  152. {{# } }}
  153. </script>
  154. <script type="text/html" id="end_datetpl">
  155. {{# if(d.end_date){ }}
  156. <span>{{d.end_date}}</span>
  157. {{# }else{ }}
  158. <span style="color: #cccccc;">无</span>
  159. {{# } }}
  160. </script>
  161. <script type="text/html" id="activitype">
  162. {{# if(d.cate){ }}
  163. <span>外场</span>
  164. {{# }else{ }}
  165. <span>内场</span>
  166. {{# } }}
  167. </script>
  168. <script type="text/html" id="timestate">
  169. {{# if(d.timestate == 0){ }}
  170. <span>预热中</span>
  171. {{# }else if(d.timestate == 1){ }}
  172. <span>进行中</span>
  173. {{# }else{ }}
  174. <span>已结束</span>
  175. {{# } }}
  176. </script>
  177. <script type="text/html" id="show">
  178. <input type="checkbox" name="show" value="{{d.id}}" lay-skin="switch" lay-text="上架|下架" lay-filter="show" {{ d.show == 1 ? 'checked' : '' }} id="clickshow">
  179. </script>
  180. <script type="text/html" id="table-user-bind">
  181. {auth:check name="activity/add"}
  182. <a class="layui-btn layui-btn-normal layui-btn-xs" lay-event="edit">
  183. 编辑
  184. </a>
  185. {/auth:check}
  186. <a class="layui-btn layui-btn-normal layui-btn-xs" lay-event="customer">
  187. 客户详情
  188. </a>
  189. <a class="layui-btn layui-btn-normal layui-btn-xs" lay-event="ranking">
  190. 排行榜
  191. </a>
  192. <a class="layui-btn layui-btn-normal layui-btn-xs" lay-event="assign">指派</a>
  193. {auth:check name="activity/del"}
  194. <!-- <a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">
  195. <i class="layui-icon layui-icon-delete"></i>
  196. 删除
  197. </a> -->
  198. {/auth:check}
  199. <!-- <a class="layui-btn layui-btn-normal layui-btn-xs" lay-event="end">
  200. 手动结束
  201. </a> -->
  202. </script>
  203. <script type="text/html" id="employee_name">
  204. {{# if(d.opt_name){ }}
  205. <span>{{d.opt_name}}</span>
  206. {{# }else{ }}
  207. <span style="color: #cccccc;">无</span>
  208. {{# } }}
  209. </script>
  210. <script type="text/html" id="qrcode_name">
  211. {{# if(d.qrcode_name){ }}
  212. <span>{{d.qrcode_name}}</span>
  213. {{# }else{ }}
  214. <span style="color: #cccccc;">无</span>
  215. {{# } }}
  216. </script>
  217. </div>
  218. </div>
  219. </div>
  220. </body>
  221. {/block} {block name="js"}
  222. <script>
  223. layui.config({
  224. base: '__LAYUI__/',
  225. urlbase: '/sys'
  226. }).extend({
  227. index: 'lib/index' //主入口模块
  228. }).use(['index', 'form', 'table', 'laydate'], function () {
  229. var $ = layui.$,
  230. form = layui.form,
  231. laydate = layui.laydate,
  232. table = layui.table;
  233. //日期范围
  234. laydate.render({
  235. elem: '#select_date',
  236. range: true
  237. });
  238. //监听搜索
  239. form.on('submit(LAY-user-front-search)', function (data) {
  240. var field = data.field;
  241. //执行重载
  242. table.reload('company-activity', {
  243. where: field
  244. });
  245. });
  246. //事件
  247. var active = {
  248. add: function () {
  249. layer.open({
  250. type: 2,
  251. title: ['活动添加', 'color:#333333;background-color:#D8E6F1;'],
  252. content: '{:url("activity/add")}',
  253. resize: false,
  254. area: ['80%', '80%'],
  255. // btn: ['确定', '取消'],
  256. yes: function (index, layero) {
  257. //点击确认触发 iframe 内容中的按钮提交
  258. // var submit = layero.find('iframe').contents().find("#activity-submit");
  259. // submit.click();
  260. }
  261. });
  262. }
  263. };
  264. //活动列表
  265. table.render({
  266. elem: '#company-activity',
  267. // autoSort: false,
  268. // url: layui.setter.urlbase + '/Activity/list.html',
  269. url: "{:url('activity/list')}",
  270. height: 'full-160',
  271. cols: [
  272. [
  273. // {align:'center',field: 'number',title: '活动编号',width: '7%',templet:'#numbertpl'},
  274. { align: 'center', field: 'title', title: '活动名称', width: '15%', templet: '#titletpl' },
  275. { align: 'center', field: 'cate', title: '活动类型', width: '7%', templet: '#activitype' },
  276. { align: 'center', field: 'cover', title: '活动封面', minWidth: 100, templet: '#cover', width: '7%' },
  277. { align: 'center', field: 'start_date', title: '活动开始时间', minWidth: 100, templet: '#start_datetpl' },
  278. { align: 'center', field: 'end_date', title: '活动结束时间', minWidth: 100, templet: '#end_datetpl' },
  279. { align: 'center', field: 'timestate', title: '活动状态', minWidth: 100, templet: '#timestate' },
  280. { align: 'center', field: 'view', title: '浏览量', minWidth: 100, width: '6%' },
  281. { align: 'center', field: 'user_count', title: '邀约客户', minWidth: 100, width: '6%' },
  282. { align: 'center', title: '上下架', minWidth: 100, templet: '#show' },
  283. { align: 'center', templet: '#employee_name', title: '上传人', maxWidth: 80 },
  284. { align: 'center', templet: '#qrcode_name', title: '扫码人员', maxWidth: 80 },
  285. { align: 'center', title: '操作', width: '20%', align: 'center', toolbar: '#table-user-bind', fixed: 'right' }
  286. ]
  287. ],
  288. page: true,
  289. // limit: 30,
  290. // height: 'full-220',
  291. text: '对不起,加载出现异常!'
  292. });
  293. //监听审核
  294. table.on('tool(company-activity)', function (obj) {
  295. var data = obj.data;
  296. if (obj.event === 'customer') {
  297. layer.open({
  298. type: 2,
  299. title: ['客户详情', 'color:#333333;background-color:#D8E6F1;'],
  300. content: "{:url('activity/customer')}?id=" + data.id + "&cate=" + data.cate,
  301. // content: layui.setter.urlbase + "/activity/edit/id/" + data.id,
  302. resize: false,
  303. area: ['80%', '80%'],
  304. // btn: ['确定', '取消'],
  305. yes: function (index, layero) {
  306. //点击确认触发 iframe 内容中的按钮提交
  307. // var submit = layero.find('iframe').contents().find("#activity-submit");
  308. // submit.click();
  309. }
  310. });
  311. } else if (obj.event === 'ranking') {
  312. layer.open({
  313. type: 2,
  314. title: ['排行榜', 'color:#333333;background-color:#D8E6F1;'],
  315. content: "{:url('activity/ranking')}?id=" + data.id,
  316. // content: layui.setter.urlbase + "/activity/edit/id/" + data.id,
  317. resize: false,
  318. area: ['80%', '80%'],
  319. // btn: ['确定', '取消'],
  320. yes: function (index, layero) {
  321. //点击确认触发 iframe 内容中的按钮提交
  322. // var submit = layero.find('iframe').contents().find("#activity-submit");
  323. // submit.click();
  324. }
  325. });
  326. } else if (obj.event === 'edit') {
  327. layer.open({
  328. type: 2,
  329. title: ['活动修改', 'color:#333333;background-color:#D8E6F1;'],
  330. content: "{:url('activity/edit')}?id=" + data.id,
  331. // content: layui.setter.urlbase + "/activity/edit/id/" + data.id,
  332. resize: false,
  333. area: ['80%', '80%'],
  334. // btn: ['确定', '取消'],
  335. yes: function (index, layero) {
  336. //点击确认触发 iframe 内容中的按钮提交
  337. // var submit = layero.find('iframe').contents().find("#activity-submit");
  338. // submit.click();
  339. }
  340. });
  341. } else if (obj.event === 'del') {
  342. layer.confirm('确定删除此活动?', { title: ['信息', 'color:#333333;background-color:#D8E6F1;'], }, function (index) {
  343. $.ajax({
  344. type: 'post',
  345. // url: layui.setter.urlbase + "/activity/del",
  346. url: "{:url('activity/del')}",
  347. data: {
  348. id: data.id
  349. },
  350. success: function (res) {
  351. if (res.code == 0) {
  352. layer.msg(res.msg, {
  353. anim: 0
  354. }, function () {
  355. //执行重载
  356. table.reload('company-activity');
  357. // obj.del();
  358. layer.close(index);
  359. });
  360. } else {
  361. layer.msg(res.msg, {
  362. anim: 6
  363. });
  364. }
  365. }
  366. });
  367. });
  368. } else if (obj.event === 'end') {
  369. layer.confirm('确定结束此活动?', { title: ['信息', 'color:#333333;background-color:#D8E6F1;'], }, function (index) {
  370. $.ajax({
  371. type: 'post',
  372. // url: layui.setter.urlbase + "/activity/del",
  373. url: "{:url('activity/end')}",
  374. data: {
  375. id: data.id
  376. },
  377. success: function (res) {
  378. if (res.code == 0) {
  379. layer.msg(res.msg, {
  380. anim: 0
  381. }, function () {
  382. //执行重载
  383. table.reload('company-activity');
  384. // obj.del();
  385. layer.close(index);
  386. });
  387. } else {
  388. layer.msg(res.msg, {
  389. anim: 6
  390. });
  391. }
  392. }
  393. });
  394. });
  395. } else if (obj.event === 'assign'){
  396. layer.open({
  397. type: 2,
  398. title: ['指派', 'color:#333333;background-color:#D8E6F1;'],
  399. content: '{:url("activity/activity_assign")}?id=' + data.id,
  400. area: ['80%', '80%'],
  401. btn: ['确定', '取消'],
  402. yes: function (index, layero) {
  403. layer.close(index);
  404. //点击确认触发 iframe 内容中的按钮提交
  405. },
  406. end: function () {
  407. }
  408. });
  409. }
  410. });
  411. form.on('switch(show)', function (obj) {
  412. var id = obj.value;
  413. $.ajax({
  414. type: "post",
  415. url: '{:url("activity/show")}',
  416. data: {
  417. id: id
  418. },
  419. success: function (res) {
  420. layer.msg(res.msg);
  421. }
  422. });
  423. });
  424. $('.layui-btn.layuiadmin-btn-course').on('click', function () {
  425. var type = $(this).data('type');
  426. active[type] ? active[type].call(this) : '';
  427. });
  428. //发布
  429. form.on('switch(show)', function (obj) {
  430. // console.log(obj)
  431. // return false;
  432. var id = obj.value;
  433. $.ajax({
  434. type: "post",
  435. url: '{:url("activity/show")}',
  436. data: {
  437. id: id,
  438. cate: 'case'
  439. },
  440. success: function (res) {
  441. layer.msg(res.msg, { time: 2000 });
  442. }
  443. });
  444. });
  445. });
  446. </script>
  447. {/block}