- corretto footer catalogo

- corretti il path delle immagini (quando hanno lo spazio nel nomefile).
- aggiunto colore di sfondo per il testo descrittivo, in trasparenza
This commit is contained in:
Surya Paolo
2025-05-21 12:06:09 +02:00
parent fea40922cb
commit e0583044d7
21 changed files with 782 additions and 263 deletions

View File

@@ -80,6 +80,7 @@ export default defineComponent({
const mytab = ref('descr');
const loading = ref(false);
const myscrapingbook = ref(null);
const updatetogm = ref(false);
const field_updated_toGM = ref('');
@@ -103,10 +104,10 @@ export default defineComponent({
const loadMyScrapingBook = async () => {
loading.value = true;
try {
const myscrapingbook = await products.loadMyScrapingBook(
const myscrapingbookrec = await products.loadMyScrapingBook(
myproduct.value.isbn, false
);
myproduct.value.myscrapingbook = myscrapingbook;
myscrapingbook.value = myscrapingbookrec;
} catch (error) {
console.error('Errore caricamento MyScrapingBook:', error);
} finally {
@@ -186,14 +187,14 @@ export default defineComponent({
function getPrompt() {
// Prompt:
let mydescr = 'Scrivimi la sinossi del seguente libro, che andrà nel catalogo libri, di massimo 680 battute, senza spiegazione, senza titolo iniziale, solo la sinossi. Togli eventuali riferimenti a chi ha fatto la prefazione. Rendilo un po\' accattivante, ma non troppo. \n\n';
let mydescr = 'Scrivimi la sinossi del libro che ti indicherò, che andrà in un catalogo libri, la lunghezza del testo finale dev\'essere compresa tra 760 e 780 caratteri, senza spiegazione, senza titolo iniziale, solo la sinossi. Togli eventuali riferimenti a chi ha fatto la prefazione. Rendilo un po\' accattivante, ma non troppo. \n\n';
return mydescr
}
function copyDescrizioneFromScrapingData() {
let mydescr = '';
const data = myproduct?.value.myscrapingbook;
const data = myscrapingbook.value;
if (!data) return false;
mydescr = getPrompt()
@@ -240,7 +241,7 @@ export default defineComponent({
handleShowAndSave,
copyDescrizioneFromScrapingData,
copyDescrizioneFromGruppoMacro,
loading,
myscrapingbook,
};
},
});

View File

@@ -81,43 +81,43 @@
<div v-if="!loading">
<div
v-if="myproduct?.myscrapingbook?.descrizione_lunga"
v-if="myscrapingbook?.descrizione_lunga"
class="q-ma-xs q-pa-xs"
>
<div class="text-h6 q-mb-sm">
Descrizione Estratta da Amazon:
</div>
{{ myproduct?.myscrapingbook?.descrizione_lunga }}
<br />
<q-btn
rounded
color="primary"
label="Copia per ChatGPT"
label="Copia Descrizione Amazon (per ChatGPT)"
icon="content_copy"
@click="copyDescrizioneFromScrapingData"
class="q-ma-md justify-center"
>
</q-btn>
<div class="text-h6 q-mb-sm">
Descrizione Estratta da Amazon:
</div>
{{ myscrapingbook?.descrizione_lunga }}
<br />
</div>
<div
v-if="myproduct?.productInfo?.descrizione_completa_macro"
class="q-ma-xs q-pa-xs"
>
<div class="text-h6 q-mb-sm">
Descrizione Estratta dal sito GruppoMacro.com:
</div>
{{ myproduct?.productInfo?.descrizione_completa_macro }}
<br />
<q-btn
rounded
color="primary"
label="Copia per ChatGPT"
label="Copia Descrizione GruppoMacro (per ChatGPT)"
icon="content_copy"
@click="copyDescrizioneFromGruppoMacro"
class="q-ma-md justify-center"
>
</q-btn>
<div class="text-h6 q-mb-sm">
Descrizione Estratta dal sito GruppoMacro.com:
</div>
{{ myproduct?.productInfo?.descrizione_completa_macro }}
<br />
</div>
</div>
</q-tab-panel>
@@ -131,3 +131,4 @@
<style lang="scss" scoped>
@import './CModifTrafiletto.scss';
</style>
Hai sempre sognato un ricettario fatto da te, con i tuoi piatti migliori? Questo libro ti guida passo dopo passo nella creazione del tuo personale quaderno di cucina. Suddividi le ricette per tema, annota ingredienti, segreti e varianti, aggiungi le tue note e segui i consigli per comporre menu sorprendenti. Con utili sezioni su mise en place, attrezzi da cucina, stagionalità, conservazione e molto altro, sarà il tuo alleato in cucina tutto lanno. Perfetto per chi ama cucinare con creatività, organizzazione e un pizzico di stile.

View File

@@ -23,6 +23,7 @@ export interface ICatalog {
img_bordata_stampa?: IImg,
img_intro_stampa?: IImg,
pagina_introduttiva_sfondo_nero?: boolean
backcolor?: string
pdf_generato?: string
data_generato?: Date

View File

@@ -2050,6 +2050,7 @@ const msg_it = {
img_bordata_stampa: 'Immagine di sfondo (per STAMPA)',
img_intro_stampa: 'Copertina introduttiva (per STAMPA)',
pagina_introduttiva_sfondo_nero: 'Pagina intro a sfondo nero',
backcolor: 'Colore di Sfondo Pagina Introduttiva',
isCatalogoGenerale: 'Fa parte del Catalogo Generale',
collane: 'Collane',
idPageAssigned: 'Pagina Assegnata',

View File

@@ -237,6 +237,7 @@ export const colTableCatalogList = [
AddCol({ name: 'descr_introduttiva', label_trans: 'cataloglist.descr_introduttiva', fieldtype: costanti.FieldType.html, maxlength: 1300 }),
AddCol({ name: 'pagina_introduttiva_sfondo_nero', label_trans: 'cataloglist.pagina_introduttiva_sfondo_nero', fieldtype: costanti.FieldType.boolean }),
AddCol({ name: 'backcolor', label_trans: 'cataloglist.backcolor', fieldtype: costanti.FieldType.string }),
AddCol({
name: 'img_bordata',

View File

@@ -77,6 +77,11 @@
color="negative"
@click="EseguiFunz('ScraperMultipleDataDBStored')"
></q-btn>
<q-btn
label="Estrai TUTTI i Dati da Amazon (Scraper) - No Update"
color="primary"
@click="EseguiFunz('ScraperEstraiDatiAmazon-NoUpdate')"
></q-btn>
<q-btn
label="Esporta CSV Dati Mancanti (num.pagine, formato, DataPubbl.)"
color="primary"

View File

@@ -113,6 +113,11 @@ body {
font-size: calc(20 * var(--scalecatalog) * 1px);
height: calc(380 * var(--scalecatalog) * 1px);
line-height: 130%;
font-weight: bold;
padding: 8px;
border-radius: 20px;
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}
.book-text-down {
@@ -120,12 +125,28 @@ body {
margin-bottom: calc(5 * var(--scalecatalog) * 1px);
}
.book-pagina-title {
.book-pagina-title, .book-pagina-title-footer {
font-family: 'DINPro', sans-serif;
margin-top: calc(20 * var(--scalecatalog) * 1px);
margin-bottom: calc(5 * var(--scalecatalog) * 1px);
font-size: calc(35 * var(--scalecatalog) * 1px);
height: calc(100 * var(--scalecatalog) * 1px);
margin-top: calc(50 * var(--scalecatalog) * 1px);
margin-bottom: calc(0 * var(--scalecatalog) * 1px);
font-size: calc(30 * var(--scalecatalog) * 1px);
height: calc(50 * var(--scalecatalog) * 1px);
text-transform: uppercase;
font-weight: bold;
}
.book-pagina-title-footer{
font-size: calc(20 * var(--scalecatalog) * 1px) !important;
text-transform: none;
}
.book-pagina-fondo {
position: absolute;
bottom: 0;
width: 100%;
display: flex;
flex-direction: row;
justify-content: center;
}
.categories {
@@ -163,4 +184,4 @@ body {
font-weight: 600;
border-color: #5c8ef4 !important;
box-shadow: 0 0 0 2px rgba(92, 142, 244, 0.3);
}
}

File diff suppressed because it is too large Load Diff

View File

@@ -178,7 +178,10 @@
</q-inner-loading>
<q-btn
v-if="!showListaFiltrata && tools.is"
v-if="
!showListaFiltrata &&
(tools.isEditor() || tools.isCommerciale())
"
rounded
icon="fas fa-redo"
label="Rigenera Lista"
@@ -316,7 +319,11 @@
</q-tabs>
<CTitleBanner
v-show="tabcatalogo === 'visu' && !tools.isUtente() && arrProducts?.length > 0"
v-show="
tabcatalogo === 'visu' &&
!tools.isUtente() &&
arrProducts?.length > 0
"
class="q-pa-xs"
title="Genera PDF"
bgcolor="bg-blue"
@@ -352,7 +359,7 @@
color="positive"
></q-btn>
<q-btn
v-if="tools.isAdmin() && false"
v-if="tools.isAdmin() && true"
label="Debug"
@click="toggleDebug()"
:push="optcatalogo.indebug"
@@ -867,6 +874,36 @@
></div>
</div>
<!-- Testo sul footer -->
<div
v-if="recscheda.scheda?.dimensioni?.pagina?.testo_title"
:style="{
'--scalecatalog':
tools.getScale(optcatalogo),
'line-height':
recscheda.scheda.dimensioni.pagina
?.testo_title?.font.line_height,
display: 'flex',
flexDirection: 'column',
position: 'relative', // Posizionamento assoluto
bottom: '8.5%', // Posiziona in basso
left: '50%', // Centra orizzontalmente
transform: 'translateX(-50%)', // Correzione per centrare perfettamente
width: '100%', // Assicura che il contenitore occupi l'intera larghezza
textAlign: 'center', // Allinea il testo al centro
zIndex: '10', // Assicura che il testo sia visibile sopra altri elementi
}"
>
<div
v-html="getTitoloPagina(null, optcatalogo.arrSchede[0], true)"
></div>
</div>
<div v-if="optcatalogo.indebug">
IMG:
{{ getImgIntroCatalogo(recscheda.scheda) }}
</div>
<!-- Itera sulle righe di ogni pagina -->
<div
v-for="(row, rowIndex) in page"

View File

@@ -162,19 +162,19 @@ export default defineComponent({
imagefile = recimg.imagefile!;
fit = recimg.fit! || 'contain';
imagefile = imagefile
? `url(${tools.getDirUpload() + shared_consts.getDirectoryByTable(shared_consts.TABLES_CATALOG) + '/' + trovatoraccolta._id + '/' + imagefile})`
? `url("${tools.getDirUpload() + shared_consts.getDirectoryByTable(shared_consts.TABLES_CATALOG) + '/' + trovatoraccolta._id + '/' + imagefile}")`
: '';
}
}
if (!imagefile) {
let myimg = costanti.CATALOGHI.PAG_SFONDO_DEFAULT;
// Se non c'è un immagine di sfondo, allora prende quella di default
imagefile = `url(${tools.getDirUpload() + shared_consts.getDirectoryByTable(shared_consts.TABLES_CATALOG) + '/' + myimg})`;
imagefile = `url("${tools.getDirUpload() + shared_consts.getDirectoryByTable(shared_consts.TABLES_CATALOG) + '/' + myimg})"`;
}
if (!imagefile && mypage) {
imagefile = mypage.imgsfondo!.imagefile!;
imagefile = imagefile ? `url(${tools.getDirUpload() + costanti.DIR_CATALOGO + imagefile})` : '';
imagefile = imagefile ? `url("${tools.getDirUpload() + costanti.DIR_CATALOGO + imagefile}")` : '';
fit = mypage.imgsfondo!.fit!;
}