267 lines
11 KiB
JavaScript
267 lines
11 KiB
JavaScript
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 = '<a href="' + row.fullurl + '" target="_blank"><img src="' + row.fullurl + row.thumb_style + '" alt="" style="max-height:60px;max-width:120px"></a>';
|
|
} else {
|
|
html = '<a href="' + row.fullurl + '" target="_blank"><img src="' + Fast.api.fixurl("ajax/icon") + "?suffix=" + row.imagetype + '" alt="" style="max-height:90px;max-width:120px"></a>';
|
|
}
|
|
return '<div style="width:120px;margin:0 auto;text-align:center;overflow:hidden;white-space: nowrap;text-overflow: ellipsis;">' + html + '</div>';
|
|
},
|
|
url: function (value, row, index) {
|
|
return '<a href="' + row.fullurl + '" target="_blank" class="label bg-green">' + row.url + '</a>';
|
|
},
|
|
filename: function (value, row, index) {
|
|
return '<div style="width:150px;margin:0 auto;text-align:center;overflow:hidden;white-space: nowrap;text-overflow: ellipsis;">' + Table.api.formatter.search.call(this, value, row, index) + '</div>';
|
|
},
|
|
mimetype: function (value, row, index) {
|
|
return '<div style="width:80px;margin:0 auto;text-align:center;overflow:hidden;white-space: nowrap;text-overflow: ellipsis;">' + Table.api.formatter.search.call(this, value, row, index) + '</div>';
|
|
},
|
|
},
|
|
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;
|
|
}); |