552 lines
18 KiB
Plaintext
552 lines
18 KiB
Plaintext
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
|
|
<%@ page import="com.pms.common.utils.*"%>
|
|
<%@ page import="java.util.*" %>
|
|
<%@include file= "/init.jsp" %>
|
|
<!DOCTYPE html>
|
|
<html>
|
|
<head>
|
|
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
|
<title><%=Constants.SYSTEM_NAME%></title>
|
|
<script>
|
|
$(document).ready(function(){
|
|
fn_setOEMList();
|
|
fn_setCarTypeList();
|
|
|
|
fn_setProblemStatusStackColumn("");
|
|
fn_setProblemStatusRollUpList("");
|
|
fn_getCarProblemStepPieChart("");
|
|
fn_getCarProblemStepList("");
|
|
|
|
$("#searchOem").click(function(){
|
|
var oemObjId = $("#oemObjId").val();
|
|
|
|
fn_setProblemStatusStackColumn(oemObjId);
|
|
fn_setProblemStatusRollUpList(oemObjId);
|
|
});
|
|
|
|
$("#searchCar").click(function(){
|
|
var carObjId = $("#carObjId").val();
|
|
|
|
fn_getCarProblemStepPieChart(carObjId);
|
|
fn_getCarProblemStepList(carObjId);
|
|
});
|
|
|
|
//문제점 차종별 팝업
|
|
$(document).on("click", ".btnProblemList", function(e){
|
|
var oemObjId = fnc_checkNullDefaultValue($("#oemObjId").val(),"");
|
|
var carObjId = fnc_checkNullDefaultValue($(this).attr("data-CAR_OBJID"),"");
|
|
var status = fnc_checkNullDefaultValue($(this).attr("data-STATUS"),"");
|
|
|
|
if(oemObjId == "" || oemObjId == null){
|
|
oemObjId = $(this).attr("data-OEM_OBJID");
|
|
}
|
|
|
|
var params = "?search_oemObjId="+oemObjId+"&search_carObjId="+carObjId+"&search_status="+status;
|
|
|
|
window.open("/dashboard/problemListPopUp.do"+params, "", "width=1700, height=585");
|
|
});
|
|
|
|
//문제점 단계별 팝업
|
|
$(document).on("click", ".btnProblemStepList", function(e){
|
|
var carObjId = fnc_checkNullDefaultValue($("#carObjId").val(),"");
|
|
var oemObjId = fnc_checkNullDefaultValue($("#carObjId").find("option:selected").attr("data-OEM_OBJID"),"");
|
|
var step1 = fnc_checkNullDefaultValue($(this).attr("data-STEP1"),"");
|
|
var step2 = fnc_checkNullDefaultValue($(this).attr("data-STEP2"),"");
|
|
var status = fnc_checkNullDefaultValue($(this).attr("data-STATUS"),"");
|
|
|
|
var params = "?step1="+step1+"&step2="+step2+"&search_status="+status+"&search_carObjId="+carObjId+"&search_oemObjId="+oemObjId;
|
|
|
|
window.open("/dashboard/problemListPopUp.do"+params, "", "width=1700, height=585");
|
|
});
|
|
});
|
|
</script>
|
|
<script>
|
|
//문제점 차종별 팝업
|
|
function fn_openProblemList(obj){
|
|
var carObjId = fnc_checkNullDefaultValue(obj.series.userOptions.carObjId[obj.index],"");
|
|
var oemObjId = fnc_checkNullDefaultValue(obj.series.userOptions.oemObjId[obj.index],"");
|
|
var name = fnc_checkNullDefaultValue(obj.series.name,"");
|
|
if(name == "조치"){
|
|
var status = "complete";
|
|
}else{
|
|
var status = "create";
|
|
}
|
|
var params = "?search_carObjId="+carObjId+"&search_oemObjId="+oemObjId+"&search_status="+status;
|
|
window.open("/dashboard/problemListPopUp.do"+params, "", "width=1700, height=585");
|
|
}
|
|
//문제점 단계별 팝업
|
|
function fn_openProblemStepList(obj){
|
|
var carObjId = fnc_checkNullDefaultValue($("#carObjId").val(),"");
|
|
var oemObjId = fnc_checkNullDefaultValue($("#carObjId").find("option:selected").attr("data-OEM_OBJID"),"");
|
|
var step1 = fnc_checkNullDefaultValue(obj.series.userOptions.step1,"");
|
|
var step2 = fnc_checkNullDefaultValue(obj.series.userOptions.name,"");
|
|
var name = fnc_checkNullDefaultValue(obj.name);
|
|
if(name == "조치"){
|
|
var status = "complete";
|
|
}else{
|
|
var status = "create";
|
|
}
|
|
var params = "?search_carObjId="+carObjId+"&search_oemObjId="+oemObjId+"&step1="+step1+"&step2="+step2+"&search_status="+status;
|
|
window.open("/dashboard/problemListPopUp.do"+params, "", "width=1700, height=585");
|
|
}
|
|
|
|
//고객사에 따른 문제점의 정보를 가져온다.
|
|
function fn_setProblemStatusStackColumn(oemObjId){
|
|
$.ajax({
|
|
url:"/dashboard/getProblemStatusStackColumn.do",
|
|
type:"POST",
|
|
data:{"oemObjId":oemObjId},
|
|
dataType:"json",
|
|
async:false,
|
|
success:function(data){
|
|
var name = [];
|
|
var oemObjId = [];
|
|
var carObjId = [];
|
|
var allCnt = [];
|
|
var completeCnt = [];
|
|
var ongoingCnt = [];
|
|
|
|
var sum = 0;
|
|
|
|
$.each(data , function(i){
|
|
name[i] = data[i].CAR_CODE;
|
|
carObjId[i] = Number(fnc_checkNullDefaultValue(data[i].CAR_OBJID, 0));
|
|
oemObjId[i] = Number(fnc_checkNullDefaultValue(data[i].OEM_OBJID, 0));
|
|
allCnt[i] = Number(fnc_checkNullDefaultValue(data[i].TOTAL_PROBLEM_CNT, 0));
|
|
completeCnt[i] = Number(fnc_checkNullDefaultValue(data[i].COMPLETE_CNT, 0));
|
|
ongoingCnt[i] = Number(fnc_checkNullDefaultValue(data[i].NOT_COMPLETE_CNT, 0));
|
|
|
|
sum += allCnt[i] + completeCnt[i] + ongoingCnt[i];
|
|
});
|
|
|
|
if(sum == 0){
|
|
var noData = "<div id=\"chart1MessageArea\" style=\"width:100%;height:50%;padding-top:10%;text-align:center;\">조회된 정보가 없습니다.</div>";
|
|
$("#stackColomnChart").html(noData);
|
|
} else {
|
|
|
|
$("#stackColomnChart").highcharts({
|
|
colors: ['#ff6d6d','#558ed5'],
|
|
chart: {
|
|
zoomType: 'xy'
|
|
, type : 'column'
|
|
},
|
|
title: {
|
|
text: ''
|
|
},
|
|
xAxis: [{
|
|
categories: name
|
|
}],
|
|
yAxis: [{ // Primary yAxis
|
|
min : 0
|
|
, labels: {
|
|
format: '{value}'
|
|
}
|
|
, stackLabels: {
|
|
enabled : true
|
|
}
|
|
, title : ''
|
|
}],
|
|
tooltip: {
|
|
headerFormat: '<b>{point.x}</b><br/>',
|
|
pointFormat: '{series.name}: {point.y}<br/>Total: {point.stackTotal}',
|
|
useHTML: true
|
|
},
|
|
legend: {
|
|
align: 'right',
|
|
verticalAlign: 'top',
|
|
floating: true,
|
|
y:15
|
|
},
|
|
series: [
|
|
/* {
|
|
name: '전체'
|
|
, data: allCnt
|
|
}, */
|
|
{
|
|
name: '미결'
|
|
, data : ongoingCnt
|
|
, oemObjId : oemObjId
|
|
, carObjId : carObjId
|
|
},
|
|
{
|
|
name: '조치'
|
|
, data : completeCnt
|
|
, oemObjId : oemObjId
|
|
, carObjId : carObjId
|
|
}
|
|
],
|
|
plotOptions:{
|
|
column : {
|
|
stacking : 'normal'
|
|
, dataLabels : {
|
|
enabled : true
|
|
}
|
|
}
|
|
, series:{
|
|
cursor:'pointer',
|
|
point:{
|
|
events:{
|
|
click:function(){
|
|
console.log(this);
|
|
fn_openProblemList(this);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
});
|
|
}
|
|
|
|
},
|
|
error: function(jqxhr, status, error){
|
|
}
|
|
});
|
|
}
|
|
|
|
function fn_setProblemStatusRollUpList(oemObjId){
|
|
var appendText = "";
|
|
|
|
$("#oemProblemList").empty();
|
|
|
|
$.ajax({
|
|
url:"/dashboard/getProblemStatusRollUpList.do",
|
|
type:"POST",
|
|
data:{"oemObjId":oemObjId},
|
|
dataType:"json",
|
|
async:false,
|
|
success:function(data){
|
|
$.each(data , function(i){
|
|
|
|
var carCode = fnc_checkNull(data[i].CAR_CODE);
|
|
var carObjId = fnc_checkNull(data[i].CAR_OBJID);
|
|
var oemObjId = fnc_checkNull(data[i].OEM_OBJID);
|
|
var totalCnt = fnc_checkNull(data[i].SUM_TOTAL_PROBLEM_CNT);
|
|
var completeCnt = fnc_checkNull(data[i].SUM_COMPLETE_CNT);
|
|
var notCompleteCnt = fnc_checkNull(data[i].SUM_NOT_COMPLETE_CNT);
|
|
var completeRatio = fnc_checkNull(data[i].COMPLETE_RATIO);
|
|
|
|
if("" == carObjId && "" != totalCnt){
|
|
appendText+="<tr style='background:#CDDEEA;'>";
|
|
appendText+=" <td>계</td>";
|
|
appendText+=" <td title='"+totalCnt+"'><a href='#' class='btnProblemList' data-OEM_OBJID='"+oemObjId+"' data-CAR_OBJID='"+carObjId+"' data-STATUS=''>"+totalCnt+"</a></td>";
|
|
appendText+=" <td title='"+completeCnt+"'><a href='#' class='btnProblemList' data-OEM_OBJID='"+oemObjId+"' data-CAR_OBJID='"+carObjId+"' data-STATUS='complete'>"+completeCnt+"</a></td>";
|
|
appendText+=" <td title='"+notCompleteCnt+"'><a href='#' class='btnProblemList' data-OEM_OBJID='"+oemObjId+"' data-CAR_OBJID='"+carObjId+"' data-STATUS='create'>"+notCompleteCnt+"</a></td>";
|
|
appendText+=" <td title='"+completeRatio+"'>"+completeRatio+"</td>";
|
|
appendText+="</tr>";
|
|
}else{
|
|
appendText+="<tr>";
|
|
appendText+=" <td title='"+carCode+"'>"+carCode+"</td>";
|
|
appendText+=" <td title='"+totalCnt+"'><a href='#' class='btnProblemList' data-OEM_OBJID='"+oemObjId+"' data-CAR_OBJID='"+carObjId+"' data-STATUS=''>"+totalCnt+"</a></td>";
|
|
appendText+=" <td title='"+completeCnt+"'><a href='#' class='btnProblemList' data-OEM_OBJID='"+oemObjId+"' data-CAR_OBJID='"+carObjId+"' data-STATUS='complete'>"+completeCnt+"</a></td>";
|
|
appendText+=" <td title='"+notCompleteCnt+"'><a href='#' class='btnProblemList' data-OEM_OBJID='"+oemObjId+"' data-CAR_OBJID='"+carObjId+"' data-STATUS='create'>"+notCompleteCnt+"</a></td>";
|
|
appendText+=" <td title='"+completeRatio+"'>"+completeRatio+"</td>";
|
|
appendText+="</tr>";
|
|
}
|
|
|
|
});
|
|
|
|
if(0 == data.length){
|
|
appendText+="<tr>";
|
|
appendText+=" <td colspan='5'>조회된 내용이 없습니다.</td>";
|
|
appendText+="</tr>";
|
|
}
|
|
$("#oemProblemList").append(appendText);
|
|
|
|
},
|
|
error: function(jqxhr, status, error){
|
|
}
|
|
});
|
|
}
|
|
|
|
//문제점 관리현황 고객사별 차종 step2 Pie chart
|
|
function fn_getCarProblemStepPieChart(carObjId){
|
|
var stepArr = [];
|
|
var stepDrillArr = [];
|
|
$.ajax({
|
|
url:"/dashboard/getProblemStepCarPieChart.do",
|
|
type:"POST",
|
|
data:{"carObjId":carObjId},
|
|
dataType:"json",
|
|
async:false,
|
|
success:function(data){
|
|
|
|
if(0 == data.length || null == data){
|
|
var noData = "<div id=\"chart1MessageArea\" style=\"width:100%;height:50%;padding-top:10%;text-align:center;\">조회된 정보가 없습니다.</div>";
|
|
$("#drillDownPieChart").html(noData);
|
|
}else{
|
|
$.each(data , function(i){
|
|
stepArr.push(
|
|
{
|
|
"name": fnc_checkNull(data[i].STEP2),
|
|
"y": Number(data[i].STEP2_PROBLEM_RATIO),
|
|
"drilldown": fnc_checkNull(data[i].STEP2),
|
|
step1:fnc_checkNull(data[i].STEP1)
|
|
}
|
|
);
|
|
|
|
stepDrillArr.push(
|
|
{
|
|
"name": fnc_checkNull(data[i].STEP2),
|
|
"id": fnc_checkNull(data[i].STEP2),
|
|
"data": [["조치",Number(data[i].COMPLETE_RATIO)],["미결",Number(data[i].NOT_COMPLETE_RATIO)]],
|
|
step1:fnc_checkNull(data[i].STEP1)
|
|
}
|
|
);
|
|
});
|
|
|
|
$('#drillDownPieChart').highcharts({
|
|
colors: ['#558ed5', '#ff6d6d', '#bed0f6','#90ff7d', '#b6a6ca', '#bfbfbf','#cc7b38', '#383838', '#00cc99','#9bbb59', '#40e1f2', '#6155f9','#9c4f30', '#aabad7', '#d9aaa9'],
|
|
chart: {
|
|
type: 'pie'
|
|
},
|
|
title: {
|
|
text: ''
|
|
},
|
|
|
|
tooltip: {
|
|
headerFormat: '<span style="font-size:11px">{series.name}</span><br>',
|
|
pointFormat: '<span style="color:{point.color}">{point.name}</span>: <b>{point.y:.1f}%</b> of total<br/>'
|
|
},
|
|
"series": [
|
|
{
|
|
"name": "단계",
|
|
"colorByPoint": true,
|
|
"data":stepArr
|
|
}
|
|
],
|
|
"drilldown": {"series": stepDrillArr},
|
|
plotOptions: {
|
|
pie: {
|
|
dataLabels: {
|
|
enabled: true,
|
|
format: '{point.name}: {point.y:.1f}%'
|
|
},
|
|
cursor:'pointer',
|
|
point:{
|
|
events:{
|
|
click:function(){
|
|
if(this.name != null){
|
|
console.log(this);
|
|
fn_openProblemStepList(this);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}, series:{
|
|
|
|
}
|
|
}
|
|
});
|
|
}
|
|
},
|
|
error: function(jqxhr, status, error){
|
|
}
|
|
});
|
|
}
|
|
|
|
//문제점 관리현황 고객사별 차종 step2 List
|
|
function fn_getCarProblemStepList(carObjId){
|
|
var appendText = "";
|
|
|
|
$("#carProblemStepList").empty();
|
|
|
|
$.ajax({
|
|
url:"/dashboard/getCarProblemStepRollUpList.do",
|
|
type:"POST",
|
|
data:{"carObjId":carObjId},
|
|
dataType:"json",
|
|
async:false,
|
|
success:function(data){
|
|
$.each(data , function(i){
|
|
var step1Name = fnc_checkNull(data[i].STEP1);
|
|
var stepName = fnc_checkNull(data[i].STEP2);
|
|
var problemCnt = fnc_checkNull(data[i].TOTAL_PROBLEM_CNT);
|
|
var completeCnt = fnc_checkNull(data[i].COMPLETE_CNT);
|
|
var notCompleteCnt = fnc_checkNull(data[i].NOT_COMPLETE_CNT);
|
|
if("" == stepName){
|
|
appendText+="<tr style='background:#CDDEEA;'>";
|
|
appendText+=" <td>계</td>";
|
|
appendText+=" <td title='"+problemCnt+"'><a href='#' class='btnProblemStepList' data-STEP1='"+step1Name+"' data-STEP2='"+stepName+"' data-STATUS=''>"+problemCnt+"</a></td>";
|
|
appendText+=" <td title='"+completeCnt+"'><a href='#' class='btnProblemStepList' data-STEP1='"+step1Name+"' data-STEP2='"+stepName+"' data-STATUS='complete'>"+completeCnt+"</a></td>";
|
|
appendText+=" <td title='"+notCompleteCnt+"'><a href='#' class='btnProblemStepList' data-STEP1='"+step1Name+"' data-STEP2='"+stepName+"' data-STATUS='create'>"+notCompleteCnt+"</a></td>";
|
|
appendText+="</tr>";
|
|
}else{
|
|
appendText+="<tr>";
|
|
appendText+=" <td title='"+stepName+"'>"+stepName+"</td>";
|
|
appendText+=" <td title='"+problemCnt+"'><a href='#' class='btnProblemStepList' data-STEP1='"+step1Name+"' data-STEP2='"+stepName+"' data-STATUS=''>"+problemCnt+"</a></td>";
|
|
appendText+=" <td title='"+completeCnt+"'><a href='#' class='btnProblemStepList' data-STEP1='"+step1Name+"' data-STEP2='"+stepName+"' data-STATUS='complete'>"+completeCnt+"</a></td>";
|
|
appendText+=" <td title='"+notCompleteCnt+"'><a href='#' class='btnProblemStepList' data-STEP1='"+step1Name+"' data-STEP2='"+stepName+"' data-STATUS='create'>"+notCompleteCnt+"</a></td>";
|
|
appendText+="</tr>";
|
|
}
|
|
});
|
|
|
|
if(0 == data.length){
|
|
appendText+="<tr>";
|
|
appendText+=" <td colspan='4'>조회된 내용이 없습니다.</td>";
|
|
appendText+="</tr>";
|
|
}
|
|
$("#carProblemStepList").append(appendText);
|
|
},
|
|
error: function(jqxhr, status, error){
|
|
}
|
|
});
|
|
}
|
|
|
|
//car 목록 조회
|
|
function fn_setCarTypeList(){
|
|
$.ajax({
|
|
url:"/common/getCarTypeList.do",
|
|
type:"POST",
|
|
data:{"isJson":true},
|
|
dataType:"json",
|
|
success:function(data){
|
|
var appendCode = "";
|
|
var oemObjId = "";
|
|
appendCode += "<option value=''>전체</option>";
|
|
$.each(data, function(i){
|
|
oemObjId = fnc_checkNull(data[i].OEM_OBJID);
|
|
appendCode += "<option value='"+data[i].OBJID+"' data-OEM_OBJID='"+oemObjId+"'>"+data[i].CAR_CODE+"("+data[i].CAR_NAME+")</option>";
|
|
});
|
|
$("#carObjId").children().remove();
|
|
$("#carObjId").append(appendCode);
|
|
|
|
},
|
|
error: function(jqxhr, status, error){
|
|
}
|
|
});
|
|
}
|
|
|
|
//oem 목록 조회
|
|
function fn_setOEMList(){
|
|
$.ajax({
|
|
url:"/common/getOEMList.do",
|
|
type:"POST",
|
|
data:{"isJson":true},
|
|
dataType:"json",
|
|
success:function(data){
|
|
var appendCode = "";
|
|
appendCode += "<option value=''>전체</option>";
|
|
$.each(data, function(i){
|
|
appendCode += "<option value='"+data[i].OBJID+"'>"+data[i].OEM_NAME+"("+data[i].OEM_CODE+")</option>";
|
|
});
|
|
$("#oemObjId").children().remove();
|
|
$("#oemObjId").append(appendCode);
|
|
},
|
|
error: function(jqxhr, status, error){
|
|
}
|
|
});
|
|
}
|
|
|
|
</script>
|
|
</head>
|
|
<body>
|
|
<form name="form1" action="" method="post">
|
|
<div style="min-width:1600px;">
|
|
<div class="plm_menu_name">
|
|
<h2>
|
|
<span>문제관리 상세현황</span>
|
|
</h2>
|
|
</div>
|
|
<div id="plmSearchZon">
|
|
<table>
|
|
<tr>
|
|
<td><lable for="" class="orangeTitleDot" style="font-weight:300; font-size:13px;">고객사</lable></td>
|
|
<td>
|
|
<select id="oemObjId" name="oemObjId" style="width:100px;"></select>
|
|
</td>
|
|
<td><input type="button" value="조회" id="searchOem" class="btnSearch blue_btn" style="float:none;"></td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
<div class="contents_page_basic_margin" style="overflow:hidden;">
|
|
<div class="plm_table_wrap" style="float:left; width:40%; margin: 30px 0;">
|
|
<div style="overflow-y:scroll;">
|
|
<table class="plm_table" style="width:100%;">
|
|
<colgroup>
|
|
<col width="*">
|
|
<col width="*">
|
|
<col width="*">
|
|
<col width="*">
|
|
<col width="*">
|
|
</colgroup>
|
|
<thead class="plm_thead">
|
|
<tr>
|
|
<td></td>
|
|
<td title="발생건수">발생건수</td>
|
|
<td title="조치건수">조치건수</td>
|
|
<td title="미결건수">미결건수</td>
|
|
<td title="조치율(%)">조치율(%)</td>
|
|
</tr>
|
|
</thead>
|
|
</table>
|
|
</div>
|
|
<div class="plm_scroll_table" style="width:100%; height:280px;">
|
|
<table class="plm_table" id="oemProblemList">
|
|
<colgroup>
|
|
<col width="*">
|
|
<col width="*">
|
|
<col width="*">
|
|
<col width="*">
|
|
<col width="*">
|
|
</colgroup>
|
|
</table>
|
|
</div>
|
|
</div>
|
|
<div style="width:35%; float:left; margin:30px 0 0 40px;">
|
|
<div class="plm_thead" style="width:100%; height:26px; text-align:center; line-height:26px; font-size:13px;">차종별 문제점 진행현황</div>
|
|
<div id="stackColomnChart" style="width:90%; height:260px; margin: 40px auto 0;"></div>
|
|
</div>
|
|
</div>
|
|
<div id="plmSearchZon" style="border-top: 1px solid #d4d4d4; margin-top:0px;">
|
|
<table>
|
|
<tr>
|
|
<td><lable for="" class="orangeTitleDot" style="font-weight:300; font-size:13px;">차종</lable></td>
|
|
<td>
|
|
<select id="carObjId" name="carObjId" style="width:180px;"></select>
|
|
</td>
|
|
<td>
|
|
<input type="button" value="조회" id="searchCar" name="searchCar" class="btnSearch blue_btn" style="float:none;">
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
<div class="contents_page_basic_margin" style="overflow:hidden;">
|
|
<div class="plm_table_wrap" style="width:40%; float:left; margin: 30px 0 0 0;">
|
|
<div style="overflow-y:scroll;">
|
|
<table class="plm_table" style="width:100%;">
|
|
<colgroup>
|
|
<col width="*">
|
|
<col width="*">
|
|
<col width="*">
|
|
<col width="*">
|
|
</colgroup>
|
|
<thead class="plm_thead">
|
|
<tr>
|
|
<td></td>
|
|
<td title="발생건수">발생건수</td>
|
|
<td title="조치건수">조치건수</td>
|
|
<td title="미결건수">미결건수</td>
|
|
</tr>
|
|
</thead>
|
|
</table>
|
|
</div>
|
|
<div class="plm_scroll_table" style="width:100%; height:280px;">
|
|
<table class="plm_table" id="carProblemStepList">
|
|
<colgroup>
|
|
<col width="*">
|
|
<col width="*">
|
|
<col width="*">
|
|
<col width="*">
|
|
</colgroup>
|
|
</table>
|
|
</div>
|
|
</div>
|
|
<div style="width:35%; float:left; margin:30px 0 0 40px;">
|
|
<div class="plm_thead" style="width:100%; height:26px; text-align:center; line-height:26px; font-size:13px;">단계별 문제점현황</div>
|
|
<div id="drillDownPieChart" style="width:60%; height:300px; margin: 0 auto;"></div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</form>
|
|
</body>
|
|
</html> |