Pessoal, estou adicionando filhos em uma tabela no momento em que em outra tabela eu seleciono o valor de um campo do tipo Filter.
Mas quando chamo a função "wdkAddChild" para a tabela que vai receber a linha, o próximo filho da tabela atual buga no momento de renderizar o Filter, assim:
1º - Adiciono um filho na tabela 1 e seleciono o valor no campo Filter
2º - No momento que seleciono o valor do filter, adiciono um filho na tabela 2
3º - Após isso, ao adicionar outro filho na tabela 1, no momento em que o filter será criado no input, ocorre o Bug:
Já debuguei todo o código e descobri que se eu nao adicionar filho na tabela 2 (wdkAddChild), o bug não ocorre; Olhei todos os ids de tabelas e nenhum está conflitando
Código do render do filter: (é chamado no botão que cria filho na tabela 1)
function addCC(idTable, idInputProduto, codProduto, descProduto){
//Adiciona Filho
let idx = wdkAddChild(idTable);
//Renderiza filtro no input produto
let matricula = $("#matriculausuario").val()
let codMatriz = $("#codMatriz").val()
let codFilial = $("#codFilial").val()
let idFormulario = buscaRegPermCC(matricula)
let settings = {
source: {
url: '/api/public/ecm/dataset/search?datasetId=dsSearchTableForm&searchField=Area&filterFields=codMatriz,'+codMatriz+',codFilial,'+codFilial+',idForm,'+idFormulario+',datasetName,fsRegPermCC,dataTable,tableCCusto&',
contentType: 'application/json',
root: 'content',
pattern: '',
limit: 10,
offset: 0,
patternKey: 'ccusto',
limitkey: 'limit',
offsetKey: 'offset'
},
displayKey: 'ccusto',
multiSelect: false,
style: {
autocompleteTagClass: 'tag-gray',
tableSelectedLineClass: 'info'
},
table: {
header: [
{
'title': 'Código',
'size': 'col-xs-3',
'dataorder': 'name'
},{
'title': 'Centro de Custo',
'size': 'col-xs-9',
'dataorder': 'name',
'standard': true
}
],
renderContent: ['codCC','ccusto']
}
}
let filter = FLUIGC.filter('#'+idInputProduto+"___"+idx, settings);
//Ao adicionar item no filter, popula table orçamento, adiciona cod centro custo
filter.on('fluig.filter.item.added', function(data){
populaTableOrcamento(codProduto,data.item.codCC,data.item.ccusto,descProduto)
$('#codCCusto___'+idx).val(data.item.codCC)
$('#chaveRemove___'+idx).val(data.item.codCC+codProduto)
//ADICIONA FUNÇÃO AO CLICK DE REMOÇÃO DO CENTRO DE CUSTO
$("span[data-role='remove']").on('click',function(){
//let chave = $("[detailname="+$(this).closest('tr').attr('detailname')+"] td input[id^='chaveRemove___']").val()
let chave = $("[detailname="+$("#"+idInputProduto+"___"+idx).closest('tr').attr('detailname')+"] td input[id^='chaveRemove___']").val()
excluiLinhaOrcamento(chave)
})
});
}
Código que adiciona filho na tabela 2 :
function populaTableOrcamento(codProd, codCCusto, descCCusto, descProduto){
let idx = wdkAddChild('tableOrcamento');
let date = new Date()
let dataTotal = date.getUTCDate() + '/' + date.getUTCMonth() + '/' + date.getUTCFullYear()
$("#dataTableOrcamento___"+idx).val(dataTotal);
$("#centroCustoOrcamento___"+idx).val(descCCusto);
$("#produtoOrcamento___"+idx).val(descProduto);
$("#chaveOrcamento___"+idx).val(codCCusto+codProd)
//Hidens
$("#codCCOrcamento___"+idx).val(codCCusto);
$("#codProdOrcamento___"+idx).val(codProd);
};