@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 +33 -14
- package/dist/index.common.js +2 -2
- package/dist/index.common.js.map +1 -1
- package/dist/index.umd.js +2 -2
- package/dist/index.umd.js.map +1 -1
- package/dist/index.umd.min.js +1 -1
- package/dist/index.umd.min.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
# @znap/components-vue2
|
|
2
2
|
|
|
3
|
-
### ⚡
|
|
3
|
+
### ⚡ Inicio Rapido
|
|
4
4
|
|
|
5
5
|
Utilizando [pnpm](https://pnpm.io/)
|
|
6
6
|
```bash
|
|
7
|
-
|
|
7
|
+
pnpm install @znap/components-vue2
|
|
8
8
|
```
|
|
9
9
|
|
|
10
10
|
Utilizando [npm](https://npmjs.com/)
|
|
11
11
|
```bash
|
|
12
|
-
|
|
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
|
|
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
|
-
// --
|
|
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(
|
|
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
|
+
|
package/dist/index.common.js
CHANGED
|
@@ -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(
|
|
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(
|
|
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)]);
|