Ao selecionar o valor do filter, cria filho em um pai x filho, mas buga o filter.

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

1.PNG 1.2.PNG

2º - No momento que seleciono o valor do filter, adiciono um filho na tabela 2

2.PNG

3º - Após isso, ao adicionar outro filho na tabela 1, no momento em que o filter será criado no input, ocorre o Bug:

3.PNG

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);
};
compartilhar
  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do fluig Forum!

2 respostas

Não é a resposta que estava procurando? Procure outras perguntas com as tags filter table paifilho pai-filho paixfilho jquery javascript formulario wdkaddchild ou faça a sua própria pergunta.