//应用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 = '