Merge branch 'JIWOO' into advc

This commit is contained in:
jiwoo 2024-01-22 10:11:10 +09:00
commit 0ba14f5bac
3 changed files with 235 additions and 137 deletions

View File

@ -328,10 +328,19 @@
<c:if test="${status.count eq '3'}"> <c:if test="${status.count eq '3'}">
<script type="text/javascript"> <script type="text/javascript">
var dataNOT = ['${list.mnt01}', '${list.mnt02}', '${list.mnt03}', '${list.mnt04}', '${list.mnt05}', '${list.mnt06}', '${list.mnt07}', '${list.mnt08}', '${list.mnt09}', '${list.mnt10}', '${list.mnt11}', '${list.mnt12}']; var dataNOT = ['${list.mnt01}', '${list.mnt02}', '${list.mnt03}', '${list.mnt04}', '${list.mnt05}', '${list.mnt06}', '${list.mnt07}', '${list.mnt08}', '${list.mnt09}', '${list.mnt10}', '${list.mnt11}', '${list.mnt12}'];
var maxNOT = Number(dataNOT[0]);
var dataNOTSum = 0; var dataNOTSum = 0;
for(var i = 0; i<12; i++){ for(var i = 0; i<12; i++){
var NOTs = Number(dataNOT[i]);
if(!isNaN(NOTs)){
if(NOTs > maxNOT){
maxNOT = NOTs
}
}
dataNOTSum += parseInt(dataNOT[i]); dataNOTSum += parseInt(dataNOT[i]);
} }
maxNOT = Math.ceil(maxNOT / 10) * 10;
if(isNaN(dataNOTSum)){ if(isNaN(dataNOTSum)){
dataNOTSum = 0; dataNOTSum = 0;
} }
@ -341,88 +350,110 @@
<script type="text/javascript"> <script type="text/javascript">
var dataNOP = ['${list.mnt01}', '${list.mnt02}', '${list.mnt03}', '${list.mnt04}', '${list.mnt05}', '${list.mnt06}', '${list.mnt07}', '${list.mnt08}', '${list.mnt09}', '${list.mnt10}', '${list.mnt11}', '${list.mnt12}']; var dataNOP = ['${list.mnt01}', '${list.mnt02}', '${list.mnt03}', '${list.mnt04}', '${list.mnt05}', '${list.mnt06}', '${list.mnt07}', '${list.mnt08}', '${list.mnt09}', '${list.mnt10}', '${list.mnt11}', '${list.mnt12}'];
var dataNOPSum = 0; var dataNOPSum = 0;
var maxNOP = Number(dataNOP[0]);
for(var x = 0; x<12; x++){ for(var x = 0; x<12; x++){
var NOPs = Number(dataNOP[x]);
if(!isNaN(NOPs)){
if(NOPs > maxNOP){
maxNOP = NOPs
}
}
dataNOPSum += parseInt(dataNOP[x]); dataNOPSum += parseInt(dataNOP[x]);
} }
maxNOP = Math.ceil(maxNOP / 100) * 100;
if(isNaN(dataNOPSum)){ if(isNaN(dataNOPSum)){
dataNOPSum = 0; dataNOPSum = 0;
} }
</script> </script>
</c:if> </c:if>
</c:forEach> </c:forEach>
<!-- 횟수 차트 -->
<div id="chartContainer" style="display:flex; width:100%;"> <div id="chartContainer" style="display:flex; width:100%;">
<div id="chartNumOfTime" style="float:left; width: 50%; height:600px;"> <div id="chartAll" style="float:left; width: 100%; height:600px;">
</div> </div>
<script type="text/javascript"> <script type="text/javascript">
<!-- 차트 선언 --> var chartAll = echarts.init(document.getElementById('chartAll'));
var chartNOT = echarts.init(document.getElementById('chartNumOfTime'))
var month = ['1월', '2월', '3월', '4월', '5월','6월','7월','8월', '9월','10월','11월', '12월']; var month = ['1월', '2월', '3월', '4월', '5월','6월','7월','8월', '9월','10월','11월', '12월'];
<!-- 차트 옵션 지정하기 -->
var optionNOT = { var optionAll = {
// 차트 제목 toolbox: {
title: { feature: {
text: '월별 횟수 차트 (총합 :' + dataNOTSum +')', //dataView: { show: true, readOnly: false },
}, magicType: { show: true, type: ['line', 'bar'] },
// x축 라벨 restore: { show: true },
xAxis: { saveAsImage: { show: true }
data: month, }
}, },
yAxis: {}, legend: {
series: [ data: ['횟수', '인원']
{ },
name: '개수', xAxis: [
type: 'bar', // 막대 그래프 {
data: dataNOT, type: 'category',
label: { data: month,
show: true, axisPointer: {
position: 'top' type: 'shadow'
}
}
],
yAxis: [
{
type: 'value',
name: '횟수',
interval: 50,
/* max : maxNOT, */
alignTicks: true,
axisLabel: {
formatter: '{value}회'
}
},
{
type: 'value',
name: '인원',
interval: 50,
/* max : maxNOP, */
alignTicks: true,
axisLabel: {
formatter: '{value}명'
}
}
],
series: [
{
name: '횟수',
type: 'bar',
tooltip: {
valueFormatter: function (value) {
return value + '회';
}
},
label: {
show: true,
position: 'top'
},
data: dataNOT
},
{
name: '인원',
type: 'line',
yAxisIndex: 1,
tooltip: {
valueFormatter: function (value) {
return value + '명';
}
},
label: {
show: true,
position: 'top'
},
data: dataNOP
}
]
} }
}, //차트 옵션 적용
], chartAll.setOption(optionAll);
}
<!-- 차트 옵션 적용 -->
chartNOT.setOption(optionNOT);
</script>
<!-- /횟수 차트 -->
<!-- 인원 차트 -->
<div id="chartNumOfPeople" style="float:right; width: 50%; height:600px;">
</div>
<script type="text/javascript">
<!-- 차트 선언 -->
var chartNOP = echarts.init(document.getElementById('chartNumOfPeople'))
<!-- 차트 옵션 지정하기 -->
var optionNOP = {
// 차트 제목
title: {
text: '월별 인원 차트(총합 :' + dataNOPSum +')',
},
// x축 라벨
xAxis: {
data: month,
},
yAxis: {},
series: [
{
name: '개수',
type: 'bar', // 막대 그래프
data: dataNOP,
label: {
show: true,
position: 'top'
}
},
],
}
<!-- 차트 옵션 적용 -->
chartNOP.setOption(optionNOP);
</script> </script>
</div> </div>
<!-- /인원 차트 -->
<!-- /월별 횟수/교육인원 차트 --> <!-- /월별 횟수/교육인원 차트 -->

