【fix bug】导入导出加全局遮罩

This commit is contained in:
zhaoxiao
2023-03-16 15:43:48 +08:00
parent 90fb5c1017
commit c95d112e9b
3 changed files with 44 additions and 2 deletions
+24 -1
View File
@@ -1,13 +1,16 @@
<template>
<a-config-provider :locale="locale">
<div id="app">
<router-view/>
<a-spin :spinning="isImporting || isExporting" :tip="tipText" class="port-spin">
<router-view/>
</a-spin>
</div>
</a-config-provider>
</template>
<script>
import zhCN from 'ant-design-vue/lib/locale-provider/zh_CN'
import enquireScreen from '@/utils/device'
import { mapState } from 'vuex'
export default {
data () {
@@ -15,6 +18,21 @@ export default {
locale: zhCN
}
},
computed: {
...mapState({
isImporting: state => state.app.isImporting,
isExporting: state => state.app.isExporting
}),
tipText () {
if (this.isImporting) {
return '正在导入,请稍候...'
}
if (this.isExporting) {
return '正在导出,请稍候...'
}
return ''
}
},
created () {
const that = this
enquireScreen(deviceType => {
@@ -37,4 +55,9 @@ export default {
#app {
height: 100%;
}
.port-spin > div > .ant-spin {
height: 100vh!important;
max-height: unset!important;
}
</style>
+11
View File
@@ -270,6 +270,8 @@ export const JeroListMixin = {
param.selections = this.selectedRowKeys.join(',')
}
console.log('导出参数', param)
// 添加全局遮罩
this.$store.commit('SET_IS_EXPORTING', true)
downFile(this.url.exportXlsUrl, param).then((data) => {
if (!data) {
this.$message.warning('文件下载失败')
@@ -288,15 +290,22 @@ export const JeroListMixin = {
document.body.removeChild(link) // 下载完成移除元素
window.URL.revokeObjectURL(url) // 释放掉blob对象
}
}).finally(() => {
// 去掉全局遮罩
this.$store.commit('SET_IS_EXPORTING', false)
})
},
/* 导入 */
handleImportExcel (info) {
this.loading = true
// 添加全局遮罩
this.$store.commit('SET_IS_IMPORTING', true)
if (info.file.status !== 'uploading') {
console.log(info.file, info.fileList)
}
if (info.file.status === 'done') {
// 去掉全局遮罩
this.$store.commit('SET_IS_IMPORTING', false)
this.loading = false
if (info.file.response.success) {
// this.$message.success(`${info.file.name} 文件上传成功`);
@@ -319,6 +328,8 @@ export const JeroListMixin = {
this.$message.error(`${info.file.name} ${info.file.response.message}.`)
}
} else if (info.file.status === 'error') {
// 去掉全局遮罩
this.$store.commit('SET_IS_IMPORTING', false)
this.loading = false
if (info.file.response.status === 500) {
const data = info.file.response
+9 -1
View File
@@ -27,7 +27,9 @@ const app = {
autoHideHeader: false,
color: null,
weak: false,
multipage: true // 默认多页签模式
multipage: true, // 默认多页签模式
isImporting: false, // 是否正在导入
isExporting: false // 是否正在导出
},
mutations: {
SET_SIDEBAR_TYPE: (state, type) => {
@@ -78,6 +80,12 @@ const app = {
SET_MULTI_PAGE (state, multipageFlag) {
Vue.ls.set(DEFAULT_MULTI_PAGE, multipageFlag)
state.multipage = multipageFlag
},
SET_IS_IMPORTING (state, isImporting) {
state.isImporting = isImporting
},
SET_IS_EXPORTING (state, isExporting) {
state.isExporting = isExporting
}
},
actions: {