tl-uniapp
Version:
自主开发的UniApp组件——Жидзин(triangulum-ui)系列组件库。用于组件
82 lines (77 loc) • 2.93 kB
JavaScript
/** x-file-type V0.2.0 简化版 by Sieyoo, 赵向明 */
const XFileInfo = function () {};
/**
* function XFileInfo xxx
* @param {string} url 要格式化的时间字符串,格式必须是"yyyy-mm-dd HH:ii:ss"或"yyyy-mm-ddTHH:ii:ss"
* @return {object} date 日期类型
* @example 例子:
* XDate.toDate('2022-12-01 00:00:00') ==> Thu Dec 01 2022 00:00:00 GMT+0800 (中国标准时间)
* XDate.toDate('2022-12-01T00:00:00.965').toLocaleString(); ==> 2022/12/1 00:00:00
*/
XFileInfo.fromUrl = function (url) {
// console.log("XFileInfo.fromUrl:", url);
if (!url) {
return null;
}
const reg = /.*\/(.+)\.(\w{1,8})$/i; // 这里设计为后辍不能超过8位
const title = reg.exec(url) ? reg.exec(url)[1] : '';
const format = reg.exec(url) ? reg.exec(url)[2].toLowerCase() : '';
const type = !format ? '' : ['jpg', 'jpeg', 'gif', 'png', 'svg', 'bmp', 'tif', 'webp'].some(it => it === format) ? 'image' : ['avi', 'mpg', 'mpeg', 'mp4', 'svg', 'flv', 'f4v', 'mov', 'wmv', '3gp', 'wmv'].some(it => it === format) ? 'video' : ['mp3', 'wma', 'midi', 'amr', 'wav', 'ape'].some(it => it === format) ? 'audio' : 'file';
// console.log("XFileInfo.fromUrl: result:", {title, url, format, type, filename: title ? title+'.'+format : '',});
return {
title,
url,
format,
type,
filename: title ? title + '.' + format : '',
};
};
XFileInfo.fromName = function (name) {
if (!name) return {};
const [title, format] = name.split('.');
const type = !format ? '' : ['jpg', 'jpeg', 'gif', 'png', 'svg', 'bmp', 'tif', 'webp'].some(it => it === format) ? 'image' : ['avi', 'mpg', 'mpeg', 'mp4', 'svg', 'flv', 'f4v', 'mov', 'wmv', '3gp'].some(it => it === format) ? 'video' : ['mp3', 'wma', 'midi', 'amr', 'wav', 'ape'].some(it => it === format) ? 'audio' : 'file';
return {
title,
format,
type,
filename: title ? title + '.' + format : '',
};
};
import WordIcon from './word.svg';
import ExcelIcon from './excel.svg';
import PdfIcon from './pdf.svg';
import fileIcon from './file.svg';
import VideoIcon from './video.svg';
import MusicIcon from './music.svg';
import ZipIcon from './zip.svg';
import PptIcon from './ppt.svg';
XFileInfo.FILECOLOR = {
zip: ZipIcon,
rar: ZipIcon,
'7z': ZipIcon,
ppt: PptIcon,
pdf: PdfIcon,
doc: WordIcon,
docx: WordIcon,
xls: ExcelIcon,
xlsx: ExcelIcon,
xlsm: ExcelIcon,
mp3: MusicIcon,
wma: MusicIcon,
midi: MusicIcon,
amr: MusicIcon,
wav: MusicIcon,
ape: MusicIcon,
avi: VideoIcon,
mpg: VideoIcon,
mpeg: VideoIcon,
mp4: VideoIcon,
svg: VideoIcon,
flv: VideoIcon,
f4v: VideoIcon,
mov: VideoIcon,
wmv: VideoIcon,
'3gp': VideoIcon,
default: fileIcon,
};
export default XFileInfo;