@znap/components-vue2 1.0.6 → 1.0.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,15 +1,15 @@
1
1
  # @znap/components-vue2
2
2
 
3
- ### ⚡ Incio Rapido
3
+ ### ⚡ Inicio Rapido
4
4
 
5
5
  Utilizando [pnpm](https://pnpm.io/)
6
6
  ```bash
7
- npm install @znap/components-vue2
7
+ pnpm install @znap/components-vue2
8
8
  ```
9
9
 
10
10
  Utilizando [npm](https://npmjs.com/)
11
11
  ```bash
12
- pnpm install @znap/components-vue2
12
+ npm install @znap/components-vue2
13
13
  ```
14
14
 
15
15
  No arquivo **main.js** do Vue.
@@ -18,7 +18,7 @@ No arquivo **main.js** do Vue.
18
18
  import Vue from "vue";
19
19
  import * as ZnapComponents from '@znap/components-vue2';
20
20
 
21
- // -- Hands on Table configs start (Optional)
21
+ // -- Configuraçoes do Hands on Table (Opicional)
22
22
  import { registerAllModules } from "handsontable/registry";
23
23
  import { registerLanguageDictionary, ptBR } from "handsontable/i18n";
24
24
  import numbro from "numbro";
@@ -28,7 +28,7 @@ numbro.registerLanguage(numbroptBR);
28
28
  numbro.setLanguage("pt-BR");
29
29
  registerAllModules();
30
30
  registerLanguageDictionary(ptBR);
31
- // -- End
31
+ // -- Fim
32
32
 
33
33
  Vue.use(ZnapComponents.plugin, {
34
34
  licenseKey: HOT_TABLE_LICENSE_KEY // CHAVE DE UTILIZAÇAO DO HANDS ON TABLE
@@ -64,7 +64,7 @@ import * as ZnapComponents from '@znap/components-vue2';
64
64
  @update:row="updateRow"
65
65
  >
66
66
  <template v-slot:footer-prepend>
67
-
67
+ Slot para adicionar elementos do lado esquerdo dos componentes de paginaçao.
68
68
  </template>
69
69
  </ZnapBaseCrudView>
70
70
  </template>
@@ -89,6 +89,8 @@ export default {
89
89
  endpoint: CrudViewConfigs.generateEndpoint(
90
90
  "URL", {} // parametros
91
91
  ),
92
+ useServerSidePagination?: false, // Habilita a paginaçao do lado do servidor por padrao vem desabilitado. (Se habilitado a busca tambem passa a acontecer do lado do servidor)
93
+ useServerSideSearch?: false, // Habilita busca do lado do servidor por padrao vem desabilitado
92
94
  });
93
95
 
94
96
  crudViewConfigs
@@ -104,6 +106,8 @@ export default {
104
106
  label: "Grupo empresarial",
105
107
  clearable?: true,
106
108
  required?: true // Se o valor for true, ele devera ser preenchido e se caso nao for preenchido ira exibir mensagem na tela
109
+ multiple?: false // Se for um v-autocomplete permite selecionar varios items
110
+ range?: false // Se for um date-picker permite selecionar um range de data.
107
111
  }, // Props que sera passada para o componente
108
112
  dependsOn?: '' // Filtro primario que possui dependencia
109
113
  hooks?: {
@@ -127,6 +131,8 @@ export default {
127
131
  componentProps: {
128
132
  label: "Empresa",
129
133
  clearable?: true,
134
+ multiple?: false // Se for um v-autocomplete permite selecionar varios items
135
+ range?: false // Se for um date-picker permite selecionar um range de data.
130
136
  }, // Props que sera passada para o componente
131
137
  dependsOn?: '' // Filtro secundario que possui dependencia
132
138
  hooks?: {
@@ -184,8 +190,8 @@ export default {
184
190
  // Modelo inicial do formulario
185
191
  });
186
192
 
187
- this.viewSettings = crudViewConfigs.viewConfigs;
188
- this.viewMethods = crudViewConfigs.viewMethods;
193
+ this.viewSettings = crudViewConfigs.viewConfigs; // Retorna o objeto de configuraçoes da classe (Se tornara o state do componente)
194
+ this.viewMethods = crudViewConfigs.viewMethods; // Retorna os metodos pre prontos disponiveis da classe.
189
195
 
190
196
 
191
197
  // Pode usar os metodos das classe CrudViewConfigs ou entao criar os proprios de acordo com a necessidade.
@@ -205,10 +211,10 @@ export default {
205
211
  },
206
212
  methods: {
207
213
  updateRowsChanged() {
208
- this.viewSettings.rowsChanged = new Set(this.viewSettings.rowsChanged);
214
+ this.viewSettings.rowsChanged = new Set(this.viewSettings.rowsChanged); // Importante para o Vue detectar que o rowsChanged alterou e exibir o elemento em destaque na tabela.
209
215
  }
210
216
  updateRow() {
211
- this.$set(this.viewSettings.apiData, rowIndex, data);
217
+ this.$set(this.viewSettings.apiData, rowIndex, data); // Importante para o vue detectar que teve alteraçao no elemento da tabela.
212
218
  }
213
219
  async onReload() {
214
220
  // Logica de como sera tratado o evento de reload.
@@ -216,15 +222,21 @@ export default {
216
222
  async onExportFile() {
217
223
  // Logica de como sera tratado o evento de exportaçao de arquivo.
218
224
  }
219
- async onImportFile(event) {
225
+ async onImportFile(
226
+ event // evento contendo o elemento do input de arquivo
227
+ ) {
220
228
  // Logica de como sera tratado o evento de importaçao de arquivo.
221
229
  }
222
- async onSave() {
230
+ async onSave({
231
+ reload = true, // variavel retornada do comoponente para verificar se deve ou nao realizar o reload (Fica a cargo do desenvolvedor)
232
+ itemData = null // Se for um item proveniente da modal (Criaçao/Ediçao) os dados virão aqui
233
+ }) {
223
234
  // Logica de como sera tratado o evento de salvamento de registro(s)
224
235
  }
225
- async onDelete() {
236
+ async onDelete(
237
+ rows // Array com as linhas que devem ser excluidas
238
+ ) {
226
239
  // Logica de como sera tratado o evento de exclusao de registro(s)
227
-
228
240
  }
229
241
  async fetchData() {
230
242
  // Logica de busca de dados principais
@@ -236,3 +248,10 @@ export default {
236
248
  ```
237
249
 
238
250
 
251
+ ### Utilizaçao da Classe Auxiliar **CrudViewConfigs**
252
+
253
+ O intuito dessa classe é fornecer ao desenvolvedor uma interface padronizada de criaçao de telas, tornando o processo padronizado e de facil aprendizado.
254
+
255
+ A classe retorna metodos e um objeto padrao de estado para ser utilizado para manipular o componente **ZnapBaseCrudView** por meio dos getters **viewConfigs** e **viewMethods**, alem disso, pussui diversos metodos/interfaces para o desenvolvedor adicionar elementos na tela de maneira padronizada evitando refazer a roda toda vez que for construir uma nova tela.
256
+
257
+
@@ -49214,13 +49214,13 @@ class CrudViewConfigs {
49214
49214
  const primaryFiltersPromises = filters?.primary.flatMap(async (filter, index) => {
49215
49215
  if (!filter.endpoint?.length || !filter.endpoint[0]) return [index, null];
49216
49216
  filter.props.loading = true;
49217
- const response = await httpFetcher.post(`${filter.endpoint[0]}`, filter.conditions);
49217
+ const response = await httpFetcher.post(filter.endpoint[0], filter.endpoint[1] ?? {});
49218
49218
  return [index, response?.data];
49219
49219
  }) ?? [];
49220
49220
  const secondaryFiltersPromises = filters?.secondary?.flatMap(async (filter, index) => {
49221
49221
  if (!filter.endpoint?.length || !filter.endpoint[0]) return [index, null];
49222
49222
  filter.props.loading = true;
49223
- const response = await httpFetcher.post(`${filter.endpoint[0]}`, filter.conditions);
49223
+ const response = await httpFetcher.post(filter.endpoint[0], filter.endpoint[1] ?? {});
49224
49224
  return [index, response?.data];
49225
49225
  }) ?? [];
49226
49226
  const [primaryFiltersData, secondaryFiltersData] = await Promise.all([Promise.all(primaryFiltersPromises), Promise.all(secondaryFiltersPromises)]);