View File

@ -168,11 +168,20 @@
, '${eduCntVO.oct}' , '${eduCntVO.oct}'
, '${eduCntVO.nov}' , '${eduCntVO.nov}'
, '${eduCntVO.decm}' , '${eduCntVO.decm}'
, '${eduCntVO.tot}' ]; ];
var dataNOTSum = 0; var dataNOTSum = 0;
var maxNOT = Number(dataNOT[0]);
for(var i = 0; i<12; i++){ for(var i = 0; i<12; i++){
var NOTs = Number(dataNOT[i]);
if(!isNaN(NOTs)){
if(NOTs > maxNOT){
maxNOT = NOTs
}
}
dataNOTSum += parseInt(dataNOT[i]); dataNOTSum += parseInt(dataNOT[i]);
} }
maxNOT = Math.ceil(maxNOT / 10) * 10;
if(isNaN(dataNOTSum)){ if(isNaN(dataNOTSum)){
dataNOTSum = 0; dataNOTSum = 0;
} }
@ -189,87 +198,117 @@
, '${eduPrsnlCntVO.oct}' , '${eduPrsnlCntVO.oct}'
, '${eduPrsnlCntVO.nov}' , '${eduPrsnlCntVO.nov}'
, '${eduPrsnlCntVO.decm}' , '${eduPrsnlCntVO.decm}'
, '${eduPrsnlCntVO.tot}'
]; ];
var dataNOPSum = 0; var dataNOPSum = 0;
var maxNOP = Number(dataNOP[0]);
for(var x = 0; x<12; x++){ for(var x = 0; x<12; x++){
var NOPs = Number(dataNOP[x]);
if(!isNaN(NOPs)){
if(NOPs > maxNOP){
maxNOP = NOPs
}
}
dataNOPSum += parseInt(dataNOP[x]); dataNOPSum += parseInt(dataNOP[x]);
} }
maxNOP = Math.ceil(maxNOP / 10) * 10;
if(isNaN(dataNOPSum)){ if(isNaN(dataNOPSum)){
dataNOPSum = 0; dataNOPSum = 0;
} }
</script> </script>
<!-- 횟수 차트 --> <!-- 횟수 차트 -->
<div id="chartContainer" style="display:flex; width:100%;"> <div id="chartContainer" style="display:flex; width:100%;">
<div id="chartNumOfTime" style="float:left; width: 50%; height:600px;"> <div id="chartAll" style="float:left; width: 100%; height:600px;">
</div> </div>
<script type="text/javascript"> <script type="text/javascript">
<!-- 차트 선언 --> var chartAll = echarts.init(document.getElementById('chartAll'));
var chartNOT = echarts.init(document.getElementById('chartNumOfTime'));
var month = ['1월', '2월', '3월', '4월', '5월','6월','7월','8월', '9월','10월','11월', '12월']; var month = ['1월', '2월', '3월', '4월', '5월','6월','7월','8월', '9월','10월','11월', '12월'];
<!-- 차트 옵션 지정하기 -->
var optionNOT = { var optionAll = {
// 차트 제목 toolbox: {
title: { feature: {
text: '월별 횟수 차트 (총합 :' + dataNOTSum +')', //dataView: { show: true, readOnly: false },
}, magicType: { show: true, type: ['line', 'bar'] },
// x축 라벨 restore: { show: true },
xAxis: { saveAsImage: { show: true }
data: month, }
}, },
yAxis: {}, legend: {
series: [ data: ['횟수', '인원']
{ },
name: '개수', xAxis: [
type: 'bar', // 막대 그래프 {
data: dataNOT, type: 'category',
label: { data: month,
show: true, axisPointer: {
position: 'top' type: 'shadow'
}
}
],
yAxis: [
{
type: 'value',
name: '횟수',
interval: 50,
/* max : maxNOT, */
alignTicks: true,
axisLabel: {
formatter: '{value}회'
}
},
{
type: 'value',
name: '인원',
interval: 50,
/* max : maxNOP, */
alignTicks: true,
axisLabel: {
formatter: '{value}명'
}
}
],
series: [
{
name: '횟수',
type: 'bar',
tooltip: {
valueFormatter: function (value) {
return value + '회';
}
},
label: {
show: true,
position: 'top',
lineHeight : 20,
formatter : function(e){
return e.data + "회";
}
},
data: dataNOT
},
{
name: '인원',
type: 'line',
yAxisIndex: 1,
tooltip: {
valueFormatter: function (value) {
return value + '명';
}
},
label: {
show: true,
position: 'top',
lineHeight : 50,
formatter : function(e){
return e.data + "명";
}
},
data: dataNOP
}
]
} }
}, //차트 옵션 적용
], chartAll.setOption(optionAll);
}
<!-- 차트 옵션 적용 -->
chartNOT.setOption(optionNOT);
</script>
<!-- /횟수 차트 -->
<!-- 인원 차트 -->
<div id="chartNumOfPeople" style="float:right; width: 50%; height:600px;">
</div>
<script type="text/javascript">
<!-- 차트 선언 -->
var chartNOP = echarts.init(document.getElementById('chartNumOfPeople'));
<!-- 차트 옵션 지정하기 -->
var optionNOP = {
// 차트 제목
title: {
text: '월별 인원 차트(총합 :' + dataNOPSum +')',
},
// x축 라벨
xAxis: {
data: month,
},
yAxis: {},
series: [
{
name: '개수',
type: 'bar', // 막대 그래프
data: dataNOP,
label: {
show: true,
position: 'top'
}
},
],
}
<!-- 차트 옵션 적용 -->
chartNOP.setOption(optionNOP);
</script> </script>
</div> </div>
<!-- /인원 차트 --> <!-- /인원 차트 -->

