Работа над проектом
This commit is contained in:
@@ -51,14 +51,18 @@
|
|||||||
/>
|
/>
|
||||||
<div class="q-mx-xs" />
|
<div class="q-mx-xs" />
|
||||||
<q-input
|
<q-input
|
||||||
v-model="genre" :maxlength="inputMaxLength" :debounce="inputDebounce"
|
v-model="genreNames" :maxlength="inputMaxLength" :debounce="inputDebounce"
|
||||||
class="bg-white q-mt-xs" style="width: 200px;" label="Жанр" stack-label outlined dense clearable readonly
|
class="bg-white q-mt-xs" input-style="cursor: pointer" style="width: 200px;" label="Жанр" stack-label outlined dense clearable readonly
|
||||||
@click="selectGenre"
|
@click="selectGenre"
|
||||||
/>
|
>
|
||||||
|
<q-tooltip v-if="genreNames" :delay="500" anchor="bottom right" content-style="font-size: 80%" max-width="400px">
|
||||||
|
{{ genreNames }}
|
||||||
|
</q-tooltip>
|
||||||
|
</q-input>
|
||||||
<div class="q-mx-xs" />
|
<div class="q-mx-xs" />
|
||||||
<q-input
|
<q-input
|
||||||
v-model="lang" :maxlength="inputMaxLength" :debounce="inputDebounce"
|
v-model="lang" :maxlength="inputMaxLength" :debounce="inputDebounce"
|
||||||
class="bg-white q-mt-xs" style="width: 80px;" label="Язык" stack-label outlined dense clearable readonly
|
class="bg-white q-mt-xs" input-style="cursor: pointer" style="width: 80px;" label="Язык" stack-label outlined dense clearable readonly
|
||||||
@click="selectLang"
|
@click="selectLang"
|
||||||
/>
|
/>
|
||||||
<div class="q-mx-xs" />
|
<div class="q-mx-xs" />
|
||||||
@@ -325,6 +329,20 @@ class Search {
|
|||||||
return this.$store.state.settings;
|
return this.$store.state.settings;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
get genreNames() {
|
||||||
|
let result = [];
|
||||||
|
const genre = new Set(this.genre.split(','));
|
||||||
|
|
||||||
|
for (const section of this.genreTree) {
|
||||||
|
for (const g of section.value)
|
||||||
|
if (genre.has(g.value))
|
||||||
|
result.push(g.name);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
return result.join(', ');
|
||||||
|
}
|
||||||
|
|
||||||
makeTitle() {
|
makeTitle() {
|
||||||
const collection = this.config.dbConfig.inpxInfo.collection.split('\n');
|
const collection = this.config.dbConfig.inpxInfo.collection.split('\n');
|
||||||
this.collection = collection[0].trim();
|
this.collection = collection[0].trim();
|
||||||
|
|||||||
@@ -223,12 +223,28 @@ class WebWorker {
|
|||||||
}
|
}
|
||||||
|
|
||||||
//добавим к жанрам те, что нашлись при парсинге
|
//добавим к жанрам те, что нашлись при парсинге
|
||||||
|
const genreParsed = new Set();
|
||||||
const rows = await db.select({table: 'genre', map: `(r) => ({value: r.value})`});
|
const rows = await db.select({table: 'genre', map: `(r) => ({value: r.value})`});
|
||||||
for (const row of rows) {
|
for (const row of rows) {
|
||||||
|
genreParsed.add(row.value);
|
||||||
|
|
||||||
if (!genreValues.has(row.value))
|
if (!genreValues.has(row.value))
|
||||||
last.value.push({name: row.value, value: row.value});
|
last.value.push({name: row.value, value: row.value});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//уберем те, которые не нашлись при парсинге
|
||||||
|
for (let j = 0; j < genres.length; j++) {
|
||||||
|
const section = genres[j];
|
||||||
|
for (let i = 0; i < section.value.length; i++) {
|
||||||
|
const g = section.value[i];
|
||||||
|
if (!genreParsed.has(g.value))
|
||||||
|
section.value.splice(i--, 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!section.value.length)
|
||||||
|
genres.splice(j--, 1);
|
||||||
|
}
|
||||||
|
|
||||||
result = {
|
result = {
|
||||||
genreTree: genres,
|
genreTree: genres,
|
||||||
inpxHash: (config.inpxHash ? config.inpxHash : ''),
|
inpxHash: (config.inpxHash ? config.inpxHash : ''),
|
||||||
|
|||||||
Reference in New Issue
Block a user