- Cataloghi: parte finale... prima bozza 9 dic
This commit is contained in:
@@ -1,31 +1,51 @@
|
||||
import { PropType, defineComponent } from 'vue'
|
||||
import { PropType, defineComponent, ref, watch } from 'vue'
|
||||
|
||||
import { Catalogo } from '@src/views/ecommerce'
|
||||
import { Catalogo } from '@src/views/ecommerce/catalogo'
|
||||
import { ICatalogo } from '@src/model'
|
||||
|
||||
export default defineComponent({
|
||||
name: 'CCatalogo',
|
||||
components: { Catalogo },
|
||||
emits: ['update:modelValue', 'updateCatalogo'],
|
||||
props: {
|
||||
// add options ICatalogo
|
||||
optcatalogo: {
|
||||
modelValue: {
|
||||
type: Object as PropType<ICatalogo>,
|
||||
required: false,
|
||||
default: () => ({
|
||||
//++AddCATALOGO_FIELDS
|
||||
productTypes: [],
|
||||
excludeproductTypes: [],
|
||||
formato: [],
|
||||
Categoria: [],
|
||||
Editore: [],
|
||||
pdf: false,
|
||||
}),
|
||||
required: true,
|
||||
},
|
||||
},
|
||||
|
||||
setup(props) {
|
||||
setup(props, { emit }) {
|
||||
// Crea una copia locale reattiva di modelValue
|
||||
const localCatalogo = ref<ICatalogo>({ ...props.modelValue });
|
||||
|
||||
// Watcher per sincronizzare le modifiche di modelValue
|
||||
watch(() => props.modelValue, (newVal) => {
|
||||
localCatalogo.value = { ...newVal };
|
||||
// updateCatalogoPadre()
|
||||
}, { deep: true });
|
||||
|
||||
function updateCatalogoPadre() {
|
||||
emit('update:modelValue', localCatalogo.value);
|
||||
emit('updateCatalogo', localCatalogo.value);
|
||||
}
|
||||
|
||||
// Metodo per aggiornare il valore del catalogo
|
||||
const updateCatalogo = (updatedCatalogo: ICatalogo) => {
|
||||
localCatalogo.value = updatedCatalogo; // Aggiorna la copia locale
|
||||
updateCatalogoPadre()
|
||||
};
|
||||
|
||||
function updateCatalogoEmit(updatedCatalogo: ICatalogo) {
|
||||
console.log('updateCatalogoEmit')
|
||||
localCatalogo.value = updatedCatalogo; // Aggiorna la copia locale
|
||||
updateCatalogoPadre()
|
||||
|
||||
}
|
||||
|
||||
return {
|
||||
}
|
||||
localCatalogo,
|
||||
updateCatalogoEmit,
|
||||
};
|
||||
}
|
||||
})
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<template>
|
||||
<div>
|
||||
<Catalogo :optcatalogo="optcatalogo">
|
||||
<Catalogo v-model="localCatalogo" @updateCatalogo="updateCatalogoEmit()">
|
||||
|
||||
</Catalogo>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user