| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128 |
- define(['jquery', 'table', 'form'], function($, Table, Form) {
- Yzn.config.openArea = ['90%', '90%'];
- function formatMailType(val) {
- var map = {
- 'subscribe_auto': '自动欢迎邮件',
- 'subscribe_manual': '后台补发邮件',
- 'marketing_broadcast': '营销群发'
- };
- return map[val] || val || '-';
- }
- var Controller = {
- index: function() {
- Table.init = { table_elem: '#currentTable', table_render_id: 'currentTable' };
- Table.render({
- init: Table.init,
- toolbar: ['refresh'],
- url: 'emailsubscribe/index',
- cols: [[
- {type:'checkbox', width:50},
- {field:'id', width:80, title:'ID', sort:true},
- {field:'email', minWidth:220, title:'邮箱'},
- {field:'lang', width:100, title:'语言'},
- {field:'source_key', width:120, title:'来源标识'},
- {field:'status', width:110, title:'订阅状态', templet:function(d){ var map={0:'已取消',1:'已订阅',9:'用户退订'}; return map[d.status] || d.status; }},
- {field:'last_send_status', width:110, title:'发送状态', templet:function(d){ var map={0:'未发送',1:'成功',2:'失败'}; return map[d.last_send_status] || d.last_send_status; }},
- {field:'last_send_time', width:170, title:'最近发送时间', templet:function(d){ return d.last_send_time ? Table.formatter.datetime.call(this, d.last_send_time) : '-'; }},
- {field:'source_page', minWidth:220, title:'来源页面'},
- {field:'privacy_agree_text', width:100, title:'隐私同意'},
- {field:'privacy_agree_time', width:170, title:'同意时间', templet:function(d){ return d.privacy_agree_time ? Table.formatter.datetime.call(this, d.privacy_agree_time) : '-'; }},
- {field:'privacy_agree_ip', width:140, title:'同意IP'},
- {field:'ip', width:140, title:'提交IP'},
- {field:'createtime', width:170, title:'创建时间', templet: Table.formatter.datetime},
- {field:'operate', title:'操作', width:220, fixed:'right', templet:function(d){
- return ''
- + '<a href="javascript:;" class="layui-btn layui-btn-xs" data-id="'+d.id+'" data-event="resend">补发邮件</a>'
- + '<a href="javascript:;" class="layui-btn layui-btn-xs layui-btn-warm" data-id="'+d.id+'" data-status="1" data-event="status">设为订阅</a>'
- + '<a href="javascript:;" class="layui-btn layui-btn-xs layui-btn-danger" data-id="'+d.id+'" data-status="0" data-event="status">取消订阅</a>';
- }}
- ]],
- page: {}
- });
- $('#searchBtn').on('click', function() {
- layui.table.reload('currentTable', { where: {
- email: $('#email').val(), lang: $('#lang').val(), source_key: $('#source_key').val(), status: $('#status').val(),
- last_send_status: $('#last_send_status').val(),
- createtime_start: $('#createtime_start').val(), createtime_end: $('#createtime_end').val()
- }, page: {curr: 1} });
- });
- $('#resetBtn').on('click', function() {
- $('#email,#lang,#source_key,#status,#last_send_status,#createtime_start,#createtime_end').val('');
- layui.form.render('select'); layui.table.reload('currentTable', { where: {}, page: {curr: 1} });
- });
- $('#deleteBtn').on('click', function() {
- var rows=layui.table.checkStatus('currentTable').data||[]; if(!rows.length){layer.msg('请先勾选订阅记录');return;}
- var ids=rows.map(function(i){return i.id;});
- layer.confirm('确认删除选中的 '+ids.length+' 条订阅记录吗?相关邮件日志也会一并删除,此操作不可恢复。',{icon:3,title:'警告'},function(index){
- $.post('emailsubscribe/del',{ids:ids},function(res){ layer.msg(res.msg || (res.code===1?'删除成功':'删除失败')); if(res.code===1) layui.table.reload('currentTable'); },'json').fail(function(){layer.msg('删除请求失败');});
- layer.close(index);
- });
- });
- $('#resendBtn').on('click', function() {
- var rows=layui.table.checkStatus('currentTable').data||[]; if(!rows.length){layer.msg('请先勾选订阅记录');return;}
- if(rows.length>1){layer.msg('一次只能补发一条订阅记录');return;}
- var id=rows[0].id;
- layer.confirm('确认补发该订阅邮件吗?',{icon:3,title:'提示'},function(index){
- $.post('emailsubscribe/resend',{id:id},function(res){ layer.msg(res.msg || (res.code===1?'补发成功':'补发失败')); if(res.code===1) layui.table.reload('currentTable'); },'json').fail(function(){layer.msg('补发请求失败');});
- layer.close(index);
- });
- });
- $(document).on('click', '[data-event="resend"]', function() {
- var id=$(this).data('id');
- layer.confirm('确认补发该订阅邮件吗?',{icon:3,title:'提示'},function(index){
- $.post('emailsubscribe/resend',{id:id},function(res){ layer.msg(res.msg || (res.code===1?'补发成功':'补发失败')); if(res.code===1) layui.table.reload('currentTable'); },'json').fail(function(){layer.msg('补发请求失败');});
- layer.close(index);
- });
- });
- $(document).on('click', '[data-event="status"]', function() {
- var id=$(this).data('id'); var status=$(this).data('status');
- $.post('emailsubscribe/changeStatus',{id:id,status:status},function(res){ layer.msg(res.msg || (res.code===1?'更新成功':'更新失败')); if(res.code===1) layui.table.reload('currentTable'); },'json').fail(function(){layer.msg('状态更新失败');});
- });
- Table.api.bindevent(); Form.api.bindevent($('form.layui-form'));
- },
- log: function() {
- Table.init = { table_elem: '#currentTable', table_render_id: 'currentTable' };
- Table.render({
- init: Table.init,
- toolbar: ['refresh'],
- url: 'emailsubscribe/log',
- cols: [[
- {type:'checkbox', width:50},
- {field:'id', width:80, title:'ID', sort:true},
- {field:'subscribe_id', width:100, title:'订阅ID'},
- {field:'email', minWidth:220, title:'邮箱'},
- {field:'mail_type', width:160, title:'邮件类型', templet:function(d){ return formatMailType(d.mail_type); }},
- {field:'subject', minWidth:220, title:'邮件主题'},
- {field:'content', minWidth:320, title:'邮件内容'},
- {field:'status', width:100, title:'状态', templet:function(d){ var map={0:'待发送',1:'成功',2:'失败'}; return map[d.status] || d.status; }},
- {field:'response_code', width:130, title:'返回码'},
- {field:'response_msg', minWidth:220, title:'返回信息'},
- {field:'send_time', width:170, title:'发送时间', templet:function(d){ return d.send_time ? Table.formatter.datetime.call(this, d.send_time) : '-'; }}
- ]],
- page: {}
- });
- $('#searchBtn').on('click', function() {
- layui.table.reload('currentTable', { where: {
- email: $('#email').val(), subscribe_id: $('#subscribe_id').val(), mail_type: $('#mail_type').val(), status: $('#status').val(),
- send_time_start: $('#send_time_start').val(), send_time_end: $('#send_time_end').val()
- }, page: {curr: 1} });
- });
- $('#resetBtn').on('click', function() {
- $('#email,#subscribe_id,#mail_type,#status,#send_time_start,#send_time_end').val('');
- layui.form.render('select'); layui.table.reload('currentTable', { where: {}, page: {curr: 1} });
- });
- $('#deleteLogBtn').on('click', function() {
- var rows=layui.table.checkStatus('currentTable').data||[]; if(!rows.length){layer.msg('请先勾选邮件日志');return;}
- var ids=rows.map(function(i){return i.id;});
- layer.confirm('确认删除选中的 '+ids.length+' 条邮件日志吗?此操作不可恢复。',{icon:3,title:'警告'},function(index){
- $.post('emailsubscribe/delLog',{ids:ids},function(res){ layer.msg(res.msg || (res.code===1?'删除成功':'删除失败')); if(res.code===1) layui.table.reload('currentTable'); },'json').fail(function(){layer.msg('删除请求失败');});
- layer.close(index);
- });
- });
- Table.api.bindevent(); Form.api.bindevent($('form.layui-form'));
- }
- };
- return Controller;
- });
|