1.0.1 • Published 1 year ago

filtros-complexos v1.0.1

Weekly downloads
-
License
ISC
Repository
-
Last release
1 year ago

Filtros Complexos

Sobre

Componente usado para os filtros da listagem de produtos complexo, contem campo para busca do filtro, pode possuir filtros selecionados, toggle, etc.

Filtros Complexos


Dependências

Não há.


Instalação

  • Instale o app através do seu terminal
npm install @wapstore/filtros-complexo
  • Valide se seu arquivo package.json possui a dependência
"dependencies": {
  "@wapstore/filtros-complexo": "^0.1.4"
}

Agora a loja está apta para o uso da aplicação.


Uso

O componente de Filtros Complexos pode ser inserido em qualquer lugar da pasta "components". Neste arquivo você pode inserir todas as props e slots que o componente aceita, além de seus estilos.


Exemplo

-Este é um exemplo da aplicação de um arquivo padrão para a filtros no departamento:

<template>
  <filtros :key="JSON.stringify(pageData.conteudo)" :pageData="pageData" />
</template>
<script>
  ...
  [
    {
      "nome":"Categoria",
      "pesquisaFiltro":false,
      "showStatus":true,
      "type":"categoria",
      "valores": [
        {
          "id":16,
          "nome":"Almofadas",
          "rota":{
            "name":"product/listing/category",
            "route":"/decoracao/almofadas",
            "params":{
              "categoriaNivel2":"decoracao",
              "categoriaNivel3":"almofadas"
            },
            "query":{
              "order":"Popularidade"
            }
          },
          "url":"https://lojateste.wapstore.com.br/demo/equipe/decoracao/almofadas?order=Popularidade",
          "ativo":true
        }
      ]
    },
    {
      "nome":"Marcas",
      type":"marca",
      "pesquisaFiltro":true,
      "showStatus":true,
      "valores":[
        {
          "id":8,
          "nome":"Riachuelo",
          "imagem":"",
          "imagemOriginal":"",
          "ativo":false,
          "rota":{
            "name":"product/listing/category",
            "route":"/decoracao/almofadas",
            "params":{
              "categoriaNivel2":"decoracao",
              "categoriaNivel3":"almofadas"
            },
            "query":{
              "order":"Popularidade",
              "marca":"8"
            }
          },
          "url":"https://lojateste.wapstore.com.br/demo/equipe/decoracao/almofadas?order=Popularidade&marca=8"
        }
        /*...etc*/
      ]
    }
    /*...etc*/
  ]
  ...
</script>
<style>
  ...
</style>

Recursos

Props

PropDescriçãoTipo
filtros 0.1.4Array dos filtros desejado.Array
preventNavigation 0.1.4Define se a navegação será ao clicar no filtro ou apenas na chamada do método "aplicarFiltro", por padrão o valor é falso.Boolean
showFilter 0.1.4Para ativar o slider range para filtro de preço. Por padrão é desativado.Boolean
isRangePrice 0.1.4Para ativar o slider range para filtro de preço. Por padrão é desativado.Boolean
mergeRangePrice 0.1.4Define quando deve mesclar a tooltip. Conforme a documentação do range sliderNumber

Configuração por filtro:

PropDescriçãoTipoValores
nome 0.1.4Nome do conjunto de filtro.String-
pesquisaFiltro 0.1.4Define se deve ou não exibir o input de pesquisa do filtro.Boolean-
showStatus 0.1.4Define se o filtro deve iniciar o toggle aberto ou fechado.Boolean-
type 0.1.4Define o tipo de filtro, o tipo deve ser um dos seguinte valores: categoria, marca, preco, atributo ou filtro.Stringcategoria, marca, preco, atributo ou filtro
valores 0.1.4Opções do conjunto de filtro.Array-

Configuração por valor de filtro:

ConfiguraçãoDescriçãoTipoCampos
id 0.1.4Id do filtro, conforme retornado pela API.Number-
imagem 0.1.4Caso seja um filtro com o tipo diferente de categoria e preço, esse campo é obrigatório.String-
imagemOriginal 0.1.4Caso seja um filtro com o tipo diferente de categoria e preço, esse campo é obrigatório.String-
ate 0.1.4Valores retornado pela API para o filtro do tipo preço.Number-
de 0.1.4Valores retornado pela API para o filtro do tipo preço.Number-
label ou nome 0.1.4Texto a ser exibido na opção de filtro.String-
url 0.1.4Url retornado pela API.String-
ativo 0.1.4Obrigatório para saber se o filtro está ativado ou desativado, por padrão a api wapstore já retorna corretamente.Boolean-
rota 0.1.4Objeto rota padrão Vue Router, formato retornado pela api wapstore. Usado para criar o link para o filtro.Objetoname, params, query ou route

