layui.use(['table', 'form','element','upload'], function() {
	var $ 	 = layui.jquery
	table 	 = layui.table,
	form  	 = layui.form, 
	element  = layui.element,
	upload   = layui.upload;
	
	// 生成表格
	table.render({
		elem 	: '#fileTable',
		url 	: '../../getAllFiles',
		toolbar : '#toolbarDemo',
		title	: "文件明细",// 导出名
		id 		: 'fileAll',
		// skin : 'row',
		// size :'lg',
		border  : true,
		page 	: true,
		limits	: [10,30,50,80,100,999],
		where 	: {
			fileName		: '',
			add_time_begin  : '',
			add_time_end  	: ''
		},
		cols : [ [ 
			{ 
				type: 'checkbox'
			},
			{ 	type: 'numbers',
				title: '序号',
				unresize: true 
			},{
				field : 'fileName',
				align : "center",
				title : '文件名称'
			},{
				fixed : 'right',
				title : '操作',
				align : "center",
				toolbar : '#barDemo'
			}
			] ],
			parseData : function(res) { // 将原始数据解析成 table 组件所规定的数据
				return {
					"code" 	: 0, // 解析接口状态
					"msg" 	: "", // 解析提示文本
					"count"	: res.data.fileList.total,// 解析数据长度
					"data" 	: res.data.fileList.list// 解析数据列表
				};
			}
	});
	
	
	// 点击查询按钮，重载表格
	$('#searchBtn').on('click', function() {
		table.reload('fileAll', {
			method : 'post',
			where : {
				fileName 	   : $("#fileName").val()
			},
			page : {
				curr : 1
			}
		});
		activeDelFunction();
		return false;
	});
	
	// 监听头工具栏事件--文件上传按钮
	table.on('toolbar(fileTable)', function (obj) {
		var checkStatus = table.checkStatus(obj.config.id), 
		data = checkStatus.data; // 获取选中的数据
		switch (obj.event) {
		case 'mulAdd':// 导入
			layer.open({
				// layer提供了5种层类型。可传入的值有：0（信息框，默认）1（页面层）2（iframe层）3（加载层）4（tips层）
				type: 1,
				title: "上传图片",
				area: ['720px', '430px'],
				content: $("#popmulAddTest")// 引用的弹出层的页面层的方式加载添加界面表单
			});
			break;
		case 'add':
			layer.open({
				type: 2,
				title: "添加文章",
				area: ['900px','600px'],
				skin: "layui-layer-molv",
				content: './addFileImport.jsp',
			});
			break;
		};
	});
	// 多文件上传
	form.on('submit(upLoad)',function(obj){
		layer.msg('开始上传，请稍后~~',{icon:6,offset:"auto",time:2000});// 提示框
		$('#testListAction').html('<span style="color: #FF5722;">正在上传...</span>');
		$('#testListAction').addClass("layui-btn-disabled").attr("disabled",true);
	})
	var demoListView = $('#demoList'),
	uploadListIns = upload.render({
		elem: '#testList',
		url: '../../priceUpload', // 价格上传接口 
		//url: '../fileUpload', // 文件上传接口
		//url: '../../imgUpload', // 产品图片上传接口
		accept: 'file',
		multiple: true,
		auto: false,
		bindAction: '#testListAction',
		choose: function(obj){  // 选完文件调用
			var files = this.files = obj.pushFile(); // 将每次选择的文件追加到文件队列
			// 读取本地文件
			var count = 1;
			obj.preview(function(index, file, result){
				var tr = $(['<tr id="upload-'+ index +'">',
					'<td>'+ count++ +'</td>',
					'<td>'+ file.name +'</td>',
					(file.size/1024/1024) > 1 ? '<td>'+ (file.size/1024/1024).toFixed(1) +'m</td>':'<td>'+ (file.size/1024).toFixed(1) +'kb</td>',
							'<td>等待上传</td>',
							'<td>',
							'<button class="layui-btn layui-btn-xs demo-reload layui-hide">重传</button>',
							'<button class="layui-btn layui-btn-xs layui-btn-danger demo-delete">删除</button>',
							'</td>',
							'</tr>'].join(''));
				// 单个重传
				tr.find('.demo-reload').on('click', function(){
					obj.upload(index, file);
				});
				// 删除
				tr.find('.demo-delete').on('click', function(){
					delete files[index]; // 删除对应的文件
					tr.remove();
					uploadListIns.config.elem.next()[0].value = ''; // 清空
					// input
					// file
					// 值，以免删除后出现同名文件不可选
				});
				demoListView.append(tr);
			});
		},
		done: function(res, index, upload){ // 上传成功后调用
			if(res.code == 200){ // 上传成功
				var tr = demoListView.find('tr#upload-'+ index),
				tds = tr.children();
				tds.eq(3).html('<span style="color: #5FB878;">上传成功</span>');
				tds.eq(4).html(''); // 清空操作
				$('#testListAction').html('<span>开始上传</span>');
				$('#testListAction').removeClass("layui-btn-disabled").attr("disabled",false);
				return delete this.files[index]; // 删除文件队列已经上传成功的文件
			}
			this.error(index, upload);
		},
		error: function(index, upload){	// 上传失败后调用
			var tr = demoListView.find('tr#upload-'+ index)
			,tds = tr.children();
			tds.eq(3).html('<span style="color: #FF5722;">上传失败</span>');
			$('#testListAction').html('<span>开始上传</span>');
			$('#testListAction').removeClass("layui-btn-disabled").attr("disabled",false);
			tds.eq(4).find('.demo-reload').removeClass('layui-hide'); // 显示重传
		}
	});
	
	// 监听表格操作按钮
	table.on('tool(fileTable)',function(obj){
		switch (obj.event) {
		// 下载
		case 'downLoad':
			var url = "<%=basePath%>"+"deptFile/"+obj.data.fileName
			var request = new XMLHttpRequest();
			request.responseType = "blob";
			request.open("GET", url);
			request.onload = function() {
				var url = window.URL.createObjectURL(this.response);
				var a = document.createElement("a");
				document.body.appendChild(a);
				a.href = url;
				a.download = obj.data.fileName;
				a.click();
			}
			request.send();
			break;
			// 删除
		case 'del':
			layer.confirm('确定要删除该数据么？',{icon:3,title:"提示"}, function(index){
				$.ajax({
					url:"../deleteFile",
					data:{'fileId': obj.data.fileId},
					type:"post",
					success:function (data) {
						if (data.code == 200) {
							layer.msg('删除成功！',{icon:6,offset:"auto",time:1000});// 提示框
						}else{
							layer.msg('删除失败！',{icon:5,offset:"auto",time:1000});// 提示框
						}
						setTimeout(function(){
							location.reload();// 重新加载页面
						}, 1100);
					}  
				}); 
			});
		}; 
	}); 
	
	// 激活批量删除
	function activeDelFunction(){
		$('.demoTable .layui-btn').on('click', function(){
			var type = $(this).data('type');
			active[type] ? active[type].call(this) : '';
		});
	} 
	activeDelFunction();
	// 执行批量删除
	var $ = layui.$,active = {
			getCheckData: function(){ // 获取选中数据
				var checkStatus = table.checkStatus('fileAll'),
				checkData = checkStatus.data,
				ids="";
				fileNames="";
				if(checkData.length == 0){
					layer.msg("请选择要删除的数据",function(){});
					return;
				}
				for (var i = 0; i < checkData.length; i++) {
					ids+=checkData[i].fileId+",";
					fileNames+=checkData[i].fileName+";";
				}
				// var ids = JSON.stringify(delList);
				layer.confirm('确定要删除这['+checkData.length+'条]数据么？',{icon:5,title:'友情提示'}, function(index){
					$.ajax({
						url:"../deleteFiles",
						dataType:'json',
						data:{
							ids:ids,
							fileNames:fileNames
						},
						type:'post',
						success:function(data){
							if (data.code == 200) {
								layer.msg('删除成功！',{icon:6,offset:"auto",time:2000});// 提示框
							}else{
								layer.msg('删除失败！',{icon:5,offset:"auto",time:2000});// 提示框
							}
							setTimeout(function(){
								location.reload();// 重新加载页面表格
							}, 1000);
						}
					});
					return false; 
				});
			}    
	};
});