Galera, surgiu uma necessidade e estou criando uma tela para avançar um processo para a próxima fase. A necessidade de momento, conforme a imagem é que quando eu selecione as linhas da tabela mostrada, seja mostrado na tela o montante total em relação ao valor líquido.
Montei a tabela dinamicamente, porém quando eu marcar ou desmarcar um checkbox, é necessário que eu capture isso e refaça a soma para mostrar o valor atualizado em tela. Porém não estou conseguindo chamar essa função através do clique no checkbox determinado.
Código js
var MyWidget = SuperWidget.extend({
//variáveis da widget
variavelNumerica: null,
variavelCaracter: null,
//método iniciado quando a widget é carregada
init: function() {
this.initEnvia();
this.initRb();
},
initEnvia: function() {
$(".enviar").click(function() {
var userAccess = {
key: "consumer_key",
secret: 'consumer_secret'
}
var token = {
key: '79123d56-0a1a-4edb-86b8-afbe073f3bd5',
secret: '079608da-2a12-406c-bd14-86beb1e215477b76c92c-5be9-4550-b7fa-1a45521ce9dd'
}
var oauth = OAuth({
consumer: {
'key': userAccess.key, // key do aplicativo
'secret': userAccess.secret // secret do aplicativo
},
signature_method: 'HMAC-SHA1',
hash_function(base_string, key) {
return CryptoJS.HmacSHA1(base_string, key).toString(CryptoJS.enc.Base64);
},
nonce_length: 6
});
var request_data = {
url: WCMAPI.serverURL + "/process-management/api/v2/requests",
method: "GET"
};
$.ajax({
url: request_data.url,
contentType: 'application/json',
crossDomain: true,
async: false,
type: request_data.method,
headers: oauth.toHeader(oauth.authorize(request_data, token))
}).fail(function(e, f) {
console.log("e:", e);
console.log("f:", f);
$("#retorno").val(JSON.stringify(e));
}).done(function(data) {
console.log("data:", data);
var dataItems = data.items;
console.log("dataItems:", dataItems);
// para cada processInstanceId desse data.Items devo fazer uma consulta no dataset e trazer as informações para serem mostradas.
for (i = 0; i < dataItems.length; i++) {
console.log(dataItems[i].processInstanceId);
var c1 = DatasetFactory.createConstraint("idFluig", dataItems[i].processInstanceId, dataItems[i].processInstanceId, ConstraintType.MUST);
var constraints = new Array(c1);
var dataset = DatasetFactory.getDataset("DSAprovaMovimento", null, constraints, null);
var valor_liquido = dataset.values.length > 0 ? dataset.values[0]["valor_liquido"] : '';
var fornecedor = dataset.values.length > 0 ? dataset.values[0]["fornecedor"] : '';
var centro_custo = dataset.values.length > 0 ? dataset.values[0]["centro_custo"] : '';
dataItems[i].valor_liquido = valor_liquido;
dataItems[i].fornecedor = fornecedor;
dataItems[i].centro_custo = centro_custo;
}
var tblItmMov = FLUIGC.datatable('#tblItmMov', {
mobileMainColumns: [0, 2, 3],
dataRequest: dataItems,
renderContent: ['processInstanceId', 'valor_liquido', 'fornecedor', 'centro_custo'],
header: [{
'title': 'processInstanceId'
}, {
'title': 'valor_liquido'
}, {
'title': 'fornecedor'
}, {
'title': 'centro_custo'
}],
search: {
enabled: true,
onlyEnterkey: true,
searchAreaStyle: 'col-md-5',
onSearch: function(res) {
var t = this.tableData;
if (res) {
var data = dataItems;
var search = data.filter(function(el) {
return ( (el.prd.toUpperCase().indexOf(res.toUpperCase()) >= 0) || (el.seq.toUpperCase().indexOf(res.toUpperCase()) >= 0));
});
tblItmMov.reload(search);
}else
{
tblItmMov.reload(dataItems);
}
}
},
scroll: {
target: ".target",
enabled: false
},
navButtons: {
enabled: false
}
}, function(err, data) {});
tblItmMov.reload(dataItems);
// geração da coluna com os checkbox's
$("#tblItmMov tr").append("<td><input class='teste' type='checkbox' /></td>");
$('.collapse').collapse();
});
})
},
// função que teoricamente captura o checkbox
initRb: function() {
$('input[type="radio"]').on('click change', function(e) {
console.log(e.type);
});
},
//BIND de eventos
bindings: {
local: {
'execute': ['click_executeAction']
},
global: {
}
},
handeClick: function() {
},
executeAction: function(htmlElement, event) {}
});
Código ftl
<div id="MyWidget_${instanceId}" class="super-widget wcm-widget-class fluig-style-guide" data-params="MyWidget.instance()">
<script type="text/javascript" src="/webdesk/vcXMLRPC.js"></script>
<body style="margin:auto;width:80%">
<div id="collapseItmMov" class="panel-collapse collapse">
<div class="panel-body">
<div id="tblItmMov"></div>
</div>
</div>
<input type="text" class="enviar btn btn-default btn-block" value="INICIAR SOLICITAÇÃOs" />
</body>
</div>