- estrazione dei dati del libro sul sito di Amazon.

- possibilità di visualizzare i dati estratti e di aggiornare i dati, sia solo se vuoti, che sovrascrivere tutti i dati.
This commit is contained in:
Surya Paolo
2025-05-16 18:52:12 +02:00
parent 810815a12a
commit 859ba022fa
18 changed files with 1840 additions and 798 deletions

View File

@@ -7,7 +7,10 @@
:style="
scheda.dimensioni?.pagina?.dimensioni?.size?.height
? ' height: ' +
tools.adjustSize(optcatalogo, scheda.dimensioni?.pagina?.dimensioni?.size?.height) +
tools.adjustSize(
optcatalogo,
scheda.dimensioni?.pagina?.dimensioni?.size?.height
) +
'px !important; '
: ''
"
@@ -51,12 +54,26 @@
'flex', // Classi comuni
'image-container',
{ 'shadow-2': options.in_3d && !optcatalogo.pdf }, // Classe condizionale
scheda.testo_right_attaccato.font?.posiz_text === costanti.POSIZ_TESTO.IN_BASSO ? '' : 'flex flex-row', // Layout flessibile
scheda.testo_right_attaccato.font?.posiz_text ===
costanti.POSIZ_TESTO.IN_BASSO
? ''
: 'flex flex-row', // Layout flessibile
]"
:style="{
gap: tools.adjustSize(optcatalogo, scheda.dimensioni?.scheda_prodotto?.size?.gap) ?? '0.1rem',
width: tools.adjustSize(optcatalogo, scheda.dimensioni?.scheda_prodotto?.size?.width) ?? '100%',
height: tools.adjustSize(optcatalogo, scheda.dimensioni?.scheda_prodotto?.size?.height),
gap:
tools.adjustSize(
optcatalogo,
scheda.dimensioni?.scheda_prodotto?.size?.gap
) ?? '0.1rem',
width:
tools.adjustSize(
optcatalogo,
scheda.dimensioni?.scheda_prodotto?.size?.width
) ?? '100%',
height: tools.adjustSize(
optcatalogo,
scheda.dimensioni?.scheda_prodotto?.size?.height
),
}"
>
<div>
@@ -68,11 +85,16 @@
v-if="myproduct.productInfo"
:src="
myproduct.productInfo.imagefile
? tools.getFullFileNameByImageFile('productInfos', myproduct.productInfo.imagefile)
? tools.getFullFileNameByImageFile(
'productInfos',
myproduct.productInfo.imagefile
)
: myproduct.productInfo.image_link
"
:alt="myproduct.productInfo.name"
:fit="scheda.dimensioni?.immagine_prodotto?.size?.fit ?? 'cover'"
:fit="
scheda.dimensioni?.immagine_prodotto?.size?.fit ?? 'cover'
"
:class="{
'book-image-fixed': complete,
'cursor-pointer': !complete,
@@ -82,15 +104,25 @@
:style="{
zIndex: 2,
width:
scheda.testo_right.font?.posiz_text === costanti.POSIZ_TESTO.IN_BASSO
scheda.testo_right.font?.posiz_text ===
costanti.POSIZ_TESTO.IN_BASSO
? (scheda.testo_right.font?.perc_text ?? '50%')
: '45%',
...(tools.adjustSize(optcatalogo, scheda.dimensioni?.immagine_prodotto?.size?.width) && {
...(tools.adjustSize(
optcatalogo,
scheda.dimensioni?.immagine_prodotto?.size?.width
) && {
width:
tools.adjustSize(optcatalogo, scheda.dimensioni?.immagine_prodotto.size?.width) + ' !important',
tools.adjustSize(
optcatalogo,
scheda.dimensioni?.immagine_prodotto.size?.width
) + ' !important',
}),
height: scheda.dimensioni?.immagine_prodotto?.size?.height
? tools.adjustSize(optcatalogo, scheda.dimensioni?.immagine_prodotto?.size?.height)
? tools.adjustSize(
optcatalogo,
scheda.dimensioni?.immagine_prodotto?.size?.height
)
: undefined,
display: 'block',
}"
@@ -179,7 +211,10 @@
</q-item-section>
</q-item>-->
<q-item
v-if="!optcatalogo.generazionePDFInCorso && (editOn || options.show_edit_book)"
v-if="
!optcatalogo.generazionePDFInCorso &&
(editOn || options.show_edit_book)
"
clickable
v-close-popup
@click="refreshSingleBookFromGM({ usaDBGMLocale: false })"
@@ -197,7 +232,9 @@
</q-item>
<q-item
v-if="
tools.isManager() && !optcatalogo.generazionePDFInCorso && (editOn || options.show_edit_book)
tools.isManager() &&
!optcatalogo.generazionePDFInCorso &&
(editOn || options.show_edit_book)
"
clickable
v-close-popup
@@ -255,7 +292,9 @@
-->
<q-item
v-if="
tools.isManager() && !optcatalogo.generazionePDFInCorso && (editOn || options.show_edit_book)
tools.isManager() &&
!optcatalogo.generazionePDFInCorso &&
(editOn || options.show_edit_book)
"
clickable
v-close-popup
@@ -275,6 +314,29 @@
<q-item-label>Visualizza su GM</q-item-label>
</q-item-section>
</q-item>
<q-item
v-if="
!optcatalogo.generazionePDFInCorso &&
(editOn || options.show_edit_book)
"
clickable
v-close-popup
@click="getDataExtracted()"
>
<q-item-section avatar>
<q-avatar
icon="fas fa-sitemap"
color="orange"
text-color="white"
/>
</q-item-section>
<q-item-section>
<q-item-label
>Visualizza dati Estrapolati (dal WEB
Esterno)</q-item-label
>
</q-item-section>
</q-item>
<!--<q-item
v-if="
@@ -299,7 +361,9 @@
<q-item
v-if="
tools.isManager() && !optcatalogo.generazionePDFInCorso && (editOn || options.show_edit_book)
tools.isManager() &&
!optcatalogo.generazionePDFInCorso &&
(editOn || options.show_edit_book)
"
clickable
v-close-popup
@@ -316,7 +380,10 @@
/>
</q-item-section>
<q-item-section>
<q-item-label>Visualizza su GM (con le Quantità in Magazzino)</q-item-label>
<q-item-label
>Visualizza su GM (con le Quantità in
Magazzino)</q-item-label
>
</q-item-section>
</q-item>
</q-list>
@@ -334,12 +401,21 @@
:idPage="idPage"
>
<div
v-if="scheda.testo_right_attaccato.font?.posiz_text !== costanti.POSIZ_TESTO.IN_BASSO"
v-if="
scheda.testo_right_attaccato.font?.posiz_text !==
costanti.POSIZ_TESTO.IN_BASSO
"
:style="{
alignSelf:
scheda.testo_right_attaccato.font?.posiz_text === costanti.POSIZ_TESTO.IN_BASSO ? '' : 'center',
scheda.testo_right_attaccato.font?.posiz_text ===
costanti.POSIZ_TESTO.IN_BASSO
? ''
: 'center',
marginTop:
scheda.testo_right_attaccato.font?.posiz_text === costanti.POSIZ_TESTO.IN_BASSO ? 'auto' : '0',
scheda.testo_right_attaccato.font?.posiz_text ===
costanti.POSIZ_TESTO.IN_BASSO
? 'auto'
: '0',
}"
>
<CText
@@ -356,15 +432,36 @@
:value="myproduct.productInfo.code"
:format="scheda.barcode.format"
:fontsizeprop="scheda.barcode.font?.size"
:gap="tools.adjustSize(optcatalogo, scheda.barcode.size?.gap)"
:width="parseInt(tools.adjustSize(optcatalogo, scheda.barcode.size?.width))"
:widthlines="tools.adjustSize(optcatalogo, scheda.barcode.widthlines)"
:height="tools.adjustSize(optcatalogo, scheda.barcode.size?.height)"
:gap="
tools.adjustSize(optcatalogo, scheda.barcode.size?.gap)
"
:width="
parseInt(
tools.adjustSize(
optcatalogo,
scheda.barcode.size?.width
)
)
"
:widthlines="
tools.adjustSize(optcatalogo, scheda.barcode.widthlines)
"
:height="
tools.adjustSize(
optcatalogo,
scheda.barcode.size?.height
)
"
:show_at_right="scheda.barcode?.show_at_right"
>
</CBarCode>
</div>
<div v-if="scheda.etichette?.bestseller?.show && isProductBestseller()">
<div
v-if="
scheda.etichette?.bestseller?.show &&
isProductBestseller()
"
>
<q-img
src="/images/bestseller.png"
alt="Bestseller"
@@ -373,7 +470,11 @@
fit="contain"
></q-img>
</div>
<div v-else-if="scheda.etichette?.novita?.show && isProductNovita()">
<div
v-else-if="
scheda.etichette?.novita?.show && isProductNovita()
"
>
<q-img
src="/images/novita.png"
alt="Novita"
@@ -387,7 +488,10 @@
</div>
</CText>
<div
v-if="scheda.testo_right_attaccato.font?.posiz_text === costanti.POSIZ_TESTO.IN_BASSO"
v-if="
scheda.testo_right_attaccato.font?.posiz_text ===
costanti.POSIZ_TESTO.IN_BASSO
"
class="flexible-width"
:style="{
marginTop: 'auto',
@@ -407,15 +511,32 @@
:value="myproduct.productInfo.code"
:format="scheda.barcode.format"
:fontsizeprop="scheda.barcode.font?.size"
:gap="tools.adjustSize(optcatalogo, scheda.barcode.size?.gap)"
:width="parseInt(tools.adjustSize(optcatalogo, scheda.barcode.size?.width))"
:widthlines="tools.adjustSize(optcatalogo, scheda.barcode.widthlines)"
:height="tools.adjustSize(optcatalogo, scheda.barcode.size?.height)"
:gap="
tools.adjustSize(optcatalogo, scheda.barcode.size?.gap)
"
:width="
parseInt(
tools.adjustSize(
optcatalogo,
scheda.barcode.size?.width
)
)
"
:widthlines="
tools.adjustSize(optcatalogo, scheda.barcode.widthlines)
"
:height="
tools.adjustSize(optcatalogo, scheda.barcode.size?.height)
"
:show_at_right="scheda.barcode.show_at_right"
>
</CBarCode>
</div>
<div v-if="scheda.etichette?.bestseller?.show && isProductBestseller()">
<div
v-if="
scheda.etichette?.bestseller?.show && isProductBestseller()
"
>
<q-img
src="/images/bestseller.png"
alt="Bestseller"
@@ -424,7 +545,11 @@
fit="contain"
></q-img>
</div>
<div v-else-if="scheda.etichette?.novita?.show && isProductNovita()">
<div
v-else-if="
scheda.etichette?.novita?.show && isProductNovita()
"
>
<q-img
src="/images/novita.png"
alt="Novita"
@@ -486,7 +611,9 @@
>
<q-card class="dialog_card">
<q-toolbar class="bg-primary text-white">
<q-toolbar-title> {{ t('ecomm.listaord') }} - {{ myproduct.productInfo.name }} </q-toolbar-title>
<q-toolbar-title>
{{ t('ecomm.listaord') }} - {{ myproduct.productInfo.name }}
</q-toolbar-title>
<q-btn
flat
round
@@ -524,20 +651,34 @@
</div>
</td>
<td class="text-center">
<strong>{{ tools.getNomeUtenteEUsernameByRecUser(ordcart.user) }}</strong>
<strong>{{
tools.getNomeUtenteEUsernameByRecUser(ordcart.user)
}}</strong>
</td>
<td class="text-center">
<strong>{{ shared_consts.getStatusStr(ordcart.status) }}</strong>
<strong>{{
shared_consts.getStatusStr(ordcart.status)
}}</strong>
</td>
<td class="text-center">
<div
v-for="(singleord, index) in ordcart.items"
:key="index"
>
<span v-if="singleord.order.idProduct === myproduct._id && singleord.order.quantity > 0">
<span
v-if="
singleord.order.idProduct === myproduct._id &&
singleord.order.quantity > 0
"
>
{{ singleord.order.quantity }}</span
>
<span v-if="singleord.order.idProduct === myproduct._id && singleord.order.quantitypreordered > 0">
<span
v-if="
singleord.order.idProduct === myproduct._id &&
singleord.order.quantitypreordered > 0
"
>
{{ singleord.order.quantitypreordered }}</span
>
</div>
@@ -562,7 +703,12 @@
</q-dialog>
<q-dialog
v-if="true && myproduct && myproduct.productInfo && myproduct.productInfo.link_scheda"
v-if="
true &&
myproduct &&
myproduct.productInfo &&
myproduct.productInfo.link_scheda
"
v-model="apriSchedaPDF"
maximized
>
@@ -599,7 +745,12 @@
</q-dialog>
<q-dialog
v-if="false && myproduct && myproduct.productInfo && myproduct.productInfo.link_scheda"
v-if="
false &&
myproduct &&
myproduct.productInfo &&
myproduct.productInfo.link_scheda
"
v-model="apriSchedaPDF"
fullscreen
>
@@ -638,7 +789,9 @@
>
<q-img
:src="
myproduct.productInfo.imagefile ? `` + myproduct.productInfo.imagefile : myproduct.productInfo.image_link
myproduct.productInfo.imagefile
? `` + myproduct.productInfo.imagefile
: myproduct.productInfo.image_link
"
:alt="myproduct.productInfo.name"
:fit="tools.isMobile() ? 'fill' : 'contain'"
@@ -713,7 +866,11 @@
campispeciali: true,
numrec: 1,
where:
'T.IdArticolo =' + myproduct.productInfo.sku + ' AND T.Ean13 = \'' + myproduct.productInfo.code + '\'',
'T.IdArticolo =' +
myproduct.productInfo.sku +
' AND T.Ean13 = \'' +
myproduct.productInfo.code +
'\'',
showQtaDisponibile,
outhtml: true,
}"
@@ -722,6 +879,38 @@
</q-card-section>
</q-card>
</q-dialog>
<q-dialog
v-if="visudataextracted && myproduct"
v-model="visudataextracted"
>
<q-card class="dialog_card">
<q-toolbar class="bg-primary text-white">
<q-toolbar-title> Visu </q-toolbar-title>
<q-btn
flat
round
color="white"
icon="close"
v-close-popup
></q-btn>
</q-toolbar>
<q-card-section class="q-pa-xs inset-shadow">
<div class="row justify-center">Dati</div><br>
<q-inner-loading
id="spinner"
:showing="loading"
>
<q-spinner-tail
color="primary"
size="4em"
>
</q-spinner-tail>
</q-inner-loading>
<div v-html="dataextractedWeb"></div>
</q-card-section>
</q-card>
</q-dialog>
<q-dialog
v-if="updatefromgm && myproduct"
v-model="updatefromgm"