mirror of
https://gitee.com/dapppp/ruoyi-plus-vben5.git
synced 2026-04-11 07:43:15 +08:00
feat(oss): 添加测试上传功能
新增上传测试模态框组件,支持图片和文件上传测试 在OSS管理页面添加测试上传按钮 为上传API添加Content-Type头部配置 修复全屏引导hook的类型断言问题
This commit is contained in:
@@ -1,6 +1,7 @@
|
|||||||
import type { AxiosRequestConfig } from '@vben/request';
|
import type { AxiosRequestConfig } from '@vben/request';
|
||||||
|
|
||||||
import { alovaInstance } from '#/utils/http';
|
import { alovaInstance } from '#/utils/http';
|
||||||
|
import { ContentTypeEnum } from '#/utils/http/helper';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Axios上传进度事件
|
* Axios上传进度事件
|
||||||
@@ -33,7 +34,12 @@ export function uploadApi(
|
|||||||
return alovaInstance.post<UploadResult>(
|
return alovaInstance.post<UploadResult>(
|
||||||
'/resource/oss/upload',
|
'/resource/oss/upload',
|
||||||
{ file, ...otherData },
|
{ file, ...otherData },
|
||||||
{ timeout: 60_000 },
|
{
|
||||||
|
timeout: 60_000,
|
||||||
|
headers: {
|
||||||
|
'Content-Type': ContentTypeEnum.FORM_DATA,
|
||||||
|
},
|
||||||
|
},
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -35,7 +35,7 @@ export function useFullScreenGuide() {
|
|||||||
target: () =>
|
target: () =>
|
||||||
document.querySelector(
|
document.querySelector(
|
||||||
'div#menu-select-table .vxe-tools--operate > button[title="全屏"]',
|
'div#menu-select-table .vxe-tools--operate > button[title="全屏"]',
|
||||||
)!,
|
)! as HTMLElement,
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|||||||
@@ -30,6 +30,7 @@ import { columns, querySchema } from './data';
|
|||||||
import fallbackImageBase64 from './fallback-image.txt?raw';
|
import fallbackImageBase64 from './fallback-image.txt?raw';
|
||||||
import fileUploadModal from './file-upload-modal.vue';
|
import fileUploadModal from './file-upload-modal.vue';
|
||||||
import imageUploadModal from './image-upload-modal.vue';
|
import imageUploadModal from './image-upload-modal.vue';
|
||||||
|
import uploadTestModal from './upload-test-modal.vue';
|
||||||
|
|
||||||
const formOptions: VbenFormProps = {
|
const formOptions: VbenFormProps = {
|
||||||
commonConfig: {
|
commonConfig: {
|
||||||
@@ -213,6 +214,9 @@ const [ImageUploadModal, imageUploadApi] = useVbenModal({
|
|||||||
const [FileUploadModal, fileUploadApi] = useVbenModal({
|
const [FileUploadModal, fileUploadApi] = useVbenModal({
|
||||||
connectedComponent: fileUploadModal,
|
connectedComponent: fileUploadModal,
|
||||||
});
|
});
|
||||||
|
const [UploadTestModal, uploadTestApi] = useVbenModal({
|
||||||
|
connectedComponent: uploadTestModal,
|
||||||
|
});
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
@@ -250,6 +254,12 @@ const [FileUploadModal, fileUploadApi] = useVbenModal({
|
|||||||
>
|
>
|
||||||
图片上传
|
图片上传
|
||||||
</a-button>
|
</a-button>
|
||||||
|
<a-button
|
||||||
|
v-access:code="['system:oss:upload']"
|
||||||
|
@click="uploadTestApi.open"
|
||||||
|
>
|
||||||
|
测试上传
|
||||||
|
</a-button>
|
||||||
</Space>
|
</Space>
|
||||||
</template>
|
</template>
|
||||||
<template #url="{ row }">
|
<template #url="{ row }">
|
||||||
@@ -303,5 +313,6 @@ const [FileUploadModal, fileUploadApi] = useVbenModal({
|
|||||||
</BasicTable>
|
</BasicTable>
|
||||||
<ImageUploadModal @reload="tableApi.query" />
|
<ImageUploadModal @reload="tableApi.query" />
|
||||||
<FileUploadModal @reload="tableApi.query" />
|
<FileUploadModal @reload="tableApi.query" />
|
||||||
|
<UploadTestModal />
|
||||||
</Page>
|
</Page>
|
||||||
</template>
|
</template>
|
||||||
|
|||||||
52
apps/web-antd/src/views/system/oss/upload-test-modal.vue
Normal file
52
apps/web-antd/src/views/system/oss/upload-test-modal.vue
Normal file
@@ -0,0 +1,52 @@
|
|||||||
|
<script setup lang="ts">
|
||||||
|
import { useVbenModal } from '@vben/common-ui';
|
||||||
|
|
||||||
|
import { useVbenForm } from '#/adapter/form';
|
||||||
|
|
||||||
|
const [Modal, modalApi] = useVbenModal({
|
||||||
|
title: '测试上传',
|
||||||
|
onConfirm: handleConfirm,
|
||||||
|
});
|
||||||
|
|
||||||
|
const [Form, formApi] = useVbenForm({
|
||||||
|
showDefaultActions: false,
|
||||||
|
layout: 'vertical',
|
||||||
|
schema: [
|
||||||
|
{
|
||||||
|
fieldName: 'images',
|
||||||
|
component: 'ImageUpload',
|
||||||
|
label: '图片上传',
|
||||||
|
componentProps: {
|
||||||
|
maxCount: 3,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
fieldName: 'files',
|
||||||
|
component: 'FileUpload',
|
||||||
|
label: '文件上传',
|
||||||
|
},
|
||||||
|
],
|
||||||
|
});
|
||||||
|
|
||||||
|
async function handleConfirm() {
|
||||||
|
try {
|
||||||
|
modalApi.lock(true);
|
||||||
|
const { valid } = await formApi.validate();
|
||||||
|
if (!valid) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
const data = await formApi.getValues();
|
||||||
|
console.log(data);
|
||||||
|
} catch (error) {
|
||||||
|
console.error(error);
|
||||||
|
} finally {
|
||||||
|
modalApi.lock(false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<template>
|
||||||
|
<Modal>
|
||||||
|
<Form />
|
||||||
|
</Modal>
|
||||||
|
</template>
|
||||||
Reference in New Issue
Block a user