UNPKG

tl-uniapp

Version:

自主开发的UniApp组件——Жидзин(triangulum-ui)系列组件库。用于组件

82 lines (77 loc) 2.93 kB
/** 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;