Files
myprojplanet_vite/src/views/ecommerce/raccoltacataloghi/raccoltacataloghi.vue
Surya Paolo e7ead2e66a - Raccolte Cataloghi corretto e migliorato.
- Bottoni "Apri" e "PDF".
2025-07-06 23:12:56 +02:00

441 lines
15 KiB
Vue
Executable File

<template>
<q-page>
<div>
<div
v-if="ispageCatalogata"
class="text-bold text-h6 text-center text-blue"
>
{{ getTitoloRaccolta() }}
</div>
<q-tabs
v-model="tabraccolta"
dense
class="bg-green text-white"
>
<q-tab
name="lista"
icon="fas fa-list"
label="Lista"
>
</q-tab>
<q-tab
name="genera"
icon="fas fa-book"
label="PDF Completo"
>
</q-tab>
</q-tabs>
<q-tab-panels
v-model="tabraccolta"
animated
class=""
keep-alive
>
<q-tab-panel name="lista">
<q-btn
v-if="!tools.isUtente()"
rounded
label="Aggiungi"
icon="fas fa-plus"
color="primary"
@click="clickaddNewBook()"
></q-btn>
<CProductTable
v-if="loadpage && lista_cataloghi?.length > 0"
:lista_prodotti="lista_cataloghi"
@update:lista_prodotti="updateRaccolta"
table="catalogs"
:optcatalogo="optcatalogo"
:idcatalog="idPage"
/>
</q-tab-panel>
<q-tab-panel name="genera">
<div>
<div class="row justify-center">
<div
v-if="getRaccoltaCataloghiByMyPage.pdf_online"
class="catalog-download-section"
>
<q-card class="catalog-card shadow-8">
<q-card-section class="text-center">
<q-img
:src="
tools.getFullFileName(
[getRaccoltaCataloghiByMyPage.foto_raccolta],
'raccoltacataloghis',
'',
getRaccoltaCataloghiByMyPage._id
)
"
class="catalog-image"
height="128px"
fit="contain"
style="max-width: 100%"
/>
<div class="text-h5 q-mt-sm q-mb-xs">
{{ `${getRaccoltaCataloghiByMyPage.title}` }}
</div>
<div class="text-caption text-grey-8 text-center q-mt-sm">
<div class="row items-center justify-center">
<q-icon
name="fas fa-file-pdf"
size="sm"
/>
<span class="q-ml-xs">
{{
getRaccoltaCataloghiByMyPage.pdf_online
? `${getRaccoltaCataloghiByMyPage.pdf_online_size} MB`
: ''
}}
</span>
<q-icon
name="fas fa-clock"
size="sm"
class="q-ml-sm"
/>
<span class="q-ml-xs"> Pubblicato il </span>
<span class="q-ml-xs">
{{
getRaccoltaCataloghiByMyPage.pdf_online
? tools.getstrDate(getRaccoltaCataloghiByMyPage.data_online)
: ''
}}
</span>
</div>
</div>
</q-card-section>
<q-card-actions
align="center"
class="q-pb-md"
>
<q-btn
v-if="getRaccoltaCataloghiByMyPage.pdf_online"
unelevated
rounded
color="primary"
icon="fas fa-file-pdf"
:label="`Apri PDF`"
:href="
tools.getURLByHostAndFilePath(
getRaccoltaCataloghiByMyPage.pdf_online,
getRaccoltaCataloghiByMyPage.data_online
? new Date(getRaccoltaCataloghiByMyPage.data_online).getTime()
: undefined
)
"
size="md"
class="hover-lift"
/>
<q-btn
v-if="getRaccoltaCataloghiByMyPage.pdf_online"
unelevated
rounded
color="primary"
icon="download"
:label="`Scarica PDF`"
:href="
tools.getURLByHostAndFilePath(
getRaccoltaCataloghiByMyPage.pdf_online,
getRaccoltaCataloghiByMyPage.data_online
? new Date(getRaccoltaCataloghiByMyPage.data_online).getTime()
: undefined
)
"
download
size="md"
class="hover-lift"
/>
</q-card-actions>
</q-card>
</div>
<div
v-if="
tools.isCollStampa() && getRaccoltaCataloghiByMyPage.pdf_online_stampa
"
class="catalog-download-section"
>
<q-card class="catalog-card shadow-8">
<q-card-section class="text-center">
<q-img
:src="
tools.getFullFileName(
[getRaccoltaCataloghiByMyPage.foto_raccolta],
'raccoltacataloghis',
'',
getRaccoltaCataloghiByMyPage._id
)
"
class="catalog-image"
height="128px"
fit="contain"
style="max-width: 100%"
/>
<div class="text-h5 q-mt-sm q-mb-xs">Versione per STAMPA</div>
<div class="text-caption text-grey-8 text-center q-mt-sm">
<div class="row items-center justify-center">
<q-icon
name="fas fa-print"
size="sm"
/>
<span class="q-ml-xs">
{{
getRaccoltaCataloghiByMyPage.pdf_online
? `${getRaccoltaCataloghiByMyPage.pdf_online_stampa_size} MB`
: ''
}}
</span>
<q-icon
name="fas fa-clock"
size="sm"
class="q-ml-sm"
/>
<span class="q-ml-xs"> Pubblicato il </span>
<span class="q-ml-xs">
{{
getRaccoltaCataloghiByMyPage.pdf_online_stampa
? tools.getstrDate(
getRaccoltaCataloghiByMyPage.data_online_stampa
)
: ''
}}
</span>
</div>
</div>
</q-card-section>
<q-card-actions
align="center"
class="q-pb-md"
>
<q-btn
v-if="getRaccoltaCataloghiByMyPage.pdf_online_stampa"
unelevated
rounded
color="primary"
icon="fas fa-file-pdf"
:label="`Apri PDF`"
:href="
tools.getURLByHostAndFilePath(
getRaccoltaCataloghiByMyPage.pdf_online_stampa,
getRaccoltaCataloghiByMyPage.data_online_stampa
? new Date(
getRaccoltaCataloghiByMyPage.data_online_stampa
).getTime()
: undefined
)
"
size="md"
class="hover-lift"
/>
<q-btn
v-if="getRaccoltaCataloghiByMyPage.pdf_online_stampa"
unelevated
rounded
color="primary"
icon="download"
:label="`Scarica PDF`"
:href="
tools.getURLByHostAndFilePath(
getRaccoltaCataloghiByMyPage.pdf_online_stampa,
getRaccoltaCataloghiByMyPage.data_online_stampa
? new Date(
getRaccoltaCataloghiByMyPage.data_online_stampa
).getTime()
: undefined
)
"
download
size="md"
class="hover-lift"
/>
</q-card-actions>
</q-card>
</div>
</div>
</div>
<div v-if="!tools.isUtente()">
<div
v-if="!tools.isUtente()"
class="column justify-center"
>
<div class="row justify-center">
<q-btn
rounded
label="Rigenera TUTTI i Cataloghi"
icon="fas fa-redo"
color="primary"
@click="rigeneraTUTTI()"
></q-btn>
<q-btn
rounded
label="Online TUTTI i Cataloghi"
icon="fas fa-redo"
color="positive"
@click="onlineTUTTI()"
></q-btn>
</div>
<br />
<div class="row justify-center">
<q-btn
rounded
label="Rigenera TUTTI per STAMPA"
icon="fas fa-print"
color="primary"
@click="rigeneraTUTTI(true)"
></q-btn>
<q-btn
rounded
label="Online TUTTI per STAMPA"
icon="fas fa-redo"
color="positive"
@click="onlineTUTTI(true)"
></q-btn>
</div>
<br /><br />
</div>
<div>
<div class="row justify-center">
<q-btn
v-if="!optcatalogo.generazionePDFInCorso"
:label="`GENERA PDF ` + getTitoloRaccolta()"
color="red"
@click="preparePDF(false)"
rounded
></q-btn>
<q-btn
v-if="!optcatalogo.generazionePDFInCorso"
:label="`GENERA PDF ${getTitoloRaccolta()} per STAMPA`"
@click="preparePDF(true)"
color="orange"
rounded
></q-btn>
<q-btn
v-if="optcatalogo.generazionePDFInCorso"
:label="`Termina Generazione`"
@click="terminaPDF"
></q-btn>
</div>
</div>
<div
v-if="getRaccoltaCataloghiByMyPage?.pdf_generato"
class="bg-green-1 q-ma-sm q-pa-sm"
>
<div class="bg-blue-1 text-red text-bold text-h6 q-ma-sm q-pa-sm">
<strong>PDF generati Temporanei</strong>
</div>
<div
v-if="
getRaccoltaCataloghiByMyPage?.data_generato !==
getRaccoltaCataloghiByMyPage?.data_online
"
>
PDF Generato:
<a
:href="
tools.getURLByHostAndFilePath(
getRaccoltaCataloghiByMyPage?.pdf_generato
)
"
target="_blank"
v-if="getRaccoltaCataloghiByMyPage?.pdf_generato"
class="text-bold"
>
{{
tools.getURLByHostAndFilePath(
getRaccoltaCataloghiByMyPage?.pdf_generato
)
}}
</a>
<span v-else>-</span>
<br />(del
{{ tools.getstrDateTime(getRaccoltaCataloghiByMyPage?.data_generato) }})
<br />
<q-btn
v-if="
getRaccoltaCataloghiByMyPage?.data_generato !==
getRaccoltaCataloghiByMyPage?.data_online
"
rounded
label="Pubblica PDF OnLine"
color="positive"
@click="pubblicaPDF()"
></q-btn>
</div>
<br />
<div
v-if="
getRaccoltaCataloghiByMyPage?.data_generato_stampa !==
getRaccoltaCataloghiByMyPage?.data_online_stampa
"
>
PDF Generato Stampa:
<a
:href="
tools.getURLByHostAndFilePath(
getRaccoltaCataloghiByMyPage?.pdf_generato_stampa
)
"
target="_blank"
v-if="getRaccoltaCataloghiByMyPage?.pdf_generato_stampa"
class="text-bold"
>
{{
tools.getURLByHostAndFilePath(
getRaccoltaCataloghiByMyPage?.pdf_generato_stampa
)
}}
</a>
<span v-else>-</span>
<br />(del
{{
tools.getstrDateTime(
getRaccoltaCataloghiByMyPage?.data_generato_stampa
)
}})
<br />
<q-btn
v-if="
getRaccoltaCataloghiByMyPage?.data_generato_stampa !==
getRaccoltaCataloghiByMyPage?.data_online_stampa
"
rounded
label="Pubblica PDF Stampa"
color="positive"
@click="pubblicaPDFStampa()"
></q-btn>
</div>
</div>
</div>
</q-tab-panel>
</q-tab-panels>
</div>
</q-page>
<CMyDialog
v-model="addnewProd"
title="Aggiungi"
class="q-ma-md"
>
<CSearchProduct
:visu="shared_consts.VISU_SEARCHPROD_MODE.INSERT"
table="catalogs"
@insert="addCatalogToList"
@close="addnewProd = false"
nameLinkTemplate="SEARCH_Prima"
:empty="true"
>
</CSearchProduct>
</CMyDialog>
</template>
<script lang="ts" src="./raccoltacataloghi.ts"></script>
<style lang="scss" scoped>
@import './raccoltacataloghi.scss';
</style>