123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417 |
- {extend name="public/layout" /} {block name="title"}营销工具-渠道活码{/block} {block name="body"}
- <link rel="stylesheet" href="__LAYUI__/common.css" media="all">
- <style>
- html,
- body {
- display: block;
- min-width: 950px;
- }
- .layui-fluid {
- display: block;
- box-shadow: 0 0 4px 0 #b6cade;
- border-radius: 5px;
- margin: 15px;
- background-color: #ffffff;
- }
- .layuiadmin-btn-qrcode {
- background-color: #ffffff;
- color: #249efb;
- border: 1px solid #249efb;
- }
- .layuiadmin-btn-qrcode:hover {
- color: #249efb;
- }
- .layui-form-onswitch {
- border-color: #249efb;
- background-color: #249efb;
- height: 24px;
- line-height: 24px;
- }
- .layui-form-switch {
- height: 24px;
- line-height: 24px;
- }
- .nowbtn {
- border: 1px solid #249EFB;
- background-color: #fff;
- color: #249EFB;
- }
- .nowbtn:hover {
- border: 1px solid #249EFB;
- background-color: #fff;
- color: #249EFB;
- }
- .layui-table thead tr,
- .layui-table-header {
- background-color: #D8E6F1 !important;
- }
- .inline-block {
- display: inline-block;
- }
- .codeicon {
- height: 16px;
- cursor: pointer;
- }
- .copyicon {
- margin-left: 12px;
- }
- .mask {
- position: fixed;
- width: 100%;
- height: 100vh;
- background-color: rgba(0, 0, 0, 0.5);
- z-index: 9999999;
- top: 0px;
- left: 0px;
- display: flex;
- justify-content: center;
- align-items: center;
- }
- .maskBlock {
- width: 500px;
- height: 500px;
- background-color: #fff;
- display: flex;
- flex-direction: column;
- justify-content: center;
- align-items: center;
- position: relative;
- }
- .qrcode {
- width: 150px;
- height: 150px;
- }
- .qrtext {
- margin-top: 20px;
- }
- .mask-title {
- position: absolute;
- top: 0px;
- left: 0px;
- width: 100%;
- background-color: #D8E6F1;
- padding: 10px 20px;
- display: flex;
- justify-content: space-between;
- align-items: center;
- }
- #downloadQrCode {
- margin-top: 20px;
- }
- .layui-btn-normal,.layui-btn-normal:hover {
- border:1px solid #249EFB;
- background-color: #fff;
- color: #249EFB;
- }
- .layui-btn-danger,.layui-btn-danger:hover {
- color: #FF5722;
- border: 1px solid #FF5722;
- background-color: #fff;
- }
- .layui-form-label{
- width: auto;
- }
- .layui-form-selected dl{z-index:99999999 ;}
- </style>
- <body>
- <div class="layui-fluid">
- <div class="layui-card">
- <div class="layui-form layui-card-header layuiadmin-card-header-auto">
- <div class="layui-form-item clearfix relative">
- <div style="padding-bottom: 10px; float:left">
- {auth:check name="huoma/add_code"}
- <button class="layui-btn layuiadmin-btn-qrcode" data-type="add">创建渠道活码</button>
- {/auth:check}
- </div>
- <div style="float:right;">
- <div class="layui-inline">
- <label class="layui-form-label">活动名称</label>
- <div class="layui-input-inline">
- <input type="text" name="keyword" placeholder="请输入活动名称" autocomplete="off" class="layui-input">
- </div>
- </div>
- <div class="layui-inline">
- <label class="layui-form-label">有效时间</label>
- <div class="layui-input-inline select-date">
- <input type="text" name="date" id="select_date" placeholder="有效时间" autocomplete="off" class="layui-input">
- </div>
- </div>
- <div class="layui-inline" style="margin-right: 0px;">
- <label class="layui-form-label">上传人</label>
- <div class="layui-input-inline">
- <select name="employee_id" id="employee">
- <option value="">请选择人员</option>
- {volist name="employee" id="e"}
- <option value="{$e.id}">{$e.name}</option>
- {/volist}
- </select>
- </div>
- </div>
- <div class="layui-inline" style="margin-right: 0;">
- <button class="layui-btn layuiadmin-btn-course searchBtn submitbtn" lay-submit lay-filter="LAY-user-front-search">
- <i class="layui-icon layui-icon-search layuiadmin-button-btn"></i>
- </button>
- </div>
- </div>
- </div>
- </div>
- <div class="layui-card-body layui-form">
- <table class="layui-table" id="livecode" lay-filter="livecode">
- </table>
- <script type="text/html" id="qrLinkOperate">
- <img class="inline-block codeicon" src="__STATIC__/img/qrcodeicon.png" lay-event="viewqr" alt=""/>
- <img class="inline-block codeicon copyicon" src="__STATIC__/img/copyicon.png" lay-event="copyqr" alt="" />
- </script>
- <script type="text/html" id="show">
- <input type="checkbox" name="show" value="{{d.id}}" lay-skin="switch" lay-text="上架|下架" lay-filter="show" {{ d.status == 1 ? 'checked' : '' }} id="clickshow">
- </script>
- <script type="text/html" id="table-user-bind">
- {auth:check name="huoma/add_code"}
- <a class="layui-btn layui-btn-normal layui-btn-xs" lay-event="edit">
- 编辑
- </a>
- {/auth:check}
- <a class="layui-btn layui-btn-normal layui-btn-xs" lay-event="qrStatistics">
- 报名统计
- </a>
- {auth:check name="huoma/del_code"}
- <a class="layui-btn layui-btn-normal layui-btn-xs layui-btn-danger" lay-event="del">
- 删除
- </a>
- {/auth:check}
- </script>
- <script type="text/html" id="switch_type">
- {{# if(d.switch_type == 1){ }}
- 轮循切换
- {{# }else if(d.switch_type == 2){ }}
- 顺序切换
- {{# }else if(d.switch_type == 3){ }}
- 随机切换
- {{# } }}
- </script>
- <script type="text/html" id="status">
- {{# if(d.status == 1){ }}
- 正常
- {{# }else if(d.status == 2){ }}
- 关闭
- {{# } }}
- </script>
- <script type="text/html" id="employee_name">
- {{# if(d.opt_name){ }}
- <span>{{d.opt_name}}</span>
- {{# }else{ }}
- <span style="color: #cccccc;">无</span>
- {{# } }}
- </script>
- </div>
- </div>
- </div>
- <div class="mask layui-hide">
- <div class="maskBlock">
- <div class="mask-title">
- <span>二维码</span>
- <i class="layui-icon layui-icon-close"
- style="color: #333;font-weight: 700;font-size: 18px;cursor: pointer;"></i>
- </div>
- <div id="qrcode"></div>
- <div class="layui-btn" id="downloadQrCode">下载二维码</div>
- <div class="qrtext">右键单击图片下载二维码</div>
- </div>
- </div>
- </body>
- {/block} {block name="js"}
- <script src="__STATIC__/js/qrcode.js" type="text/javascript" charset="utf-8"></script>
- <script>
- layui.config({
- base: '__LAYUI__/',
- urlbase: '/sys'
- }).extend({
- index: 'lib/index' //主入口模块
- }).use(['index', 'form', 'table','laydate'], function () {
- var $ = layui.$,
- form = layui.form,
- laydate = layui.laydate,
- table = layui.table;
- //日期范围
- laydate.render({
- elem: '#select_date',
- range:true
- });
- //监听搜索
- form.on('submit(LAY-user-front-search)', function(data) {
- var field = data.field;
- //执行重载
- table.reload('livecode', {
- where: field
- });
- });
- document.onkeydown=function(event){
- var e = event || window.event || arguments.callee.caller.arguments[0];
- if(e && e.keyCode==13){
- $(".submitbtn").trigger("click");
- }
- };
- //事件
- var active = {
- add: function () {
- layer.open({
- type: 2,
- title: ['创建活码', 'color:#333333;background-color:#D8E6F1;'],
- content: '{:url("huoma/add_code")}',
- maxmin: true,
- area: ['80%', '80%']
- });
- },
- };
- $('.layui-icon-close').click(() => {
- $('.mask').addClass('layui-hide');
- $('#qrcode').empty()
- })
- $('#downloadQrCode').click(() => {
- download();
- })
- function download() {
- let myCanvas = document.getElementById('qrcode').getElementsByTagName('canvas');
- console.log(myCanvas, 'myCanvas');
- let a = document.createElement('a');
- a.href = myCanvas[0].toDataURL('image/png');
- a.download = '二维码';
- a.click();
- a = null;
- }
- //活动列表
- table.render({
- elem: '#livecode',
- url: "{:url('Huoma/code_list')}",
- height: 'full-160',
- cols: [
- [
- { align: 'center', field: 'name', title: '活码名称', width: '15%', templet: '#titletpl' },
- { align: 'center', field: 'addtime', title: '创建时间', width: '10%', templet: '#activitype' },
- { align: 'center', field: 'code_url', title: '活码地址', minWidth: 100, templet: '#qrLinkOperate' },
- { align: 'center', field: 'switch_type', title: '切换方式', minWidth: 100, templet: '#switch_type' },
- { align: 'center', field: 'num', title: '今日报名数', minWidth: 80, templet: '#end_datetpl' },
- { align: 'center', field: 'visit', title: '累计报名数', minWidth: 80, templet: '#timestate' },
- { align: 'center', field: 'status', title: '状态', minWidth: 100, templet: '#status' },
- { align: 'center', field: 'user_count', title: '开关', minWidth: 100, templet: '#show' },
- { align: 'center', field: 'invalid_time', title: '失效时间', minWidth: 100 },
- {align:'center',templet: '#employee_name',title: '上传人',maxWidth: 80},
- { align: 'center', title: '操作', width: '18%', align: 'center', toolbar: '#table-user-bind',fixed:'right' }
- ]
- ],
- page: true,
- text: '对不起,加载出现异常!'
- });
- //监听审核
- table.on('tool(livecode)', function (obj) {
- var data = obj.data;
- switch (obj.event) {
- case 'edit':
- layer.open({
- type: 2,
- title: ['编辑活码', 'color:#333333;background-color:#D8E6F1;'],
- content: '{:url("huoma/edit_code")}?id=' + data.id,
- maxmin: true,
- area: ['80%', '80%']
- });
- break;
- case 'qrStatistics':
- layer.open({
- type: 2,
- title: ['报名统计', 'color:#333333;background-color:#D8E6F1;'],
- content: '{:url("huoma/visit_list")}?id=' + data.id,
- maxmin: true,
- area: ['80%', '80%']
- });
- break;
- case 'del':
- layer.confirm('确定删除此渠道活码?', { title: ['信息', 'color:#333333;background-color:#D8E6F1;'], }, function (index) {
- $.ajax({
- type: 'post',
- url: "{:url('huoma/del_code')}",
- data: {
- id: data.id
- },
- success: function (res) {
- if (res.code == 0) {
- layer.msg(res.msg, {
- anim: 0
- }, function () {
- //执行重载
- table.reload('livecode');
- // obj.del();
- layer.close(index);
- });
- } else {
- layer.msg(res.msg, {
- anim: 6
- });
- }
- }
- });
- });
- break;
- case 'viewqr':
- new QRCode(document.getElementById("qrcode"), data.code_url); // 设置要生成二维码的链接
- $('.mask').removeClass('layui-hide');
- break;
- case 'copyqr':
- var url = obj.innerHTML;
- var input = document.createElement('input');
- document.body.appendChild(input);
- input.setAttribute('value', data.code_url);
- input.select();
- document.execCommand("copy"); // 执行浏览器复制命令
- if (document.execCommand('copy')) {
- document.execCommand('copy');
- layer.msg('复制成功')
- }
- document.body.removeChild(input);
- break
- }
- })
- form.on('switch(show)', function (obj) {
- var id = obj.value;
- $.ajax({
- type: "post",
- url: '{:url("huoma/up_status")}',
- data: {
- id: id
- },
- success: function (res) {
- layer.msg(res.msg);
- }
- });
- });
- $('.layui-btn.layuiadmin-btn-qrcode').on('click', function () {
- var type = $(this).data('type');
- active[type] ? active[type].call(this) : '';
- });
- })
- </script>
- {/block}
|