ac-file-list
Version:
FileList ui component for react
231 lines (216 loc) • 6.74 kB
JavaScript
/**文件类型图标 */
// import ai from './fileType/ai.svg';
// import audio from './fileType/audio.svg';
// import box_notes from './fileType/box_notes.svg';
// import csv from './fileType/csv.svg';
// import eps from './fileType/eps.svg';
// import excel from './fileType/excel.svg';
// import exe from './fileType/exe.svg';
// import flash from './fileType/flash.svg';
// import gdoc from './fileType/gdoc.svg';
// import gdocs from './fileType/gdocs.svg';
// import gform from './fileType/gform.svg';
// import gpres from './fileType/gpres.svg';
// import gsheet from './fileType/gsheet.svg';
// import html from './fileType/html.svg';
// import image from './fileType/image.svg';
// import keynote from './fileType/keynote.svg';
// import pack from './fileType/pack.svg';
// import pages from './fileType/pages.svg';
// import pdf from './fileType/pdf.svg';
// import ppt from './fileType/ppt.svg';
// import psd from './fileType/psd.svg';
// import rtf from './fileType/rtf.svg';
// import slide from './fileType/slide.svg';
// import stypi from './fileType/stypi.svg';
// import txt from './fileType/txt.svg';
// import unknown from './fileType/unknown.svg';
// import video from './fileType/video.svg';
// import visio from './fileType/visio.svg';
// import webex from './fileType/webex.svg';
// import word from './fileType/word.svg';
// import xml from './fileType/xml.svg';
// import zip from './fileType/zip.svg';
import React, { Component } from 'react';
/**
* 计算文件大小
* @param {number} size 文件大小 kb
*/
export const getSize = (size) => {
let unit = 'KB';
size = Math.ceil(size / 1024);
if (size >= 1024) {
unit = 'MB';
size = Math.ceil(size / 1024);
}
return size + unit
}
export const getExtImg = (ext) => {
//所有图片
let imgExts = ['jpg','webp', 'bmp', 'pcx', 'tif', 'gif', 'jpeg', 'tga', 'exif', 'fpx', 'svg', 'psd', 'cdr', 'pcd', 'dxf', 'ufo', 'eps', 'png', 'hdri', 'raw', 'wmf', 'flic', 'emf', 'ico'];
//所有音频
let audioExts = ['mp3','aac','wav','wma','cda','flac','m4a','mid','mka','mp2','mpa','mpc','ape','ofr','ogg','ra','wv','tta','ac3','dts'];
//所有视频
let videoExts = ['avi','asf','wmv','avs','flv','mkv','mov','3gp','mp4','mpg','mpeg','dat','ogm','vob','rm','rmvb','ts','tp','ifo','nsv'];
//所有压缩
let zipExts = ['rar','zip','arj','z','cab','lzh','ace','tar','gz','uue','bz2','jar','iso','7z'];
if(imgExts.indexOf(ext)!=-1)return image;
if(audioExts.indexOf(ext)!=-1)return audio;
if(videoExts.indexOf(ext)!=-1)return video;
if(zipExts.indexOf(ext)!=-1)return zip;
switch (ext) {
case 'ai':
return ai;
break;
case 'box':
return box_notes;
break;
case 'csv':
return csv;
break;
case 'eps':
return eps;
break;
case 'xls':
return excel;
break;
case 'xlsx':
return excel;
break;
case 'exe':
return exe;
break;
case 'swf':
return flash;
break;
case 'gdoc':
return gdoc;
break;
case 'gdocs':
return gdocs;
break;
case 'gform':
return gform;
break;
case 'gpres':
return gpres;
break;
case 'gsheet':
return gsheet;
break;
case 'html':
return html;
break;
// case 'image':
// return image;
// break;
case 'keynote':
return keynote;
break;
case 'pack':
return pack;
break;
case 'pages':
return pages;
break;
case 'pdf':
return pdf;
break;
case 'ppt':
return ppt;
break;
case 'psd':
return psd;
break;
case 'rtf':
return rtf;
break;
case 'slide':
return slide;
break;
case 'stypi':
return stypi;
break;
case 'txt':
return txt;
break;
case 'video':
return video;
break;
case 'vsd'://流程图
return visio;
break;
case 'arf':
return webex;
break;
case 'doc':
return word;
break;
case 'docx':
return word;
break;
case 'xml':
return xml;
break;
// case 'zip':
// return zip;
// break;
default:
return unknown;
break;
}
}
/**
* 文件类型图标+拼接文件名
* @param {string} ext 扩展名
*/
export const getFileNames = (name, ext) => {
ext = ext.split('.')[1];
return <span className = 'name-space' title={name+ext}>
{/* <img src = {getExtImg(ext)}/> */}
<span> { name } </span>
</span>
}
/**
* 时间戳格式化
* @param {*} long
* @param {*} fmt
*/
export function dateFormate (long, fmt='yyyy-MM-dd') {
let date = new Date(long)
var o = {
"M+": date.getMonth()+1, //月份
"d+": date.getDate(), //日
"h+": date.getHours(), //小时
"m+": date.getMinutes(), //分
"s+": date.getSeconds(), //秒
"q+": Math.floor((date.getMonth()+3)/3), //季度
"S": date.getMilliseconds() //毫秒
};
if(/(y+)/.test(fmt)){
fmt=fmt.replace(RegExp.$1, (date.getFullYear()+"").substr(4 - RegExp.$1.length));
}
for(var k in o){
if(new RegExp("("+ k +")").test(fmt))
fmt = fmt.replace(RegExp.$1, (RegExp.$1.length==1) ? (o[k]) : (("00"+ o[k]).substr((""+ o[k]).length)));
}
return fmt;
}
/**
* 获得cookie
* @param {*} name
*/
export const getCookie = (name) => {
let cookieValue = null;
if (document.cookie && document.cookie != '') {
let cookies = document.cookie.split(';');
for (let i = 0; i < cookies.length; i++) {
let cookie = cookies[i].trim();
if (cookie.substring(0, name.length + 1) == (name + '=')) {
cookieValue = decodeURIComponent(cookie.substring(name.length + 1));
break;
}
}
}
return cookieValue;
}