Taskboard
Um quadro kanban de cards em colunas e raias, arrastados com mouse, toque ou teclado, com limites de trabalho em andamento.
Importação
import { Taskboard } from '@vitral/vue';Básico
Uma lista plana de tarefas, cada uma dizendo sua coluna. In progress comporta no máximo duas.
- Draft the release notesDocs
- Audit colour contrastDesignHigh
- Virtual scrolling in SelectWeb
- Keyboard grid for DataGridWebHigh
- Theme editor prototypeDesign
- Publish 0.1WebHighLocked
Raias
As mesmas tarefas divididas por equipe. Page Up e Page Down levam um card pego de uma raia para outra; uma raia se recolhe pelo cabeçalho.
- Draft the release notes
- Audit colour contrast
- Theme editor prototype
- Virtual scrolling in Select
- Keyboard grid for DataGrid
- Publish 0.1
Colunas aninhadas
Colunas que carregam os próprios cards (v-model:columns). Later começa recolhida, mas ainda aceita cards soltos; Frozen está travada, e seu card está desabilitado.
- Dark mode for charts
- Right-to-left layout
- Nuxt module
- IE support
canDrop
Um hook dá a palavra final: aqui, só tarefas de alta prioridade podem ir para Done, e de qualquer lugar menos de In progress.
- Draft the release notes
- Audit colour contrast
- Virtual scrolling in Select
- Keyboard grid for DataGrid
- Theme editor prototype
- Publish 0.1
API
Lido de packages/vue/src/components/Taskboard/types.ts, então diz o que o componente aceita de fato.
Props
| Nome | Tipo | Descrição |
|---|---|---|
| columns | TaskboardColumn[] | As colunas, em ordem. Sem `items`, cada uma leva seus próprios cards (`v-model:columns`). |
| items | unknown[] | Os cards como uma lista plana (`v-model:items`); cada um indica sua coluna em `columnField`. |
| columnField | string | O campo de um item plano com a chave da sua coluna. O padrão é `'column'`. |
| laneField | string | O campo que põe um card numa raia; defina-o para dividir o quadro em raias. |
| lanes | TaskboardLane[] | As raias, em ordem. Sem elas, as raias são os valores distintos de `laneField`, na ordem em que aparecem. |
| dataKey | string | O campo que identifica um card. O padrão é `'id'`. |
| cardLabel | string | O campo com o título de um card, mostrado pelo card padrão e usado nos anúncios. O padrão é `'title'`. |
| disabledField | string | O campo que marca um card como desabilitado: nem clicável nem movível. O padrão é `'disabled'`. |
| lockedField | string | O campo que marca um card como travado: clicável, mas não movível. O padrão é `'locked'`. |
| canDrop | (context: TaskboardDropContext) => boolean | A última palavra sobre uma soltura. Devolva false para recusá-la. |
| dragdrop | boolean | Os cards podem ser arrastados (ponteiro, toque ou teclado). O padrão é true. |
| reorderColumns | boolean | As colunas podem ser reordenadas pela alça. O padrão é true. |
| collapsible | boolean | As colunas (e raias) ganham um botão que as recolhe. O padrão é true. |
| autoScroll | boolean | Rola o quadro e as colunas enquanto um card é arrastado perto das bordas. O padrão é true. |
| touchDelay | number | Milissegundos que um dedo repousa num card antes de arrastá-lo, para que um deslize ainda role. O padrão é 250. |
| scrollHeight | string | A altura da lista de cards de uma coluna; além dela, rola. |
| disabled | boolean | — |
Mais pt, dt e unstyled de BaseProps; veja pass-through e modo sem estilo.
Emits
| Evento | Payload | Descrição |
|---|---|---|
| update:columns | value: TaskboardColumn[] | As colunas depois que um card ou uma coluna se moveu num quadro aninhado, ou depois que uma coluna se moveu num quadro plano. |
| update:items | value: unknown[] | A lista plana depois que um card se moveu. |
| card-move | event: TaskboardCardMoveEvent | — |
| column-move | event: TaskboardColumnMoveEvent | — |
| card-click | event: { item: unknown; column: TaskboardColumn; originalEvent: Event } | — |
| drop-refused | event: TaskboardDropRefusedEvent | — |
Slots
| Nome | Props do slot | Descrição |
|---|---|---|
| default | — | As partes, escritas como filhos: `<Taskboard.Card>`, `<Taskboard.ColumnHeader>`… |
| card | (props: TaskboardCardSlotProps) | O conteúdo de um card. |
| column-header | (props: TaskboardColumnSlotProps) | A área de título do cabeçalho de uma coluna. |
| column-footer | (props: TaskboardColumnSlotProps) | Abaixo de uma coluna. |
| add-card | (props: { column: TaskboardColumn; lane?: TaskboardLane }) | No fim de cada célula: normalmente um botão "adicionar card". |
| lane-header | (props: { lane: TaskboardLane; count: number; collapsed: boolean; toggle: () => void }) | A área de título do cabeçalho de uma raia. |
| empty | (props: { column: TaskboardColumn; lane?: TaskboardLane }) | Uma célula vazia. |