Эх сурвалжийг харах

Работа над BookInfoDialog

Book Pauk 2 жил өмнө
parent
commit
0bb434d415

+ 39 - 29
client/components/Search/BookInfoDialog/BookInfoDialog.vue

@@ -47,7 +47,7 @@
                                 <div class="text-blue" style="font-size: 90%">
                                     {{ item.label }}
                                 </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 v-for="subItem in item.value" :key="subItem.name" class="row q-ml-md">
@@ -59,6 +59,8 @@
                                 </div>
                             </div>
                         </div>
+
+                        <div class="q-mt-xs"></div>
                     </div>
                 </div>
             </div>
@@ -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: 'bookTitle', label: 'Название'},
-                {name: 'sequenceName', label: 'Серия'},
-                {name: 'sequenceNum', label: 'Номер в серии'},
+                {name: 'title', label: 'Название'},
+                {name: 'series', label: 'Серия'},
+                {name: 'serno', label: 'Номер в серии'},
                 {name: 'genre', label: 'Жанр'},
-
-                {name: 'date', label: 'Дата'},
+                {name: 'librate', 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 = [];