define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefined, Backend, Table, Form) { var Controller = { index: function () { // 初始化表格参数配置 Table.api.init({ extend: { index_url: 'send/message/materiallibrary/index', add_url: 'send/message/materiallibrary/add', edit_url: 'send/message/materiallibrary/edit', del_url: 'send/message/materiallibrary/del', multi_url: 'send/message/materiallibrary/multi', table: 'send_message_material_library', } }); var table = $("#table"); // 初始化表格 table.bootstrapTable({ url: $.fn.bootstrapTable.defaults.extend.index_url, pk: 'id', sortName: 'id', columns: [ [ { checkbox: true }, { field: 'id', title: __('序号'), operate: false }, { field: 'material_name', title: __('消息名称'),operate:'LIKE'}, { field: 'material_type', title: __('消息类型'), searchList: { "1": __('文本类型'), "2": __('图文类型'), "3": __('图片消息') }, formatter: function (val, row, index) { if (val == 1) { return '文本类型'; } else if (val == 2) { return '图文类型'; } else if (val == 3) { return '图片消息'; } } }, { field: 'createtime', title: __('Createtime'), operate: false, addclass: 'datetimerange', formatter: Table.api.formatter.datetime }, { field: 'operate', title: __('Operate'), table: table, events: Table.api.events.operate, buttons: [ { name: 'detail', text: __('再次发送'), title: __('再次发送'), classname: 'btn btn-xs btn-primary btn-dialog', icon: '', url: '/admin/send/message/message/add_with_material', callback: function (data) { }, visible: function (row) { return true; } }, { name: 'detail', text: __('消息预览'), title: __('消息预览'), classname: 'btn btn-xs btn-primary btn-dialog', icon: '', url: '/admin/send/message/materiallibrary/message_preview', callback: function (data) { Layer.alert("接收到回传数据:" + JSON.stringify(data), { title: "回传数据" }); }, visible: function (row) { //返回true时按钮显示,返回false隐藏 return true; } }, { name: 'detail', text: __('修改'), title: __('修改'), classname: 'btn btn-xs btn-success btn-dialog', icon: '', url: '/admin/send/message/materiallibrary/edit', callback: function (data) { }, visible: function (row) { if (row.send_status != 4 && row.send_status != 5) { return true; } //返回true时按钮显示,返回false隐藏 return false; } }, { name: 'ajax', text: __('删除'), title: __('删除'), classname: 'btn btn-xs btn-danger btn-magic btn-ajax', icon: '', url: '/admin/send/message/materiallibrary/do_status', confirm: '确认删除该条素材吗?', success: function (data, ret) { table.bootstrapTable('refresh'); } }, ], formatter: Table.api.formatter.buttons } ] ] }); // 为表格绑定事件 Table.api.bindevent(table); //生效 $('.btn-effective').on('click', function () { var ids = Table.api.selectedids(table); Layer.confirm( '确定要把选中的' + ids.length + '项改为生效吗?', { icon: 3, title: __('Warning'), offset: 0, shadeClose: true }, function () { $.ajax({ url: 'send/message/materiallibrary/do_status', type: "post", data: { ids: ids, material_status: 1 }, success: function () { layer.msg('操作成功'); table.bootstrapTable('refresh'); } }); } ); }); //失效 $('.btn-invalid').on('click', function () { var ids = Table.api.selectedids(table); Layer.confirm( '确定要把选中的' + ids.length + '项改为失效吗?', { icon: 3, title: __('Warning'), offset: 0, shadeClose: true }, function () { $.ajax({ url: 'send/message/materiallibrary/do_status', type: "post", data: { ids: ids, material_status: 2 }, success: function () { layer.msg('操作成功'); table.bootstrapTable('refresh'); } }); } ); }); //批量删除 $('.btn-batch-del').on('click', function () { var ids = Table.api.selectedids(table); Layer.confirm( '确定要删除选中的' + ids.length + '项吗?', { icon: 3, title: __('Warning'), offset: 0, shadeClose: true }, function () { $.ajax({ url: 'send/message/materiallibrary/do_status', type: "post", data: { ids: ids, message_status: 3 }, success: function () { layer.msg('操作成功'); table.bootstrapTable('refresh'); } }); } ); }); }, add: function () { window.msgData = { type: "", data: [] } // 消息类型切换 window.lastMsgTypeValue = '0'; $('#c-message_type').on('click', '[type=radio]', function (e) { if (window.lastMsgTypeValue == e.target.value) return; window.msgEditData = undefined; window.msgIsEditing = false; window.msgEditIndex = -1; window.msgData = { type: '', data: [] }; $(window.document).find('#message_type_add_btn').show(); window.lastMsgTypeValue = e.target.value; window.imgtext_chapter_id = ""; window.imgtext_activity_id_edit = ""; window.imgtext_book_id = ""; $('.message_type_content_contianer').empty(); $('.toggleContainer').empty(); window.toggleData = undefined; }); // 添加消息按钮呼出弹窗 $('#message_type_add_btn').on('click', function () { if(typeof(window.msgData) !=="undefined" && window.msgData.data.length >= 8){ layer.alert("添加不能超出8条!"); return; } var url = ''; var title = ''; var val = 1; var radios = $('#c-message_type [type=radio]'); radios.each(function (index, ele) { if (ele.checked == true) { val = ele.value; } }); switch (val) { case '1': url = '/admin/send/message/text/add'; title = '文本消息'; break; case '2': url = '/admin/send/message/imgtext/add'; title = '图文消息'; break; case '3': url = '/admin/send/message/img/add'; title = '图片消息'; break; default: url = '/admin/send/message/text/add'; title = '文本消息'; break; }; window.msgEditData = undefined; window.msgIsEditing = false; window.msgEditIndex = -1; Fast.api.open(url, title, { callback: function (data) { //$this.find('img').attr('src',data.image); } }); return false; }); // 消息删除功能 $('.message_type_content_contianer').on('click', '.preview_del', function (e) { var debtn = $(e.target); var delIndex = debtn.data('index'); window.msgData.data.splice(delIndex, 1); var newHtml = ""; if (window.msgData.type == "imgtext") { $(window.msgData.data).each(function (index, item) { if (index == 0) { newHtml += '
'; } else { newHtml += ''; } }); } else if (window.msgData.type == 'text') { $(window.msgData.data).each(function (index, item) { newHtml += '' + ''; }); } else if (window.msgData.type == 'img') { $(window.msgData.data).each(function (index, item) { newHtml += '' + ''; }); }; $('.message_type_content_contianer').html(newHtml); $("#message_content").val(JSON.stringify(window.msgData.data)); if(window.msgData.type == 'img' && window.msgData.data.length > 0){ $(window.document).find('#message_type_add_btn').hide(); }else{ if(window.msgData.data.length < 8){ $(window.document).find('#message_type_add_btn').show(); }else{ $(window.document).find('#message_type_add_btn').hide(); } } }); // 消息编辑功能 $('.message_type_content_contianer').on('click', '.preview_edit', function (e) { var url = ''; var title = ''; var val = 1; var radios = $('#c-message_type [type=radio]'); radios.each(function (index, ele) { if (ele.checked == true) { val = ele.value; } }); switch (val) { case '1': url = '/admin/send/message/text/add'; title = '文本消息'; break; case '2': url = '/admin/send/message/imgtext/add'; title = '图文消息'; break; case '3': url = '/admin/send/message/img/add'; title = '图片消息'; break; default: url = '/admin/send/message/text/add'; title = '文本消息'; break; }; var editBtn = $(e.target); var editIndex = editBtn.data('index'); var editData = window.msgData.data[editIndex]; window.msgEditData = editData; window.msgIsEditing = true; window.msgEditIndex = editIndex; // 呼出 子页 Fast.api.open(url, title, { callback: function (data) { //$this.find('img').attr('src',data.image); } }); return false; }); // 添加测试公众号 $('.btn-add-test-subscription-list').on('click',function(){ Fast.api.open( '/admin/send/message/subscriptionlist/test_user?not_in_ids='+$('#test_channel_id').val(), '添加测试公众号' ); }); // 测试用户 $('.btn-test_user').on('click',function(){ if($('.message_type_1').is(':checked')) { var itemsHtml = ''; if(typeof(window.msgData) !=="undefined") { window.msgData.data.forEach(function (item, number) { if (item.hasOwnProperty('url')) { itemsHtml += ''; itemsHtml += ''; itemsHtml += item.content; itemsHtml += ""; } else { itemsHtml += item.content; } }); if (itemsHtml.length > 290) { Layer.msg('文本最大字符不得超过290个字符'); return false; } } } if($('#test_channel_id').length>0){ if($('#test_channel_id').val()==''){ Layer.msg('渠道ID不能为空'); return; } } if($('#c-test_message').length<=0){ Layer.msg('测试用户ID不能为空'); return; } if(!$('.message_type_1').is(':checked') && !$('.message_type_2').is(':checked') && !$('.message_type_3').is(':checked')){ Layer.msg('消息类型不能为空'); return; } var message_type = 0; if($('.message_type_1').is(':checked')){ message_type = 1; }else if($('.message_type_2').is(':checked')){ message_type = 2; }else if($('.message_type_3').is(':checked')){ message_type = 3; } if(typeof(window.msgData) == "undefined"){ Layer.msg('消息内容不能为空'); return; } if($('#test_channel_id').length>0){ var datas = { message_type:message_type, user_id:$('#c-test_message').val(), message_content : window.msgData.data, channel_id:$('#test_channel_id').val(), } }else{ var datas = { message_type:message_type, user_id:$('#c-test_message').val(), message_content : window.msgData.data, } } Layer.confirm( '确定要给该用户发送测试消息吗?', {icon: 3, title: __('Warning'), offset: 0, shadeClose: true}, function () { layer.closeAll('dialog'); $.ajax({ url:'send/message/message/testmessagetouser', type:"post", data: datas, success:function(data){ if(data.code == 1){ layer.msg('发送完成'); return false; }else{ layer.msg(data.msg); return false; } } }); } ); }); // 测试公众号删除 $('#gzh_table1').on('click', '.gzh_del_btn1' , function(e){ $('#test_channel_id').val(""); $(e.target).parent().parent().remove(); }); // 提交 $("#mater_submit").click(function(){ if(typeof(window.msgData) == 'undefined' ||window.msgData.data.length===0){ Layer.msg('消息内容不能为空'); return false; } switch (window.lastMsgTypeValue) { case '1': window.toggleData.forEach(function(item , index){ if(item.type == 'text')window.msgData = item; }) break; case '2': window.toggleData.forEach(function(item , index){ if(item.type == 'imgtext')window.msgData = item; }) break; case '3': window.toggleData.forEach(function(item , index){ if(item.type == 'img')window.msgData = item; }) break; } if($('.message_type_1').is(':checked')) { var itemsHtml = ''; if(typeof(window.msgData) !=="undefined") { window.msgData.data.forEach(function (item, number) { if (item.hasOwnProperty('url')) { itemsHtml += ''; itemsHtml += ''; itemsHtml += item.content; itemsHtml += ""; } else { itemsHtml += item.content; } }); if (itemsHtml.length > 290) { Layer.msg('文本最大字符不得超过290个字符'); return false; } } } $("#message_content").val(JSON.stringify(window.msgData.data)) }) Controller.api.bindevent(); }, edit: function () { //初始化 $(function () { // 消息数据 3中类型添加 window.msgData = { type: '', data: [] }; window.toggleData = []; var msgTypeValue = $('#c-message_type').find(".msg_hidden_type").val(); var tempArr = $('#c-message_type').find(".msg_hidden_data").val(); window.lastMsgTypeValue = msgTypeValue; if (msgTypeValue == '2') { window.msgData.type = "imgtext"; window.toggleData = [ { type: "text", data: [] }, window.msgData, { type: "img", data: [] }, ]; } else if (msgTypeValue == '3') { window.msgData.type = "img"; window.toggleData = [ { type: "text", data: [] }, { type: "imgtext", data: [] }, window.msgData, ] if( tempArr && (JSON.parse(tempArr)).length != 0 ){ $('.message_type_add_btn_contianer').hide(); } } else { window.msgData.type = "text"; window.toggleData = [ window.msgData, { type: "img", data: [] }, { type: "imgtext", data: [] }, ] }; window.msgData.data = JSON.parse($('#c-message_type').find(".msg_hidden_data").val()); // 添加按钮显示隐藏 $('#material_content_arr_length').val() < 8 ? $('#message_type_add_btn').show() : $('#message_type_add_btn').hide(); }); // 消息类型切换 $('#c-message_type').on('click', '[type=radio]', function (e) { if (window.lastMsgTypeValue == e.target.value) return; $('.message_type_add_btn_contianer').show(); window.msgEditData = undefined; window.msgIsEditing = false; window.msgEditIndex = -1; window.lastMsgTypeValue = e.target.value; window.imgtext_chapter_id = ""; window.imgtext_activity_id_edit = ""; window.imgtext_book_id = ""; $(".toggleContainer").hide(); $('.message_type_content_contianer').empty(); // $('.message_type_content_contianer').empty(); switch (window.lastMsgTypeValue) { case "1": $(".text_container").show(); window.toggleData.forEach(function (item, index) { if (item.type == 'text') window.msgData = item; }) break; case "2": $(".imgtext_container").show(); window.toggleData.forEach(function (item, index) { if (item.type == 'imgtext') window.msgData = item; }) break; case "3": $(".img_container").show(); window.toggleData.forEach(function (item, index) { if (item.type == 'img') window.msgData = item; }) break; } if(window.msgData.type == 'img' && window.msgData.data.length > 0){ $(window.document).find('#message_type_add_btn').hide(); }else{ if(window.msgData.data.length < 8){ $(window.document).find('#message_type_add_btn').show(); }else{ $(window.document).find('#message_type_add_btn').hide(); } } }); // 添加消息按钮呼出弹窗 $('#message_type_add_btn').on('click', function () { if(typeof(window.msgData) !=="undefined" && window.msgData.data.length >= 8){ layer.alert("添加不能超出8条!"); return; } var url = ''; var title = ''; var val = 1; var radios = $('#c-message_type [type=radio]'); radios.each(function (index, ele) { if (ele.checked == true) { val = ele.value; } }); switch (val) { case '1': url = '/admin/send/message/text/add'; title = '文本消息'; break; case '2': url = '/admin/send/message/imgtext/add'; title = '图文消息'; break; case '3': url = '/admin/send/message/img/add'; title = '图片消息'; break; default: url = '/admin/send/message/text/add'; title = '文本消息'; break; } window.msgEditData = undefined; window.msgIsEditing = false; window.msgEditIndex = -1; Fast.api.open(url, title, { // callback: function (data) { // $this.find('img').attr('src',data.image); // } }); return false; }); // 消息删除 $('.message_type_content_contianer').on('click', '.preview_del', function (e) { switch (window.lastMsgTypeValue) { case '1': window.toggleData.forEach(function(item , index){ if(item.type == 'text')window.msgData = item; }) break; case '2': window.toggleData.forEach(function(item , index){ if(item.type == 'imgtext')window.msgData = item; }) break; case '3': window.toggleData.forEach(function(item , index){ if(item.type == 'img')window.msgData = item; }) break; } var debtn = $(e.target); var delIndex = debtn.data('index'); window.msgData.data.splice(delIndex, 1); var newHtml = ""; if (window.msgData.type == "imgtext") { $(window.msgData.data).each(function (index, item) { if (index == 0) { newHtml += ''; } else { newHtml += ''; } }); $('.message_type_content_contianer .imgtext_container').html(newHtml); } else if (window.msgData.type == 'text') { $(window.msgData.data).each(function (index, item) { newHtml += '' + ''; }); $('.message_type_content_contianer .text_container').html(newHtml); } else if (window.msgData.type == 'img') { $(window.msgData.data).each(function (index, item) { newHtml += '' + ''; }); $('.message_type_content_contianer .img_container').html(newHtml); }; // if(window.msgData.data.length < 8){ // $(window.document).find('#message_type_add_btn').show(); // } if(window.msgData.type == 'img' && window.msgData.data.length > 0){ $(window.document).find('#message_type_add_btn').hide(); }else{ if(window.msgData.data.length < 8){ $(window.document).find('#message_type_add_btn').show(); }else{ $(window.document).find('#message_type_add_btn').hide(); } } }); // 消息编辑功能 $('.message_type_content_contianer').on('click', '.preview_edit', function (e) { var url = ''; var title = ''; var val = 1; var radios = $('#c-message_type [type=radio]'); radios.each(function (index, ele) { if (ele.checked == true) { val = ele.value; } }); switch (val) { case '1': url = '/admin/send/message/text/add'; title = '文本消息'; break; case '2': url = '/admin/send/message/imgtext/add'; title = '图文消息'; break; case '3': url = '/admin/send/message/img/add'; title = '图片消息'; break; default: url = '/admin/send/message/text/add'; title = '文本消息'; break; }; switch (window.lastMsgTypeValue) { case '1': window.toggleData.forEach(function(item , index){ if(item.type == 'text')window.msgData = item; }) break; case '2': window.toggleData.forEach(function(item , index){ if(item.type == 'imgtext')window.msgData = item; }) break; case '3': window.toggleData.forEach(function(item , index){ if(item.type == 'img')window.msgData = item; }) break; } var editBtn = $(e.target); var editIndex = editBtn.data('index'); var editData = window.msgData.data[editIndex]; window.msgEditData = editData; window.msgIsEditing = true; window.msgEditIndex = editIndex; // 呼出 子页 Fast.api.open(url, title, { callback: function (data) { // $this.find('img').attr('src', data.image); } }); return false; }); // 添加测试公众号 $('.btn-add-test-subscription-list').on('click',function(){ Fast.api.open( '/admin/send/message/subscriptionlist/test_user?not_in_ids='+$('#test_channel_id').val(), '添加测试公众号' ); }); // 测试用户 $('.btn-test_user').on('click',function(){ if($('.message_type_1').is(':checked')) { var itemsHtml = ''; if(typeof(window.msgData) !=="undefined") { window.msgData.data.forEach(function (item, number) { if (item.hasOwnProperty('url')) { itemsHtml += ''; itemsHtml += ''; itemsHtml += item.content; itemsHtml += ""; } else { itemsHtml += item.content; } }); if (itemsHtml.length > 290) { Layer.msg('文本最大字符不得超过290个字符'); return false; } } } if($('#test_channel_id').length>0){ if($('#test_channel_id').val()==''){ Layer.msg('渠道ID不能为空'); return; } } if($('#c-test_message').length<=0){ Layer.msg('测试用户ID不能为空'); return; } if(!$('.message_type_1').is(':checked') && !$('.message_type_2').is(':checked') && !$('.message_type_3').is(':checked')){ Layer.msg('消息类型不能为空'); return; } var message_type = 0; if($('.message_type_1').is(':checked')){ message_type = 1; }else if($('.message_type_2').is(':checked')){ message_type = 2; }else if($('.message_type_3').is(':checked')){ message_type = 3; } if(typeof(window.msgData) == "undefined"){ Layer.msg('消息内容不能为空'); return; } if($('#test_channel_id').length>0){ var datas = { message_type:message_type, user_id:$('#c-test_message').val(), message_content : window.msgData.data, channel_id:$('#test_channel_id').val(), } }else{ var datas = { message_type:message_type, user_id:$('#c-test_message').val(), message_content : window.msgData.data, } } Layer.confirm( '确定要给该用户发送测试消息吗?', {icon: 3, title: __('Warning'), offset: 0, shadeClose: true}, function () { layer.closeAll('dialog'); $.ajax({ url:'send/message/message/testmessagetouser', type:"post", data: datas, success:function(data){ if(data.code == 1){ layer.msg('发送完成'); return false; }else{ layer.msg(data.msg); return false; } } }); } ); }); // 测试公众号删除 $('#gzh_table1').on('click', '.gzh_del_btn1' , function(e){ $('#test_channel_id').val(""); $(e.target).parent().parent().remove(); }); // 提交 $("#mater_submit").click(function(){ if(typeof(window.msgData) == 'undefined' ||window.msgData.data.length===0){ Layer.msg('消息内容不能为空'); return false; } switch (window.lastMsgTypeValue) { case '1': window.toggleData.forEach(function(item , index){ if(item.type == 'text')window.msgData = item; }) break; case '2': window.toggleData.forEach(function(item , index){ if(item.type == 'imgtext')window.msgData = item; }) break; case '3': window.toggleData.forEach(function(item , index){ if(item.type == 'img')window.msgData = item; }) break; } if($('.message_type_1').is(':checked')) { var itemsHtml = ''; if(typeof(window.msgData) !=="undefined") { window.msgData.data.forEach(function (item, number) { if (item.hasOwnProperty('url')) { itemsHtml += ''; itemsHtml += ''; itemsHtml += item.content; itemsHtml += ""; } else { itemsHtml += item.content; } }); if (itemsHtml.length > 290) { Layer.msg('文本最大字符不得超过290个字符'); return false; } } } $("#message_content").val(JSON.stringify(window.msgData.data)) }) Controller.api.bindevent(); }, message_preview: function () { Controller.api.bindevent(); }, api: { bindevent: function () { Form.api.bindevent($("form[role=form]")); } } }; return Controller; });