Slots

SlotDescriçãoNameProps do slotExemplo de uso
Topo do filtro 0.1.4Campo para inserção de topo personalizado no filtro, por padrão já possui um. É recomandado inserir aqui a funcionalidade de "Filtros Selecionados" caso seu projeto necessite.topoFiltrofiltrosAtivos Descrição: Todos os filtros ativos no momento. Tipo: Array<filtros><template #topoFiltro={ filtrosAtivos }><div>/*...*/</div></template></filtros>
Titulo no topo do filtro 0.1.4Caso opte por apenas alterar o texto no topo padrão do filtro.tituloCabecalho-<filtros><template #tituloCabecalho>/*...*/</template></filtros>
Titulo limpar filtro 0.1.4Caso queira apenas alterar o texto referente a limpar filtros.tituloLimparFiltros-<filtros><template #tituloLimparFiltros>/*...*/</template></filtros>
Icone seta 0.1.4Icone exibido no toggle do filtro.iconeToggle-<filtros><template #iconeToggle>/*...*/</template></filtros>
Icone de visto 0.1.4Icone exibido no checkbox na opção do filtro.iconeCheckbox-<filtros><template #iconeCheckbox>/*...*/</template></filtros>
Icone de lupa 0.1.4Icone exibido no input de pesquisa no conjunto de filtros.iconeSearch-<filtros><template #iconeSearch>/*...*/</template></filtros>
Conjunto de filtro opcional 0.1.4Caso tenha necessidade pode ser incluso um conjunto de filtros utilizando esse slot, ele é renderizado abaixo do conjunto de filtro padrão.filtroOpcaoAdicional-<filtros><template #filtroOpcaoAdicional>/*...*/</template></filtros>
Botão aplicar filtro 0.1.4Caso tenha necessidade de adicionar um botão "Aplicar Filtro".btnAplicarFiltro-<filtros><template #btnAplicarFiltro>/*...*/</template></filtros>
Titulo para o Range slider 0.1.4Caso tenha necessidade de adicionar um texto para o RangePrice use esse slot para inserir.titleRangePrice-<filtros><template #titleRangePrice><p>Isso é o titulo do RangePrice</p></template></filtros>

Eventos

SlotDescriçãoArgumentos
changeFiltro 0.1.4Quando é clicado em algum filtro.filtro Descrição: Filtro que recebeu o clique. Tipo: Objeto
clearFiltro 0.1.4Após todos os filtros selecionados ser resetado.-
initFiltros 0.1.4Primeira inicialização do componente no DOM.element Descrição: Referencia do HTML da aba no DOM. Tipo: HTMLDivElement
updateFiltros 0.1.4Toda atualização no DOM.element Descrição: Referencia do HTML da aba no DOM. Tipo: HTMLDivElement

Métodos

-Exemplo genérico da chamada de um método:

<template>
  <filtros ref="refFiltro">
    /*...*/
  </filtros>
</template>
<script>
  export default {
    methods: {
      handleAplicarFiltro() {
        this.$refs.refFiltro.aplicaFiltro();
      },
    },
  }
</script>
MétodoDescriçãoExemplo de uso
aplicaFiltro 0.1.4Método usado quando a propriedade preventNavigation esta definida como true. Com esse método é realizado a navegação conforme todos os filtros selecionado pelo usuário.<template><filtros ref="refFiltro">/*...*/</filtros></template><script>export default { methods: { handleAplicarFiltro() { this.$refs.refFiltro.aplicaFiltro(); } } }</script>
limparFiltro 0.1.4Método usado para limpar os filtros selecionado.<template><filtros ref="refFiltro">/*...*/</filtros></template><script>export default { methods: { handleLimparFiltro() { this.$refs.refFiltro.limparFiltro(); } } }</script>

Estilização

Para a estilização, basta utilizar estilos sem escopos dentro do componente onde for inserido, utilizando sempre de um ID ou classe específica para a chamada do componente, para que em outras chamadas o estilo não influencie. Caso o estilo seja para várias chamadas do componente é recomendado a inserção dos estilos em um arquivos CSS separado.

1.0.1

1 year ago

1.0.0

1 year ago