feat: Upload failde Second Modal done.

This commit is contained in:
chiayin
2024-01-05 16:39:09 +08:00
parent 68981e98f5
commit fe5731ae15
4 changed files with 37 additions and 10 deletions

View File

@@ -16,7 +16,7 @@
</template>
<script>
import IconUploarding from '../icons/IconUploarding.vue';
import { uploadFailed } from '@/module/alertModal.js'
import { uploadFailedFirst } from '@/module/alertModal.js'
import { storeToRefs } from 'pinia';
import FilesStore from '@/stores/files.js';
@@ -46,7 +46,7 @@ export default {
// 判斷是否有檔案
if(target && target.files) uploadFile = target.files[0];
// 判斷檔案大小不可超過 90MB (90(MB)*1024(KB)*1024(Bytes)=94,371,840)
if(uploadFile.size >= 94371840) return uploadFailed('size')
if(uploadFile.size >= 94371840) return uploadFailedFirst('size')
// 將檔案加進 formData欄位一定要「csv」
formData.append('csv', uploadFile);
// 呼叫第一階段上傳 API

View File

@@ -167,11 +167,11 @@ export async function leaveConformance(next, addConformanceCreateCheckId, toPath
}
};
/**
* Upload failde
* Upload failde First
* @param { string } failureType
* @param { string } failureMsg
*/
export async function uploadFailed(failureType, failureMsg) {
export async function uploadFailedFirst(failureType, failureMsg) {
// msg: 'not in UTF-8' | 'insufficient columns' | 'the csv file is empty' | 'the filename does not ends with .csv'
// type: 'encoding' | 'insufficient_columns' | 'empty' | 'name_suffix'
let value = '';
@@ -205,6 +205,34 @@ export async function uploadFailed(failureType, failureMsg) {
customClass: customClass
})
};
/**
* Upload failde Second
* @param { string } failureType
* @param { string } failureMsg
*/
export async function uploadFailedSecond(failureType, failureMsg) {
let value = '';
switch (failureType) {
case 'malformed':
value = failureMsg;
break;
case 'missing':
value = failureMsg;
break;
default:
value = failureMsg;
break;
}
await Swal.fire({
title: 'UPLOAD FAILED',
html: value,
timer: 5000, // 停留5秒後自動關閉
showConfirmButton: false,
icon: 'error',
iconColor: '#FF3366',
customClass: customClass
})
};
/**
* Upload Success
* @param { string } value

View File

@@ -3,7 +3,7 @@ import axios from "axios";
import moment from 'moment';
import apiError from '@/module/apiError.js';
import Swal from 'sweetalert2';
import { uploadFailed, uploadloader, uploadSuccess } from '@/module/alertModal.js'
import { uploadFailedFirst, uploadFailedSecond, uploadloader, uploadSuccess } from '@/module/alertModal.js'
export default defineStore('filesStore', {
state: () => ({
@@ -119,7 +119,7 @@ export default defineStore('filesStore', {
if(error.response.status === 422) {
// msg: 'not in UTF-8' | 'insufficient columns' | 'the csv file is empty' | 'the filename does not ends with .csv'
// type: 'encoding' | 'insufficient_columns' | 'empty' | 'name_suffix'
uploadFailed(error.response.data.detail[0].type, error.response.data.detail[0].msg);
uploadFailedFirst(error.response.data.detail[0].type, error.response.data.detail[0].msg);
} else {
Swal.close(); // 關閉進度條
apiError(error, 'Failed to upload the files.');
@@ -159,7 +159,7 @@ export default defineStore('filesStore', {
} catch(error) {
console.log('error:', error);
if(error.response.status === 422) {
uploadFailed(error.response.data.detail[0].type, error.response.data.detail[0].msg);
uploadFailedSecond(error.response.data.detail[0].type, error.response.data.detail[0].msg);
} else {
Swal.close(); // 關閉進度條
apiError(error, 'Failed to upload the log files.');

View File

@@ -86,7 +86,7 @@
import { storeToRefs } from 'pinia';
import LoadingStore from '@/stores/loading.js';
import FilesStore from '@/stores/files.js';
import { uploadFailed, uploadSuccess, uploadConfirm } from '@/module/alertModal.js'
import { uploadFailedFirst, uploadSuccess, uploadConfirm } from '@/module/alertModal.js'
export default {
setup() {
@@ -147,7 +147,7 @@ export default {
}
},
methods: {
uploadFailed,
uploadFailedFirst,
uploadSuccess,
uploadConfirm,
/**
@@ -264,7 +264,6 @@ export default {
// 取得欲更改的檔名,
this.uploadFileName = this.fileName;
// this.filesStore.rename();
// 設定第二階段上傳的 data
haveValueData.forEach(column => {
switch (column.code) {