layui 第三方组件平台

返回首页 发布组件

文件管理组件,可配置上传及选择文件

创建:2020-3-18

文档

图片文件管理插件 支持远程图片显示 可配置默认文件类型图标 配置操作与layui-table类似; 更多功能请下载试用


html示例
<!DOCTYPE html>
<html>

<head>
<meta charset="utf-8">
<title>图库管理power by www.nbnat.com</title>
<meta name="renderer" content="webkit">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<link rel="stylesheet" type="text/css" href="https://www.layuicdn.com/layui/css/layui.css" />
<style>.layui-upload-img{width: 92px; height: 92px; margin: 0 10px 10px 0;}</style>
</head>

<body style='padding:10px'>
<button type="button" class="layui-hide" id="test1"></button>
<fieldset class="layui-elem-field layui-field-title" style="margin-top: 30px;">
<legend>组件展示</legend>
</fieldset>
<div class="layui-fluid">
<div id="fileManager" lay-filter="test"></div>
</div>
<fieldset class="layui-elem-field layui-field-title" style="margin-top: 30px;">
<legend>弹层选图</legend>
</fieldset>
<div class="layui-upload " >
<div style="width:150px;display:inline-block;">
<div class="layui-upload-listv picview" data-name='pic1' >
<img class="layui-upload-img">
<p> </p>
</div>
</div>
<div style="width:150px;display:inline-block;">
<div class="layui-upload-listv picview" data-name='pic2' >
<img class="layui-upload-img">
<p> </p>
</div>
</div>
<div style="width:150px;display:inline-block;">
<div class="layui-upload-listv picview" data-name='pic3' >
<img class="layui-upload-img">
<p> </p>
</div>
</div>

</div>
</body>
<script src="https://www.layuicdn.com/layui/layui.js"></script>
<script>
layui.extend({'fileManager': '../../../layui_exts/fileManager/fileManager'});
layui.use(['fileManager', 'layer', 'upload'], function () {
var fileManager = layui.fileManager
, $ = layui.$
, upload = layui.upload
, layer = layui.layer;
$('title').html($('title').html() + ' version:' + fileManager.v);
var upIns = upload.render({
elem: '#test1' //绑定元素
, url: 'data.php?action=upload' //上传接口
, field: 'file[]'
})
fileManager.render({
elem: '#fileManager'
, method: 'post'
, id: 'fmTest'
, btn_upload: true
, btn_create: true
, icon_url: 'ico/'
, url: 'data.php?action=get_file_data_vm'
, thumb: {'nopic': 'upload/null-100x100.jpg', 'width': 100, 'height': 100}
, parseData: function (res) {
/*
data:[{
thumb:文件地址用于显示
,type:文件类型 directory文件夹,png|gif|png|image图片,其它任意
,path:文件夹路径用于打开本文件夹
}]
*/
let _res = [];
_res.code = 0;
_res.data = res.images;
_res.count = res.count
return _res;
}
, done: function (res, curr, count) {
// console.log(res,curr,count)
}
, page: {limit: 12,layout: ['count', 'prev', 'page', 'next', 'limit', 'refresh', 'skip']}
, where: {}
});
//监听图片选择事件
fileManager.on('pic(test)', function (obj) {
//obj.obj 当前对象
//obj.data 当前图片数据
var data = obj.data;
layer.alert(JSON.stringify(data), {
title: '当前数据:'
});
});
//监听图片上传事件
fileManager.on('uploadfile(test)', function (obj) {
//obj.obj 当前对象
//obj.path 路径
//更改上传组件参数
upIns.config.data = {'path': obj.path};
upIns.config.done = function (res) {
fileManager.reload('fmTest');
}
var e = document.createEvent("MouseEvents");
e.initEvent("click", true, true);
document.getElementById("test1").dispatchEvent(e)
});
//监听新建文件夹事件
fileManager.on('new_dir(test)', function (obj) {
//obj.obj 当前对象
//obj.folder 文件夹名称
//obj.path 路径
e = JSON.parse(e);
$.post('data.php?action=folder', {'folder': obj.folder, 'path': obj.path}, function (e) {
layer.msg(e.msg);
if (e.code == 1) {
fileManager.reload('fmTest');
}
})
});
//弹层选择
$(document).on('click','.picview',function(res){
let name = $(this).data('name');
layui.data('_fm', {key: '_picview_name',value: name});
layer.open({
type:2
, area: ['620px', '600px']
,content: ['pop.html', 'no']
})
});
//弹层选择后的回调
window.callback = function(res){
let name = layui.data('_fm')._picview_name;
console.log(name)
$('.picview[data-name='+name+']').find('img').attr('src',res.thumb)
$('.picview[data-name='+name+']').find('p').text(res.name);
layui.data('_fm',null);
}
});
</script>

</html>

PS:关注码云更新