Работа над BookInfoDialog
This commit is contained in:
@@ -47,7 +47,7 @@
|
|||||||
<div class="text-blue" style="font-size: 90%">
|
<div class="text-blue" style="font-size: 90%">
|
||||||
{{ item.label }}
|
{{ item.label }}
|
||||||
</div>
|
</div>
|
||||||
<div class="col q-mx-xs" style="height: 0px; border-top: 1px solid #ccc" />
|
<div class="col q-mx-xs" style="height: 0px; border-top: 1px solid #ccc"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div v-for="subItem in item.value" :key="subItem.name" class="row q-ml-md">
|
<div v-for="subItem in item.value" :key="subItem.name" class="row q-ml-md">
|
||||||
@@ -59,6 +59,8 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<div class="q-mt-xs"></div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -80,6 +82,7 @@ import vueComponent from '../../vueComponent.js';
|
|||||||
|
|
||||||
import Dialog from '../../share/Dialog.vue';
|
import Dialog from '../../share/Dialog.vue';
|
||||||
import Fb2Parser from '../../../../server/core/fb2/Fb2Parser';
|
import Fb2Parser from '../../../../server/core/fb2/Fb2Parser';
|
||||||
|
import * as utils from '../../../share/utils';
|
||||||
|
|
||||||
const componentOptions = {
|
const componentOptions = {
|
||||||
components: {
|
components: {
|
||||||
@@ -138,52 +141,59 @@ class BookInfoDialog {
|
|||||||
return '';
|
return '';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
formatSize(size) {
|
||||||
|
size = size/1024;
|
||||||
|
let unit = 'KB';
|
||||||
|
if (size > 1024) {
|
||||||
|
size = size/1024;
|
||||||
|
unit = 'MB';
|
||||||
|
}
|
||||||
|
return `${size.toFixed(1)} ${unit}`;
|
||||||
|
}
|
||||||
|
|
||||||
get inpx() {
|
get inpx() {
|
||||||
const mapping = [
|
const mapping = [
|
||||||
{name: 'fileInfo', label: 'Информация о файле', value: [
|
{name: 'fileInfo', label: 'Информация о файле', value: [
|
||||||
{name: 'folder', label: 'Папка'},
|
{name: 'folder', label: 'Папка'},
|
||||||
{name: 'file', label: 'Файл'},
|
{name: 'file', label: 'Файл'},
|
||||||
|
{name: 'ext', label: 'Тип'},
|
||||||
{name: 'size', label: 'Размер'},
|
{name: 'size', label: 'Размер'},
|
||||||
{name: 'date', label: 'Добавлен'},
|
{name: 'date', label: 'Добавлен'},
|
||||||
|
{name: 'del', label: 'Удален'},
|
||||||
|
{name: 'libid', label: 'LibId'},
|
||||||
|
{name: 'insno', label: 'InsideNo'},
|
||||||
|
]},
|
||||||
|
|
||||||
|
{name: 'titleInfo', label: 'Общая информация', value: [
|
||||||
|
{name: 'author', label: 'Автор(ы)'},
|
||||||
|
{name: 'title', label: 'Название'},
|
||||||
|
{name: 'series', label: 'Серия'},
|
||||||
|
{name: 'serno', label: 'Номер в серии'},
|
||||||
|
{name: 'genre', label: 'Жанр'},
|
||||||
|
{name: 'librate', label: 'Оценка'},
|
||||||
|
{name: 'lang', label: 'Язык книги'},
|
||||||
|
{name: 'keywords', label: 'Ключевые слова'},
|
||||||
]},
|
]},
|
||||||
];
|
];
|
||||||
/*
|
|
||||||
{name: 'author', label: 'Автор(ы)'},
|
|
||||||
{name: 'bookTitle', label: 'Название'},
|
|
||||||
{name: 'sequenceName', label: 'Серия'},
|
|
||||||
{name: 'sequenceNum', label: 'Номер в серии'},
|
|
||||||
{name: 'genre', label: 'Жанр'},
|
|
||||||
|
|
||||||
{name: 'date', label: 'Дата'},
|
|
||||||
{name: 'lang', label: 'Язык книги'},
|
|
||||||
{name: 'srcLang', label: 'Язык оригинала'},
|
|
||||||
{name: 'translator', label: 'Переводчик(и)'},
|
|
||||||
{name: 'keywords', label: 'Ключевые слова'},
|
|
||||||
|
|
||||||
|
|
||||||
{"author":"Грант Максвелл",
|
|
||||||
"genre":"det_hard",
|
|
||||||
"title":"Tower of Death",
|
|
||||||
"series":"The Shadow[a]",
|
|
||||||
"serno":53,
|
|
||||||
"file":"641310",
|
|
||||||
"size":420422,
|
|
||||||
"libid":"641310",
|
|
||||||
"del":0,
|
|
||||||
"ext":"fb2",
|
|
||||||
"date":"2021-11-04",
|
|
||||||
"insno":181,
|
|
||||||
"folder":"f.fb2-641019-643928.zip",
|
|
||||||
"lang":"en",
|
|
||||||
"librate":0,
|
|
||||||
"keywords":"Hard-Boiled, Pulp Fiction,det",
|
|
||||||
*/
|
|
||||||
const valueToString = (value, nodePath) => {//eslint-disable-line no-unused-vars
|
const valueToString = (value, nodePath) => {//eslint-disable-line no-unused-vars
|
||||||
|
if (nodePath == 'fileInfo/size')
|
||||||
|
return `${this.formatSize(value)} (${value.toString().replace(/(\d)(?=(\d{3})+(?!\d))/g, '$1 ')} Bytes)`;
|
||||||
|
|
||||||
|
if (nodePath == 'fileInfo/date')
|
||||||
|
return utils.sqlDateFormat(value);
|
||||||
|
|
||||||
|
if (nodePath == 'fileInfo/del')
|
||||||
|
return (value ? 'Да' : 'Нет');
|
||||||
|
|
||||||
|
if (nodePath == 'titleInfo/author')
|
||||||
|
return value.split(',').join(', ');
|
||||||
|
|
||||||
if (typeof(value) === 'string') {
|
if (typeof(value) === 'string') {
|
||||||
return value;
|
return value;
|
||||||
}
|
}
|
||||||
|
|
||||||
return value;
|
return (value.toString ? value.toString() : '');
|
||||||
};
|
};
|
||||||
|
|
||||||
let result = [];
|
let result = [];
|
||||||
|
|||||||
Reference in New Issue
Block a user