Components

InplaceSelectRemote

Select inline con editing in-place: visualizza il valore come testo e apre un dropdown al click per la modifica.

Panoramica

InplaceSelectRemote è un componente select con interazione in-place: mostra il valore corrente come testo semplice e, al click, si trasforma in un dropdown per consentire la modifica. Ideale per editing rapido in tabelle, liste o schede dettaglio.

Caratteristiche principali:

  • Visualizzazione compatta come testo (non occupa spazio come un dropdown standard)
  • Caricamento lazy: le opzioni vengono richieste solo alla prima apertura
  • Supporto opzioni statiche (prop options) o remote (fetchFn)
  • Template di visualizzazione personalizzabile (displayTemplate)
  • Chiusura automatica dopo la selezione

Casi d'uso tipici: modifica stato in una riga di tabella, cambio assegnatario in una lista task, aggiornamento categoria senza aprire un form completo.

Anteprima live (con fetchFn mockato)

Utilizzo nello schema

const schema = [{
  name: 'statoOrdine',
  type: 'inplaceselect',
  label: 'Stato',
  props: {
    fetchFn: fetchStatiOrdine,
    optionLabel: 'descrizione',
    optionValue: 'codice',
    placeholder: 'Seleziona stato',
  }
}]

Utilizzo diretto

Con opzioni statiche

Con template di visualizzazione personalizzato

Utilizzo in tabella

Props

PropTipoDefaultDescrizione
modelValueunknownValore selezionato (v-model)
fetchFnFetchFnFunzione asincrona per caricare le opzioni
optionsRecord<string, unknown>[][]Opzioni statiche (alternativa a fetchFn)
filterstring | FilterCriteriaFiltro statico passato alla fetchFn
optionLabelstring'label'Proprietà da usare come etichetta
optionValuestring'value'Proprietà da usare come valore
placeholderstring(da i18n)Testo mostrato quando nessun valore è selezionato
displayTemplate(item: Record<string, unknown>) => stringFunzione per formattare il testo visualizzato
editablebooleantrueAbilita il click per aprire il dropdown
inputPropsRecord<string, unknown>{}Props aggiuntive per il Select sottostante

Comportamento caricamento opzioni

Il componente utilizza il caricamento lazy (immediate: false):

  • Le opzioni non vengono richieste al mount
  • La prima apertura del componente (handleOpen) triggera il reload()
  • Se al mount è già presente un modelValue, le opzioni vengono caricate immediatamente per mostrare l'etichetta corretta
  • I cambiamenti al filter prop causano un reload automatico

Eventi

EventoPayloadDescrizione
update:modelValueunknownValore aggiornato
changeunknownEmesso dopo la selezione (stesso valore di update:modelValue)