diff --git a/projects/ui/src/lib/components/po-field/po-upload/po-upload-base.component.ts b/projects/ui/src/lib/components/po-field/po-upload/po-upload-base.component.ts index 74b597587..50bad7237 100644 --- a/projects/ui/src/lib/components/po-field/po-upload/po-upload-base.component.ts +++ b/projects/ui/src/lib/components/po-field/po-upload/po-upload-base.component.ts @@ -215,12 +215,19 @@ export abstract class PoUploadBaseComponent implements ControlValueAccessor, Val * * Função que será executada no momento de realizar o envio do arquivo, * onde será possível adicionar informações ao parâmetro que será enviado na requisição. - * É passado por parâmetro um objeto com o arquivo e a propiedade data nesta propriedade pode ser informado algum dado, - * que será enviado em conjunto com o arquivo na requisição, por exemplo: + * É passado por parâmetro um objeto com o arquivo e as propiedades data e extractParams, + * que serão enviadas em conjunto com o arquivo na requisição, por exemplo: * + * > data, nesta propriedade pode ser informado algum dado * ``` * event.data = {id: 'id do usuario'}; * ``` + * > extractParams, nesta propriedade pode ser informado algum dado solicitado pela API + * > que não possa estar no objeto `data`, assim o conteúdo sará extraído do objeto e + * > enviado como parâmetro + * ``` + * event.extractParams = {id: 'id do usuario'}; + * ``` */ @Output('p-upload') onUpload: EventEmitter = new EventEmitter(); diff --git a/projects/ui/src/lib/components/po-field/po-upload/po-upload-base.service.ts b/projects/ui/src/lib/components/po-field/po-upload/po-upload-base.service.ts index d0bdec922..b6c548263 100644 --- a/projects/ui/src/lib/components/po-field/po-upload/po-upload-base.service.ts +++ b/projects/ui/src/lib/components/po-field/po-upload/po-upload-base.service.ts @@ -41,6 +41,7 @@ export class PoUploadBaseService { const filesLength = files.length; const uploadEvent: any = { data: {}, + extractParams: {}, file: null }; @@ -56,6 +57,10 @@ export class PoUploadBaseService { uploadEvent['file'] = file; tOnUpload.emit(uploadEvent); + Object.keys(uploadEvent.extractParams).forEach(key => { + formData.append(key, uploadEvent.extractParams[key]); + }); + formData.append('data', JSON.stringify(uploadEvent.data)); }