tdesign-mobile-vue
Version:
tdesign-mobile-vue
1 lines • 15.5 kB
Source Map (JSON)
{"version":3,"file":"utils.mjs","sources":["../../../../src/_common/js/upload/utils.ts"],"sourcesContent":["import { SizeUnit } from './types';\nimport log from '../log/log';\n\nexport const IMAGE_REGEXP = /(.png|.jpg|.jpeg|.jpe|.webp|.avif|.svg|.gif|.bmp)/i;\nexport const IMAGE_ALL_REGEXP = /(.png|.jpg|.jpeg|.jpe|.webp|.avif|.svg|.gif|.bmp|.dwg|.dxf|.svf|.tif|.tiff|.arw)/i;\nexport const FILE_PDF_REGEXP = /(.pdf)/i;\nexport const FILE_EXCEL_REGEXP = /(.xlsx|.xls|.csv|.xlc|.xlm|.xlt|.xlw)/i;\nexport const FILE_WORD_REGEXP = /(.dox|docx|.document|.wps|.wdb|.msword)/i;\nexport const FILE_PPT_REGEXP = /(.ppt|.pptx|.key)/i;\nexport const VIDEO_REGEXP = /(.avi|.mp4|.wmv|.mpg|.mpeg|.mov|.rm|.ram|.swf|.flv|.rmvb|.flash|.mid|.3gp)/i;\nexport const AUDIO_REGEXP = /(.mp2|.mp3|.mp4|.ogg|.3gpp|.ac3|.au)/i;\n\n/**\n * https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Common_types\n */\nconst INPUT_FILE_MAP = {\n 'audio/*': AUDIO_REGEXP,\n 'video/*': VIDEO_REGEXP,\n 'image/*': IMAGE_ALL_REGEXP,\n '.ico': /image\\/vnd.microsoft.icon/i,\n '.doc': /application\\/msword/i,\n '.docx': /application\\/vnd.openxmlformats-officedocument.wordprocessingml.document/i,\n '.xls': /application\\/vnd.ms-excel/i,\n '.xlsx': /application\\/vnd.openxmlformats-officedocument.spreadsheetml.sheet/i,\n '.ppt': /application\\/vnd.ms-powerpoint/i,\n '.pptx': /application\\/vnd.openxmlformats-officedocument.presentationml.presentation/i,\n '.vsd': /application\\/vnd.visio/i,\n '.txt': /text\\/plain/i,\n '.abw': /application\\/x-abiword/i,\n '.avi': /video\\/x-msvideo/i,\n '.azw': /application\\/vnd.amazon.ebook/i,\n '.bin': /application\\/octet-stream/i,\n '.cda': /application\\/x-cdf/i,\n '.mpkg': /application\\/vnd.apple.installer+xml/i,\n '.odp': /application\\/vnd.oasis.opendocument.presentation/i,\n '.ods': /application\\/vnd.oasis.opendocument.spreadsheet/i,\n '.odt': /application\\/vnd.oasis.opendocument.text/i,\n '.oga': /audio\\/ogg/i,\n '.ogv': /video\\/ogg/i,\n '.ogx': /application\\/ogg/i,\n};\n\n/**\n * 各个单位和 KB 的关系\n *\n * [*] 表示方法采用这种方式\n * [x] 表示方法不采用这种方式\n *\n * [x] bit 位 b 0 or 1\n * [*] byte 字节 B 8 bits\n * [x] kilobit 千位 kb 1000 bites\n * [*] kilobyte 千字节(二进制) KB 1024 bytes\n * [x] kilobyte 千字节(十进制) KB 1000 bytes\n * [x] Megabite 百万位 Mb 1000 kilobits\n * [*] Megabyte 兆字节(二进制) KB 1024 kilobytes\n * [*] Megabyte 兆字节(十进制) KB 1000 kilobytes\n * [x] Gigabit 万亿位 Gb 1000 Megabite\n * [*] Gigabyte 吉字节(二进制) GB 1024 Megabytes\n * [x] Gigabyte 吉字节(十进制) GB 1000 Megabytes\n */\nexport const SIZE_MAP = {\n B: 1,\n KB: 1024,\n MB: 1048576, // 1024 * 1024\n GB: 1073741824, // 1024 * 1024 * 1024\n};\n\nexport function returnFileSize(number: number) {\n if (number < SIZE_MAP.KB) {\n return `${number} Bytes`;\n }\n if (number >= SIZE_MAP.KB && number < SIZE_MAP.MB) {\n return `${(number / SIZE_MAP.KB).toFixed(1)} KB`;\n }\n if (number >= SIZE_MAP.MB && number < SIZE_MAP.GB) {\n return `${(number / SIZE_MAP.MB).toFixed(1)} MB`;\n }\n\n if (number >= SIZE_MAP.GB) {\n return `${(number / SIZE_MAP.GB).toFixed(1)} GB`;\n }\n return '';\n}\n\nexport function getCurrentDate(needTime = false) {\n const d = new Date();\n let month: string | number = d.getMonth() + 1;\n month = month < 10 ? `0${month}` : month;\n const date = `${d.getFullYear()}-${month}-${d.getDate()}`;\n const time = `${d.getHours()}:${d.getMinutes()}:${d.getSeconds()}`;\n if (needTime) return [date, time].join(' ');\n return date;\n}\n\n/**\n * 缩略文件名 ABCDEFG => ABC...FG\n * @param inputName 文件名\n * @param leftCount 左边长度\n * @param rightCount 右边长度\n * @returns 缩略后的文件名\n */\nexport function abridgeName(\n inputName: string,\n leftCount = 5,\n rightCount = 7\n): string {\n const name = inputName;\n let leftLength = 0;\n let rightLength = 0;\n if (!name) return '';\n for (let i = 0; i < name.length; i++) {\n const w = name[i];\n const isCn = escape(w).indexOf('%u') === 0;\n if (i < leftCount * 2 && leftLength < leftCount) {\n // eslint-disable-next-line no-unused-expressions\n isCn ? (leftLength += 1) : (leftLength += 2);\n } else if (i > i - rightCount && rightLength < rightCount) {\n // eslint-disable-next-line no-unused-expressions\n isCn ? (rightLength += 1) : (rightLength += 2);\n }\n }\n return name.replace(\n new RegExp(`^(.{${leftLength}})(.+)(.{${rightLength}})$`),\n '$1…$3'\n );\n}\n\nexport function getFileSizeText(number: number) {\n if (number < 1024) {\n return `${number} Bytes`;\n }\n if (number >= 1024 && number < 1048576) {\n return `${(number / 1024).toFixed(1)} KB`;\n }\n if (number >= 1048576) {\n return `${(number / 1048576).toFixed(1)} MB`;\n }\n return '';\n}\n\n/**\n * 大小比较\n * @param size 文件大小,单位:B\n * @param unit 计算机计量单位\n */\nexport function isOverSizeLimit(\n fileSize: number,\n sizeLimit: number,\n unit: SizeUnit\n) {\n const units = ['B', 'KB', 'MB', 'GB'];\n const KBIndex = 1;\n let index = units.indexOf(unit);\n if (index === -1) {\n log.warn('Upload', `\\`sizeLimit.unit\\` can only be one of ${units.join()}`);\n index = KBIndex;\n }\n const num = SIZE_MAP[unit];\n return fileSize > sizeLimit * num;\n}\n\n// vue2临时使用的 sizeLimit 计算\nexport function isOverSizeLimit1(\n fileSize: number,\n sizeLimit: number,\n unit: SizeUnit\n) {\n // 以 KB 为单位进行比较\n const units = ['B', 'KB', 'MB', 'GB'];\n // 各个单位和 KB 的关系\n\n const KBIndex = 1;\n let index = units.indexOf(unit);\n if (index === -1) {\n // eslint-disable-next-line no-console\n console.warn(\n `TDesign Upload Warn: \\`sizeLimit.unit\\` can only be one of ${units.join()}`\n );\n index = KBIndex;\n }\n const num = SIZE_MAP[unit];\n const limit = index < KBIndex ? sizeLimit / num : sizeLimit * num;\n return fileSize <= limit;\n}\n\nexport const urlCreator = () => window.webkitURL || window.URL;\n\nexport function getFileUrlByFileRaw(fileRaw: File): Promise<string> {\n return new Promise((resolve) => {\n if (!fileRaw) {\n resolve('');\n return;\n }\n const reader = new FileReader();\n reader.readAsDataURL(fileRaw);\n reader.onload = (event: ProgressEvent<FileReader>) => {\n resolve(event.target?.result as string);\n };\n });\n}\n\nexport function validateFileType(accept: string, fileType: string, fileName?: string) {\n const tmpFileType = fileType || fileName;\n if (!accept) return true;\n\n if (!tmpFileType) return false;\n\n const acceptList = accept.split(',').map((v) => v.trim());\n for (let i = 0, len = acceptList.length; i < len; i++) {\n const oneRule = acceptList[i] as keyof typeof INPUT_FILE_MAP;\n if (INPUT_FILE_MAP[oneRule] && INPUT_FILE_MAP[oneRule].test(tmpFileType)) {\n return true;\n }\n const regExp = new RegExp(oneRule, 'i');\n if (regExp.test(tmpFileType)) {\n return true;\n }\n }\n return false;\n}\n\nexport function getFileList(files: FileList, accept: string = '') {\n const fileList: File[] = [];\n for (let i = 0; i < files.length; i++) {\n if (validateFileType(accept, files[i].type, files[i].name)) {\n fileList.push(files[i]);\n }\n }\n return fileList;\n}\n"],"names":["IMAGE_REGEXP","IMAGE_ALL_REGEXP","FILE_PDF_REGEXP","FILE_EXCEL_REGEXP","FILE_WORD_REGEXP","FILE_PPT_REGEXP","VIDEO_REGEXP","AUDIO_REGEXP","INPUT_FILE_MAP","SIZE_MAP","B","KB","MB","GB","returnFileSize","number","concat","toFixed","getCurrentDate","needTime","d","Date","month","getMonth","date","getFullYear","getDate","time","getHours","getMinutes","getSeconds","join","abridgeName","inputName","leftCount","arguments","length","undefined","rightCount","name","leftLength","rightLength","i","w","isCn","escape","indexOf","replace","RegExp","getFileSizeText","isOverSizeLimit","fileSize","sizeLimit","unit","units","KBIndex","index","log","warn","num","isOverSizeLimit1","console","limit","urlCreator","window","webkitURL","URL","getFileUrlByFileRaw","fileRaw","Promise","resolve","reader","FileReader","readAsDataURL","onload","event","_event$target","target","result","validateFileType","accept","fileType","fileName","tmpFileType","acceptList","split","map","v","trim","len","oneRule","test","regExp","getFileList","files","fileList","type","push"],"mappings":"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"}