refactor:基于 lint 处理排版
This commit is contained in:
@@ -1,15 +1,19 @@
|
||||
<script lang="ts" setup>
|
||||
import type { UploadFile, UploadProps } from 'ant-design-vue';
|
||||
import type { UploadRequestOption } from 'ant-design-vue/lib/vc-upload/interface';
|
||||
import type { AxiosProgressEvent } from '#/api/infra/file';
|
||||
|
||||
import type { AxiosResponse } from '@vben/request';
|
||||
|
||||
import { CloudUpload } from '@vben/icons';
|
||||
import { message, Upload, Button } from 'ant-design-vue';
|
||||
import type { AxiosProgressEvent } from '#/api/infra/file';
|
||||
|
||||
import { $t } from '@vben/locales';
|
||||
import { ref, toRefs, watch } from 'vue';
|
||||
|
||||
import { CloudUpload } from '@vben/icons';
|
||||
import { $t } from '@vben/locales';
|
||||
import { isFunction, isObject, isString } from '@vben/utils';
|
||||
|
||||
import { Button, message, Upload } from 'ant-design-vue';
|
||||
|
||||
import { checkFileType } from './helper';
|
||||
import { UploadResultStatus } from './typing';
|
||||
import { useUpload, useUploadType } from './use-upload';
|
||||
@@ -36,7 +40,7 @@ const props = withDefaults(
|
||||
resultField?: string;
|
||||
// 是否显示下面的描述
|
||||
showDescription?: boolean;
|
||||
value?: string[] | string;
|
||||
value?: string | string[];
|
||||
}>(),
|
||||
{
|
||||
value: () => [],
|
||||
|
||||
@@ -3,7 +3,7 @@ export function checkFileType(file: File, accepts: string[]) {
|
||||
return true;
|
||||
}
|
||||
const newTypes = accepts.join('|');
|
||||
const reg = new RegExp('\\.(' + newTypes + ')$', 'i');
|
||||
const reg = new RegExp(`${String.raw`\.(` + newTypes})$`, 'i');
|
||||
return reg.test(file.name);
|
||||
}
|
||||
|
||||
@@ -12,6 +12,9 @@ export function checkFileType(file: File, accepts: string[]) {
|
||||
*/
|
||||
export const defaultImageAccepts = ['jpg', 'jpeg', 'png', 'gif', 'webp'];
|
||||
|
||||
export function checkImgType(file: File, accepts: string[] = defaultImageAccepts) {
|
||||
export function checkImgType(
|
||||
file: File,
|
||||
accepts: string[] = defaultImageAccepts,
|
||||
) {
|
||||
return checkFileType(file, accepts);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,15 +1,19 @@
|
||||
<script lang="ts" setup>
|
||||
import type { UploadFile, UploadProps } from 'ant-design-vue';
|
||||
import type { UploadRequestOption } from 'ant-design-vue/lib/vc-upload/interface';
|
||||
import type { AxiosProgressEvent } from '#/api/infra/file';
|
||||
|
||||
import type { AxiosResponse } from '@vben/request';
|
||||
|
||||
import { CloudUpload } from '@vben/icons';
|
||||
import { message, Upload, Modal } from 'ant-design-vue';
|
||||
import type { AxiosProgressEvent } from '#/api/infra/file';
|
||||
|
||||
import { $t } from '@vben/locales';
|
||||
import { ref, toRefs, watch } from 'vue';
|
||||
|
||||
import { CloudUpload } from '@vben/icons';
|
||||
import { $t } from '@vben/locales';
|
||||
import { isFunction, isObject, isString } from '@vben/utils';
|
||||
|
||||
import { message, Modal, Upload } from 'ant-design-vue';
|
||||
|
||||
import { checkImgType, defaultImageAccepts } from './helper';
|
||||
import { UploadResultStatus } from './typing';
|
||||
import { useUpload, useUploadType } from './use-upload';
|
||||
@@ -37,7 +41,7 @@ const props = withDefaults(
|
||||
resultField?: string;
|
||||
// 是否显示下面的描述
|
||||
showDescription?: boolean;
|
||||
value?: string[] | string;
|
||||
value?: string | string[];
|
||||
}>(),
|
||||
{
|
||||
value: () => [],
|
||||
@@ -231,7 +235,10 @@ function getValue() {
|
||||
@preview="handlePreview"
|
||||
@remove="handleRemove"
|
||||
>
|
||||
<div v-if="fileList && fileList.length < maxNumber" class="flex flex-col items-center justify-center">
|
||||
<div
|
||||
v-if="fileList && fileList.length < maxNumber"
|
||||
class="flex flex-col items-center justify-center"
|
||||
>
|
||||
<CloudUpload />
|
||||
<div class="mt-2">{{ $t('ui.upload.imgUpload') }}</div>
|
||||
</div>
|
||||
@@ -241,7 +248,7 @@ function getValue() {
|
||||
class="mt-2 flex flex-wrap items-center text-[14px]"
|
||||
>
|
||||
请上传不超过
|
||||
<div class="mx-1 font-bold text-primary">{{ maxSize }}MB</div>
|
||||
<div class="text-primary mx-1 font-bold">{{ maxSize }}MB</div>
|
||||
的
|
||||
<div class="text-primary mx-1 font-bold">{{ accept.join('/') }}</div>
|
||||
格式文件
|
||||
|
||||
@@ -113,6 +113,7 @@ export const useUpload = () => {
|
||||
});
|
||||
} else {
|
||||
// 模式二:后端上传
|
||||
// TODO @芋艿:这里有爆红
|
||||
return uploadFile({ file }, onUploadProgress);
|
||||
}
|
||||
};
|
||||
@@ -168,4 +169,4 @@ async function generateFileName(file: File) {
|
||||
// 拼接后缀
|
||||
const ext = file.name.slice(Math.max(0, file.name.lastIndexOf('.')));
|
||||
return `${sha256}${ext}`;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user