Улучшил обработку ошибок
This commit is contained in:
@@ -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'});
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -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) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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) {
|
||||||
|
|||||||
Reference in New Issue
Block a user