ChangeTimeDurationDropdown
Dropdown funcional (stateless) para seleção de período de tempo em dashboards. Exibe trigger fixo "Last 7 days" + ícone ChevronDown e oferece 3 opções: Last 28 days, Last Month, Last Year. Sem props nem slots — emite apenas o evento timeDurationChanged.
Dropdown (Fechado / Aberto)
Trigger minimalista: texto <small>Last 7 days</small> + ícone ChevronDown 16px em flex. Dropdown com largura fixa w-32 (128px) e 3 itens.
Fechado
Aberto
<vx-card title="Sessions By Device">
<template slot="actions">
<change-time-duration-dropdown />
</template>
<!-- conteúdo do card -->
</vx-card>
Em Contexto — Slot Actions do VxCard
Padrão de uso dominante: inserido no slot actions do vx-card, aparece ao lado direito do título. Herda classes externas via data.staticClass (padrão Vue 2 funcional).
<div class="vx-col w-full lg:w-1/2 flex flex-col">
<change-time-duration-dropdown class="self-end" />
<vue-apex-charts
type="bar"
height="200"
:options="chartOptions"
:series="series"
/>
</div>
Limitações conhecidas
Não pode ser customizado via prop. Não reflete a opção selecionada — sempre mostra "Last 7 days" mesmo após selecionar outro período.
Em todos os 8 usos do admin, @timeDurationChanged nunca é escutado. O componente funciona como elemento visual decorativo nas páginas demo do Vuexy.
Last 28 days, Last Month, Last Year — sem i18n, sem prop para customizar a lista. O valor 'last-7-days' não está nas opções do dropdown (apenas no trigger).
Para uso real no Pedbot, considerar substituir por um vs-select ou VsDropdownCustom configurável com opções em português.
API
<!-- Sem props. Trigger e opções são hardcoded. -->
<!-- Uso básico (como no código real — sem listener): -->
<change-time-duration-dropdown />
<!-- Com listener (como deveria ser usado): -->
<change-time-duration-dropdown @timeDurationChanged="onPeriodChange" />
<!-- Com classe de posicionamento (herdada via data.staticClass): -->
<change-time-duration-dropdown class="self-end" />
Props
Eventos
| Evento | Payload | Valores possíveis | Descrição |
|---|---|---|---|
@timeDurationChanged |
String | 'last-28-days' | 'last-month' | 'last-year' |
Emitido ao selecionar um período. Acessado via listeners.timeDurationChanged no contexto funcional Vue 2. |
Dependências
vs-dropdown (vs-trigger-click), vs-dropdown-menu (class='w-32'), vs-dropdown-item
feather-icon (ChevronDownIcon, svgClasses='h-4 w-4')