(props.tabela.nome) as any;
linhasExpandidas.value = {};
if (paginaAtual.value !== 1) {
paginaAtual.value = 1;
@@ -605,6 +773,8 @@ export default defineComponent({
carregando,
erro,
linhas,
+ linhasPaginadas,
+ quantidadeFiltrada,
quantidade,
menuAberto,
valorBusca,
@@ -615,6 +785,7 @@ export default defineComponent({
// computed
exibirBusca,
+ exibirFiltroAvancado,
acoesCabecalho,
temAcoesCabecalho,
temAcoes,
@@ -628,9 +799,16 @@ export default defineComponent({
linhasExpandidas,
abrirModalColunas,
+ abrirModalFiltro,
fecharModalColunas,
salvarModalColunas,
+ modalFiltroAberto,
+ filtrosUi,
+ salvarFiltrosAvancados,
+ limparFiltrosAvancados,
+ fecharModalFiltro,
+
alternarLinhaExpandida,
// actions
diff --git a/src/components/eli/EliTabela/EliTabelaBody.vue b/src/componentes/EliTabela/EliTabelaBody.vue
similarity index 72%
rename from src/components/eli/EliTabela/EliTabelaBody.vue
rename to src/componentes/EliTabela/EliTabelaBody.vue
index adadd9f..133bd27 100644
--- a/src/components/eli/EliTabela/EliTabelaBody.vue
+++ b/src/componentes/EliTabela/EliTabelaBody.vue
@@ -29,22 +29,8 @@
v-for="(coluna, j) in colunas"
:key="`td-${i}-${j}`"
class="eli-tabela__td"
- :class="[
- coluna.acao ? 'eli-tabela__td--clicavel' : undefined,
- obterClasseAlinhamento(coluna.alinhamento),
- ]"
- @click="coluna.acao ? () => coluna.acao?.() : undefined"
>
-
-
-
-
-
+
|
@@ -145,40 +131,9 @@ export default defineComponent({
},
},
setup() {
- function obterClasseAlinhamento(alinhamento?: string) {
- if (alinhamento === "direita") return "eli-tabela__celula--direita";
- if (alinhamento === "centro") return "eli-tabela__celula--centro";
- return "eli-tabela__celula--esquerda";
- }
-
- function obterMaxWidth(largura?: number | string) {
- if (largura === undefined || largura === null) return undefined;
- return typeof largura === "number" ? `${largura}px` : String(largura);
- }
-
- function obterTooltipCelula(celula: unknown) {
- if (!Array.isArray(celula)) return undefined;
-
- const tipo = celula[0];
- const dados = celula[1] as any;
-
- if (tipo === "textoSimples") {
- return typeof dados?.texto === "string" ? dados.texto : undefined;
- }
-
- if (tipo === "numero") {
- return typeof dados?.numero === "number" ? String(dados.numero) : undefined;
- }
-
- return undefined;
- }
-
return {
ChevronRight,
ChevronDown,
- obterClasseAlinhamento,
- obterMaxWidth,
- obterTooltipCelula,
};
},
});
diff --git a/src/components/eli/EliTabela/EliTabelaCabecalho.vue b/src/componentes/EliTabela/EliTabelaCabecalho.vue
similarity index 81%
rename from src/components/eli/EliTabela/EliTabelaCabecalho.vue
rename to src/componentes/EliTabela/EliTabelaCabecalho.vue
index c3a4865..7a8b66e 100644
--- a/src/components/eli/EliTabela/EliTabelaCabecalho.vue
+++ b/src/componentes/EliTabela/EliTabelaCabecalho.vue
@@ -10,6 +10,15 @@
>
Colunas
+
+
@@ -53,6 +62,11 @@ export default defineComponent({
required: false,
default: true,
},
+ exibirBotaoFiltroAvancado: {
+ type: Boolean,
+ required: false,
+ default: false,
+ },
valorBusca: {
type: String,
required: true,
@@ -76,6 +90,9 @@ export default defineComponent({
colunas() {
return true;
},
+ filtroAvancado() {
+ return true;
+ },
},
setup(props, { emit }) {
const temAcoesCabecalho = computed(() => props.acoesCabecalho.length > 0);
@@ -88,7 +105,11 @@ export default defineComponent({
emit("colunas");
}
- return { temAcoesCabecalho, emitBuscar, emitColunas };
+ function emitFiltroAvancado() {
+ emit("filtroAvancado");
+ }
+
+ return { temAcoesCabecalho, emitBuscar, emitColunas, emitFiltroAvancado };
},
});
diff --git a/src/components/eli/EliTabela/EliTabelaCaixaDeBusca.vue b/src/componentes/EliTabela/EliTabelaCaixaDeBusca.vue
similarity index 100%
rename from src/components/eli/EliTabela/EliTabelaCaixaDeBusca.vue
rename to src/componentes/EliTabela/EliTabelaCaixaDeBusca.vue
diff --git a/src/components/eli/EliTabela/EliTabelaDebug.vue b/src/componentes/EliTabela/EliTabelaDebug.vue
similarity index 100%
rename from src/components/eli/EliTabela/EliTabelaDebug.vue
rename to src/componentes/EliTabela/EliTabelaDebug.vue
diff --git a/src/components/eli/EliTabela/EliTabelaDetalhesLinha.vue b/src/componentes/EliTabela/EliTabelaDetalhesLinha.vue
similarity index 100%
rename from src/components/eli/EliTabela/EliTabelaDetalhesLinha.vue
rename to src/componentes/EliTabela/EliTabelaDetalhesLinha.vue
diff --git a/src/components/eli/EliTabela/EliTabelaEstados.vue b/src/componentes/EliTabela/EliTabelaEstados.vue
similarity index 100%
rename from src/components/eli/EliTabela/EliTabelaEstados.vue
rename to src/componentes/EliTabela/EliTabelaEstados.vue
diff --git a/src/components/eli/EliTabela/EliTabelaHead.vue b/src/componentes/EliTabela/EliTabelaHead.vue
similarity index 85%
rename from src/components/eli/EliTabela/EliTabelaHead.vue
rename to src/componentes/EliTabela/EliTabelaHead.vue
index 0cd741b..ed314a6 100644
--- a/src/components/eli/EliTabela/EliTabelaHead.vue
+++ b/src/componentes/EliTabela/EliTabelaHead.vue
@@ -7,10 +7,7 @@
v-for="(coluna, idx) in colunas"
:key="`th-${idx}`"
class="eli-tabela__th"
- :class="[
- isOrdenavel(coluna) ? 'eli-tabela__th--ordenavel' : undefined,
- obterClasseAlinhamento(coluna.alinhamento),
- ]"
+ :class="[isOrdenavel(coluna) ? 'eli-tabela__th--ordenavel' : undefined]"
scope="col"
>
|