@znap/components-vue2 1.0.9 → 1.0.11
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 +340 -238
- package/dist/index.common.js +56 -49
- package/dist/index.common.js.map +1 -1
- package/dist/index.umd.js +56 -49
- package/dist/index.umd.js.map +1 -1
- package/dist/index.umd.min.js +5 -5
- package/dist/index.umd.min.js.map +1 -1
- package/dist/types/utils/views/generateCrudViewConfigs.d.ts +4 -3
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,257 +1,359 @@
|
|
|
1
|
-
# @znap/components-vue2
|
|
2
1
|
|
|
3
|
-
### ⚡ Inicio Rapido
|
|
4
2
|
|
|
5
|
-
|
|
6
|
-
```bash
|
|
7
|
-
pnpm install @znap/components-vue2
|
|
8
|
-
```
|
|
3
|
+
## Utilização da Classe Auxiliar **CrudViewConfigs**
|
|
9
4
|
|
|
10
|
-
|
|
11
|
-
```bash
|
|
12
|
-
npm install @znap/components-vue2
|
|
13
|
-
```
|
|
5
|
+
O intuito dessa classe é fornecer ao desenvolvedor uma interface padronizada de criação de telas, tornando o processo padronizado e de fácil aprendizado.
|
|
14
6
|
|
|
15
|
-
|
|
7
|
+
A classe retorna métodos e um objeto padrão de estado para ser utilizado para manipular o componente **ZnapBaseCrudView** por meio dos getters **viewConfigs** e **viewMethods**, além disso, possui diversos métodos/interfaces para o desenvolvedor adicionar elementos na tela de maneira padronizada evitando refazer a roda toda vez que for construir uma nova tela.
|
|
16
8
|
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
9
|
+
### Objeto de Estado (viewConfigs):
|
|
10
|
+
```typescript
|
|
11
|
+
type AvalibleFilterComponents = "v-autocomplete" | "v-checkbox" | "date-picker"
|
|
12
|
+
type AvalibleFormOptionHooks = "afterChange" | "beforeChange"
|
|
13
|
+
type AvalibleFilterOptionHooks = "afterChange"
|
|
14
|
+
type AvalibleFormHooks = "beforeSetItem" | "afterSetItem"
|
|
15
|
+
type Endpoint = [string, {[key: string]: any}]
|
|
16
|
+
type ComponentProps = {
|
|
17
|
+
required?: boolean
|
|
18
|
+
multiple?: boolean
|
|
19
|
+
label: string
|
|
20
|
+
range?: string
|
|
21
|
+
[key: string] : any
|
|
22
|
+
}
|
|
20
23
|
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
24
|
+
interface FiltersInterface {
|
|
25
|
+
column: string
|
|
26
|
+
filterComponent: AvalibleFilterComponents
|
|
27
|
+
itemsArray: any[]
|
|
28
|
+
initialValue: any
|
|
29
|
+
endpoint: Endpoint
|
|
30
|
+
componentProps: ComponentProps
|
|
31
|
+
hooks: AvalibleFilterOptionHooks
|
|
32
|
+
dependsOn: string
|
|
33
|
+
ignoreOnFetchFunction: boolean
|
|
34
|
+
}
|
|
26
35
|
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
36
|
+
interface TableOptionsInterface {
|
|
37
|
+
column: string
|
|
38
|
+
itemsArray: any[]
|
|
39
|
+
endpoint: Endpoint
|
|
40
|
+
formatter: (value: any) => any
|
|
41
|
+
filterFunction: () => any[]
|
|
42
|
+
ignoreOnFetchFunction: boolean
|
|
43
|
+
}
|
|
32
44
|
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
45
|
+
interface FormOptionsInterface {
|
|
46
|
+
column: string
|
|
47
|
+
itemsArray: any[]
|
|
48
|
+
dependsOn: any
|
|
49
|
+
endpoint: Endpoint
|
|
50
|
+
hooks: AvalibleFormOptionHooks
|
|
51
|
+
ignoreOnFetchFunction: boolean
|
|
52
|
+
}
|
|
37
53
|
|
|
38
|
-
|
|
54
|
+
const viewConfigs = {
|
|
55
|
+
tableName: string,
|
|
56
|
+
tableIcon: string,
|
|
57
|
+
headers: [],
|
|
58
|
+
columns: [],
|
|
59
|
+
apiData: any[],
|
|
60
|
+
useServerSidePagination: boolean,
|
|
61
|
+
useServerSideSearch: boolean,
|
|
62
|
+
paginationSettings: {
|
|
63
|
+
page: number,
|
|
64
|
+
itemsPerPage: number,
|
|
65
|
+
itemsPerPageOptions: number[],
|
|
66
|
+
serverItemsLength: number | null
|
|
67
|
+
},
|
|
68
|
+
searchColums: string[],
|
|
69
|
+
primaryKey: string,
|
|
70
|
+
loading: boolean,
|
|
71
|
+
rowsChanged: Set<number>,
|
|
72
|
+
filters: {
|
|
73
|
+
primary: FiltersInterface[]
|
|
74
|
+
secondary: FiltersInterface[]
|
|
75
|
+
search: ''
|
|
76
|
+
},
|
|
77
|
+
currentFilters: {
|
|
78
|
+
primary: any[]
|
|
79
|
+
secondary: any[]
|
|
80
|
+
search: ''
|
|
81
|
+
},
|
|
82
|
+
tableOptions: TableOptionsInterface[],
|
|
83
|
+
formSettings: {
|
|
84
|
+
baseModel: {
|
|
85
|
+
[string]: any
|
|
86
|
+
},
|
|
87
|
+
formOptions: FormOptionsInterface[],
|
|
88
|
+
hooks: {
|
|
89
|
+
beforeSetItem: (item: any) => any | Promise<any>,
|
|
90
|
+
afterSetItem: (item: any) => any | Promise<any>,
|
|
91
|
+
},
|
|
92
|
+
loading: false,
|
|
93
|
+
},
|
|
94
|
+
endpoint: Endpoint,
|
|
95
|
+
hasFetch: boolean,
|
|
96
|
+
}
|
|
97
|
+
```
|
|
39
98
|
|
|
40
|
-
|
|
41
|
-
import * as ZnapComponents from '@znap/components-vue2';
|
|
99
|
+
- **tableName**: O texto que será exibido como título da página.
|
|
42
100
|
|
|
43
|
-
|
|
101
|
+
- **tableIcon**: O ícone que será exibido ao lado do título da página.
|
|
44
102
|
|
|
45
|
-
|
|
103
|
+
- **headers**: Array de headers que é retornado do back-end.
|
|
104
|
+
|
|
105
|
+
- **columns**: Array de colunas retornado do back-end.
|
|
106
|
+
|
|
107
|
+
- **apiData**: Array de dados que será exibido na tabela.
|
|
46
108
|
|
|
47
|
-
|
|
48
|
-
|
|
109
|
+
- **endpoint**: Tupla/Array de 2 posições onde a primeira é a URL do endpoint principal da página e a segunda os parâmetros que serão passados para esse endpoint.
|
|
110
|
+
|
|
111
|
+
- **hasFetch**: Booleano que indica que já ocorreu o fetch de dados da página.
|
|
112
|
+
|
|
113
|
+
- **useServerSidePagination**: Booleano para controlar a paginação do lado servidor.
|
|
49
114
|
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
:onReload="onReload"
|
|
59
|
-
:onExport="onExportFile"
|
|
60
|
-
:onImport="onImportFile"
|
|
61
|
-
:onSave="onSave"
|
|
62
|
-
:onDelete="onDelete"
|
|
63
|
-
@update:rows-changed="updateRowsChanged"
|
|
64
|
-
@update:row="updateRow"
|
|
65
|
-
>
|
|
66
|
-
<template v-slot:footer-prepend>
|
|
67
|
-
Slot para adicionar elementos do lado esquerdo dos componentes de paginaçao.
|
|
68
|
-
</template>
|
|
69
|
-
</ZnapBaseCrudView>
|
|
70
|
-
</template>
|
|
71
|
-
|
|
72
|
-
<script>
|
|
73
|
-
import Vue from "vue";
|
|
74
|
-
import { utils as ZnapUtils } from "@znap/components-vue2";
|
|
75
|
-
|
|
76
|
-
export default {
|
|
77
|
-
data: () => ({
|
|
78
|
-
viewSettings: null,
|
|
79
|
-
viewMethods: null,
|
|
80
|
-
}),
|
|
81
|
-
|
|
82
|
-
async created() {
|
|
83
|
-
const { CrudViewConfigs } = ZnapUtils; // Importar a classe CrudViewConfigs da utils para gerar o template de dados da tela
|
|
84
|
-
|
|
85
|
-
const crudViewConfigs = new CrudViewConfigs({
|
|
86
|
-
viewTitle: "Titulo da pagina",
|
|
87
|
-
viewIcon: "icone_da_pagina",
|
|
88
|
-
primaryKey: "chave_primaria_da_tela",
|
|
89
|
-
endpoint: CrudViewConfigs.generateEndpoint(
|
|
90
|
-
"URL", {} // parametros
|
|
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
|
|
94
|
-
});
|
|
95
|
-
|
|
96
|
-
crudViewConfigs
|
|
97
|
-
.addPrimaryFilter({
|
|
98
|
-
column: "coluna_que_ira_buscar",
|
|
99
|
-
filterComponent: "v-autocomplete", // componentes disponiveis: v-autocomplete, v-checkbox, date-picker
|
|
100
|
-
itemsArray?: [] // Array de dados iniciais
|
|
101
|
-
initialValue?: null // Valor inicial
|
|
102
|
-
endpoint?: CrudViewConfigs.generateEndpoint(
|
|
103
|
-
"URL", {} // parametros
|
|
104
|
-
),
|
|
105
|
-
componentProps: {
|
|
106
|
-
label: "Grupo empresarial",
|
|
107
|
-
clearable?: true,
|
|
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.
|
|
111
|
-
}, // Props que sera passada para o componente
|
|
112
|
-
dependsOn?: '' // Filtro primario que possui dependencia
|
|
113
|
-
hooks?: {
|
|
114
|
-
afterChange: () => {
|
|
115
|
-
// Hook que sera disparado apos a mudança do valor
|
|
116
|
-
|
|
117
|
-
// * Pode ser utilizado para alterar os dados de outros filtros, ou entao realizar chamadas asincronas para atualizar o array de dados.
|
|
118
|
-
}
|
|
119
|
-
}
|
|
120
|
-
})
|
|
121
|
-
|
|
122
|
-
crudViewConfigs
|
|
123
|
-
.addSecondaryFilter({
|
|
124
|
-
column: "coluna_que_ira_buscar",
|
|
125
|
-
filterComponent: "v-autocomplete", // componentes disponiveis: v-autocomplete, v-checkbox, date-picker
|
|
126
|
-
itemsArray?: [] // Array de dados iniciais
|
|
127
|
-
initialValue?: null // Valor inicial
|
|
128
|
-
endpoint?: CrudViewConfigs.generateEndpoint(
|
|
129
|
-
"URL", {} // parametros
|
|
130
|
-
),
|
|
131
|
-
componentProps: {
|
|
132
|
-
label: "Empresa",
|
|
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.
|
|
136
|
-
}, // Props que sera passada para o componente
|
|
137
|
-
dependsOn?: '' // Filtro secundario que possui dependencia
|
|
138
|
-
hooks?: {
|
|
139
|
-
afterChange: () => {
|
|
140
|
-
// Hook que sera disparado apos a mudança do valor
|
|
141
|
-
|
|
142
|
-
// * Pode ser utilizado para alterar os dados de outros filtros, ou entao realizar chamadas asincronas para atualizar o array de dados.
|
|
143
|
-
}
|
|
144
|
-
}
|
|
145
|
-
})
|
|
146
|
-
|
|
147
|
-
crudViewConfigs
|
|
148
|
-
.addTableOption({
|
|
149
|
-
column: "chave_que_recebera_as_options",
|
|
150
|
-
itemsArray?: [] // Array com dados iniciais
|
|
151
|
-
endpoint?: CrudViewConfigs.generateEndpoint(
|
|
152
|
-
"URL", {
|
|
153
|
-
// parametros
|
|
154
|
-
}
|
|
155
|
-
),
|
|
156
|
-
formatter?: (value) => {
|
|
157
|
-
// Logica para formatar o dado quando for exibir na tabela, sem alterar o dado original
|
|
158
|
-
}
|
|
159
|
-
filterFunction?: () => {
|
|
160
|
-
// Logica parar filtrar os dados que serao exibidos, se for passado uma filterFunction o array de items sera ignorado e o retorno sera o retorno da filterFunction.
|
|
161
|
-
|
|
162
|
-
// Deve sempre retornar um array
|
|
163
|
-
}
|
|
164
|
-
})
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
crudViewConfigs
|
|
168
|
-
.addFormOption({
|
|
169
|
-
column: "chave_que_recebera_as_options",
|
|
170
|
-
dependsOn?: 'chave_que_dependa_que_tenha_valor'
|
|
171
|
-
itemsArray?: [] // Array de itens iniciais
|
|
172
|
-
endpoint?: CrudViewConfigs.generateEndpoint(
|
|
173
|
-
"URL", {} // parametros
|
|
174
|
-
),
|
|
175
|
-
hooks?: {
|
|
176
|
-
afterChange: (item) =>{
|
|
177
|
-
// Logica que ira disparar apos o valor ser alterado
|
|
178
|
-
|
|
179
|
-
// * Pode ser utilizado para alterar os dados ou entao realizar chamadas asincronas para atualizar o array de dados.
|
|
180
|
-
}
|
|
181
|
-
beforeChange: (item) => {
|
|
182
|
-
// Logica que ira disparar antes do valor ser alterado
|
|
183
|
-
|
|
184
|
-
// * Pode ser utilizado para alterar os dados ou entao realizar chamadas asincronas para atualizar o array de dados.
|
|
185
|
-
}
|
|
186
|
-
}
|
|
187
|
-
})
|
|
188
|
-
|
|
189
|
-
crudViewConfigs.setFormModel({
|
|
190
|
-
// Modelo inicial do formulario
|
|
191
|
-
});
|
|
192
|
-
|
|
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.
|
|
115
|
+
- **useServerSideSearch**: Booleano para controlar a busca do lado servidor. **Se
|
|
116
|
+
useServerSidePagination for True, essa opção deve ser True também.**
|
|
117
|
+
|
|
118
|
+
- **paginationSettings**: Objeto de configuração de paginação.
|
|
119
|
+
- **page**: Pagina atual.
|
|
120
|
+
- **itemsPerPage**: Quantidade de itens por pagina.
|
|
121
|
+
- **serverItemsLength**: Quantidade total de itens para paginar **Se estiver utilizando paginação do lado servidor, essa informação deve ser atribuída, caso contrario, a paginação irá quebrar.**
|
|
122
|
+
- **itemsPerPageOptions**: Array com as opções de itemsPerPage: Para ter a opçao **Todos** o valor **-1 deve ser atribuído no Array**.
|
|
195
123
|
|
|
124
|
+
- **searchColums**: Array com as colunas que serão utilizadas na busca por texto.
|
|
196
125
|
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
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
|
-
}) {
|
|
234
|
-
// Logica de como sera tratado o evento de salvamento de registro(s)
|
|
235
|
-
}
|
|
236
|
-
async onDelete(
|
|
237
|
-
rows // Array com as linhas que devem ser excluidas
|
|
238
|
-
) {
|
|
239
|
-
// Logica de como sera tratado o evento de exclusao de registro(s)
|
|
240
|
-
}
|
|
241
|
-
async fetchData() {
|
|
242
|
-
// Logica de busca de dados principais
|
|
243
|
-
}
|
|
244
|
-
}
|
|
126
|
+
- **primaryKey**: Chave primária da tela.
|
|
127
|
+
|
|
128
|
+
- **loading**: Booleano que controla o estado de loading da tela.
|
|
129
|
+
|
|
130
|
+
- **rowsChanged**: Set contendo os **índices físicos** das linhas que foram alterados.
|
|
131
|
+
|
|
132
|
+
- **filters**: Objeto de filtros.
|
|
133
|
+
- **primary**: Array contendo todos os filtros primários
|
|
134
|
+
- **secondary**: Array contendo todos os filtros secundários
|
|
135
|
+
- **search**: String que será utilizada em busca por texto.
|
|
136
|
+
|
|
137
|
+
- **currentFilters**: Objeto contendo os filtros que realmente estão selecionados após o fetch de dados.
|
|
138
|
+
- **primary**: Array contendo os valores selecionados nos filtros primários.
|
|
139
|
+
- **secondary**: Array contendo os valores selecionados nos filtros secundários.
|
|
140
|
+
- **search**: String contendo o filtro de texto selecionado.
|
|
141
|
+
|
|
142
|
+
- **tableOptions**: Array contendo as opções das colunas da tabela.
|
|
143
|
+
|
|
144
|
+
- **formSettings**: Objeto de configurações do formulário:
|
|
145
|
+
- **baseModel**: Objeto contendo a estrutura inicial do objeto do item a ser criado/editado.
|
|
146
|
+
- **formOptions**: Array contendo as opçoes dos campos do formulário.
|
|
147
|
+
- **hooks**: Objeto contendo as funçoes de hooks do formulário:
|
|
148
|
+
- **beforeSetItem**: Função a ser executada antes do item ser atribuído ao formulário.
|
|
149
|
+
- **afterSetItem**: Função a ser executada após o item ser atribuído ao formulário.
|
|
150
|
+
|
|
151
|
+
### Objeto de métodos (viewMethods)
|
|
152
|
+
```typescript
|
|
153
|
+
type KeysToValidate = 'search' | 'primary' | 'secondary'
|
|
154
|
+
type FetcherReturn = {data: {rows: any[]}, [key: string]: any}
|
|
155
|
+
type HttpFetcher = {
|
|
156
|
+
post: (url: string, params: {[key: string] : any}) => Promise<FetcherReturn>,
|
|
157
|
+
get: (url: string) => Promise<FetcherReturn>,
|
|
158
|
+
delete: (url: string) => Promise<FetcherReturn>,
|
|
245
159
|
}
|
|
246
|
-
</script>
|
|
247
160
|
|
|
161
|
+
const viewMethods = {
|
|
162
|
+
getFilters: (filters, searchColums) => void,
|
|
163
|
+
fetchTableOptionsData: (tableOptions, httpFetcher: HttpFetcher) => void,
|
|
164
|
+
fetchFormOptionsData: (formOptions, httpFetcher: HttpFetcher) => void,
|
|
165
|
+
fetchFiltersData: (filters, httpFetcher: HttpFetcher) => void,
|
|
166
|
+
setCurrentFilters: (filters) => void,
|
|
167
|
+
validateFiltersKeyHaveChange: (filters, currentFilters, keysToValidate: KeysToValidate[] ) => boolean,
|
|
168
|
+
}
|
|
248
169
|
```
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
170
|
+
- **getFilters**: função responsável por retornar o array de condições de todos os filtros de maneira formatada para atribuir aos endpoints.
|
|
171
|
+
- Parâmetros:
|
|
172
|
+
- Objeto de filtros.
|
|
173
|
+
- Array de searchColums
|
|
174
|
+
|
|
175
|
+
- **fetchTableOptionsData**: função genérica responsável por realizar o fetch de todos os dados do Array de tableOptions.
|
|
176
|
+
|
|
177
|
+
- **fetchFormOptionsData**: função genérica responsável por realizar o fetch de todos os dados do Array de formOptions.
|
|
178
|
+
|
|
179
|
+
- **fetchFiltersData**: função genérica responsável por realizar o fetch de todos os dados do Array de filtros.
|
|
180
|
+
|
|
181
|
+
- **setCurrentFilters**: função que retorna os valores dos filtros selecionados.
|
|
182
|
+
- Parâmetros:
|
|
183
|
+
- Array de filtros.
|
|
184
|
+
|
|
185
|
+
- **validateFiltersKeyHaveChange**: função para validar se os filtros selecionados na tela possuem diferença com os filtros que de fato estão selecionados.
|
|
186
|
+
- Parâmetros:
|
|
187
|
+
- Objeto de filtros.
|
|
188
|
+
- Objeto de currentFilters
|
|
189
|
+
- Array com as chaves dos filtros que deseja comparar.
|
|
190
|
+
|
|
191
|
+
### Métodos de geração do Estado inicial:
|
|
192
|
+
A classe possui diversos métodos para gerar o objeto inicial de estado (viewConfigs), esses métodos são interfaces padrões para facilitar e padronizar a estrutura de dados que será passada para o componente.
|
|
193
|
+
|
|
194
|
+
- Métodos Estáticos:
|
|
195
|
+
- **generateEndpoint**: Retorna o Array/Tupla de endpoint.
|
|
196
|
+
```javascript
|
|
197
|
+
CrudViewConfigs.generateEndpoint(url: string, parâmetros?: {}): [string, {}]
|
|
198
|
+
```
|
|
199
|
+
|
|
200
|
+
- Métodos da instância:
|
|
201
|
+
- **addPrimaryFilter**: Adiciona um filtro primário no array de filtros.
|
|
202
|
+
```javascript
|
|
203
|
+
crudViewConfigs.addPrimaryFilter({
|
|
204
|
+
column: string,
|
|
205
|
+
filterComponent: "v-autocomplete" | "v-checkbox" | "date-picker",
|
|
206
|
+
itemsArray?: any[],
|
|
207
|
+
initialValue?: any | null,
|
|
208
|
+
endpoint?: [string, {}],
|
|
209
|
+
componentProps: {
|
|
210
|
+
label: string,
|
|
211
|
+
required?: boolean,
|
|
212
|
+
[string]: any
|
|
213
|
+
},
|
|
214
|
+
dependsOn?: string,
|
|
215
|
+
ignoreOnFetchFunction?: boolean
|
|
216
|
+
}): this
|
|
217
|
+
```
|
|
218
|
+
|
|
219
|
+
- **setPrimaryFilters**: Permite atribuir de maneira manual todo o Array de filtros primários.
|
|
220
|
+
```javascript
|
|
221
|
+
crudViewConfigs.setPrimaryFilters([
|
|
222
|
+
{
|
|
223
|
+
column: string,
|
|
224
|
+
filterComponent: "v-autocomplete" | "v-checkbox" | "date-picker",
|
|
225
|
+
itemsArray?: any[],
|
|
226
|
+
initialValue?: any | null,
|
|
227
|
+
endpoint?: [string, {}],
|
|
228
|
+
componentProps: {
|
|
229
|
+
label: string,
|
|
230
|
+
required?: boolean,
|
|
231
|
+
multiple?: boolean,
|
|
232
|
+
range?: boolean,
|
|
233
|
+
[string]: any
|
|
234
|
+
},
|
|
235
|
+
dependsOn?: string,
|
|
236
|
+
ignoreOnFetchFunction?: boolean
|
|
237
|
+
}...
|
|
238
|
+
]): this
|
|
239
|
+
```
|
|
240
|
+
|
|
241
|
+
- **addSecondaryFilter**: Adiciona um filtro secundário no array de filtro secundário.
|
|
242
|
+
```javascript
|
|
243
|
+
crudViewConfigs.addSecondaryFilter({
|
|
244
|
+
column: string,
|
|
245
|
+
filterComponent: "v-autocomplete" | "v-checkbox" | "date-picker",
|
|
246
|
+
itemsArray?: any[],
|
|
247
|
+
initialValue?: any | null,
|
|
248
|
+
endpoint?: [string, {}],
|
|
249
|
+
componentProps: {
|
|
250
|
+
label: string,
|
|
251
|
+
[string]: any
|
|
252
|
+
},
|
|
253
|
+
dependsOn?: string,
|
|
254
|
+
ignoreOnFetchFunction?: boolean
|
|
255
|
+
}): this
|
|
256
|
+
```
|
|
257
|
+
|
|
258
|
+
- **setSecondaryFilters**: Permite atribuir de maneira manual todo o Array de filtro secundário.
|
|
259
|
+
```javascript
|
|
260
|
+
crudViewConfigs.setSecondaryFilters([
|
|
261
|
+
{
|
|
262
|
+
column: string,
|
|
263
|
+
filterComponent: "v-autocomplete" | "v-checkbox" | "date-picker",
|
|
264
|
+
itemsArray?: any[],
|
|
265
|
+
initialValue?: any | null,
|
|
266
|
+
endpoint?: [string, {}],
|
|
267
|
+
componentProps: {
|
|
268
|
+
label: string,
|
|
269
|
+
[string]: any
|
|
270
|
+
},
|
|
271
|
+
dependsOn?: string,
|
|
272
|
+
ignoreOnFetchFunction?: boolean
|
|
273
|
+
}...
|
|
274
|
+
]) : this
|
|
275
|
+
```
|
|
276
|
+
|
|
277
|
+
- **addTableOption**: Adiciona uma opção referente a uma coluna na tabela principal no Array de tableOptions.
|
|
278
|
+
```javascript
|
|
279
|
+
crudViewConfigs.addTableOption({
|
|
280
|
+
column: string,
|
|
281
|
+
itemsArray?: any[],
|
|
282
|
+
endpoint?: [string, {}],
|
|
283
|
+
formatter?: (value: any) => any
|
|
284
|
+
filterFunction?: () => any[]
|
|
285
|
+
ignoreOnFetchFunction?: boolean
|
|
286
|
+
}): this
|
|
287
|
+
```
|
|
288
|
+
|
|
289
|
+
- **setTableOptions**: Permite atribuir de maneira manual todo o Array de tableOptions.
|
|
290
|
+
```javascript
|
|
291
|
+
crudViewConfigs.setTableOptions([
|
|
292
|
+
{
|
|
293
|
+
column: string,
|
|
294
|
+
itemsArray?: any[],
|
|
295
|
+
endpoint?: [string, {}],
|
|
296
|
+
formatter?: (value: any) => any
|
|
297
|
+
filterFunction?: () => any[]
|
|
298
|
+
ignoreOnFetchFunction?: boolean
|
|
299
|
+
}...
|
|
300
|
+
]): this
|
|
301
|
+
```
|
|
302
|
+
|
|
303
|
+
- **setFormModel**: Adiciona o modelo base de dados do formulário.
|
|
304
|
+
```javascript
|
|
305
|
+
crudViewConfigs.setFormModel(any{}): this
|
|
306
|
+
```
|
|
307
|
+
|
|
308
|
+
- **addFormOption**: Adiciona uma opção referente a uma coluna do formulario no Array de formOptions.
|
|
309
|
+
```javascript
|
|
310
|
+
crudViewConfigs.addFormOption({
|
|
311
|
+
column: string,
|
|
312
|
+
itemsArray?: any[],
|
|
313
|
+
dependsOn?: string,
|
|
314
|
+
endpoint?: [string, {}],
|
|
315
|
+
ignoreOnFetchFunction?: boolean,
|
|
316
|
+
hooks?: {
|
|
317
|
+
afterChange?: (item: any) => any
|
|
318
|
+
beforeChange?: (item: any) => any
|
|
319
|
+
}
|
|
320
|
+
}): this
|
|
321
|
+
```
|
|
322
|
+
|
|
323
|
+
- **setFormOptions**: Permite atribuir de maneira manual todo o Array de formOptions.
|
|
324
|
+
```javascript
|
|
325
|
+
crudViewConfigs.setFormOptions([{
|
|
326
|
+
column: string,
|
|
327
|
+
itemsArray?: any[],
|
|
328
|
+
dependsOn?: string,
|
|
329
|
+
endpoint?: [string, {}],
|
|
330
|
+
ignoreOnFetchFunction?: boolean,
|
|
331
|
+
hooks?: {
|
|
332
|
+
afterChange?: (item) => any,
|
|
333
|
+
beforeChange?: (item) => any
|
|
334
|
+
}}]): this
|
|
335
|
+
```
|
|
336
|
+
|
|
337
|
+
- **setFormHooks**: Permite atribuir de maneira manual todos os hooks do formulário.
|
|
338
|
+
```javascript
|
|
339
|
+
crudViewConfigs.setFormHooks({
|
|
340
|
+
beforeSetItem?: (item: any) => any | Promise<any>,
|
|
341
|
+
afterSetItem?: (item: any) => any | Promise<any>
|
|
342
|
+
}): this
|
|
343
|
+
```
|
|
344
|
+
|
|
345
|
+
- **addFormHook**: Permite atribuir de maneira manual todos os hooks do formulário.
|
|
346
|
+
```javascript
|
|
347
|
+
crudViewConfigs.addFormHook(key: 'beforeSetItem' | 'afterSetItem', (item: any) => any | Promise<any> ): this
|
|
348
|
+
```
|
|
349
|
+
|
|
350
|
+
- **setPaginationSettings**: Permite atribuir de maneira manual o objeto paginationSettings.
|
|
351
|
+
```javascript
|
|
352
|
+
crudViewConfigs.setPaginationSettings({
|
|
353
|
+
page: number,
|
|
354
|
+
itemsPerPage: number,
|
|
355
|
+
itemsPerPageOption?: number[],
|
|
356
|
+
serverItemsLength?: number | null,
|
|
357
|
+
}): this
|
|
358
|
+
```
|
|
359
|
+
|