feat: use vben/utils upload

This commit is contained in:
xingyu4j
2025-11-18 17:33:39 +08:00
parent ec23e8acf6
commit 60854e59f1
8 changed files with 26 additions and 38 deletions

View File

@@ -10,11 +10,10 @@ import { computed, ref, toRefs, watch } from 'vue';
import { IconifyIcon } from '@vben/icons'; import { IconifyIcon } from '@vben/icons';
import { $t } from '@vben/locales'; import { $t } from '@vben/locales';
import { isFunction, isObject, isString } from '@vben/utils'; import { checkFileType, isFunction, isObject, isString } from '@vben/utils';
import { Button, message, Upload } from 'ant-design-vue'; import { Button, message, Upload } from 'ant-design-vue';
import { checkFileType } from './helper';
import { UploadResultStatus } from './typing'; import { UploadResultStatus } from './typing';
import { useUpload, useUploadType } from './use-upload'; import { useUpload, useUploadType } from './use-upload';

View File

@@ -1,8 +0,0 @@
export function checkFileType(file: File, accepts: string[]) {
if (!accepts || accepts.length === 0) {
return true;
}
const newTypes = accepts.join('|');
const reg = new RegExp(`${String.raw`\.(` + newTypes})$`, 'i');
return reg.test(file.name);
}

View File

@@ -1,8 +0,0 @@
export function checkFileType(file: File, accepts: string[]) {
if (!accepts || accepts.length === 0) {
return true;
}
const newTypes = accepts.join('|');
const reg = new RegExp(`${String.raw`\.(` + newTypes})$`, 'i');
return reg.test(file.name);
}

View File

@@ -9,11 +9,10 @@ import { computed, ref, toRefs, watch } from 'vue';
import { IconifyIcon } from '@vben/icons'; import { IconifyIcon } from '@vben/icons';
import { $t } from '@vben/locales'; import { $t } from '@vben/locales';
import { isFunction, isObject, isString } from '@vben/utils'; import { checkFileType, isFunction, isObject, isString } from '@vben/utils';
import { NButton, NUpload, useMessage } from 'naive-ui'; import { NButton, NUpload, useMessage } from 'naive-ui';
import { checkFileType } from './helper';
import { useUpload, useUploadType } from './use-upload'; import { useUpload, useUploadType } from './use-upload';
defineOptions({ name: 'FileUpload', inheritAttrs: false }); defineOptions({ name: 'FileUpload', inheritAttrs: false });

View File

@@ -1,8 +0,0 @@
export function checkFileType(file: File, accepts: string[]) {
if (!accepts || accepts.length === 0) {
return true;
}
const newTypes = accepts.join('|');
const reg = new RegExp(`${String.raw`\.(` + newTypes})$`, 'i');
return reg.test(file.name);
}

View File

@@ -13,13 +13,18 @@ import { computed, ref, toRefs, watch } from 'vue';
import { IconifyIcon } from '@vben/icons'; import { IconifyIcon } from '@vben/icons';
import { $t } from '@vben/locales'; import { $t } from '@vben/locales';
import { isFunction, isNumber, isObject, isString } from '@vben/utils'; import {
checkFileType,
isFunction,
isNumber,
isObject,
isString,
} from '@vben/utils';
import { Button, Upload } from 'tdesign-vue-next'; import { Button, Upload } from 'tdesign-vue-next';
import { message } from '#/adapter/tdesign'; import { message } from '#/adapter/tdesign';
import { checkFileType } from './helper';
import { UploadResultStatus } from './typing'; import { UploadResultStatus } from './typing';
import { useUpload, useUploadType } from './use-upload'; import { useUpload, useUploadType } from './use-upload';

View File

@@ -1,8 +0,0 @@
export function checkFileType(file: File, accepts: string[]) {
if (!accepts || accepts.length === 0) {
return true;
}
const newTypes = accepts.join('|');
const reg = new RegExp(`${String.raw`\.(` + newTypes})$`, 'i');
return reg.test(file.name);
}

View File

@@ -107,6 +107,7 @@ export const defaultImageAccepts = [
* 判断文件是否为图片 * 判断文件是否为图片
* *
* @param filename 文件名 * @param filename 文件名
* @param accepts 支持的文件类型
* @returns 是否为图片 * @returns 是否为图片
*/ */
export function isImage( export function isImage(
@@ -120,6 +121,22 @@ export function isImage(
return accepts.includes(ext); return accepts.includes(ext);
} }
/**
* 判断文件是否为指定类型
*
* @param file 文件
* @param accepts 支持的文件类型
* @returns 是否为指定类型
*/
export function checkFileType(file: File, accepts: string[]) {
if (!accepts || accepts.length === 0) {
return true;
}
const newTypes = accepts.join('|');
const reg = new RegExp(`${String.raw`\.(` + newTypes})$`, 'i');
return reg.test(file.name);
}
/** /**
* 格式化文件大小 * 格式化文件大小
* *