View File

@ -322,10 +322,19 @@
<c:if test="${status.count eq '3'}"> <c:if test="${status.count eq '3'}">
<script type="text/javascript"> <script type="text/javascript">
var dataNOT = ['${list.mnt01}', '${list.mnt02}', '${list.mnt03}', '${list.mnt04}', '${list.mnt05}', '${list.mnt06}', '${list.mnt07}', '${list.mnt08}', '${list.mnt09}', '${list.mnt10}', '${list.mnt11}', '${list.mnt12}']; var dataNOT = ['${list.mnt01}', '${list.mnt02}', '${list.mnt03}', '${list.mnt04}', '${list.mnt05}', '${list.mnt06}', '${list.mnt07}', '${list.mnt08}', '${list.mnt09}', '${list.mnt10}', '${list.mnt11}', '${list.mnt12}'];
var maxNOT = Number(dataNOT[0]);
var dataNOTSum = 0; var dataNOTSum = 0;
for(var i = 0; i<12; i++){ for(var i = 0; i<12; i++){
var NOTs = Number(dataNOT[i]);
if(!isNaN(NOTs)){
if(NOTs > maxNOT){
maxNOT = NOTs
}
}
dataNOTSum += parseInt(dataNOT[i]); dataNOTSum += parseInt(dataNOT[i]);
} }
maxNOT = Math.ceil(maxNOT / 10) * 10;
if(isNaN(dataNOTSum)){ if(isNaN(dataNOTSum)){
dataNOTSum = 0; dataNOTSum = 0;
} }
@ -335,9 +344,18 @@
<script type="text/javascript"> <script type="text/javascript">
var dataNOP = ['${list.mnt01}', '${list.mnt02}', '${list.mnt03}', '${list.mnt04}', '${list.mnt05}', '${list.mnt06}', '${list.mnt07}', '${list.mnt08}', '${list.mnt09}', '${list.mnt10}', '${list.mnt11}', '${list.mnt12}']; var dataNOP = ['${list.mnt01}', '${list.mnt02}', '${list.mnt03}', '${list.mnt04}', '${list.mnt05}', '${list.mnt06}', '${list.mnt07}', '${list.mnt08}', '${list.mnt09}', '${list.mnt10}', '${list.mnt11}', '${list.mnt12}'];
var dataNOPSum = 0; var dataNOPSum = 0;
var maxNOP = Number(dataNOP[0]);
for(var x = 0; x<12; x++){ for(var x = 0; x<12; x++){
var NOPs = Number(dataNOP[x]);
if(!isNaN(NOPs)){
if(NOPs > maxNOP){
maxNOP = NOPs
}
}
dataNOPSum += parseInt(dataNOP[x]); dataNOPSum += parseInt(dataNOP[x]);
} }
maxNOP = Math.ceil(maxNOP / 100) * 100;
if(isNaN(dataNOPSum)){ if(isNaN(dataNOPSum)){
dataNOPSum = 0; dataNOPSum = 0;
} }
@ -377,7 +395,8 @@
type: 'value', type: 'value',
name: '횟수', name: '횟수',
interval: 50, interval: 50,
max : dataNOTSum, alignTicks: true,
/* max : maxNOT, */
axisLabel: { axisLabel: {
formatter: '{value}회' formatter: '{value}회'
} }
@ -386,7 +405,8 @@
type: 'value', type: 'value',
name: '인원', name: '인원',
interval: 50, interval: 50,
mas : dataNOTSum, alignTicks: true,
/* max : maxNOP, */
axisLabel: { axisLabel: {
formatter: '{value}명' formatter: '{value}명'
} }
@ -403,7 +423,11 @@
}, },
label: { label: {
show: true, show: true,
position: 'top' position: 'top',
lineHeight : 20,
formatter : function(e){
return e.data + "회";
}
}, },
data: dataNOT data: dataNOT
}, },
@ -418,7 +442,11 @@
}, },
label: { label: {
show: true, show: true,
position: 'top' position: 'top',
lineHeight : 50,
formatter : function(e){
return e.data + "명";
}
}, },
data: dataNOP data: dataNOP
} }