define(['jquery', 'bootstrap', 'backend', 'table', 'form', 'template', 'custommain'], function ($, undefined, Backend, Table, Form, Template, Custommain) { var Controller = { index: function () { // 初始化表格参数配置 Table.api.init({ extend: { index_url: 'vipcustom/vipimagetextmediapush/index?status=' + Config.status, }, searchFormVisible: true, search:false }); var table = $("#table"); // 初始化表格 table.bootstrapTable({ url: $.fn.bootstrapTable.defaults.extend.index_url, pk: 'id', sortName: 'id', clickToSelect:false, pageSize: 12, //每页的记录行数(*) pageList: [12, 36, 72, 120], //可供选择的每页的行数(*) columns: [Controller.api.showFilterColumns(table)], onLoadSuccess: function () { //加载成功时执行 }, onPostBody:function(){ $('#table td').attr('rowspan', '1000'); } }); // 为表格绑定事件 Table.api.bindevent(table); $(document).on('mouseover','#table td',function(){ $('.wxb-card-list-scroll .anticon').tooltip(); }); //群发消息 $(document).on('click','.btn-multi-ajax',function(){ var multi_url = $(this).attr('data-href'); $.get(multi_url,{},function(data){ if(data.code){ var msg = data.msg != '' ? data.msg : '操作成功'; Toastr.success(msg); }else{ var msg = data.msg != '' ? data.msg : '操作失败'; Toastr.error(msg); } }); }); //删除 $(document).on('click','.btn-del-ajax',function(){ if(!Custommain.check_waiting_send_editable($(this).attr('data_send_time'))){ Toastr.error("发送前10分钟不可操作"); return; } var del_url = $(this).attr('data-href'); layer.confirm("确定删除此项?", {icon: 3, title: "温馨提示", shadeClose: true}, function (index) { layer.close(index); $.get(del_url,{},function(data){ if(data.code){ var msg = data.msg != '' ? data.msg : '操作成功'; Toastr.success(msg); table.bootstrapTable('refresh'); }else{ var msg = data.msg != '' ? data.msg : '操作失败'; Toastr.error(msg); } }); }, function(){ layer.close(); }); }); //编辑 待发送 消息 $(document).on('click','.btn-editwaitmsg-ajax',function(){ if(!Custommain.check_waiting_send_editable($(this).attr('data_send_time'))){ Toastr.error("发送前10分钟不可操作"); return; } Fast.api.open($(this).attr('data-href'), '编辑', {}); }); // 打开详情页面 $(document).on('click', '.btn-view-ajax', function () { Fast.api.open($(this).attr('data-href'), '查看详情', {}); }); }, //待发图文客服消息 editwaitingimgmsg:function(){ //发送 订阅号/服务号 验证 $("#add-form").data("validator-options", { ignore: ':hidden', beforeSubmit: function (form) { var user_json = $.parseJSON($('.img_txt_hidde_input_no').val()) if (user_json.all==0 && !user_json.subscribe_time) { var sub_from = (new Moment($('input[name="row[sub_from]"]').val())).valueOf() / 1000 var sub_to = (new Moment($('input[name="row[sub_to]"]').val())).valueOf() / 1000 if(!sub_from && !sub_to){ Toastr.error("起止时间不能为空"); return false; }else{ user_json.subscribe_range = sub_from +'-'+ sub_to; } } $('.img_txt_hidde_input_no').val(JSON.stringify(user_json)); var senddyhradioval = $('#dyhradio input').val(); if ($(":checkbox[name^='row[sub_id]']", $("#add-form")).length) { if (!$('#c-name').val()) { Toastr.error("请选择需要发送的服务号"); return false; } var other_tips = $(":checked[name^='row[sub_id]']", $("#add-form")); if (other_tips.length <= 0) { Toastr.error("请选择需要发送的订阅号"); return false; } if (senddyhradioval < other_tips.length) { Toastr.error("最多可选择发送" + senddyhradioval + '个订阅号'); return false; } } if (!$('.js_selected_group_id').val()) { if ($(":checkbox[name^='row[service_id]']", $("#add-form")).length) { var other_tips = $(":checked[name^='row[service_id]']", $("#add-form")); if (other_tips.length <= 0) { Toastr.error("请选择需要发送的服务号"); return false; } if (senddyhradioval < other_tips.length) { Toastr.error("最多可选择发送" + senddyhradioval + '个服务号'); return false; } } } //发送时间必须大于当前时间 var sdatatime=$('#c-sendtime').val()+''; sdatatime = sdatatime.replace(/-/g,'/'); sdatatime =new Date(sdatatime).getTime(); if(sdatatime <= new Date().getTime()){ Toastr.error("发送时间必须大于当前时间"); return false; } } }); Controller.api.bindevent(); }, //查看详情 viewdetail: function () { // 初始化表格参数配置 Table.api.init({ extend: { getimage_url: window.location.href, }, search: false, showToggle: false, showColumns: false, showExport: false, commonSearch: false }); var table = $("#table"); //当表格数据加载完成时 table.on('load-success.bs.table', function (e, data) { //这里可以获取从服务端获取的JSON数据 //console.log(data); //这里我们手动设置底部的值 //$("#money").text(data.extend.money); //$("#price").text(data.extend.price); }); // 初始化表格 table.bootstrapTable({ url: $.fn.bootstrapTable.defaults.extend.getimage_url, pk: 'id', sortName: 'id', columns: [Controller.api.getimagelist(table)] }); // 为表格绑定事件 Table.api.bindevent(table); $(document).on('click', '.btn-close', function () { Fast.api.close(); }); }, api: { showFilterColumns:function(table){ var cols = new Array(); /*cols.push({field: 'sendtime', title:"发送时间",operate:'RANGE', addclass:'datetimerange', visible:false}); cols.push({field: 'official_account_type', title:"群发类型",searchList: {"0":__('服务号'),"1":__('订阅号')}, visible:false}); cols.push({field: 'wechat_name', title:"公众号名称", visible:false});*/ cols.push({field: 'id', title: "推广ID", formatter: Controller.api.formatter.showStyle}); cols.push({field: "message_json$[*].book_name", title:"书籍名称", visible:false,operate:'LIKE %...%'}); return cols; }, bindevent: function () { Custommain.checkbox_relation('#dyhradio', '#dyhcheck'); //群发测试 $('.test_fans_but').click(function(){ Custommain.fans_send_message(); }) Form.api.bindevent($("form[role=form]")); //修改发送消息时间 $(document).on('click','.s_time_box span',function(){ var $this = $(this); var nval = parseInt($this.attr('stime')); var ntime = Date.parse(new Date()); var nt = ntime + nval; $('#c-sendtime').val(GetRTime(nt)); }); function GetRTime(time){ var stime; time = new Date(time); var year = time.getYear() + 1900; var month = time.getMonth()+1; var day = time.getDate(); var hours = time.getHours(); var minutes = time.getMinutes(); var seconds = time.getSeconds(); stime = year + '-' + (month < 10 ? '0'+month : month) + '-' + (day < 10 ? '0'+day : day) + ' ' + (hours < 10 ? '0'+hours : hours) + ':' + (minutes < 10 ? '0'+minutes : minutes) + ':' + (seconds < 10 ? '0'+seconds : seconds); return stime; } /** * 资源类型管理 */ $(document).on('click', "input[name='row[type]']", function () { var type = $(this).val(); if (type == 'all') { var tagObj = { all: "1" } } else { var tagObj = { sex: -1, mobile_system: 0, tag: -1, consume: -1, kandian: -1, subscribe_time: -1, all: "0" } } var ucon = JSON.stringify(tagObj); $('#usercondition').val(ucon); $('.group-tag-type').addClass('hide'); $('.group-tag-type input').attr('disabled'); $('#group-tag-type-' + type).removeClass('hide'); $('#group-tag-type-' + type + ' input').removeAttr('disabled'); }); if ($('#usercondition').val() && $('#usercondition').val().length > 0) { $tagval = JSON.parse($('#usercondition').val()); if ($tagval.all == 1) { //选择所有用户 $('#type-all').attr('checked', true); var type = 'all'; $('.group-tag-type').addClass('hide'); $('.group-tag-type input').attr('disabled'); $('#group-tag-type-' + type).removeClass('hide'); $('#group-tag-type-' + type + ' input').removeAttr('disabled'); } } $.ajax({ type: 'get', url: '/admin/custom/ajaxcategory', cache: false, async: false, success: function (res) { data = res.data; var htmlstr = ''; for (var i = 0; i < data.length; i++) { htmlstr += '' + data[i].name + ''; } $('#ctag').append(htmlstr); $('#mustbe').html('约' + res.ids + '人'); if ($('#usercondition').val() && $('#usercondition').val().length > 0) { $tagval = JSON.parse($('#usercondition').val()); $("#sex span[data-sex='" + $tagval.sex + "']").addClass('s_s_tag').siblings().removeClass('s_s_tag'); $("#mobile_system span[data-mobile_system='" + $tagval.mobile_system + "']").addClass('s_s_tag').siblings().removeClass('s_s_tag'); $("#ctag span[data-cid='" + $tagval.tag + "']").addClass('s_s_tag').siblings().removeClass('s_s_tag'); $("#consume span[data-fee='" + $tagval.consume + "']").addClass('s_s_tag').siblings().removeClass('s_s_tag'); $("#kandian span[data-kandian='" + $tagval.kandian + "']").addClass('s_s_tag').siblings().removeClass('s_s_tag'); // $("#subTime span[data-week='" + $tagval.subscribe_time + "']").addClass('s_s_tag').siblings().removeClass('s_s_tag'); // if ($tagval.subscribe_range) { // var t_l = $tagval.subscribe_range.split('-'); // $('input[name="row[sub_from]"]').val(Moment(parseInt(t_l[0]) * 1000).format("YYYY-MM-DD HH:mm:ss")); // $('input[name="row[sub_to]"]').val(Moment(parseInt(t_l[1]) * 1000).format("YYYY-MM-DD HH:mm:ss")); // } if ($tagval.subscribe_time) { $("#subscribe_time1 span[data-fee='" + $tagval.subscribe_time + "']").addClass('s_s_tag').siblings().removeClass('s_s_tag'); $('#subscribe_time2').hide(); } else { $("#subscribe_time1 span").last().addClass('s_s_tag').siblings().removeClass('s_s_tag'); } } else { var tagObj1 = { sex: -1, mobile_system: 0, tag: -1, consume: -1, kandian: -1, subscribe_time: -1, all: "0" }; var ucon1 = JSON.stringify(tagObj1); $('#usercondition').val(ucon1); } }, error: function (err) { } }); $(document).on('click', '.s_tag_li_list span', function () { var $this = $(this); $this.addClass('s_s_tag').siblings('span').removeClass('s_s_tag'); var tagObj = { sex: $('#sex span.s_s_tag').data('sex'), mobile_system: $('#mobile_system span.s_s_tag').data('mobile_system'), tag: $('#ctag span.s_s_tag').data('cid'), consume: $('#consume span.s_s_tag').data('fee'), kandian: $('#kandian span.s_s_tag').data('kandian'), subscribe_time: $('#subscribe_time1 span.s_s_tag').data('fee'), all: "0" } if ($(this).parent().attr('id') == 'subscribe_time1') { if ($(this).data('fee')) { $('#cdstarttime').val(''); $('#cdendtime').val(''); $('#subscribe_time2').hide(); } else { $('#subscribe_time2').show(); } } var uconditon = JSON.stringify(tagObj); $('#usercondition').val(uconditon); }); var ofansopen = true; //tag切换 $(document).on('click', '.s_tag_fans_num', function () { var $this = $(this); //防止重复点击 if (!ofansopen) { return false; } ofansopen = false; $('.s_tag_footer').addClass('s_tag_fans_show'); var tagObj = { sex: $('#sex span.s_s_tag').data('sex'), mobile_system: $('#mobile_system span.s_s_tag').data('mobile_system'), tag: $('#ctag span.s_s_tag').data('cid'), consume: $('#consume span.s_s_tag').data('fee'), kandian: $('#kandian span.s_s_tag').data('kandian'), subscribe_time: $('#subscribe_time1 span.s_s_tag').data('fee'), all: "0" } var uconditon = JSON.stringify(tagObj); $('#usercondition').val(uconditon); //console.log(tagObj); $.ajax({ type: 'post', data: tagObj, //dataType:'json', url: '/admin/custom/ajaxcustom', success: function (data) { //console.log(data); $('#mustbe').html('约' + data.ids + '人'); ofansopen = true; $('.s_tag_footer').removeClass('s_tag_fans_show'); }, error: function (err) { ofansopen = true; $('.s_tag_footer').removeClass('s_tag_fans_show'); } }); }); }, formatter:{ showImage: function (value, row, index) { return ''; }, showType: function (value, row, index) { var type_arr = ['书籍', '活动', '继续阅读', '菜单']; return type_arr[value]; }, showPosition: function (value, row, index) { return index + 1; }, showPushType: function (value, row, index) { var push_arr = ['外推', '内推']; return push_arr[value]; }, showStyle:function(value, row, index){ var message_data = JSON.parse(row.message_json).shift(); /*jshint multistr: true */ var html = '
'; html += '

推广id:' + row.id + '

'; html += '

创建时间:'+Table.api.formatter.datetime(row.createtime,row,index)+'

'; html += '

修改时间:'+Table.api.formatter.datetime(row.updatetime,row,index)+'

'; var offical_type = parseInt(row.official_account_type) == 1 ? '订阅号' : '服务号'; var send_color = ''; var send_text = ''; switch (parseInt(row.status)) { case 0: send_color = 'red'; send_text = '待发送'; break; case 1: send_color = '#FF9900'; send_text = '群发中'; break; case 2: send_color = '#88d743'; send_text = '已群发'; break; } html += '

发送时间:' + Table.api.formatter.datetime(row.sendtime, row, index) + ' ' + send_text + '

'; html += '

群发类型:' + offical_type + '

'; html += '
'; return html; } }, getimagelist: function (table) { var cols = []; cols.push({ field: 'title', title: "标题", operate: false }); cols.push({ field: 'image', title: "图片", operate: false, formatter: Controller.api.formatter.showImage }); cols.push({ field: 'type', title: "链接类型", operate: false, formatter: Controller.api.formatter.showType }); cols.push({ field: 'book_id', title: "书籍id", operate: false, }); cols.push({ field: 'name', title: "书籍名称/活动名称/菜单名称", operate: false }); return cols; } } }; return Controller; });