fix incorrect style when switch pages but some error occurs

This commit is contained in:
MaysWind
2021-03-05 01:27:32 +08:00
parent c74077fb13
commit b0cff71b24
16 changed files with 150 additions and 87 deletions
+10 -5
View File
@@ -1,5 +1,5 @@
<template>
<f7-page>
<f7-page @page:afterin="onPageAfterIn">
<f7-navbar>
<f7-nav-left :back-link="$t('Back')"></f7-nav-left>
<f7-nav-title :title="$t(title)"></f7-nav-title>
@@ -273,6 +273,7 @@ export default {
comment: ''
},
loading: true,
loadingError: null,
submitting: false,
showAccountBalance: self.$settings.isShowAccountBalance(),
showSourceAmountSheet: false,
@@ -494,7 +495,6 @@ export default {
created() {
const self = this;
const query = self.$f7route.query;
const router = self.$f7router;
if (self.$f7route.path === '/transaction/edit') {
self.mode = 'edit';
@@ -527,7 +527,7 @@ export default {
Promise.all(promises).then(function (responses) {
if (query.id && !responses[3]) {
self.$toast('Unable to get transaction');
router.back();
self.loadingError = 'Unable to get transaction';
return;
}
@@ -626,9 +626,11 @@ export default {
}).catch(error => {
self.$logger.error('failed to load essential data for editing transaction', error);
if (!error.processed) {
if (error.processed) {
self.loading = false;
} else {
self.loadingError = error;
self.$toast(error.message || error);
router.back();
}
});
},
@@ -636,6 +638,9 @@ export default {
this.autoChangeCommentTextareaSize();
},
methods: {
onPageAfterIn() {
this.$routeBackOnError('loadingError');
},
save() {
const self = this;
const router = self.$f7router;
+9 -5
View File
@@ -379,6 +379,7 @@ export default {
data() {
return {
loading: true,
loadingError: null,
loadingMore: false,
transactionToDelete: null,
showDatePopover: false,
@@ -473,10 +474,11 @@ export default {
if (this.$store.state.transactionListStateInvalid && !this.loading) {
this.reload(null);
}
this.$routeBackOnError('loadingError');
},
reload(done) {
const self = this;
const router = self.$f7router;
if (!done) {
self.loading = true;
@@ -498,18 +500,20 @@ export default {
self.loading = false;
}).catch(error => {
self.loading = false;
if (error.processed || done) {
self.loading = false;
}
if (done) {
done();
}
if (!error.processed) {
self.$toast(error.message || error);
if (!done) {
router.back();
self.loadingError = error;
}
self.$toast(error.message || error);
}
});
},