Files
commie c153975eed 7
2026-01-08 05:42:44 +08:00

305 lines
13 KiB
JavaScript
Executable File

define(['table', 'upload','form'], function (Table,Upload,Form) {
var User = {
imgpreview:function(e,v,d,index){
var that = $(e.currentTarget);
var srcs = [];
var index = $(that).parents('table').find('.img-center').index($(that))
$(that).parents('table').find('.img-center').each(function(v,k){
var src = $(that).attr('data-url') || $(that).attr('src');
srcs.push({
"src": src,
"alt": $(that).attr('alt') || $(that).attr('title') || src,
"pid":k,
"thumb": $(that).attr('data-url') || $(that).attr('src')
});
});
(parent ? parent.layer : layer).photos({
zIndex:19891033,
photos: { // 图片层的数据源
"title": "", // 相册标题
"id": 123, // 相册 id
"start": index, // 初始显示的图片序号,默认 0
"data": srcs
}
});
return false;
},
//Do setup work hereAction
index: function () {
Table.api.init({
extend: {
index_url: 'files/select',
add_url: 'files/insert',
edit_url: 'files/update',
del_url: 'files/delete',
multi_url: 'files/multi',
dragsort_url: 'files/weigh',
table: 'upload',
}
});
var table = $("#table");
var tableOptions = {
url: $.fn.bootstrapTable.defaults.extend.index_url,
pk: 'id',
sortName: 'id',
commonSearch: false,
search: false,
showExport: false,
columns: [
[
{checkbox: true},
{
field: 'id',
title: 'ID',
sortable: true // 是否排序
},
{
title: "adapter",
field: "adapter",
filter: "string",
},
{
title: "名字",
field: "origin_name",
filter: "string",
},
{
title: "文件",
field: "file_name",
formatter: function (v,d,index) {
if (["jpg", "jpeg", "png", "gif", "bmp", "webp", "svg"].indexOf(d.extension.toLowerCase()) !== -1) {
var value = d['file_url'] == null || d['file_url'].length === 0 ? '' : d['file_url'].toString();
value = value ? value : '/assets/img/blank.gif';
var classname = 'img-sm img-center previewitem';
var url = Fast.api.cdnurl(value, true);
url = url.match(/^(\/|data:image\\)/) ? url : url + Config.upload_thumbstyle;
return '<a href="javascript:"><img class="' + classname + '" src="' + url + '" alt="'+d['origin_name']+'" /></a>';
}
return '<a href="' + d['file_url'] + '" target="_blank" title="'+d['origin_name']+'">' + v + '</a>';
},
events:{
'click .img-center': function(e,v,d,index){
User.imgpreview.call(this,e,d['file_url'],d,index);
}
}
},
{
title: "管理员id",
field: "admin_id",
visible: false,
},
{
title: "用户id",
field: "user_id",
visible: false,
},
{
title: "文件大小",
field: "size",
formatter: function (v,d) {
return User.formatSize(d.size);
}
},
{
title: "类型",
field: "mime_type",
visible: false,
},
{
title: "图片宽度",
field: "file_width",
},
{
title: "图片高度",
field: "file_height",
},{
title: "扩展名",
field: "extension",
},
{
title: "上传时间",
field: "created_at",
visible: false,
},
{
title: "引用次数",
field: "use_count"
},
{
title: "更新时间",
field: "updated_at",
hide: true,
},
{field: 'operate', title: '操作', table: table, events: Table.api.events.operate, formatter: Table.api.formatter.operate}
]
]
};
// 初始化表格
table.bootstrapTable(tableOptions);
// 为表格绑定事件
Table.api.bindevent(table);
//上传
Config['upload_url'] = 'files/insert';
Upload.api.upload($(".plupload,.faupload"),function(){
table.bootstrapTable('refresh');
Fast.api.success('上传成功');
},function(){
console.log(this,arguments);
},function(){
console.log(this,arguments);
});
},
// 格式化文件大小
formatSize : function(value) {
if(null == value || "" === value){
return "0 Bytes";
}
let unitArr = ["Bytes","KB","MB","GB","TB","PB","EB","ZB","YB"];
let index = 0;
let srcSize = parseFloat(value);
index = Math.floor(Math.log(srcSize) / Math.log(1024));
let size =srcSize / Math.pow(1024, index);
size = size.toFixed(2);
return size + unitArr[index];
},
update:function(){
this.bindevent();
},
insert:function(){
this.bindevent();
},
bindevent:function(){
Config['upload_url'] = 'files/file';
var form = $('form');
Form.api.bindevent(form);
},
list:function(){
Table.api.init({
extend: {
index_url: 'files/select',
add_url: 'files/insert',
edit_url: 'files/update',
del_url: 'files/delete',
multi_url: 'files/multi',
dragsort_url: 'files/weigh',
table: 'upload',
}
});
// 选择行
let select = function (obj) {
let index = parent.layer.getFrameIndex(window.name);
let callback = parent.layui.$("#layui-layer" + index).data("callback");
callback(obj.data);
parent.layer.close(index);
};
var table = $("#table");
var tableOptions = {
url: $.fn.bootstrapTable.defaults.extend.index_url,
pk: 'id',
sortName: 'id',
pagination: true,
commonSearch: false,
search: false,
showExport: false,
totalField: "count",
columns: [
[
{
field: 'id',
title: 'ID',
sortable: true // 是否排序
},
{
title: "adapter",
field: "adapter",
filter: "string",
},
{
title: "名字",
field: "origin_name",
filter: "string",
},
{
title: "文件",
field: "file_name",
formatter: function (v,d,index) {
if (["jpg", "jpeg", "png", "gif", "bmp", "webp", "svg"].indexOf(d.extension.toLowerCase()) !== -1) {
var value = d['file_url'] == null || d['file_url'].length === 0 ? '' : d['file_url'].toString();
value = value ? value : '/assets/img/blank.gif';
var classname = 'img-sm img-center previewitem';
var url = Fast.api.cdnurl(value, true);
url = url.match(/^(\/|data:image\\)/) ? url : url + Config.upload_thumbstyle;
return '<a href="javascript:"><img class="' + classname + '" src="' + url + '" alt="'+d['origin_name']+'" /></a>';
}
return '<a href="' + d['file_url'] + '" target="_blank" title="'+d['origin_name']+'">' + v + '</a>';
},
events:{
'click .img-center': function(e,v,d,index){
User.imgpreview.call(this,e,d['file_url'],d,index);
}
}
},
{
title: "管理员id",
field: "admin_id",
visible: false,
},
{
title: "用户id",
field: "user_id",
visible: false,
},
{
title: "文件大小",
field: "size",
formatter: function (v,d) {
return User.formatSize(d.size);
}
},
{
title: "类型",
field: "mime_type",
visible: false,
},
{
title: "图片宽度",
field: "file_width",
},
{
title: "图片高度",
field: "file_height",
},{
title: "扩展名",
field: "extension",
},
{
title: "上传时间",
field: "created_at",
visible: false,
},
{
title: "引用次数",
field: "use_count"
},
{
title: "更新时间",
field: "updated_at",
hide: true,
},
{field: 'operate', title: '操作', table: table, events: Table.api.events.operate, formatter: Table.api.formatter.operate}
]
]
};
// 初始化表格
table.bootstrapTable(tableOptions);
// 为表格绑定事件
Table.api.bindevent(table);
}
};
return User
});