123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511 |
- 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 += '<span data-cid="' + data[i].id + '" >' + data[i].name + '</span>';
- }
- $('#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 '<img style="height:100px;" src="' + value + '"/>';
- },
- 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 = '<div class="wxb-card-list-scroll"><div class="wxb-card-item"><div class="wxb-card-item-inner"><div class="item-header"><div>';
- html += '<div class="tweets-card-title"><p>推广id:' + row.id + '</p></div>';
- html += '<div class="tweets-card-title"><p>创建时间:'+Table.api.formatter.datetime(row.createtime,row,index)+'</p></div>';
- html += '<div class="tweets-card-title"><p>修改时间:'+Table.api.formatter.datetime(row.updatetime,row,index)+'</p></div>';
- 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 += '<div class="tweets-card-title"><p style="color:' + send_color + '">发送时间:' + Table.api.formatter.datetime(row.sendtime, row, index) + ' ' + send_text + '</p></div>';
- html += '<div class="tweets-card-title"><p>群发类型:' + offical_type + '</p></div>';
- html += '</div></div><ul class="article-list"><li> <a class="article-item">';
- html += '<div class="novel-img article-item-cover" style="background-image: url('+message_data.image+');"></div>';
- html += '<p class="article-item-title">'+message_data.title+'</p>';
- html +='</a>';
- html += '</li></ul><ul class="footer-btns">';
- if (parseInt(Config.status) == 0) {
- if(Custommain.check_waiting_send_editable(row.sendtime)){
- html += '<li><a class="btn-del-ajax" data_send_time="'+row.sendtime+'" href="javascript:void(0);" data-href="/admin/vipcustom/vipimagetextmediapush/del?table=push&ids=' + row.id + '">删除</a></li>';
- html += '<li><a class="btn-editwaitmsg-ajax" data_send_time="'+row.sendtime+'" href="javascript:void(0);" data-href="/admin/vipcustom/vipimagetextmediapush/editwaitingimgmsg?table=push&ids=' + row.id + '">编辑</a></li>';
- }
- } else if (parseInt(Config.status) == 2) {
- html += '<li><a class="btn-view-ajax" href="javascript:void(0);" data-href="/admin/vipcustom/vipimagetextmediapush/viewdetail?ids=' + row.id + '">查看详情</a></li>';
- //html += '<li><a href="/admin/vipcustomurl/index?push_id=' + row.id +'">查看数据分析</a></li>';
- }
- html += '</ul></div></div></div>';
- 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;
- });
|