Улучшил обработку ошибок

This commit is contained in:
Book Pauk
2019-01-15 01:54:04 +07:00
parent e0ed369df2
commit aef24fb271
3 changed files with 20 additions and 21 deletions

View File

@@ -150,12 +150,13 @@ class Reader extends Vue {
progress.setState({progress: prog}); progress.setState({progress: prog});
}); });
this.commit('reader/addOpenedBook', bookManager.metaOnly(addedBook)); this.commit('reader/setOpenedBook', bookManager.metaOnly(addedBook));
this.commit('reader/setLoaderActive', false); this.commit('reader/setLoaderActive', false);
progress.hide(); this.progressActive = false; progress.hide(); this.progressActive = false;
} catch (e) { } catch (e) {
progress.hide(); this.progressActive = false; progress.hide(); this.progressActive = false;
this.commit('reader/setLoaderActive', true);
this.$alert(e.message, 'Ошибка', {type: 'error'}); this.$alert(e.message, 'Ошибка', {type: 'error'});
} }
}); });
@@ -164,7 +165,7 @@ class Reader extends Vue {
parseBook(meta) { parseBook(meta) {
this.progressActive = true; this.progressActive = true;
this.$nextTick(async() => { this.$nextTick(async() => {
if (await bookManager.hasBookParsed(meta)) { if (bookManager.hasBookParsed(meta)) {
this.progressActive = false; this.progressActive = false;
return; return;
} }
@@ -184,6 +185,7 @@ class Reader extends Vue {
} }
} catch (e) { } catch (e) {
progress.hide(); this.progressActive = false; progress.hide(); this.progressActive = false;
this.commit('reader/setLoaderActive', true);
this.$alert(e.message, 'Ошибка', {type: 'error'}); this.$alert(e.message, 'Ошибка', {type: 'error'});
} }
}); });

View File

@@ -1,9 +1,6 @@
<template> <template>
<div class="main"> <div class="main">
<pre>{{ meta }}</pre> <pre>{{ meta }}</pre>
<p v-for="item in items" :key="item.id">
{{ item.text }}
</p>
</div> </div>
</template> </template>
@@ -21,25 +18,30 @@ class TextPage extends Vue {
meta = null; meta = null;
fb2 = null; fb2 = null;
items = null;
created() { created() {
this.commit = this.$store.commit; this.commit = this.$store.commit;
this.dispatch = this.$store.dispatch; this.dispatch = this.$store.dispatch;
this.config = this.$store.state.config; this.config = this.$store.state.config;
this.reader = this.$store.state.reader; this.reader = this.$store.state.reader;
this.book = null; this.openFailed = false;
} }
activated() { activated() {
this.book = null;
this.meta = null;
this.fb2 = null;
const last = this.lastOpenedBook; const last = this.lastOpenedBook;
if (last) { if (last) {
(async() => { (async() => {
const isParsed = await bookManager.hasBookParsed(last); const isParsed = await bookManager.hasBookParsed(last);
if (!isParsed) { if (!isParsed) {
this.$root.$emit('set-app-title'); this.$root.$emit('set-app-title');
this.$emit('parse-book', last); if (!this.openFailed) {
this.$emit('parse-book', last);
this.openFailed = true;
}
return; return;
} }
this.book = await bookManager.getBook(last); this.book = await bookManager.getBook(last);
@@ -51,17 +53,7 @@ class TextPage extends Vue {
this.fb2.firstName, this.fb2.firstName,
'-', '-',
this.fb2.bookTitle this.fb2.bookTitle
]).join(' ')); ]).join(' '));
//
let lines = [];
let para = this.book.parsed.para;
const len = (para.length > 50 ? 50 : para.length);
for (let i = 0; i < len; i++) {
lines.push({key: i, text: para[i].text});
}
this.items = lines;
//
})(); })();
} }
} }
@@ -70,6 +62,11 @@ class TextPage extends Vue {
return this.$store.getters['reader/lastOpenedBook']; return this.$store.getters['reader/lastOpenedBook'];
} }
showPage() {
if (!this.book)
return;
}
keyHook(event) { keyHook(event) {
} }
} }

View File

@@ -34,7 +34,7 @@ const mutations = {
setFullScreenActive(state, value) { setFullScreenActive(state, value) {
state.fullScreenActive = value; state.fullScreenActive = value;
}, },
addOpenedBook(state, value) { setOpenedBook(state, value) {
Vue.set(state.openedBook, value.key, Object.assign({}, value, {touchTime: Date.now()})); Vue.set(state.openedBook, value.key, Object.assign({}, value, {touchTime: Date.now()}));
}, },
delOpenedBook(state, value) { delOpenedBook(state, value) {