define(['jquery', 'bootstrap', 'backend', 'form', 'table'], function ($, undefined, Backend, Form, Table) { var Controller = { index: function () { // 初始化表格参数配置 Table.api.init({ extend: { index_url: 'buiattach/index', table: 'attachment' }, }); var table = $("#table"); Template.helper("Moment", Moment); // 初始化表格 table.bootstrapTable({ url: $.fn.bootstrapTable.defaults.extend.index_url, formatshowingRows:false, paginationDetail:false, sortName: 'id', templateView: true, columns: [ [ {field: 'state', checkbox: true}, {field: 'id', title: __('Id')}, {field: 'category', title: __('Category'), operate: 'in', formatter: Table.api.formatter.label, searchList: Config.categoryList}, {field: 'preview', title: __('Preview'), formatter: Controller.api.formatter.thumb, operate: false}, {field: 'url', title: __('Url'), formatter: Controller.api.formatter.url, visible: false}, {field: 'filename', title: __('Filename'), sortable: true, formatter: Controller.api.formatter.filename, operate: 'like'}, {field: 'filesize', title: __('Filesize'), operate: 'BETWEEN', sortable: true, formatter: function (value, row, index) { var size = parseFloat(value); var i = Math.floor(Math.log(size) / Math.log(1024)); return (size / Math.pow(1024, i)).toFixed(i < 2 ? 0 : 2) * 1 + ' ' + ['B', 'KB', 'MB', 'GB', 'TB'][i]; }} ] ], //禁用默认搜索 search: false, //启用普通表单搜索 commonSearch: false, //可以控制是否默认显示搜索单表,false则隐藏,默认为false searchFormVisible: false, //分页大小 pageSize: 12 }); //判断浏览器大小 function screen() { var width = top.document.documentElement.clientWidth; if (width > 1200) { return 3; //大屏幕 } else if (width > 992) { return 2; //中屏幕 } else if (width > 768) { return 1; //小屏幕 } else { return 0; //超小屏幕 } } // 绑定过滤事件 $('.filter-type a', table.closest(".panel-intro")).on('click', function (e) { $(this).parent().find("a").removeClass("active"); $(this).addClass("active"); var value = $(this).data("value") || ''; var query = {}; if(value.length > 0){ query = { op: JSON.stringify({"category":"IN"}), filter:JSON.stringify({"category":value}) }; } table.bootstrapTable('refresh',{silent:true,query:query}); }); //附件归类 $(document).on('click', '.btn-classify', function () { var ids = Table.api.selectedids(table); Layer.open({ title: __('Classify'), content: Template("typetpl",{}), yes: function (index, layero) { var category = $("select[name='category']", layero).val(); Fast.api.ajax({url: "general/attachment/classify",type: "post", data:{category:category,ids:ids.join(',')}, }, function () { table.bootstrapTable('refresh', {}); Layer.close(index); }); }, success: function (layero, index) {} }); }); //图片删除事件 $(document).on("click","#delImage",function(){ var chk_value = []; var category = $(this).data("value"); $('input[name="checkbox"]:checked').each(function(){ chk_value.push($(this).val()); }); if(chk_value.length < 1){ Toastr.error("请先选中图片在删除"); return false; } var image_id = chk_value.join(","); Layer.confirm(__('Are you sure you want to delete this item?'), {icon: 3,title: '提示'}, function (index) { Backend.api.ajax({ url: "general/attachment/del", data: {ids:image_id} }, function () { table.bootstrapTable('refresh', {}); Layer.close(index); }); }); }); //移动至 $(document).on("click", ".dropdown-menu li a", function () { var chk_value = []; var category = $(this).data("value"); $('input[name="checkbox"]:checked').each(function(){ chk_value.push($(this).val()); }); if(chk_value.length < 1){ Toastr.error("请选择需要移动至的图片"); return false; } Fast.api.ajax({ url: "general/attachment/classify", type: "post", data: {category: category, ids: chk_value.join(',')}, }, function () { table.bootstrapTable('refresh', {}); Layer.close(index); }); }); //图片点击事件 $(document).on("click", ".mask", function () { var multiple = $("input[name='multiple']").val() || '0'; var select_value = $(this).data("select") || '0'; if(multiple == "0" && select_value == "0"){ $(".thumbnail").each(function(){ $(this).find(".mask").css({"opacity":"0"}); $(this).find(".mask").data("select","0"); $(this).find("input[type='checkbox']").prop('checked',false); }); } if(select_value == "0"){ $(this).css({"opacity":"1"}); $(this).data("select","1"); $(this).parent().find("input[type='checkbox']").prop('checked',true); } if(select_value == "1"){ $(this).css({"opacity":"0"}); $(this).data("select","0"); $(this).parent().find("input[type='checkbox']").prop('checked',false); } }); //搜索事件 $(document).on("click",".glyphicon-search",function(){ var filename = $("#filename").val(); var query = {op: JSON.stringify({"filename":"LIKE"}),filter:JSON.stringify({"filename":filename})}; table.bootstrapTable('refresh',{silent:true,query:query}); }); //添加分类事件 $(document).on("click","#addCategory",function(){ //控制窗体大小 var area = ['50%', '70%']; //大屏幕 //越小屏幕占用空间越大 if(screen() == 2){ area = ['80%', '90%']; }else if(screen() == 1){ area = ['80%', '90%']; }else if(screen() == 0){ area = ['80%', '90%']; } Layer.open({ title: __('分类管理'), type : 2, content: "category", area: area, yes: function (index, layero) {}, success: function (layero, index) {} }); }); // 为表格绑定事件 Table.api.bindevent(table); Controller.api.selectInit(); require(['upload'], function (Upload) { Upload.api.upload($("#toolbar .faupload"), function () { table.bootstrapTable('refresh', {}); }); }); }, category:function(){ $(document).on("click","#submit",function(){ var category = $("textarea[name='row[attachmentcategory]']").val(); var token = $("input[name='__token__").val(); Backend.api.ajax({ url: "general/config/edit", data: {'row[attachmentcategory]':category,'__token__':token} }, function (res) { Layer.close(); window.parent.location.reload(); }); return false; }); Form.api.bindevent($("form[role=form]"), function (data, ret) {}); }, api: { bindevent: function () { Form.api.bindevent($("form[role=form]")); }, formatter: { thumb: function (value, row, index) { var html = ''; if (row.mimetype.indexOf("image") > -1) { html = ''; } else { html = ''; } return '
'; }, url: function (value, row, index) { return '' + row.url + ''; }, filename: function (value, row, index) { return ' '; }, mimetype: function (value, row, index) { return ' '; }, }, selectInit:function(){ //追加控制 $(document).on("click", ".btn-append,.append", function (e, row) { var container = $(this).closest(".fieldlist"); var tagName = container.data("tag") || (container.is("table") ? "tr" : "dd"); var index = container.data("index"); var name = container.data("name"); var template = container.data("template"); var data = container.data(); index = index ? parseInt(index) : 0; container.data("index", index + 1); row = row ? row : {}; var vars = {index: index, name: name, data: data, row: row}; var html = template ? Template(template, vars) : Template.render(Form.config.fieldlisttpl, vars); $(html).attr("fieldlist-item", true).insertBefore($(tagName + ":last", container)); $(this).trigger("fa.event.appendfieldlist", $(this).closest(tagName).prev()); }); //移除控制 $(document).on("click", ".btn-remove", function () { var container = $(this).closest(".fieldlist"); var tagName = container.data("tag") || (container.is("table") ? "tr" : "dd"); $(this).closest(tagName).remove(); refresh(container.data("name")); }); } } }; return Controller; });