- aggiornamento catalogo: lista titoli del catalogo

- scheda prodotto libro
- migliorata tabella prodotto
This commit is contained in:
Surya Paolo
2025-04-04 18:15:14 +02:00
parent 79d1c5fe1d
commit 9cfc308d09
49 changed files with 1760 additions and 934 deletions

View File

@@ -122,6 +122,10 @@
padding: 4px;
}
.book-big {
font-size: 1.5rem !important;
}
.book-details {
margin: 20px;

View File

@@ -13,14 +13,17 @@ import { CMyValueDb } from '../CMyValueDb'
import { CPrice } from '../CPrice'
import { CText } from '../CText'
import { CLabel } from '@src/components/CLabel'
import { CSchedaProdotto } from '@src/components/CSchedaProdotto'
import { CBarCode } from '../CBarCode'
import { CTableCupleLabelValue } from '../CTableCupleLabelValue'
import { func_tools, toolsext } from '@store/Modules/toolsext'
import type {
IOptCatalogo, IGasordine, IMyScheda, IOrder, IOrderCart,
IProduct, IVariazione
IProduct, IVariazione,
IRecFields
} from '@src/model';
import {
IBaseOrder
@@ -86,7 +89,7 @@ export default defineComponent({
},
components: {
CTitleBanner, CCardState, CCopyBtn, CMyValueDb, VuePdfApp, CPrice, CBarCode, CLabel,
CText, CViewTable
CText, CViewTable, CTableCupleLabelValue, CSchedaProdotto
},
setup(props, { emit }) {
const $q = useQuasar()
@@ -103,6 +106,9 @@ export default defineComponent({
const site = ref(globalStore.site)
const arrlistScheda = ref([])
const $router = useRouter()
const fullscreenImage = ref(<any>null)
@@ -132,6 +138,7 @@ export default defineComponent({
// updateCatalogoPadre()
}, { deep: false });
function updateCatalogoPadre() {
emit('update:modelValue', optcatalogo.value);
}
@@ -323,10 +330,14 @@ export default defineComponent({
}
async function updateproductmodif() {
// console.log('updateproductmodif')
async function updateproductmodif(element: any) {
console.log('CCATALOGOCARD: updateproductmodif')
try {
myproduct.value = await products.getProductById(props.id)
if (element?._id) {
myproduct.value = await products.getProductById(element?._id)
} else {
myproduct.value = await products.getProductById(props.id)
}
updateLabel()
} catch (e) {

View File

@@ -18,12 +18,6 @@
size="3em"
:thickness="2"
/>
<q-spinner
v-if="!endload"
color="primary"
size="3em"
:thickness="2"
/>
<div
v-if="!!myproduct && !!myproduct.productInfo"
@@ -104,7 +98,10 @@
/>
</a>
<div class="q-ma-sm">
<div class="row absolute-top-left semi-transparent" style="z-index: 10;">
<div
class="row absolute-top-left semi-transparent"
style="z-index: 10"
>
<q-btn-dropdown
push
glossy
@@ -225,7 +222,6 @@
<q-item-label>Visualizza su GM (Tutti i campi)</q-item-label>
</q-item-section>
</q-item>
</q-list>
</q-btn-dropdown>
</div>
@@ -243,7 +239,8 @@
<div
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',
alignSelf:
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',
}"
@@ -571,320 +568,13 @@
<q-dialog
v-if="myproduct && modifOn"
v-model="modifOn"
maximized
>
<q-card class="dialog_card">
<q-toolbar class="bg-primary text-white">
<q-toolbar-title> Modifica a {{ myproduct.productInfo.name }}</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="column">
<div class="etichetta">Titolo:</div>
<CMyValueDb
:editOn="modifOn"
table="productinfos"
:id="myproduct.productInfo._id"
:rec="myproduct.productInfo"
mykey="name"
debounce="1000"
:save="updateproductmodif()"
:type="costanti.FieldType.string"
>
</CMyValueDb>
<div class="etichetta">SottoTitolo:</div>
<CMyValueDb
:editOn="modifOn"
table="productinfos"
:id="myproduct.productInfo._id"
:rec="myproduct.productInfo"
mykey="sottotitolo"
debounce="1000"
:save="updateproductmodif()"
:type="costanti.FieldType.string"
>
</CMyValueDb>
<div class="etichetta">Descrizione Estesa:</div>
<CMyValueDb
:editOn="modifOn"
:title="t('catalogo.descrizione_estesa')"
table="productinfos"
:id="myproduct.productInfo._id"
:rec="myproduct.productInfo"
mykey="descrizione_completa_macro"
:maxlength="scheda.testo_bottom.maxlength ? scheda.testo_bottom.maxlength : 10000"
debounce="1000"
:save="updateproductmodif()"
:type="costanti.FieldType.string"
>
</CMyValueDb>
<div class="row q-ma-xm q-pa-xs">
<div class="boxtitleval">
<div class="etichetta">Pagine:</div>
<CMyValueDb
:editOn="modifOn"
:title="t('catalogo.pagine')"
table="arrvariazioni"
:id="myproduct._id"
:rec="myproduct"
mykey="pagine"
debounce="1000"
:save="updateproductmodif()"
:type="costanti.FieldType.number"
>
</CMyValueDb>
</div>
<div class="boxtitleval">
<div class="etichetta">Misure:</div>
<CMyValueDb
:editOn="modifOn"
:title="t('catalogo.misure')"
table="arrvariazioni"
:id="myproduct._id"
:rec="myproduct"
mykey="misure"
debounce="1000"
:save="updateproductmodif()"
:type="costanti.FieldType.string"
>
</CMyValueDb>
</div>
<div class="boxtitleval">
<div class="etichetta">Pubblicazione:</div>
<CMyValueDb
:editOn="modifOn"
:title="t('catalogo.date_pub')"
table="productinfos"
:id="myproduct.productInfo._id"
:rec="myproduct.productInfo"
mykey="date_pub"
debounce="1000"
:save="updateproductmodif()"
:type="costanti.FieldType.date"
>
</CMyValueDb>
</div>
<div class="boxtitleval">
<div class="etichetta">Formato:</div>
<CMyValueDb
:editOn="modifOn"
:title="t('catalogo.formato')"
table="arrvariazioni"
:id="myproduct._id"
:rec="myproduct"
mykey="formato"
debounce="1000"
:save="updateproductmodif()"
:type="costanti.FieldType.string"
>
</CMyValueDb>
</div>
<div class="boxtitleval">
<div class="etichetta">Quantità:</div>
<CMyValueDb
:editOn="false"
table="arrvariazioni"
:id="myproduct._id"
:rec="myproduct"
mykey="quantita"
debounce="1000"
:save="updateproductmodif()"
:type="costanti.FieldType.number"
>
</CMyValueDb>
</div>
<div class="boxtitleval">
<div class="etichetta">Argomenti:</div>
{{ products.getCatProdsStrByCatProds(myproduct.productInfo.idCatProds) }}
</div>
</div>
<div class="row">
<div class="boxtitleval">
<div class="etichetta">Prezzo:</div>
<CMyValueDb
:editOn="modifOn"
:title="t('catalogo.prezzo')"
table="arrvariazioni"
:id="myproduct._id"
:rec="myproduct"
mykey="price"
debounce="1000"
:save="updateproductmodif()"
:type="costanti.FieldType.number"
>
</CMyValueDb>
</div>
<div class="boxtitleval">
<div class="etichetta">Prezzo Scontato:</div>
<CMyValueDb
:editOn="modifOn"
:title="t('catalogo.prezzo_scontato')"
table="arrvariazioni"
:id="myproduct._id"
:rec="myproduct"
mykey="sale_price"
debounce="1000"
:save="updateproductmodif()"
:type="costanti.FieldType.number"
>
</CMyValueDb>
</div>
</div>
<div class="row">
<div class="boxtitleval">
<div class="etichetta">Descrizione breve macro:</div>
<CMyValueDb
:editOn="modifOn"
:title="t('catalogo.descrizione_breve_macro')"
table="productinfos"
:id="myproduct.productInfo._id"
:rec="myproduct.productInfo"
mykey="descrizione_breve_macro"
debounce="1000"
:save="updateproductmodif()"
:type="costanti.FieldType.string"
>
</CMyValueDb>
</div>
<div class="boxtitleval">
<div class="etichetta">Link a gruppomacro.com:</div>
<CMyValueDb
:editOn="modifOn"
:title="t('catalogo.link_macro')"
table="productinfos"
:id="myproduct.productInfo._id"
:rec="myproduct.productInfo"
mykey="link_macro"
debounce="1000"
:save="updateproductmodif()"
:type="costanti.FieldType.string"
>
</CMyValueDb>
</div>
</div>
<div class="row bg-blue-4">
<div class="etichetta">Fatturati:</div>
<CMyValueDb
:editOn="modifOn"
table="productinfos"
:id="myproduct.productInfo._id"
:rec="myproduct.productInfo"
mykey="totFat"
debounce="1000"
:save="updateproductmodif()"
:type="costanti.FieldType.number"
>
</CMyValueDb>
<div class="etichetta">Fatturati Ultimi 3 Mese:</div>
<CMyValueDb
:editOn="modifOn"
table="productinfos"
:id="myproduct.productInfo._id"
:rec="myproduct.productInfo"
mykey="fatLast3M"
debounce="1000"
:save="updateproductmodif()"
:type="costanti.FieldType.number"
>
</CMyValueDb>
<div class="etichetta">Venduti:</div>
<CMyValueDb
:editOn="modifOn"
table="productinfos"
:id="myproduct.productInfo._id"
:rec="myproduct.productInfo"
mykey="totVen"
debounce="1000"
:save="updateproductmodif()"
:type="costanti.FieldType.number"
>
</CMyValueDb>
<div class="etichetta">Venduti Ultimi 3 Mesi:</div>
<CMyValueDb
:editOn="modifOn"
table="productinfos"
:id="myproduct.productInfo._id"
:rec="myproduct.productInfo"
mykey="vLast3M"
debounce="1000"
:save="updateproductmodif()"
:type="costanti.FieldType.number"
>
</CMyValueDb>
<div class="etichetta">Venduti Ultimi 6 Mesi:</div>
<CMyValueDb
:editOn="modifOn"
table="productinfos"
:id="myproduct.productInfo._id"
:rec="myproduct.productInfo"
mykey="vLast6M"
debounce="1000"
:save="updateproductmodif()"
:type="costanti.FieldType.number"
>
</CMyValueDb>
<div class="etichetta">Venduti Ultimo Anno:</div>
<CMyValueDb
:editOn="modifOn"
table="productinfos"
:id="myproduct.productInfo._id"
:rec="myproduct.productInfo"
mykey="vLastY"
debounce="1000"
:save="updateproductmodif()"
:type="costanti.FieldType.number"
>
</CMyValueDb>
<CLabel
:value="myproduct.indiceRanking"
label="N° in Classifica:"
/>
<div class="etichetta">3 Mesi:</div>
<CMyValueDb
:editOn="modifOn"
table="productinfos"
:id="myproduct.productInfo._id"
:rec="myproduct.productInfo"
mykey="rank3M"
debounce="1000"
:save="updateproductmodif()"
:type="costanti.FieldType.number"
>
</CMyValueDb>
<div class="etichetta">6 Mesi:</div>
<CMyValueDb
:editOn="modifOn"
table="productinfos"
:id="myproduct.productInfo._id"
:rec="myproduct.productInfo"
mykey="rank6M"
debounce="1000"
:save="updateproductmodif()"
:type="costanti.FieldType.number"
>
</CMyValueDb>
<div class="etichetta">1 Anno:</div>
<CMyValueDb
:editOn="modifOn"
table="productinfos"
:id="myproduct.productInfo._id"
:rec="myproduct.productInfo"
mykey="rank1Y"
debounce="1000"
:save="updateproductmodif()"
:type="costanti.FieldType.number"
>
</CMyValueDb>
</div>
</div>
</q-card-section>
</q-card>
<CSchedaProdotto
v-model="myproduct"
@updateproductmodif="updateproductmodif"
>
</CSchedaProdotto>
</q-dialog>
<q-dialog
v-if="visufromgm && myproduct"