完成基本上传导入前端代码

This commit is contained in:
Kane Wang 2023-10-18 18:36:11 +08:00
parent 0caf428d67
commit 05aabea1a2
3 changed files with 108 additions and 2 deletions

View File

@ -2,7 +2,7 @@
* @Author: Kane
* @Date: 2023-10-17 11:18:19
* @LastEditors: Kane
* @FilePath: /task_schedule/src/utils/api/BIReport.ts
* @FilePath: /task_schedule/src/utils/BIReport.ts
* @Description: BI报表相关的代码
*
* Copyright (c) ${2023} by Kane, All Rights Reserved.
@ -31,6 +31,8 @@ interface ImportBIReportResponse
importedCount: number,
}
type ImportBIReportResponseHandler = ( response: ImportBIReportResponse, error?: any ) => void;
/**
*
* @param request
@ -72,5 +74,6 @@ export {
type BIReportType,
type ImportBIReportRequest,
type ImportBIReportResponse,
type ImportBIReportResponseHandler,
importBIReport
};

View File

@ -46,6 +46,7 @@
name="files"
:show-file-list="false"
:data="ui.uploadParameters"
:on-success="onUploadSuccess"
>
<el-icon class="el-icon--upload">
<upload-filled />
@ -62,9 +63,12 @@ import {
type BIReportType,
type ImportBIReportRequest,
type ImportBIReportResponse,
type ImportBIReportResponseHandler,
importBIReport
} from "@/utils/BIReport.js";
import { UploadFilled } from "@element-plus/icons-vue";
import { type FileUploadResponse } from "@/utils/fileUpload.js";
// import { UploadFilled } from "@element-plus/icons-vue";
import { type UploadProps, type UploadFile, type UploadFiles, ElMessage, ElMessageBox } from "element-plus";
interface UI
{
@ -79,6 +83,13 @@ interface UI
export default {
name: "BiDataUploadView",
props: {
reportType: {
type: Number,
require: true,
default: (): number => -9999,
},
},
setup()
{
const ui: UI = reactive({
@ -105,8 +116,97 @@ export default {
showFileList: false,
});
/**
* 文件上传成功响应函数
* @param response 响应结果参数
* @param uploadFile
* @param uploadFiles
*/
const onUploadSuccess: UploadProps["onSuccess"] = ( response: FileUploadResponse, uploadFile: UploadFile, uploadFiles: UploadFiles ): void =>
{
//
if ( response.success )
{
//
if ( response.fileList.length === 0 )
{
//
ElMessageBox.confirm(
"上传文件的保存路径有误,请联系开发人员。",
"上传文件错误",
{
confirmButtonText: "确定",
type: "warning",
center: true,
}
)
.then((): void => {})
.catch((): void => {});
}
const request: ImportBIReportRequest = {
filePath: response.fileList[0],
reportType: ui.selectedReportType,
hasCaption: ui.hasCaption,
sheetIndex: ui.sheetIndex,
};
console.log( "请求参数", request );
//
importBIReport( request, importResponseHandler );
}
else
{
//
ElMessageBox.confirm(
response.message,
"上传文件错误",
{
confirmButtonText: "确定",
type: "warning",
center: true,
}
)
.then((): void => {})
.catch((): void => {});
}
};
/**
* handler函数
* @param response
* @param error
*/
const importResponseHandler: ImportBIReportResponseHandler = ( response: ImportBIReportResponse, error?: any ): void =>
{
if ( response.success )
{
ElMessage({
type: "success",
message: response.message,
});
}
else
{
ElMessageBox.confirm(
response.message,
"导入错误",
{
confirmButtonText: "确定",
type: "warning",
center: true,
}
)
.then((): void => {})
.catch((): void => {});
console.log( error );
}
};
return {
ui,
onUploadSuccess,
};
},
};

View File

@ -77,6 +77,9 @@
v-model="ui.showUploadDialog"
title="上传报表"
width="600px"
:close-on-click-modal="false"
:close-on-press-escape="false"
:show-close="true"
>
<BiDataUploadView />
</el-dialog>