123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409 |
- define(['jquery', 'bootstrap', 'backend', 'table', 'form','selectpage'], function ($, undefined, Backend, Table, Form, Selectpage) {
- var Controller = {
- index: function () {
- // 初始化表格参数配置
- Table.api.init({
- extend: {
- index_url: 'special/block/index?page_id='+Config.page_id,
- add_url: 'special/block/add?page_id='+Config.page_id,
- edit_url: 'special/block/edit',
- del_url: 'special/block/del',
- multi_url: 'special/block/multi',
- table: 'special_block',
- }
- });
- var table = $("#table");
- // 初始化表格
- table.bootstrapTable({
- url: $.fn.bootstrapTable.defaults.extend.index_url,
- pk: 'id',
- sortName: 'weigh',
- columns: [
- [
- {checkbox: true},
- {field: 'id', title: __('Id'), operate:false},
- {field: 'page_id', title: __('Page_id'), operate:false},
- {field: 'block_name', title: __('Block_name'), operate:'LIKE %...%'},
- {field: 'block_type', title: __('Block_type'), visible:false, searchList: {"1":__('Block_type 1'),"3":__('Block_type 3'),"4":__('Block_type 4'),"5":__('Block_type 5')}},
- {field: 'block_type_text', title: __('Block_type'), operate:false},
- {field: 'weigh', title: __('Weigh'), operate:false},
- {field: 'createtime', title: __('Createtime'), operate:false, addclass:'datetimerange', formatter: Table.api.formatter.datetime},
- {field: 'updatetime', title: __('Updatetime'), operate:false, addclass:'datetimerange', formatter: Table.api.formatter.datetime},
- {field: 'operate', title: __('Operate'), table: table, events: Table.api.events.operate, formatter: Table.api.formatter.operate}
- ]
- ],
- onPostBody: function () {
- $(".btn-dragsort").hide();
- }
- });
- // 为表格绑定事件
- Table.api.bindevent(table);
- },
- add: function () {
- window.scene = 'add';
- init();
- Controller.api.bindevent();
- },
- edit: function () {
- window.scene = 'edit';
- setBlockTypeSelect();
- init();
- Controller.api.bindevent();
- },
- api: {
- bindevent: function () {
- $("#add-form, #edit-form").data("validator-options", {
- ignore: ':hidden',
- beforeSubmit: function (form) {
- if (!columnRequired("#c-block_name")) {
- return false;
- }
- console.log(12);
- var block_type = $('#c-block_type').find("option:selected").attr('value');
- switch (block_type) {
- case "1":
- //标题模块
- if (!columnRequired("#c-title")) {
- return false;
- }
- var title_type = $('#c-title_type').find("option:selected").attr('value');
- if (title_type == "4") {
- //图片
- if (!columnRequired("#c-image")) {
- return false;
- }
- } else {
- resetImage();
- }
- //重置其他没用的字段
- resetTextColumn("#c-content, #c-news_color, #c-btn_title, #c-book_id, #c-activity_id, #c-activity_name");
- resetSelectColumn("#c-news_type, #c-is_add_book, #c-go_method, #c-is_show_hot");
- break;
- case "2":
- //描述
- if (!columnRequired("#c-content")) {
- return false;
- }
- var is_add_book = $('#c-is_add_book').find("option:selected").attr('value');
- if (is_add_book == "1") {
- //书籍 按钮文案
- if (!columnRequired("#c-btn_title, #c-book_id")) {
- return false;
- }
- }
- resetImage();
- //重置其他没用的字段
- resetTextColumn("#c-title, #c-news_color, #c-activity_id, #c-activity_name");
- resetSelectColumn("#c-title_type, #c-news_type, #c-is_show_hot");
- break;
- case "3":
- //书籍
- if (!columnRequired("#c-book_id, #c-news_color")) {
- return false;
- }
- resetImage();
- //重置其他没用的字段
- resetTextColumn("#c-title, #c-activity_id, #c-activity_name, #c-content");
- resetSelectColumn("#c-title_type, #c-is_add_book");
- break;
- case "4":
- //图片
- if (!columnRequired("#c-content")) {
- return false;
- }
- var is_add_book = $('#c-is_add_book').find("option:selected").attr('value');
- if (is_add_book == "1") {
- //书籍 按钮文案
- if (!columnRequired("#c-book_id")) {
- return false;
- }
- }
- //重置其他没用的字段
- resetTextColumn("#c-news_color, #c-activity_id, #c-activity_name");
- resetSelectColumn("#c-title_type, #c-news_type, #c-is_show_hot");
- break;
- case "5":
- if (!columnRequired("#c-image, #c-activity_id")) {
- return false;
- }
- break;
- }
- }
- });
- var refreshactkey = function (data) {
- Layer.closeAll();
- $('#c-activity_id').val(data[0].id);
- $('#c-activity_name').val(data[0].name);
- };
- $(document).on('click', "#select-activity-resources", function () {
- parent.Backend.api.open($(this).attr("href") + "?type=0&state=1", __('Select'), {callback: refreshactkey});
- return false;
- });
- Form.api.bindevent($("form[role=form]"));
- }
- }
- };
- /**
- * 初始化下拉事件
- */
- function init() {
- $(document).on("change", "#c-title_type", function () {
- var title_type_val = $(this).val();
- chooseTitleType(title_type_val);
- });
- $(document).on("change", "#c-block_type", function () {
- var block_type_val = $(this).val();
- chooseBlockType(block_type_val);
- });
- $(document).on("change", "#c-is_add_book", function () {
- var add_book_val = $(this).val();
- chooseAddBook(add_book_val);
- });
- }
- /**
- * 切换模块类型
- * @param val
- */
- function chooseBlockType(val) {
- //重置下拉选项
- resetSelectColumn("#c-title_type, #c-news_type, #c-is_add_book, #c-go_method, #c-is_show_hot");
- //重置输入框
- resetTextColumn("#c-title, #c-content, #c-news_color, #c-btn_title, #c-book_id, #c-activity_id, #c-activity_name");
- //重置图片
- resetImage();
- switch (val) {
- case "1":
- showColumn(".title, .title_type");
- hideColumn(".des-content, .is_add_book, .btn_title, .book_id, .go_method, .activity_name, .news_type, .is_show_hot, .news_color, .image");
- break;
- case "2":
- hideColumn(".title, .title_type, .image, .news_type, .is_show_hot, .go_method, .book_id, .btn_title, .news_color, .activity_name");
- showColumn(".des-content, .is_add_book");
- break;
- case "3":
- hideColumn(".title, .title_type, .des-content, .is_add_book, .image, .activity_name");
- showColumn(".news_type, .book_id, .is_show_hot, .go_method, .news_color, .btn_title");
- break;
- case "4":
- hideColumn(".title, .title_type, .activity_id, .is_show_hot, .go_method, .news_type, .book_id, .news_color, .activity_name");
- showColumn(".des-content, .image, .is_add_book, .btn_title");
- break;
- case "5":
- hideColumn(".title, .title_type, .btn_title, .is_show_hot, .go_method, .news_type, .book_id, .news_color, .des-content, .is_add_book");
- showColumn(".image, .activity_name");
- break;
- }
- }
- /**
- * 切换标题样式
- * @param val
- */
- function chooseTitleType(val) {
- hideColumn(".image");
- if (window.scene == 'add') {
- resetImage();
- }
- if (val == "4") {
- showColumn(".image");
- }
- }
- function chooseAddBook(val) {
- if (val == "1") {
- var block_type = $('#c-block_type').find("option:selected").attr('value');
- if (block_type == "2") {
- showColumn(".btn_title");
- }
- showColumn(".book_id, .go_method");
- if (window.scene == 'add') {
- resetTextColumn("#c-btn_title, #c-book_id");
- resetSelectColumn("#c-go_method");
- }
- } else {
- hideColumn(".btn_title, .book_id, .go_method");
- if (window.scene == 'add') {
- resetTextColumn("#c-btn_title, #c-book_id");
- resetSelectColumn("#c-go_method");
- }
- }
- }
- /**
- * 清空图片
- */
- function resetImage() {
- $("#c-image").val("");
- $("#p-image li").remove();
- }
- /**
- * 重置输入框元素的值
- * @param val
- */
- function resetTextColumn(val) {
- var strs = new Array();
- strs = val.split(",");
- if (strs.length > 0) {
- for (i=0; i<strs.length; i++) {
- var selector = strs[i];
- if ($(selector).hasClass("editor")) {
- $(selector).summernote('code', "");
- } else {
- $(selector).val("");
- }
- }
- }
- }
- /**
- * 重置下拉选项元素的值
- * @param val
- */
- function resetSelectColumn(val) {
- var strs = new Array();
- strs = val.split(",");
- if (strs.length > 0) {
- for (i=0; i<strs.length; i++) {
- var selector = strs[i];
- var firstOptionVal = $(selector).find("option").eq(0).attr("value");
- $(selector).val(firstOptionVal);
- $(selector).selectpicker('refresh');
- }
- }
- }
- /**
- * 隐藏模块
- * @param val
- */
- function hideColumn(val) {
- var strs = new Array();
- strs = val.split(",");
- if (strs.length > 0) {
- for (i=0; i<strs.length; i++) {
- var selector = strs[i];
- if (!$(selector).hasClass("hide")) {
- $(selector).addClass("hide");
- }
- }
- }
- }
- /**
- * 展示模块
- * @param val
- */
- function showColumn(val) {
- var strs = new Array();
- strs = val.split(",");
- if (strs.length > 0) {
- for (i=0; i<strs.length; i++) {
- var selector = strs[i];
- if ($(selector).hasClass("hide")) {
- $(selector).removeClass("hide");
- }
- }
- }
- }
- /**
- * 初始化类别展示项
- */
- function setBlockTypeSelect() {
- var block_type = $('#c-block_type').find("option:selected").attr('value');
- $('#c-block_type').prop('disabled', true);
- switch (block_type) {
- case "1":
- showColumn(".title, .title_type");
- if ($('#c-title_type').find("option:selected").attr('value') == "4") {
- showColumn(".image");
- }
- break;
- case "2":
- showColumn(".des-content, .is_add_book");
- if ($('#c-is_add_book').find("option:selected").attr('value') == "1") {
- showColumn(".btn_title, .book_id, .go_method");
- }
- break;
- case "3":
- showColumn(".news_type, .book_id, .is_show_hot, .go_method, .news_color, .btn_title");
- break;
- case "4":
- showColumn(".des-content, .image, .is_add_book, .btn_title");
- if ($('#c-is_add_book').find("option:selected").attr('value') == "1") {
- showColumn(".book_id, .go_method");
- }
- break;
- case "5":
- showColumn(".image, .activity_name");
- break;
- }
- }
- /**
- * 检测是否为空
- * @param val
- */
- function columnRequired(val) {
- var strs = new Array();
- strs = val.split(",");
- var res = true;
- if (strs.length > 0) {
- for (i=0; i<strs.length; i++) {
- var selector = strs[i];
- console.log(selector);
- var selector_val = $(selector).val();
- if (selector_val.length < 1) {
- var tips = $(selector).data('tip');
- Toastr.error(tips);
- $(selector).focus();
- res = false;
- break;
- }
- }
- }
- return res;
- }
- return Controller;
- });
|