define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefined, Backend, Table, Form) { var Controller = { index: function () { // 初始化表格参数配置 Table.api.init({ extend: { index_url: 'kl/ruleconfig/index?rule_id='+Config.rule_id, add_url: 'kl/ruleconfig/add?rule_id='+Config.rule_id, edit_url: 'kl/ruleconfig/edit?rule_id='+Config.rule_id, del_url: 'kl/ruleconfig/del?rule_id='+Config.rule_id, multi_url: 'kl/ruleconfig/multi?rule_id='+Config.rule_id, table: 'kl_rule_config', } }); var table = $("#table"); // 初始化表格 table.bootstrapTable({ url: $.fn.bootstrapTable.defaults.extend.index_url, pk: 'id', sortName: 'id', columns: [ [ {checkbox: true}, {field: 'id', title: __('Id')}, {field: 'rule_id', title: __('Rule_id')}, {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: 'operate', title: __('Operate'), table: table, events: Table.api.events.operate, formatter: Table.api.formatter.operate} ] ] }); // 为表格绑定事件 Table.api.bindevent(table); }, add: function () { var scene = 'add'; Controller.api.bindevent(); $("[data-toggle='tooltip']").tooltip({trigger: 'focus hover',html : true}); }, edit: function () { var scene = 'update'; //初始化 $(function () { //未选中的清理数据 if (!$("#s_new_user_status").is(":checked")) { $("#s_new_user_add").val(""); $("#s_new_user_recharge_add").val(""); } else { $("#s_new_user_status_block").removeClass("hide"); //未选中小项隐藏 isChecked("#s_new_user_city_status"); isChecked("#s_new_user_add_status"); isChecked("#s_new_user_recharge_add_status"); } if (!$("#s_old_user_status").is(":checked")) { $("#s_old_user_active").val(""); $("#s_old_user_recharge_add").val(""); } else { $("#s_old_user_status_block").removeClass("hide"); //未选中小项隐藏 isChecked("#s_old_user_city_status"); isChecked("#s_old_user_active_status"); isChecked("#s_old_user_recharge_add_status"); } if (!$("#f_behavior_status").is(":checked")) { $("#f_one_recharge").val(""); $("#f_read").val(""); $("#f_kandian").val(""); $("#f_orders").val(""); } else { $("#f_behavior_status_block").removeClass("hide"); //未选中小项隐藏 isChecked("#f_one_recharge_status"); isChecked("#f_recharge_status"); isChecked("#f_read_status"); isChecked("#f_kandian_status"); isChecked("#f_orders_status"); } if (!$("#f_register_status").is(":checked")) { $("#f_register").val(""); } else { $("#f_register_status_block").removeClass("hide"); } if (!$("#o_general_status").is(":checked")) { $("#o_general_new").val(""); $("#o_general_old").val(""); $("#o_general_many").val(""); } else { $("#o_general_status_block").removeClass("hide"); isChecked("#o_general_new_status"); isChecked("#o_general_old_status"); isChecked("#o_general_many_status"); } if (!$("#o_vip_status").is(":checked")) { $("#o_vip_new").val(""); $("#o_vip_old").val(""); $("#o_vip_many").val(""); } else { $("#o_vip_status_block").removeClass("hide"); isChecked("#o_vip_new_status"); isChecked("#o_vip_old_status"); isChecked("#o_vip_many_status"); } if (!$("#o_activity_status").is(":checked")) { $("#o_activity_new").val(""); $("#o_activity_old").val(""); $("#o_activity_many").val(""); } else { $("#o_activity_status_block").removeClass("hide"); isChecked("#o_activity_new_status"); isChecked("#o_activity_old_status"); isChecked("#o_activity_many_status"); } $("[data-toggle='tooltip']").tooltip({trigger: 'focus hover',html : true}); }); Controller.api.bindevent(); }, api: { bindevent: function () { $(document).on('click', ".choose-block", function (e) { var inputIdx = "#"+ $(this).attr("id"); toggleGroup(inputIdx); }); $(document).on('click', ".choose_column", function (e) { var inputIdx = "#"+ $(this).attr("id"); toggleColumn(inputIdx); }); $(document).on('click', ".td-hide", function (e) { var trId = $(this).parent().attr('id'); var columnId = trId.replace(/_column/, ''); $("#"+trId).addClass("hide"); $("#"+columnId).prop("checked", false); //都隐藏了? checkHideBlock('#'+columnId); }); $("#add-form, #edit-form").data("validator-options", { ignore: ':hidden', beforeSubmit: function (form) { if ($("#s_new_user_status").is(":checked")) { //筛选器 新用户过滤 if (!checkEmpty("#s_new_user_add, #s_new_user_recharge_add")) { return false; } } if ($("#s_old_user_status").is(":checked")) { //筛选器 老用户过滤 if (!checkEmpty("#s_old_user_active, #s_old_user_recharge_add")) { return false; } } if ($("#s_new_user_status").is(":checked") == false && $("#s_old_user_status").is(":checked") == false ) { Toastr.error("筛选器规则必须一个"); return false; } //过滤器 if ($("#f_behavior_status").is(":checked")) { //过滤器 用户行为的判定 if (!checkEmpty("#f_one_recharge, #f_read, #f_kandian, #f_orders")) { return false; } } if ($("#f_register_status").is(":checked")) { //过滤器 用户行为的判定 if (!checkEmpty("#f_register")) { return false; } } if ($("#f_behavior_status").is(":checked") == false && $("#f_register_status").is(":checked") == false ) { Toastr.error("过滤器规则必须一个"); return false; } if ($("#o_general_status").is(":checked")) { //订单扣量比例规则 普通订单 if (!checkEmpty("#o_general_new, #o_general_old, #o_general_many")) { return false; } } if ($("#o_vip_status").is(":checked")) { //订单扣量比例规则 VIP订单 if (!checkEmpty("#o_vip_new, #o_vip_old, #o_vip_many")) { return false; } } if ($("#o_activity_status").is(":checked")) { //订单扣量比例规则 活动订单 if (!checkEmpty("#o_vip_new, #o_vip_old, #o_vip_many")) { return false; } } if ($("#o_general_status").is(":checked") == false && $("#o_vip_status").is(":checked") == false && $("#o_activity_status").is(":checked") == false ) { Toastr.error("订单扣量比例规则必须一个"); return false; } } }); Form.api.bindevent($("form[role=form]")); } } }; /** * 检测是否为空 * @param val */ function checkEmpty(val) { var strs = new Array(); strs = val.split(","); var res = true; if (strs.length > 0) { for (i=0; itbody>tr'); for (var i=0; i< trs.length; i++) { trs.eq(i).removeClass('hide'); } } else { $(blockId).addClass('hide'); } } /** * 展示和隐藏元素 * @param inputIdx */ function toggleColumn(inputIdx) { var blockId = inputIdx+'_column'; if ($(inputIdx).is(":checked")) { //展示 $(blockId).removeClass('hide'); } else { $(blockId).addClass('hide'); //判断都隐藏了? checkHideBlock(inputIdx); } } function checkHideBlock(inputIdx) { var blockId = $(inputIdx).parents("div[id$='block']").attr("id"); //判断下面的td是不是都隐藏了 var trs = $("#"+blockId).find('table>tbody>tr'); var allHide = true; for (var i=0; i< trs.length; i++) { if (!trs.eq(i).hasClass('hide')) { allHide = false; } } if (allHide) { //隐藏所有 $('#'+blockId).addClass('hide'); var statusId = blockId.replace(/_block/, ''); $("#"+statusId).prop("checked", false); } } //未选中时隐藏小项 function isChecked(selector) { if (!$(selector).is(":checked")) { $(selector+"_column").addClass('hide'); $(selector+"_column").find("input").val(""); } } return Controller; });