tav-ui
Version:
1 lines • 6.31 kB
Source Map (JSON)
{"version":3,"file":"validate2.mjs","sources":["../../../../../../../../packages/components/file/src/utils/validate.ts"],"sourcesContent":["import { type FileActionUploadProps } from '../components/FileActionUpload/types'\nimport { type FileTableProps } from '../components/FileTable'\nimport {\n type FileActionUploadApiResponseRecord,\n type FileTypeSelectApiResponseRecord,\n} from '../typings'\n\n// 文件名是否通过空白字符校验\nexport function validateUploadFileEmptyName(name: string) {\n if (!name || !name.trim() || !name.includes('.')) return false\n\n const fileName = name.split('.')[0]\n return fileName && fileName.trim() !== '' ? true : false\n}\n\n// 文件名是否通过非法字符校验\nexport function validateUploadFileName(\n name: string,\n nameRegExp: FileActionUploadProps['nameRegExp']\n) {\n return !nameRegExp.test(name) ? true : false\n}\n\n// 文件是否通过类型校验\nexport function validateUploadFileExt(name: string, accept: FileActionUploadProps['accept']) {\n const exts = accept.split(',')\n return exts.some((ext) => name.endsWith(ext)) ? true : false\n}\n\n// 文件是否通过大小校验\nexport function validateUploadFileSize(file: any, sizeRange: FileActionUploadProps['sizeRange']) {\n const [minSize, maxSize] = sizeRange\n\n let minSizeValidateResult = true\n let maxSizeValidateResult = true\n\n if (minSize) {\n if (file.size >= minSize) {\n minSizeValidateResult = true\n } else {\n minSizeValidateResult = false\n }\n }\n\n if (maxSize) {\n if (file.size <= maxSize) {\n maxSizeValidateResult = true\n } else {\n maxSizeValidateResult = false\n }\n }\n\n return minSizeValidateResult && maxSizeValidateResult ? true : false\n}\n\n// 文件是否通过最大数量校验\nexport function validateUploadFileMaxCount(\n fileCount: number,\n maxCount: FileActionUploadProps['maxCount']\n) {\n return fileCount <= maxCount ? true : false\n}\n\n// 上传时 typecode 校验\nexport function validateUploadFileTypeCode(\n typeCode: FileActionUploadProps['apiParams']['typeCode']\n) {\n return typeCode ? true : false\n}\n\n// 判断文件是本地(上传/自己造的dataSource)还是来源于接口\nexport function validateFileFromLocal(row?: FileActionUploadApiResponseRecord) {\n return row && !row.businessId && !row.businessKey\n}\n\n// 判断 versionlist 中数据是否有从接口来的数据\nexport function validateVersionCachesHasApiFile(cache?: FileActionUploadApiResponseRecord[]) {\n if (!cache) return\n\n return !!cache.find((c) => !validateFileFromLocal(c))\n}\n\n// 判断 versionlist 中数据是否有从本地上传的数据\nexport function validateVersionCachesHasLocalFile(cache?: FileActionUploadApiResponseRecord[]) {\n if (!cache) return\n\n return !!cache.find((c) => validateFileFromLocal(c))\n}\n\n// 判断 datasource 是否为 actualids 字符串数组\nexport function validateDataSourceIsStringArray(dataSource: FileTableProps['dataSource']) {\n return (\n dataSource && Array.isArray(dataSource) && dataSource[0] && typeof dataSource[0] === 'string'\n )\n}\n\n// 判断 datasource 是否为 actualids 对象数组\nexport function validateDataSourceIsObjectArray(\n dataSource: FileTableProps['dataSource'],\n key = 'versionList'\n) {\n return (\n dataSource &&\n Array.isArray(dataSource) &&\n dataSource[0] &&\n typeof dataSource[0] !== 'string' &&\n Reflect.has(dataSource[0], key)\n )\n}\n\n// 判断 datasource 是否为 actualids 数据结构\nexport function validateDataSourceIsActualIdsData(\n dataSource: FileTableProps['dataSource'],\n key = 'versionList'\n) {\n return (\n validateDataSourceIsStringArray(dataSource) || validateDataSourceIsObjectArray(dataSource, key)\n )\n}\n"],"names":[],"mappings":"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"}