define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefined, Backend, Table, Form) { //编辑按钮 $(document).on('click','.btn-editone',function(){ var url = $(this).data('tourl'); var sendtime = Number($(this).data('sendtime')); if((sendtime - Date.parse(new Date())/1000)<300){ $(this).hide(); return false; }else{ Fast.api.open(url, __('Edit'), $(this).data() || {}); } }); var Controller = { index: function () { // 初始化表格参数配置 Table.api.init({ extend: { index_url: 'custom/index', add_url: 'custom/add', edit_url: 'custom/edit', del_url: 'custom/del', multi_url: 'custom/multi', table: 'custom', }, search:false, }); var table = $("#table"); // 初始化表格 table.bootstrapTable({ url: $.fn.bootstrapTable.defaults.extend.index_url, pk: 'id', sortName: 'id', columns: [ [ {checkbox: true}, // {field: 'id', title: __('Id')}, {field: 'title', title: __('标题'),operate: 'LIKE %...%'}, {field: 'sendtime', title: __('Sendtime'), operate:'RANGE', addclass:'datetimerange', formatter: Table.api.formatter.datetime}, {field: 'statue', title: __('Statue'),visible:false,operate:false}, {field: 'statue_text', title: __('Statue'), operate:false}, {field: 'send_num', title: '发送人数', operate:false}, {field: 'createtime', title: __('Createtime'), operate:'RANGE', addclass:'datetimerange', formatter: Table.api.formatter.datetime}, // {field: 'updatetime', title: __('Updatetime'), operate:'RANGE', addclass:'datetimerange', formatter: Table.api.formatter.datetime}, // {field: 'edit', title: __('编辑'), table: table, events: Table.api.events.operate,formatter: Controller.api.editCustom}, {field: 'operate', title: __('Operate'), table: table, events: Table.api.events.operate, formatter: Table.api.formatter.operate} ] ] }); // 为表格绑定事件 Table.api.bindevent(table); }, add: function () { Controller.api.bindevent(); $('.s_time_box span:eq(1)').click(); }, edit: function () { Controller.api.bindevent(); }, api: { getStatue: function (value, row, index) { if(value == 'normal'){ if (row.sendtime < Date.parse(new Date())/1000){ return '发送失败'; }else{ return '未发送'; } }else{ return '已发送'; } }, editCustom: function (value, row, index) { if(row.statue == 'normal' && (Number(row.sendtime) - Date.parse(new Date())/1000)>300){ //5分钟外的 return ''; } }, bindevent: function () { Form.api.bindevent($("form[role=form]")); //资源管理 var ore={ arrma:[ { 'title':'', 'image':'', 'url':'http://' } ], imglis:[], titlist:[], sli:'
\
\
\ \
\ \ \
\
\
\
' }; /** * form表单验证 */ $("form[role=form]").data("validator-options", { ignore: ':hidden', beforeSubmit: function (form) { var $imgTxtMain = $('.img_txt_main'); var reg = /^(http[s]?|ftp):\/\/[^\/\.]+?\..+\w/; var sList = ''; ore.arrma = []; //标题 if($.trim($('#title').val()).length == 0){ Toastr.error("标题不能为空"); return false; } for(var i=0; i<$imgTxtMain.length; i++){ ore.arrma.push({}); //标题 if($('.img_txt_main:eq('+ i +') input:eq(0)').val().length > 0){ ore.arrma[i].title = $('.img_txt_main:eq('+ i +') input:eq(0)').val(); }else{ Toastr.error("图文标题不能为空"); return false; } //链接 if(reg.test($('.img_txt_main:eq('+ i +') input:eq(1)').val())){ ore.arrma[i].url = $('.img_txt_main:eq('+ i +') input:eq(1)').val(); }else{ Toastr.error("请填写图文正确的跳转链接"); return false; } //图片 if($('.img_txt_main:eq('+ i +') img').attr('src').length > 0){ ore.arrma[i].image = $('.img_txt_main:eq('+ i +') img').attr('src'); }else{ Toastr.error("请填写图文正确的跳转链接"); 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; } sList = JSON.stringify(ore.arrma); $('.img_txt_hidde_input').val(sList); // console.log('验证'); // return false; } }); Form.api.bindevent($("form[role=form]"), function (data) { Fast.api.close(data); }, function (data) { console.log('error', data); } ); /** * 资源类型管理 */ $(document).on('click', "input[name='row[type]']", function () { var type = $(this).val(); if (type=='all'){ var tagObj = { all:"1" } }else{ var tagObj ={ sex:-1, 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'); }); /** * 插入链接 */ $(document).on('click', ".btn-insertlink", function () { var textarea = $("textarea[name='row[content]']"); var cursorPos = textarea.prop('selectionStart'); var v = textarea.val(); var textBefore = v.substring(0, cursorPos); var textAfter = v.substring(cursorPos, v.length); Layer.prompt({title: '请输入显示的文字', formType: 3}, function (text, index) { Layer.close(index); Layer.prompt({title: '请输入跳转的链接URL(包含http/https)', formType: 3}, function (link, index) { text = text == '' ? link : text; textarea.val(textBefore + '' + text + '' + textAfter); Layer.close(index); }); }); }); if ($('#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[i].name+''; } $('#ctag').append(htmlstr); $('#mustbe').html('约'+res.ids+'人'); if ($('#usercondition').val().length > 0){ $tagval = JSON.parse($('#usercondition').val()); $("#sex span[data-sex='"+$tagval.sex+"']").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'); console.log($tagval); }else{ var tagObj1 ={ sex:-1, tag:-1, consume:-1, kandian: -1, subscribe_time:-1, all:"0" }; var ucon1 = JSON.stringify(tagObj1); $('#usercondition').val(ucon1); } }, error:function(err){ } }); $.ajax({ type:'get', url:'/admin/manage/cover/ajax?sort=id&order=desc&offset=0&limit=10&filter={"status":"normal"}', cache:false, async:false, success:function(data){ // console.log(data) ore.imglis = data.rows; }, error:function(err){ } }); $.ajax({ type:'get', url:'/admin/manage/title/ajax?sort=id&order=desc&offset=0&limit=10&filter={"status":"normal"}', cache:false, async:false, success:function(data){ // console.log(data) ore.titlist = data.rows; ore.arrma[0]['image'] = ore.imglis[parseInt(Math.random()*ore.imglis.length)]['image']; ore.arrma[0]['title'] = ore.titlist[parseInt(Math.random()*ore.titlist.length)]['title']; console.log($('.img_txt_hidde_input').val()); if($('.img_txt_hidde_input').val().length > 0){ ore.arrma = JSON.parse($('.img_txt_hidde_input').val()); for(var i=0; i\
\ \
\ \ \
\
\
\ '); }else{ var sLiImg=ore.sli.replace(/sli_img/g,ore.arrma[i]['image']); sLiImg=sLiImg.replace(/sli_value/g,ore.arrma[i]['title']); sLiImg=sLiImg.replace(/click_url/g,ore.arrma[i]['url']); $('.img_txt_list').append(sLiImg); } } }else{ $('.img_txt_list').html('
\
\ \
\ \ \
\
\
\
'); } }, error:function(err){ } }); var flag = 0; //测试发送 $('.test_fans_but').click(function(){ if(flag == 1){ return false; } flag = 1; var $imgTxtMain = $('.img_txt_main'); var reg = /^(http[s]?|ftp):\/\/[^\/\.]+?\..+\w/; var sList = ''; ore.arrma = []; //标题 if($.trim($('#title').val()).length == 0){ Toastr.error("标题不能为空"); flag = 0; return false; } for(var i=0; i<$imgTxtMain.length; i++){ ore.arrma.push({}); //标题 if($('.img_txt_main:eq('+ i +') input:eq(0)').val().length > 0){ ore.arrma[i].title = $('.img_txt_main:eq('+ i +') input:eq(0)').val(); }else{ Toastr.error("图文标题不能为空"); return false; } //链接 if(reg.test($('.img_txt_main:eq('+ i +') input:eq(1)').val())){ ore.arrma[i].url = $('.img_txt_main:eq('+ i +') input:eq(1)').val(); }else{ Toastr.error("请填写图文正确的跳转链接"); return false; } //图片 if($('.img_txt_main:eq('+ i +') img').attr('src').length > 0){ ore.arrma[i].image = $('.img_txt_main:eq('+ i +') img').attr('src'); }else{ Toastr.error("请填写图文正确的跳转链接"); return false; } } sList = JSON.stringify(ore.arrma); if($.trim($('#userId').val()) == ''){ Toastr.error("请填写测试粉丝ID"); flag = 0; return false; } var sentData = { admin_id:$('#admin_id').val(), user_id:$('#userId').val(), cdata:sList }; $.ajax({ type:'post', url:'/admin/custom/sent', data:sentData, dataType:'json', cache:false, async:false, success:function(data){ flag = 0; if (data.error == 1){ Toastr.error(data.msg); }; if(data.error == 0){ Toastr.success(data.msg); } }, error:function(err){ flag = 0; } }) }); //发送消息时间 $(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)); }); $(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'), 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:$('#subTime span.s_s_tag').data('week'), all:"0" } 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'), 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:$('#subTime span.s_s_tag').data('week'), 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'); } }); }); $(document).on('click','.img_txt_add_but',function(){ var $List=$('.img_txt_main'); var oNowData = { image:ore.imglis[parseInt(Math.random()*ore.imglis.length)]['image'], title:ore.titlist[parseInt(Math.random()*ore.titlist.length)]['title'], url:'http://' }; var sLiImg=ore.sli.replace(/sli_img/g,oNowData['image']); sLiImg=sLiImg.replace(/sli_value/g,oNowData['title']); sLiImg=sLiImg.replace(/click_url/g,'http://'); if($List.length<8){ $('.img_txt_list').append(sLiImg); ore.arrma.push(oNowData); }else{ Toastr.error("不能超过8篇"); } }); $(document).on('click','.img_txt_remvoe',function(){ var $this=$(this); $this.parent().remove(); }); //修改title $(document).on('click','.img_txt_edit_tit',function(){ var $this=$(this); Fast.api.open('manage/title/select', '选择', { callback: function (data) { // console.log('展示title回调', data); $this.parent().find('input').eq(0).val(data.title); } }); }); //修改url $(document).on('click','.img_txt_edit_url',function(){ var $this=$(this); Fast.api.open('referral/referral/select?one=1', '选择', { callback: function (data) { var data = data[0]; // console.log('展示title回调', data); $this.parent().find('input').eq(1).val(data.source_url); } }); }); //修改book $(document).on('click','.img_txt_edit_book',function(){ var $this=$(this); Fast.api.open('book.book/select?one=1', '选择', { callback: function (data) { var data = data[0]; $this.parent().find('input').eq(1).val(data.current_book_url); } }); }); //修改图片 $(document).on('click','.img_txt_edit_img',function(){ var $this=$(this); Fast.api.open('manage/cover/select', '选择', { callback: function (data) { // console.log('展示image回调', data); $this.find('img').attr('src',data.image); } }); }); //修改跳转链接 $(document).on('click','.img_txt_main a',function(){ var $this=$(this); var nIndex = $this.parents('.img_txt_main').index(); layer.prompt({ formType: 2, value: ore.arrma[nIndex].url, title: '请输入跳转链接地址(http://)', area: ['300px', '100px'] //自定义文本域宽高 }, function(value, index, elem){ var reg=/^([hH][tT]{2}[pP]:\/\/|[hH][tT]{2}[pP][sS]:\/\/)(([A-Za-z0-9-~]+)\.)+([A-Za-z0-9-~\/])+$/; if(reg.test(value)){ layer.close(index); ore.arrma[nIndex].url = value; $this.html(value); }else{ Toastr.error("请输入正确的跳转地址。"); } }); }); 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; } } } }; return Controller; });