I'm trying to include Edit and Delete buttons in the actions column in DataTables, the buttons are rendered on the screen, but the @click event doesn't work, and doesn't return an error message, can you check where I'm going wrong? Thank you all. The MontaTable component was created in another file.
<template>
<div id="divClientes">
<div style="padding-bottom: 20px; color: navy; font-weight: bold;">
<h3>Clientes cadastrados</h3>
<button type="button" @click="novoCliente" class="btn btn-secondary">Novo Cliente</button>
</div>
<MontaTabela :rows="rows" :columns="columns" />
</div>
</template>
<script>
/* eslint-disable */
import MontaTabela from '@/components/MontaTabela/MontaTabela.vue';
import http from '@/services/http.js';
import { FuncoesAuxiliares } from '@/helpers/FuncoesAuxiliares.vue';
const funcoes = FuncoesAuxiliares();
export default {
el: '#divClientes',
components: { MontaTabela },
data() {
return {
rows: null,
form: {},
columns: [
{ name: 'cod_cliente', title: 'ID', data: 'cod_cliente', className: "text-center" },
{ name: 'nom_cliente', title: 'NOME', data: 'nom_cliente' },
{ name: 'num_cpf', title: 'CPF', data: 'num_cpf', className: "text-center" },
{ name: 'dat_nascimento', title: 'DT. NASCIMENTO', data: 'dat_nascimento', className: "text-center" },
{ name: 'dsc_endereco', title: 'ENDEREÇO', data: 'dsc_endereco' },
{ name: 'dsc_bairro', title: 'BAIRRO', data: 'dsc_bairro', className: "text-center" },
{ name: 'dsc_cidade', title: 'CIDADE', data: 'dsc_cidade', className: "text-center" },
{ name: 'dsc_uf', title: 'UF', data: 'dsc_uf', className: "text-center" },
{ name: 'flg_ativo', title: 'STATUS', data: 'flg_ativo', className: "text-center" },
{ name: 'acoes', title: 'AÇÕES', data: null, className: "text-center",
render (data) {
let btns = '';
btns += '<button data-bs-toggle="tooltip" data-bs-placement="top" title="Editar" id="btnEditCliente' + data.cod_cliente + '" @click="editarCliente(' + data.cod_cliente + ')" class="btn btn-primary btn-sm"><i class="fa fa-edit"></i></button> ',
btns += '<button data-bs-toggle="tooltip" data-bs-placement="top" title="Excluir" id="btnDeleteCliente' + data.cod_cliente + '" @click="excluirCliente(' + data.cod_cliente + ')" class="btn btn-danger btn-sm"><i class="fa fa-trash"></i></button>'
return btns;
}
}
]
}
},
async created() {
await http.get('/cliente/listar').then((response) => {
this.rows = response.data;
this.rows.forEach(element => {
element['dat_nascimento'] = element['dat_nascimento'] ? funcoes.dataFront(element['dat_nascimento']) : '-';
element['num_cpf'] = element['num_cpf'] ? funcoes.formataCPF(element['num_cpf']) : '-';
element['flg_ativo'] === parseInt(1) ? element['flg_ativo'] = '<span class="text-success">Ativo</span>' : element['flg_ativo'] = '<span class="text-danger">Inativo</span>';
});
});
},
methods: {
novoCliente() {
this.$router.push({ name: 'cadastro-cliente' });
},
editarCliente(cod_cliente) {
console.log(cod_cliente);
},
excluirCliente(cod_cliente) {
funcoes.confirmaDelecao().then(() => {
http.put(`/cliente/${cod_cliente}/excluir`).then(() => {
funcoes.alerta('success', 'Cliente excluĂdo com sucesso!');
}).catch(()=>{
funcoes.alerta('error', 'Erro ao tentar excluir Cliente!');
})
}).catch(()=>{})
}
}
}
</script>
Here's the rendered screen:
Via Active questions tagged javascript - Stack Overflow https://ift.tt/KeQMy5g
Comments
Post a Comment