From 0bb434d4151d9768dd0126f952f64b6a9a553daf Mon Sep 17 00:00:00 2001 From: Book Pauk Date: Thu, 10 Nov 2022 17:55:16 +0700 Subject: [PATCH] =?UTF-8?q?=D0=A0=D0=B0=D0=B1=D0=BE=D1=82=D0=B0=20=D0=BD?= =?UTF-8?q?=D0=B0=D0=B4=20BookInfoDialog?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Search/BookInfoDialog/BookInfoDialog.vue | 74 +++++++++++-------- 1 file changed, 42 insertions(+), 32 deletions(-) diff --git a/client/components/Search/BookInfoDialog/BookInfoDialog.vue b/client/components/Search/BookInfoDialog/BookInfoDialog.vue index 4cd2d94..800abef 100644 --- a/client/components/Search/BookInfoDialog/BookInfoDialog.vue +++ b/client/components/Search/BookInfoDialog/BookInfoDialog.vue @@ -47,7 +47,7 @@
{{ item.label }}
-
+
@@ -59,6 +59,8 @@
+ +
@@ -80,6 +82,7 @@ import vueComponent from '../../vueComponent.js'; import Dialog from '../../share/Dialog.vue'; import Fb2Parser from '../../../../server/core/fb2/Fb2Parser'; +import * as utils from '../../../share/utils'; const componentOptions = { components: { @@ -138,52 +141,59 @@ class BookInfoDialog { return ''; } + formatSize(size) { + size = size/1024; + let unit = 'KB'; + if (size > 1024) { + size = size/1024; + unit = 'MB'; + } + return `${size.toFixed(1)} ${unit}`; + } + get inpx() { const mapping = [ {name: 'fileInfo', label: 'Информация о файле', value: [ {name: 'folder', label: 'Папка'}, {name: 'file', label: 'Файл'}, + {name: 'ext', label: 'Тип'}, {name: 'size', 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 + 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') { return value; } - return value; + return (value.toString ? value.toString() : ''); }; let result = [];