//应用JS后期语法框架 (function($){ //内部初始化入口 var applan = function(){ var $self = this, strArr = $self.aparr(); //计算选中广告位个数 $self.addnum(strArr); //提交处理 $(document).on('submit', '.add_ap_list form', function(event) { event.preventDefault(); //阻止默认提交 }) //修改form提交方式 $(document).on('click', '.add_ap_list form button[type="submit"]', function(event) { event.preventDefault(); //阻止默认提交 var $form = $(this).parents('form'); //手动触发全部验证 // $form.data('formValidation').resetForm(); $form.data('formValidation').validate({debug:true}); //查看验证结果,若为false 则阻止 var flag = $form.data("formValidation").isValid(); //验证时间是否合法 if(flag != false){ //执行入库操作,返回ID $self.laaajx($form.attr('action'),$self.formdata($form)); } //修改表格按钮禁止操作 // $(this).attr("disabled",true); }); //解决被禁用前选中的,点击取消后则不能再勾选 $('table tbody').on('click', '.ap-one-disabled', function(event) { $(this).removeClass('ap-one-disabled'); $(this).find('input').attr("disabled",true); }) // $(document).on('change',"[data-table-search]",function(){ // return false; // }) //全选 $(document).on('click','.ap-all input',function(){ var idArr = []; //选中值 var table = $(this).parents('table').find('tbody'); table.find('.ap-one').each(function(index,element){ var oneid = $(this).find('input[name="id"]').val(), disabled = $(this).find('input[name="id"]').prop('disabled'); if(APPFUN.isEmpty(disabled)) idArr.push(oneid); }) this.checked === true?$self.addap(idArr):$self.apdelall(idArr); }); //必须定位到 table tbody on方法才生效 $('table tbody').on('click','.ap-one input',function(){ var idStr = $(this).val(); this.checked === true?$self.addap(idStr):$self.delap(idStr); }); }; //扩展方法 applan.prototype = { addnum:function(strArr){ var $self = this; strArr = $.unique(strArr); $('.addnum').text(strArr.length); }, apdelall:function(idArr){ var $self = this; $.each(idArr,function(i,idStr){ $self.delap(idStr); }) }, addap:function(idStrArr){ //新增选中值 var $self = this, strArr = $self.aparr(); //新增选中的元素 strArr = strArr.concat(idStrArr); //排序 strArr.sort(); //去重 strArr =$.unique(strArr); $self.apinput(strArr.join(","),true); //选中个数 $self.addnum(strArr); }, delap:function(idStr){ //删除选中值 var $self = this, strArr = $self.aparr(), strlen = $.inArray(idStr, strArr); //删除选中值 if(strlen != '-1') strArr.splice(strlen, 1); //排序 strArr.sort(); //重新写会 $self.apinput(strArr.join(","),true); //选中个数 $self.addnum(strArr); }, apinput:function(str,type){ //获取或者写入 //true 为写入 false为获取 var input = $('input[name="l_selectenum"]'); return APPFUN.isEmpty(type)?input.val():input.val(str); }, aparr:function(){ //选中广告位编号 var $self = this, str = $self.apinput(); return !APPFUN.isEmpty(str)?str.split(","):[]; }, formdata:function(form){ var Array = form.serializeArray(), dataOjb = {}; //转成一对一 $.each(Array,function(key,val){ dataOjb[val.name] = val.value; }); return dataOjb; }, laaajx:function(url,data){ var $self = this, scrollable_this = $('[data-plugin="scrollable"]'); //点击保存后,先处理保存,再执行点位 $.post(url,data,function(json){ if(json.code){ // // 执行成功,则自动跳转到下一步 window.location.replace(window.location.href + '&slid='+json.slid+'&nextstep=1'); }else{ $self.addappend(scrollable_this,json.text,0); $self.alerthtml(false,json.text); } },'json'); }, nextstep:function(){ var $self = this, scrollable_this = $('[data-plugin="scrollable"]'), //获取广告位数组 strArr = $self.aparr(), //提交的URL url = M.url.own_name + 'c=ajax&a=doapplan&lang=' + M.lang, //获取form数据 data = $self.formdata($('form')), falsei = 0, truei = 0; $self.scrollable(scrollable_this); //先重新初始化显示 //去重 strArr =$.unique(strArr); $.each(strArr,function(i,idStr){ data['ap_enumber'] = idStr; $.post(url,data,function(json){ // 将操作结果反馈给页面 $self.addappend(scrollable_this,json.text,json.code?1:2); var inputid = $('input[value="'+json.eid+'"]').parent('.ap-one'); if(json.code){ truei++; inputid.removeClass('checkbox-danger').addClass('checkbox-success'); }else{ falsei++; inputid.removeClass('checkbox-success').addClass('checkbox-danger'); } //输出最终结果 if(strArr.length == truei*1 + falsei*1){ //再执行,将最终的结果保存到对应的投放ID内 var urls = M.url.own_name + 'c=ajax&a=dolenumber&lang=' + M.lang; // 将缓存表内保存的排期成功数据保存到表内 $.post(urls,data,function(dajson){ var text = '本次广告投放计划共涉及('+strArr.length+')个广告位,排期成功的('+truei+')个广告位,排期失败的('+falsei+')个广告位。', falseicode = falsei == 0?true:false; if(dajson.code == false){ falseicode = false; text += dajson.text; } //同步给排期成功的字段 if(dajson.code) $('input[name="l_enumber"]').val(dajson.idstr); //信息反馈页面 $self.addappend(scrollable_this,dajson.text,dajson.code?0:2); $self.addappend(scrollable_this,text,0); $self.alerthtml(falseicode,text); scrollable_this.asScrollable('scrollTo','vertical','100%'); },'json'); } },'json'); }); }, alerthtml:function(bool,text){ var color = bool?'alert-success':'alert-danger', url = M.url.own_name + 'c=table_on&a=dolaunch', alert = ''; $('.launch_affix_save').remove(); $('form').append(alert); $(document).on('click','.launchlist',function(e){ window.location.replace(url); }) }, addappend:function(_this_,text,code){ var color = ['blue-600','green-600','red-600'], icon = ['wb-bell','wb-check','wb-close'], litext = '
  • ' + text + '
  • '; $('.launchshow').append(litext); _this_.asScrollable('scrollTo','vertical','100%'); }, scrollable:function(_this_){ M['plugin']['asscrollable']=[ // M['url']['static2_vendor']+'asscrollable/asScrollable.min.css', M['url']['static2_vendor']+'asscrollbar/jquery-asScrollbar.min.js', M['url']['static2_vendor']+'asscrollable/jquery-asScrollable.min.js', ]; $.include(M['plugin']['asscrollable'], function () { _this_.asScrollable('destroy'); _this_.asScrollable({ namespace: "scrollable", contentSelector: "> [data-role='content']", containerSelector: "> [data-role='container']" }); }); }, scrollToEnd:function(){ //滚动到底部 var h = $(document).height()-$(window).height(); $(document).scrollTop(h); } }; //外部入口 $.fn.aplist = function () { var naplan = new applan(); if( !APPFUN.isEmpty($('input[name="nextstep"]').val()) ) { $('#tables-list').on( 'draw.dt', function ( e,settings ) { naplan.scrollToEnd(); }) naplan.nextstep(); } }; //启动 $(".add_ap_list").aplist(); })(jQuery);