2025-03-01 14:14:43 +01:00
|
|
|
import type { PropType} from 'vue';
|
|
|
|
|
import { defineComponent, ref, watch } from 'vue'
|
2024-01-30 14:00:48 +01:00
|
|
|
|
2024-12-09 12:32:19 +01:00
|
|
|
import { Catalogo } from '@src/views/ecommerce/catalogo'
|
2025-03-01 14:14:43 +01:00
|
|
|
import type { IOptCatalogo } from '@src/model'
|
2024-01-30 14:00:48 +01:00
|
|
|
|
|
|
|
|
export default defineComponent({
|
|
|
|
|
name: 'CCatalogo',
|
|
|
|
|
components: { Catalogo },
|
2024-12-09 12:32:19 +01:00
|
|
|
emits: ['update:modelValue', 'updateCatalogo'],
|
2024-06-20 17:22:46 +02:00
|
|
|
props: {
|
2025-02-03 17:18:33 +01:00
|
|
|
// add options IOptCatalogo
|
2024-12-09 12:32:19 +01:00
|
|
|
modelValue: {
|
2025-02-03 17:18:33 +01:00
|
|
|
type: Object as PropType<IOptCatalogo>,
|
2024-12-09 12:32:19 +01:00
|
|
|
required: true,
|
2024-06-20 17:22:46 +02:00
|
|
|
},
|
2025-02-10 22:48:53 +01:00
|
|
|
idPage: {
|
|
|
|
|
type: String,
|
|
|
|
|
required: false,
|
|
|
|
|
default: '',
|
|
|
|
|
},
|
2024-06-20 17:22:46 +02:00
|
|
|
},
|
|
|
|
|
|
2024-12-09 12:32:19 +01:00
|
|
|
setup(props, { emit }) {
|
|
|
|
|
// Crea una copia locale reattiva di modelValue
|
2025-02-03 17:18:33 +01:00
|
|
|
const localCatalogo = ref<IOptCatalogo>({ ...props.modelValue });
|
2024-06-20 17:22:46 +02:00
|
|
|
|
2024-12-09 12:32:19 +01:00
|
|
|
// 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);
|
2024-06-20 17:22:46 +02:00
|
|
|
}
|
2024-12-09 12:32:19 +01:00
|
|
|
|
|
|
|
|
// Metodo per aggiornare il valore del catalogo
|
2025-02-03 17:18:33 +01:00
|
|
|
const updateCatalogo = (updatedCatalogo: IOptCatalogo) => {
|
2024-12-09 12:32:19 +01:00
|
|
|
localCatalogo.value = updatedCatalogo; // Aggiorna la copia locale
|
|
|
|
|
updateCatalogoPadre()
|
|
|
|
|
};
|
|
|
|
|
|
2025-02-03 17:18:33 +01:00
|
|
|
function updateCatalogoEmit(updatedCatalogo: IOptCatalogo) {
|
2024-12-09 12:32:19 +01:00
|
|
|
console.log('updateCatalogoEmit')
|
|
|
|
|
localCatalogo.value = updatedCatalogo; // Aggiorna la copia locale
|
|
|
|
|
updateCatalogoPadre()
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return {
|
|
|
|
|
localCatalogo,
|
|
|
|
|
updateCatalogoEmit,
|
|
|
|
|
};
|
2024-06-20 17:22:46 +02:00
|
|
|
}
|
2024-01-30 14:00:48 +01:00
|
|
|
})
|