Criado todo para filtro avançado
This commit is contained in:
parent
27c9e4d5e2
commit
0144788548
5 changed files with 36 additions and 2 deletions
|
|
@ -37,6 +37,7 @@
|
|||
"dependencies": {
|
||||
"dayjs": "^1.11.19",
|
||||
"lucide-vue-next": "^0.563.0",
|
||||
"p-comuns": "git+https://git2.idz.one/publico/_comuns.git",
|
||||
"p-respostas": "git+https://git2.idz.one/publico/_respostas.git"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
3
pnpm-lock.yaml
generated
3
pnpm-lock.yaml
generated
|
|
@ -14,6 +14,9 @@ importers:
|
|||
lucide-vue-next:
|
||||
specifier: ^0.563.0
|
||||
version: 0.563.0(vue@3.5.25(typescript@5.9.3))
|
||||
p-comuns:
|
||||
specifier: git+https://git2.idz.one/publico/_comuns.git
|
||||
version: git+https://git2.idz.one/publico/_comuns.git#d783fa12940a5b1bcafa5038bd1c49c3f5f9b7fc(cross-fetch@4.1.0)(dayjs@1.11.19)(uuid@11.1.0)(zod@4.1.4)
|
||||
p-respostas:
|
||||
specifier: git+https://git2.idz.one/publico/_respostas.git
|
||||
version: git+https://git2.idz.one/publico/_respostas.git#8c24d790ace7255404745dcbdf12c5396e8b9843(cross-fetch@4.1.0)(dayjs@1.11.19)(uuid@11.1.0)
|
||||
|
|
|
|||
|
|
@ -120,3 +120,13 @@ export type PadroesEntradas = {
|
|||
* Ex.: "texto" | "numero"
|
||||
*/
|
||||
export type TipoEntrada = keyof PadroesEntradas
|
||||
|
||||
|
||||
|
||||
|
||||
export type PadraoComponenteEntrada<T extends TipoEntrada> =
|
||||
readonly [T, PadroesEntradas[T]['opcoes']]
|
||||
|
||||
export type ComponenteEntrada = {
|
||||
[K in TipoEntrada]: PadraoComponenteEntrada<K>
|
||||
}[TipoEntrada]
|
||||
|
|
@ -17,4 +17,5 @@ export type TiposTabelaCelulas = {
|
|||
};
|
||||
};
|
||||
|
||||
export type TipoTabelaCelula = keyof TiposTabelaCelulas;
|
||||
export type TipoTabelaCelula = keyof TiposTabelaCelulas;
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,9 @@
|
|||
import type { tipoResposta } from "p-respostas";
|
||||
import type { LucideIcon } from "lucide-vue-next";
|
||||
import type { TipoTabelaCelula, TiposTabelaCelulas } from "./celulas/tiposTabelaCelulas";
|
||||
import { operadores, tipoFiltro } from "p-comuns";
|
||||
import { TipoEntrada } from "../EliEntrada";
|
||||
import { ComponenteEntrada } from "../EliEntrada/tiposEntradas";
|
||||
|
||||
|
||||
|
||||
|
|
@ -37,7 +40,7 @@ export type EliColuna<T> = {
|
|||
* exibir controles de ordenação e utiliza o valor como chave para o backend.
|
||||
*/
|
||||
coluna_ordem?: keyof T;
|
||||
|
||||
|
||||
/**
|
||||
* indica que a coluna será visivel, se false incia em detalhe
|
||||
* Caso já tenha salvo a propriedade de visibilidade será adotado a propriedade salva
|
||||
|
|
@ -90,6 +93,10 @@ export type EliTabelaConsulta<T> = {
|
|||
* ordenação (`coluna_ordem`/`direcao_ordem`) e paginação (`offSet`/`limit`).
|
||||
*/
|
||||
consulta: (parametrosConsulta?: {
|
||||
|
||||
//Todo: Esse filtros são recebido do processamento de filtro avandado
|
||||
|
||||
filtros?: tipoFiltro[]
|
||||
coluna_ordem?: keyof T;
|
||||
direcao_ordem?: "asc" | "desc";
|
||||
offSet?: number;
|
||||
|
|
@ -117,5 +124,17 @@ export type EliTabelaConsulta<T> = {
|
|||
/** Função executada ao clicar no botão. */
|
||||
acao: () => void;
|
||||
}[];
|
||||
|
||||
/** configuração para aplicação dos filtros padrões */
|
||||
|
||||
// Todo: quando exite aparace ap lado do obtão coluna o potão filtro avançado, onde abre um modal com dua colunas de compoentes que são contruidas conforme esse padrão
|
||||
// todo: Os filtros criados deverão ser salvo em local storagem como um objeto tipofiltro[]
|
||||
filtroAvancado?: {
|
||||
coluna: keyof T,
|
||||
operador: operadores | keyof typeof operadores,
|
||||
entrada: ComponenteEntrada
|
||||
}[]
|
||||
|
||||
|
||||
};
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue