Моя диаграмма такая, но она отображается неправильно, и указатель не работает
введите описание изображения
Код: Выделить всё
function exibirChart(obj) {
// Configurações padrão do gráfico
let configuracoes = {
containerId: 'containerChartMetas',
totalProduzido: 0,// Total produzido
metaComissao: 0,// Meta 1
metaBonus: 0,// Meta 2
meta3: 0, // Meta 3
nivel0: 0,// Nível 0 não atingiu a meta
nivel1: 0,// Nível 1 não atingiu a meta
nivel2: 0,// Nível 2 não atingiu a meta
nivel3: 0,// Nível 3 não atingiu a meta
valorMaximoTotal: 100, // Valor máximo total
valorMinimoTotal: 0,// Valor mínimo total
espessuraPonteiro: 2,// Espessura do ponteiro
cores: { // Cores do gráfico
abaixoMeta: '#ff6c6c', /*vermelho*/
metaComissao: '#dee083', /*verde claro Meta 1*/
metaBonus: '#97cd7e', /*verde medio Meta 2*/
meta3: '#64bd7b', /*verde escuro*/
nivel3:'#faea81',/*amarelo */
nivel2:'#ffb17a',/*laranja */
nivel1:'#f79171',/*salmão */
nivel0:'#f96a6e',/*vermelho claro */
ponteiro: '#3a3a3a'
},
legendas: {// Legendas do gráfico
abaixoMeta: '',
metaComissao: '',
metaBonus: '',
meta3: '',
nivel0: '',
nivel1: '',
nivel2: '',
nivel3: '',
},
...obj
}
// Adiciona classe 'show' ao contêiner do gráfico
$('#' + configuracoes.containerId).addClass('show');
if (configuracoes.metaBonus === 0 && configuracoes.valorMaximoTotal === 0 && configuracoes.meta3 === 0) {
configuracoes.valorMaximoTotal = configuracoes.metaComissao * 1;
configuracoes.meta3 = configuracoes.valorMaximoTotal;
} else if (configuracoes.meta3 === 0 && configuracoes.valorMaximoTotal === 0 && configuracoes.metaBonus > 0) {
configuracoes.valorMaximoTotal = configuracoes.metaBonus * 1;
configuracoes.meta3 = configuracoes.valorMaximoTotal;
} else if (configuracoes.metaComissao > configuracoes.metaBonus) {
$('#' + configuracoes.containerId + ' .container-chart').html('O valor da meta 2 precisa ser maior do que o valor da meta 1.')
return false;
} else if (configuracoes.metaComissao > configuracoes.meta3) {
$('#' + configuracoes.containerId + ' .container-chart').html('O valor da meta 3 precisa ser maior do que o valor da meta 1.')
return false;
} else if (configuracoes.metaComissao > configuracoes.metaBonus) {
$('#' + configuracoes.containerId + ' .container-chart').html('O valor da meta 2 precisa ser maior do que o valor da meta 1.')
return false;
}
// Calcula a espessura do ponteiro
const espessuraPonteiro = (configuracoes.espessuraPonteiro * configuracoes.valorMaximoTotal) / 100;
/*Valores dos niveis abaixo das metas*/
let totalParcial = 0;
totalParcial = (configuracoes.metaComissao) / 4;
/*Valores dos niveis abaixo das metas*/
// Inicializa o contador
let contador = configuracoes.valorMinimoTotal;
// Define o intervalo para atualização do gráfico
const intervalo = setInterval(function () {
contador += configuracoes.totalProduzido / 3;
// Verifica se o contador atingiu o total produzido
if (contador >= configuracoes.totalProduzido) {
contador = configuracoes.totalProduzido;
clearInterval(intervalo);
}
// Calcula o percentual do valor atual em relação à meta de comissão
const valorPercentual = contador * 100 / configuracoes.metaComissao;
const stringPercentual = valorPercentual.toFixed(1).replace('.', ',') + '%';
// Atualiza as informações no HTML
$('#' + configuracoes.containerId + ' .chart-valor-percentual').text(stringPercentual);
$('#' + configuracoes.containerId + ' .chart-valor-minimo').text('R$ ' + parseInt(configuracoes.valorMinimoTotal).toString().replace(/\B(? (configuracoes.valorMaximoTotal - configuracoes.meta3) / 3 ? configuracoes.legendas.meta3 : ''), configuracoes.valorMaximoTotal - configuracoes.meta3],
//Ponteiro
['', espessuraPonteiro],
[(contador - configuracoes.meta3
Подробнее здесь: [url]https://stackoverflow.com/questions/78480314/google-pie-chart[/url]