해당 게시글은 개인 프로젝트인 "광고 관리 플랫폼 대행사 센터 제작" 중
#145 "업종별 레퍼런스 차트 지표 선택 및 조회 기능 추가", #138 캠페인 / 소재 / 소재 실적 차트 추가" 이슈를 다루고 있습니다
/*<![CDATA[*/
var ctx = document.getElementById('myChart').getContext('2d');
var dayList = [];
var performanceList = [];
var data = /*[[ ${chart} ]]*/[];
var config = {
type: 'line',
data: {
labels: dayList,
datasets: [{
fill: false,
data: performanceList,
backgroundColor: [
'rgb(95,192,153)',
],
borderColor: [
'rgba(125,134,173,1)',
],
borderWidth: 1,
barPercentage: 0.5
}]
},
options: {
plugins: {
legend: {
display: false
},
},
scales: {
y: {
grid: {
drawOnChartArea: true, //선 지우기
drawTicks: false, //축의 숫자 옆 눈금 지우기
drawBorder: true,
borderDash: [3, 3] //y축 선 실선으로 길이 3,간격 3으로
},
ticks: {
padding: 10,
beginAtZero: true
}
},
x: {
grid: {
display: false,
drawBorder: false,
drawTicks: false
},
ticks: {
font: {
size: 9
},
padding: 10
}
}
}
}
};
// 차트 그리기
var myChart = new Chart(ctx, config);
// 초기 페이지 조회 시 작동
$(document).ready(function () {
var data = /*[[ ${chart} ]]*/[];
for (var i = 0; i < data.length; i++) {
dayList.push(data[i].startDate);
performanceList.push(data[i].spend);
}
myChart.update();
});
$(function () {
$('#performance').on('change', function () { // 변경 감지
config.data.datasets.splice(0,1); // 기존 데이터셋 삭제
var data = /*[[ ${chart} ]]*/[];
var newPerformanceList = [];
var value = this.value;
if (value == 'view') {
for (var i = 0; i < data.length; i++) {
newPerformanceList.push(data[i].view);
}
} else if (value == 'click') {
for (var i = 0; i < data.length; i++) {
newPerformanceList.push(data[i].click);
}
} else if (value == 'conversion') {
for (var i = 0; i < data.length; i++) {
newPerformanceList.push(data[i].conversion);
}
} else if (value == 'purchase') {
for (var i = 0; i < data.length; i++) {
newPerformanceList.push(data[i].purchase);
}
} else if (value == 'spend') {
for (var i = 0; i < data.length; i++) {
newPerformanceList.push(data[i].spend);
}
} else if (value == 'CTR') {
for (var i = 0; i < data.length; i++) {
newPerformanceList.push(data[i].ctr);
}
} else if (value == 'CVR') {
for (var i = 0; i < data.length; i++) {
newPerformanceList.push(data[i].cvr);
}
} else if (value == 'CPA') {
for (var i = 0; i < data.length; i++) {
newPerformanceList.push(data[i].cpa);
}
} else if (value == 'ROAS') {
for (var i = 0; i < data.length; i++) {
newPerformanceList.push(data[i].roas);
}
}
var newDataSet = {
fill: false,
data: newPerformanceList,
backgroundColor: [
'rgb(95,192,153)',
],
borderColor: [
'rgba(125,134,173,1)',
],
borderWidth: 1,
barPercentage: 0.5
}
config.data.datasets.push(newDataSet); // 새 데이터셋 주입
myChart.update();
});
});