Browse Source

echarts 无数据显示

huangzhiyong 8 years ago
parent
commit
d15da98cac

+ 8 - 2
src/main/java/com/yihu/hos/common/CommonPageController.java

@ -56,6 +56,12 @@ public class CommonPageController extends BaseController {
    private RemoteShellService remoteShellService;
    @RequestMapping("testPage")
    public String initial(Model model) {
        model.addAttribute("contentPage", "/common/test");
        return "pageView";
    }
    /*
    登录页面
     */
@ -290,9 +296,9 @@ public class CommonPageController extends BaseController {
            params.put("clientId", clientId);
            params.put("accessToken", token);
            HTTPResponse response = HttpClientKit.post(portalUrl + "/oauth/validToken", params);
            HTTPResponse response = HttpClientKit.post("http://sdw2:10260" + "/oauth/validToken", params);
            if (response.getStatusCode() != 200) {
                System.out.println("验证 token 请求失败!");
                System.out.println("验证 token 请求失败,token:"+token);
                return failed("验证 token 请求失败!");
            }

+ 374 - 0
src/main/java/com/yihu/hos/qc/controller/ReportController.java

@ -0,0 +1,374 @@
package com.yihu.hos.qc.controller;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.yihu.hos.core.http.HTTPResponse;
import com.yihu.hos.core.http.HttpClientKit;
import com.yihu.hos.qc.model.MQcDailyReportResultDetailModel;
import com.yihu.hos.web.framework.constant.ErrorCode;
import com.yihu.hos.web.framework.constant.SessionAttributeKeys;
import com.yihu.hos.web.framework.model.Envelop;
import com.yihu.hos.web.framework.util.controller.BaseController;
import jxl.Workbook;
import jxl.format.CellFormat;
import jxl.write.*;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.SessionAttributes;
import javax.servlet.http.HttpServletResponse;
import java.io.OutputStream;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
 * Created by llh on 2017/5/9.
 */
@Controller
@RequestMapping("/report")
@SessionAttributes(SessionAttributeKeys.CurrentUser)
public class ReportController extends BaseController {
    @Value("${service-gateway.adminUrl}")
    private String comUrl;
    /**
     * iframe 嵌入 趋势分析页
     * @param model
     * @return
     */
    @RequestMapping("iframeInitial")
    public String iframeInitial(Model model) {
        model.addAttribute("contentPage", "/qc/report");
        return "pageView";
    }
    /**
     * 趋势分析页
     * @param model
     * @return
     */
    @RequestMapping("initial")
    public String initial(Model model) {
        model.addAttribute("contentPage", "/qc/report/trendAnalysis");
        return "pageView";
    }
    /**
     * 趋势分析详情页
     * @param model
     * @return
     */
    @RequestMapping("trendAnalysisDetail")
    public String trendAnalysisDetail(Model model,String location,String orgCode,String orgName,String quotaId,String startTime,String endTime) {
        model.addAttribute("location",location);
        model.addAttribute("orgCode",orgCode);
        model.addAttribute("orgName",orgName);
        model.addAttribute("quotaId",quotaId);
        model.addAttribute("startTime",startTime);
        model.addAttribute("endTime",endTime);
        model.addAttribute("contentPage", "/qc/report/trendAnalysisDetail");
        return "pageView";
    }
    /**
     * 分析列表页面
     * @param model
     * @return
     */
    @RequestMapping("analysisList")
    public String addResources(Model model,String location,String orgName,String startTime,String endTime) {
        model.addAttribute("location",location);
        model.addAttribute("orgName",orgName);
        model.addAttribute("startTime",startTime);
        model.addAttribute("endTime",endTime);
        model.addAttribute("contentPage", "/qc/report/analysisList");
        return "pageView";
    }
    //所有指标统计结果查询,初始化查询
    @RequestMapping("/getQcOverAllIntegrity")
    @ResponseBody
    public Object searchQcOverAllIntegrity(String location,String startTime,String endTime){
        String url = "/report/getQcOverAllIntegrity";
        HTTPResponse resultStr = null;
        Envelop envelop = new Envelop();
        Map<String, String> params = new HashMap<>();
        params.put("location", location);
        params.put("startTime", startTime);
        params.put("endTime", endTime);
        try {
            resultStr = HttpClientKit.get(comUrl + url, params);
            return resultStr;
        } catch (Exception ex) {
            ex.printStackTrace();
            envelop.setSuccessFlg(false);
            envelop.setErrorMsg(ErrorCode.SystemError.toString());
            return envelop;
        }
    }
    //根据机构查询所有指标统计结果,初始化查询
    @RequestMapping("/getQcOverAllOrgIntegrity")
    @ResponseBody
    public Object searchQcOverAllOrgIntegrity(String location,String orgCode,String startTime,String endTime){
        String url = "/report/getQcOverAllOrgIntegrity";
        HTTPResponse resultStr = null;
        Envelop envelop = new Envelop();
        Map<String, String> params = new HashMap<>();
        params.put("location", location);
        params.put("orgCode", orgCode);
        params.put("startTime", startTime);
        params.put("endTime", endTime);
        try {
            resultStr = HttpClientKit.get(comUrl + url, params);
            return resultStr;
        } catch (Exception ex) {
            ex.printStackTrace();
            envelop.setSuccessFlg(false);
            envelop.setErrorMsg(ErrorCode.SystemError.toString());
            return envelop;
        }
    }
    //趋势分析 - 按区域列表查询,初始化查询
    @RequestMapping("/getQcQuotaIntegrity")
    @ResponseBody
    public Object searchQcQuotaIntegrity(String location,String quotaId,String startTime,String endTime){
        String url = "/report/getQcQuotaIntegrity";
        HTTPResponse resultStr = null;
        Envelop envelop = new Envelop();
        Map<String, String> params = new HashMap<>();
        params.put("location", location);
        params.put("quotaId", quotaId);
        params.put("startTime", startTime);
        params.put("endTime", endTime);
        try {
            resultStr = HttpClientKit.get(comUrl + url, params);
            return resultStr;
        } catch (Exception ex) {
            ex.printStackTrace();
            envelop.setSuccessFlg(false);
            envelop.setErrorMsg(ErrorCode.SystemError.toString());
            return envelop;
        }
    }
    //趋势分析 -按机构列表查询,初始化查询
    @RequestMapping("/getQcQuotaOrgIntegrity")
    @ResponseBody
    public Object searchQcQuotaOrgIntegrity(String orgCode,String quotaId,String startTime,String endTime){
        String url = "/report/getQcQuotaOrgIntegrity";
        HTTPResponse resultStr = null;
        Envelop envelop = new Envelop();
        Map<String, String> params = new HashMap<>();
        params.put("orgCode", orgCode);
        params.put("quotaId", quotaId);
        params.put("startTime", startTime);
        params.put("endTime", endTime);
        try {
            resultStr = HttpClientKit.get(comUrl + url, params);
            return resultStr;
        } catch (Exception ex) {
            ex.printStackTrace();
            envelop.setSuccessFlg(false);
            envelop.setErrorMsg(ErrorCode.SystemError.toString());
            return envelop;
        }
    }
    //分析明细列表
    @RequestMapping("/getQcQuotaDailyIntegrity")
    @ResponseBody
    public Object searchQcQuotaDailyIntegrity(String location,String startTime,String endTime){
        String url = "/report/getQcQuotaDailyIntegrity";
        HTTPResponse resultStr = null;
        Envelop envelop = new Envelop();
        Map<String, String> params = new HashMap<>();
        params.put("location", location);
        params.put("startTime", startTime);
        params.put("endTime", endTime);
        try {
            resultStr = HttpClientKit.get(comUrl + url, params);
            return resultStr;
        } catch (Exception ex) {
            ex.printStackTrace();
            envelop.setSuccessFlg(false);
            envelop.setErrorMsg(ErrorCode.SystemError.toString());
            return envelop;
        }
    }
    //根据地区、期间查询各机构某项指标的值
    @RequestMapping("/getQcQuotaByLocation")
    @ResponseBody
    public Object searchQcQuotaByLocation(String location,String quotaId,String startTime,String endTime){
        String url = "/report/getQcQuotaByLocation";
        HTTPResponse resultStr = null;
        Envelop envelop = new Envelop();
        Map<String, String> params = new HashMap<>();
        params.put("location", location);
        params.put("quotaId", quotaId);
        params.put("startTime", startTime);
        params.put("endTime", endTime);
        try {
            resultStr = HttpClientKit.get(comUrl + url, params);
            return resultStr;
        } catch (Exception ex) {
            ex.printStackTrace();
            envelop.setSuccessFlg(false);
            envelop.setErrorMsg(ErrorCode.SystemError.toString());
            return envelop;
        }
    }
    //根据地区、期间查询分析明细列表,并导出
    @RequestMapping("/exportToExcel")
    //@ResponseBody
    public void exportToExcel(HttpServletResponse response,String location,String startTime,String endTime){
        Envelop envelop = new Envelop();
        try {
            String fileName = "分析列表明细";
            String url="";
            HTTPResponse envelopStr = null;
            //设置下载
            response.setContentType("octets/stream");
            response.setHeader("Content-Disposition", "attachment; filename="
                    + new String( fileName.getBytes("gb2312"), "ISO8859-1" )+".xls");
            OutputStream os = response.getOutputStream();
            //获取导出字典
            Map<String,String> params = new HashMap<>();
            url = "/report/getQcQuotaDailyIntegrity";
            params.put("location",location);
            params.put("startTime",startTime);
            params.put("endTime",endTime);
            envelopStr = HttpClientKit.get(comUrl + url, params);
            Envelop qcEnvelop = getEnvelop(envelopStr.getBody());
            List<MQcDailyReportResultDetailModel> qcModelList = (List<MQcDailyReportResultDetailModel>)getEnvelopList(qcEnvelop.getDetailModelList(),new ArrayList<MQcDailyReportResultDetailModel>(),MQcDailyReportResultDetailModel.class) ;
            //写excel
            WritableWorkbook wwb = Workbook.createWorkbook(os);
            //创建Excel工作表 指定名称和位置
            WritableSheet ws = wwb.createSheet("质控分析明细",0);
            addStaticCell(ws);//添加固定信息,题头等
            //添加字典项信息
            WritableCellFormat wc = new WritableCellFormat();
            wc.setBorder(jxl.format.Border.ALL, jxl.format.BorderLineStyle.THIN, Colour.SKY_BLUE);//边框
            MQcDailyReportResultDetailModel qc=null;
            for(int i=0;i<qcModelList.size();i++) {
                int j=i+1;
                qc = (MQcDailyReportResultDetailModel)qcModelList.get(i);
                //添加列表明细
                addCell(ws,0,j,qc.getEventTime(),wc);//时间
                addCell(ws,1,j,qc.getOrgName(),wc);//机构名称
                addCell(ws,2,j,qc.getScaleType(),wc);//比例名称
                addCell(ws,3,j,qc.getArIntegrity(),wc);//整体数量完整性
                addCell(ws,4,j,qc.getDsIntegrity(),wc);//数据集完整性
                addCell(ws,5,j,qc.getMdIntegrity(),wc);//数据元完整性
                addCell(ws,6,j,qc.getMdAccuracy(),wc);//准确性
                addCell(ws,7,j,qc.getArTimely(),wc);//全部及时性
                addCell(ws,8,j,qc.getHpTimely(),wc);//住院病人及时性
                addCell(ws,9,j,qc.getOpTimely(),wc);//门诊病人及时性
            }
            //写入工作表
            wwb.write();
            wwb.close();
            os.flush();
            os.close();
        } catch (Exception e) {
            envelop.setSuccessFlg(false);
            envelop.setErrorMsg(ErrorCode.SystemError.toString());
        }
    }
    //excel中添加固定内容
    private void addStaticCell(WritableSheet ws){
        try {
            addCell(ws,0,0,"时间");
            addCell(ws,1,0,"对象");
            addCell(ws,2,0," ");
            addCell(ws,3,0,"整体数量完整性");
            addCell(ws,4,0,"数据集完整性");
            addCell(ws,5,0,"数据元完整性");
            addCell(ws,6,0,"准确性");
            addCell(ws,7,0,"全部及时性");
            addCell(ws,8,0,"住院病人及时性");
            addCell(ws,9,0,"门诊病人及时性");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    //添加单元格内容
    private void addCell(WritableSheet ws,int column,int row,String data){
        try {
            Label label = new Label(column,row,data);
            ws.addCell(label);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    //添加单元格内容带样式
    private void addCell(WritableSheet ws,int column,int row,String data,CellFormat cellFormat){
        try {
            Label label = new Label(column,row,data,cellFormat);
            ws.addCell(label);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    /**
     * 临时页
     * @param model
     * @return
     */
    @RequestMapping("initialLs")
    public String initialLs(Model model) {
        model.addAttribute("contentPage", "/qc/report/ls/orgAnalysisList");
        return "simpleView";
    }
    /**
     * 档案入库状况数据
     * @param model
     * @return
     */
    @RequestMapping("rukuData")
    @ResponseBody
    public Object rukuData(Model model,String orgCode,String startDate,String endDate) {
        String url = "/report/qcDailyStatisticsStorageByDate";
        HTTPResponse resultStr = null;
        Map<String, String> params = new HashMap<>();
        Envelop result = new Envelop();
        try {
            params.put("orgCode",orgCode);
            params.put("startDate",startDate);
            params.put("endDate",endDate);
            resultStr = HttpClientKit.get(comUrl + url, params);
            ObjectMapper mapper = new ObjectMapper();
            Envelop envelop = mapper.readValue(resultStr.getBody(), Envelop.class);
            if (!envelop.isSuccessFlg()) {
                result.setSuccessFlg(true);
                result.setDetailModelList(envelop.getDetailModelList());
                result.setObj(envelop.getObj());
                return result;
            } else {
                result.setSuccessFlg(false);
                return result;
            }
        } catch (Exception e) {
            result.setSuccessFlg(false);
            result.setErrorMsg(ErrorCode.SystemError.toString());
            return result;
        }
    }
}

+ 1 - 1
src/main/resources/application.yml

@ -62,7 +62,7 @@ hos:
service-gateway:
  portalUrl: http://192.168.1.221:10280/api/v1.0/portal
  adminUrl: http://192.168.1.221:10000/api/v1.0/admin
  url: http://172.19.103.70:9999/api
  url: http://172.19.103.37:9999/api
---
spring:
  profiles: test

+ 2 - 0
src/main/webapp/WEB-INF/ehr/commons/jsp/commonFoot.jsp

@ -15,3 +15,5 @@
<script src="${staticRoot}/lib/plugin/tips/tips.js"></script>
<script src="${staticRoot}/lib/plugin/validate/jValidate.js"></script>
<%--<script src="${contextRoot}/develop/lib/plugin/echarts/echarts-all.js"></script>--%>
<script src="${contextRoot}/develop/lib/plugin/echarts-2.2.7/echarts-all.js"></script>

+ 1 - 0
src/main/webapp/WEB-INF/ehr/jsp/common/indexJs.jsp

@ -115,6 +115,7 @@
                //质控规则管理
                {id: 8, text: '质控管理', icon: '${staticRoot}/images/index/menu05.png'},
                {id: 81, pid: 8, text: '规则管理', url: '${contextRoot}/rule/initial', icon: '${staticRoot}/images/index/Ins_icon.png'},
                <%--{id: 82, pid: 8, text: '质控报告', url: '${contextRoot}/oauth2/report', icon: '${staticRoot}/images/index/Ins_icon.png'},--%>
                {id: 82, pid: 8, text: '质控报告', url: '${contextRoot}/report/initial', icon: '${staticRoot}/images/index/Ins_icon.png'},
                <%--{id: 83, pid: 8, text: '档案入库情况', url: '${contextRoot}/report/initialLs', icon: '${staticRoot}/images/index/Ins_icon.png'},--%>

+ 1 - 0
src/main/webapp/WEB-INF/ehr/jsp/common/signinJs.jsp

@ -11,6 +11,7 @@
            {
                //获取accrss_token
                var tokenString =hash.substring(1,hash.indexOf("&"));
                debugger
                var token = tokenString.substr(hash.indexOf("="));
                //自动登录
                $.ajax({

+ 20 - 0
src/main/webapp/WEB-INF/ehr/jsp/common/test.jsp

@ -0,0 +1,20 @@
<%@ page language="java" contentType="text/html; charset=UTF-8"  pageEncoding="utf-8"%>
<%@include file="/WEB-INF/ehr/commons/jsp/commonInclude.jsp" %>
<div id="divErrorContent" style="background: url('${staticRoot}/images/404.png') no-repeat;">
</div>
<div id="main" style="width: 60%;height:400px;"></div>
<%-- 详细数据 --%>
<div id="detail" class="ml50 mt20">
</div>
</div>

+ 38 - 0
src/main/webapp/WEB-INF/ehr/jsp/common/testJs.jsp

@ -0,0 +1,38 @@
<%@ page language="java" contentType="text/html; charset=UTF-8"  pageEncoding="utf-8"%>
<%@include file="/WEB-INF/ehr/commons/jsp/commonInclude.jsp" %>
<script>
    var option = {
        series: [
            {
                name: "3的指数",
                type: "line",
                data: []
            },
            {
                name: "2的指数",
                type: "line",
                data: []
            }
        ]
    }
    var myChart = echarts.init(document.getElementById('main'));
    // 基于准备好的dom,初始化echarts实例
    // 指定图表的配置项和数据
    myChart.setOption(option);
    myChart.on('mouseover', function (params) {
//                 getInfo(host,type,params.name);
        console.log(params);
    });
</script>

+ 0 - 0
src/main/webapp/WEB-INF/ehr/jsp/common/tokenValidFailJs.jsp


+ 1 - 1
src/main/webapp/WEB-INF/ehr/jsp/monitor/server/sEnvManage.jsp

@ -55,7 +55,7 @@
            <div class="c-item" data-item="net">网络</div>
        </div>
            <%-- echarts 数据--%>
        <div id="main" style="width: 60%;height:400px;"></div>
        <div id="main" style="width: 60%;height:400px;border-bottom: 1px solid #999999 "></div>
            <%-- 详细数据 --%>
            <div id="detail" class="ml50 mt20">

+ 259 - 218
src/main/webapp/WEB-INF/ehr/jsp/monitor/server/sEnvManageJs.jsp

@ -1,11 +1,11 @@
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="utf-8" %>
<%@include file="/WEB-INF/ehr/commons/jsp/commonInclude.jsp" %>
<script src="${contextRoot}/develop/lib/plugin/echarts/echarts-all.js"></script>
<%--<script src="${contextRoot}/develop/echarts/echarts.js"></script>--%>
<script>
    var host ="";
    var host = "";
    var myChart;
    $(function () {
        myChart = echarts.init(document.getElementById('main'));
        getServerTree();
        //l-layout-left
        //初始化layout
@ -25,65 +25,62 @@
            width: 240,
            showTime: true
        });
        $("#repeatStartTime").ligerDateEditor("setValue",prevDate());
        $("#repeatEndTime").ligerDateEditor("setValue",nowDate());
        $("#repeatStartTime").ligerDateEditor("setValue", prevDate());
        $("#repeatEndTime").ligerDateEditor("setValue", nowDate());
        /*初始化时间控件-end*/
        //初始化图表
        var type = $(".div-menu .active").attr("data-item");
        var beginTime = $("#repeatStartTime").ligerDateEditor("getValue");
        var endTime = $("#repeatEndTime").ligerDateEditor("getValue");
        getServerInfo(host,type,beginTime,endTime);
        getInfo(host,type,endTime);
        getServerInfo(host, type, beginTime, endTime);
        getInfo(host, type, endTime);
        //搜索按钮事件
        $(".m-form-control").on("click","#btnSearch",function(){
        $(".m-form-control").on("click", "#btnSearch", function () {
            var beginTime = $("#repeatStartTime").ligerDateEditor("getValue");
            var endTime = $("#repeatEndTime").ligerDateEditor("getValue");
            if(beginTime=="" && $endTime=="")
            {
            if (beginTime == "" && $endTime == "") {
                $.ligerDialog.error("请选择起始结束时间!");
                return false;
            }
            if(beginTime > endTime)
            {
            if (beginTime > endTime) {
                $.ligerDialog.error("开始时间不能大于结束时间!");
                return false;
            }
            var type = $(".div-menu .active").attr("data-item");
            //获取服务器监控数据
            getServerInfo(host,type,beginTime,endTime);
            getInfo(host,type,endTime);
            getServerInfo(host, type, beginTime, endTime);
            getInfo(host, type, endTime);
        })
        //选项卡切换时间
        $(".div-menu").on("click",".c-item",function(){
        $(".div-menu").on("click", ".c-item", function () {
            $(".div-menu .c-item").removeClass("active");
            $(this).addClass("active");
            var type = $(this).attr("data-item");
            //获取服务器监控数据
            var beginTime = $("#repeatStartTime").ligerDateEditor("getValue");
            var endTime = $("#repeatEndTime").ligerDateEditor("getValue");
            if(beginTime > endTime)
            {
            if (beginTime > endTime) {
                $.ligerDialog.error("开始时间不能大于结束时间!");
                myChart.clear();
                return false;
            }
            getServerInfo(host,type,beginTime,endTime);
            getInfo(host,type,endTime);
            getServerInfo(host, type, beginTime, endTime);
            getInfo(host, type, endTime);
        })
    });
    function getServerTree(){
    function getServerTree() {
        var serviceTree = $("#div_wrapper_left_ul_resourcetree");
        //初始化树
        $.ajax({
            type: "GET",
            dataType : "json",
            dataType: "json",
            url: "${contextRoot}/monitor/server/trees",
            async: false,
            success: function (msg) {
@ -102,14 +99,12 @@
                            host = obj.data.id;
                            var beginTime = $("#repeatStartTime").ligerDateEditor("getValue");
                            var endTime = $("#repeatEndTime").ligerDateEditor("getValue");
                            if(beginTime=="" && $endTime=="")
                            {
                            if (beginTime == "" && $endTime == "") {
                                $.ligerDialog.error("请选择起始结束时间!");
                                return false;
                            }
                            if(beginTime > endTime)
                            {
                            if (beginTime > endTime) {
                                $.ligerDialog.error("开始时间不能大于结束时间!");
                                return false;
@ -118,8 +113,8 @@
                            var type = $(".div-menu .active").attr("data-item");
                            //获取服务器监控数据
                            getServerInfo(host,type,beginTime,endTime);
                            getInfo(host,type,endTime);
                            getServerInfo(host, type, beginTime, endTime);
                            getInfo(host, type, endTime);
                        },
                        onSuccess: function (data) {
                            alert(2222);
@ -131,18 +126,17 @@
        });
    }
    function getServerInfo(host,type,beginTime,endTime){
    function getServerInfo(host, type, beginTime, endTime) {
        $.ajax({
            type: "GET",
            url : "${contextRoot}/monitor/server/usage",
            dataType : "json",
            data:{host:host,type:type,beginTime:beginTime,endTime:endTime},
            cache:false,
            success :function(re){
                if(re.successFlg) {
            url: "${contextRoot}/monitor/server/usage",
            dataType: "json",
            data: {host: host, type: type, beginTime: beginTime, endTime: endTime},
            cache: false,
            success: function (re) {
                if (re.successFlg) {
                    //TODO 设置图表
                    switch(type)
                    {
                    switch (type) {
                        case "cpu":
                            env.cpuInfo(re);
                            break;
@ -159,19 +153,19 @@
                            break;
                    }
                }
                else{
                else {
                    $.ligerDialog.error(re.message);
                }
            },
            error :function(data){
                $.ligerDialog.error("Status:"+data.status +"(" +data.statusText+")");
            error: function (data) {
                $.ligerDialog.error("Status:" + data.status + "(" + data.statusText + ")");
            }
        });
    }
    var env ={
    var env = {
        $resourceTree: $("#div_wrapper_left_ul_resourcetree"),//树对象
    init:function(){
        init: function () {
            //初始化树
            var resourceTree = this.$resourceTree;
            $.ajax({
@ -193,96 +187,116 @@
                }
            });
        },
        cpuInfo:function(re){
         var data = re.data;
         if(data!=null && data.length>0)
         {
             var x = [];
             var y1=[];
             var y2=[];
             myChart = echarts.init(document.getElementById('main'));
             for(var i=0;i<data.length;i++)
             {
        cpuInfo: function (re) {
            var data = re.data;
            var option = {
                series: [
                    {
                        name: '系统使用率',
                        type: 'line',
                        data: []
                    },
                    {
                        name: '总使用率',
                        type: 'line',
                        data: []
                    }
                ]
            }
            myChart = echarts.init(document.getElementById('main'));
            if (data != null && data.length > 0) {
                var x = [];
                var y1 = [];
                var y2 = [];
                for (var i = 0; i < data.length; i++) {
//                 var create_date = data[i].create_date.substring(11,16);
//                 x.push(create_date);
                 x.push(data[i].create_date);
                 y1.push(data[i].data.sysPerc);
                 y2.push(data[i].data.totalPerc);
             }
             // 基于准备好的dom,初始化echarts实例
             // 指定图表的配置项和数据
             var option = {
                 title: {
                     text: ' CPU指标',
                     left: 'center'
                 },
                 tooltip: {
                     trigger: 'axis',
                     formatter: '{b} <br/>{a0}: {c0}% <br/>{a1}: {c1}%'
                 },
                 dataZoom : {
                     show : true,
                     start : 0,
                     end : 100
                 },
                 legend: {
                     left: 'left',
                     data: ['系统使用率','总使用率']
                 },
                 xAxis: {
                     type: 'category',
                     name: '时间',
                     splitLine: {show: false},
                     data: x
                 },
                 grid: {
                     left: '3%',
                     right: '4%',
                     bottom: '3%',
                     containLabel: true
                 },
                 yAxis: {
                     type: 'log',
                     name: '使用率'
                 },
                 series: [
                     {
                         name: '系统使用率',
                         type: 'line',
                    x.push(data[i].create_date);
                    y1.push(data[i].data.sysPerc);
                    y2.push(data[i].data.totalPerc);
                }
                // 基于准备好的dom,初始化echarts实例
                // 指定图表的配置项和数据
                option = {
                    title: {
                        text: ' CPU指标',
                        left: 'center'
                    },
                    tooltip: {
                        trigger: 'axis',
                        formatter: '{b} <br/>{a0}: {c0}% <br/>{a1}: {c1}%'
                    },
                    dataZoom: {
                        show: true,
                        start: 0,
                        end: 100
                    },
                    legend: {
                        left: 'left',
                        data: ['系统使用率', '总使用率']
                    },
                    xAxis: {
                        type: 'category',
                        name: '时间',
                        splitLine: {show: false},
                        data: x
                    },
                    grid: {
                        left: '3%',
                        right: '4%',
                        bottom: '3%',
                        containLabel: true
                    },
                    yAxis: {
                        type: 'log',
                        name: '使用率'
                    },
                    series: [
                        {
                            name: '系统使用率',
                            type: 'line',
//                         itemStyle: {normal: {areaStyle: {type: 'default'}}},
                         data: y1
                     },
                     {
                         name: '总使用率',
                         type: 'line',
                            data: y1
                        },
                        {
                            name: '总使用率',
                            type: 'line',
//                         itemStyle: {normal: {areaStyle: {type: 'default'}}},
                         data: y2
                     }
                 ]
             };
             myChart.setOption(option);
             myChart.on('mouseover', function (params) {
                            data: y2
                        }
                    ]
                };
                myChart.setOption(option);
                myChart.on('mouseover', function (params) {
//                 getInfo(host,type,params.name);
                 console.log(params);
             });
             //设置图例下方的信息
         }
         else{
            //TODO 清除数据处理
             myChart.clear();
         }
    },
        memory:function(re){
                    console.log(params);
                });
                //设置图例下方的信息
            }
            else {
                //TODO 清除数据处理
                myChart.setOption(option);
                myChart.clear();
            }
        },
        memory: function (re) {
            var data = re.data;
            if(data!=null && data.length>0)
            {
            var option = {
                series: [
                    {
                        name: '使用率',
                        type: 'line',
                        data: []
                    }
                ]
            };
            myChart = echarts.init(document.getElementById('main'));
            if (data != null && data.length > 0) {
                var x = [];
                var y1=[];
                var y2=[];
                myChart = echarts.init(document.getElementById('main'));
                for(var i=0;i<data.length;i++)
                {
                var y1 = [];
                var y2 = [];
                for (var i = 0; i < data.length; i++) {
//                    var create_date = data[i].create_date.substring(11,16);
                    x.push(data[i].create_date);
                    y1.push(data[i].data.usedPerc);
@ -290,7 +304,7 @@
                }
                // 基于准备好的dom,初始化echarts实例
                // 指定图表的配置项和数据
                var option = {
                option = {
                    title: {
                        text: ' 内存使用率指标',
                        left: 'center'
@ -299,10 +313,10 @@
                        trigger: 'axis',
                        formatter: '{b} <br/>{a0}: {c0}% '
                    },
                    dataZoom : {
                        show : true,
                        start : 0,
                        end : 100
                    dataZoom: {
                        show: true,
                        start: 0,
                        end: 100
                    },
                    legend: {
                        left: 'left',
@ -334,26 +348,39 @@
                };
                myChart.setOption(option);
            }
            else{
               //TODO 清除数据
            else {
                //TODO 清除数据
                myChart.setOption(option);
                myChart.clear();
            }
        },
        files:function(re){
        files: function (re) {
            var data = re.data;
            if(data!=null && data.length>0)
            {
            myChart = echarts.init(document.getElementById('main'));
            var option = {
                series: [
                    {
                        name: '已使用',
                        type: 'line',
                        data: []
                    },
                    {
                        name: '总量',
                        type: 'line',
                        data: []
                    }
                ]
            };
            if (data != null && data.length > 0) {
                var x = [];
                var y1=[];
                var y2=[];
                myChart = echarts.init(document.getElementById('main'));
                for(var i=0;i<data.length;i++)
                {
                var y1 = [];
                var y2 = [];
                for (var i = 0; i < data.length; i++) {
                    var count = 0
                    var total =0;
                    var total = 0;
//                    var create_date = data[i].create_date.substring(11,16);
                    x.push(data[i].create_date);
                    for(var j=0;j<data[i].data.length;j++){
                    for (var j = 0; j < data[i].data.length; j++) {
                        count += data[i].data[j].used;
                        total += data[i].data[j].total;
                    }
@ -362,7 +389,7 @@
                }
                // 基于准备好的dom,初始化echarts实例
                // 指定图表的配置项和数据
                var option = {
                option = {
                    title: {
                        text: ' 磁盘指标',
                        left: 'center'
@ -372,10 +399,10 @@
                        formatter: '{b} <br/>{a0}: {c0} G <br/>{a1}: {c1} G'
                    },
                    dataZoom : {
                        show : true,
                        start : 0,
                        end : 100
                    dataZoom: {
                        show: true,
                        start: 0,
                        end: 100
                    },
                    legend: {
                        left: 'left',
@ -412,22 +439,36 @@
                };
                myChart.setOption(option);
            }
            else{
            else {
                //TODO 清除数据
                myChart.setOption(option);
                myChart.clear();
            }
        },
        net:function(re){
        net: function (re) {
            var me = this;
            var data = re.data;
            if(data!=null && data.length>0)
            {
            var option = {
                series: [
                    {
                        name: '接收',
                        type: 'line',
                        data: []
                    },
                    {
                        name: '发送',
                        type: 'line',
                        data: []
                    }
                ]
            };
            myChart = echarts.init(document.getElementById('main'));
            if (data != null && data.length > 0) {
                var x = [];
                var y1=[];
                var y2=[];
                myChart = echarts.init(document.getElementById('main'));
                for(var i=0;i<data.length;i++)
                {
                var y1 = [];
                var y2 = [];
                for (var i = 0; i < data.length; i++) {
//                    var create_date = data[i].create_date.substring(11,16);
                    x.push(data[i].create_date);
                    y1.push(data[i].data.rxbps);
@ -435,7 +476,7 @@
                }
                // 基于准备好的dom,初始化echarts实例
                // 指定图表的配置项和数据
                var option = {
                option = {
                    title: {
                        text: ' 网络指标',
                        left: 'center'
@ -444,16 +485,16 @@
                        trigger: 'axis',
                        formatter: '{b} <br/>{a0}: {c0} kbps <br/>{a1}: {c1} kbps'
                    },
                    dataZoom : {
                        show : true,
                        start : 0,
                        end : 100
                    dataZoom: {
                        show: true,
                        start: 0,
                        end: 100
                    },
                    legend: {
                        left: 'left',
                        data: ['接收', '发送']
                    },
                        xAxis: {
                    xAxis: {
                        type: 'category',
                        name: '时间',
                        splitLine: {show: false},
@ -484,8 +525,9 @@
                };
                myChart.setOption(option);
            }
            else{
               //TODO 清除数据
            else {
                //TODO 清除数据
                myChart.setOption(option);
                myChart.clear();
            }
        }
@ -493,7 +535,7 @@
    /*当前时间*/
    function nowDate(){
    function nowDate() {
        var date = new Date();
        var year = date.getFullYear();
        var month = date.getMonth() + 1;
@ -501,78 +543,77 @@
        var hour = date.getHours();
        var minute = date.getMinutes();
        var second = date.getSeconds();
        return year + '-' + month + '-' + day  + ' ' + hour + ':' + minute + ':' + second;
        return year + '-' + month + '-' + day + ' ' + hour + ':' + minute + ':' + second;
    }
    /*前一天时间*/
    function prevDate(){
    function prevDate() {
        var now = new Date();
        var date = new Date(now.getTime() -  24 * 3600 * 1000);
        var date = new Date(now.getTime() - 24 * 3600 * 1000);
        var year = date.getFullYear();
        var month = date.getMonth() + 1;
        var day = date.getDate();
        return year + '-' + month + '-' + day  + ' 00:00:00';
        return year + '-' + month + '-' + day + ' 00:00:00';
    }
    /* **************************动态DIV添加************************ */
    /*  详情数据*/
    function getInfo(host,type,date){
    function getInfo(host, type, date) {
        $.ajax({
            type: "GET",
            url : "${contextRoot}/monitor/server/detail",
            dataType : "json",
            data:{host:host,type:type,date:date},
            cache:false,
            success :function(re){
                if(re.successFlg) {
            url: "${contextRoot}/monitor/server/detail",
            dataType: "json",
            data: {host: host, type: type, date: date},
            cache: false,
            success: function (re) {
                if (re.successFlg) {
                    //TODO 设置详情数据
                    var data = re.data;
                    if(data!=null && !isEmpty(data)){
                    if (data != null && !isEmpty(data)) {
                        var envData = data.data;
                        var $envInfo = $("#detail");
                        var html;
                        switch(type)
                        {
                        switch (type) {
                            case "cpu":
                                html= getCpuHtml(envData);
                                html = getCpuHtml(envData);
                                break;
                            case "memory":
                                html= getMemoryHtml(envData);
                                html = getMemoryHtml(envData);
                                break;
                            case "files":
                                html= getFilesHtml(envData);
                                html = getFilesHtml(envData);
                                break;
                            case "net":
                                html= getNetHtml(envData);
                                html = getNetHtml(envData);
                                break;
                            default:
                                break;
                        }
                        $envInfo.html(html);
                    }else{
                    } else {
                        myChart.clear();
                    }
                }
                else{
                else {
                    $.ligerDialog.error(re.message);
                }
            },
            error :function(data){
                $.ligerDialog.error("Status:"+data.status +"(" +data.statusText+")");
            error: function (data) {
                $.ligerDialog.error("Status:" + data.status + "(" + data.statusText + ")");
            }
        });
    }
    function getCpuHtml(envData){
    function getCpuHtml(envData) {
        var html = "<div class=\"div-item\">\n" +
                "                    <div>\n" +
                "                        <div class=\"d-item\">利用率</div>" +
//                "                        <div class=\"d-item\">速度</div>" +
                "                    </div>" +
                "                    <div class=\"mb20\">\n" +
                "                        <div class=\"c-content\">"+envData.userPerc+"%</div>" +
                "                        <div class=\"c-content\">" + envData.userPerc + "%</div>" +
//                "                        <div class=\"c-content\">2.18GHZ</div>\n" +
                "                    </div>\n" +
//                "                    <div>\n" +
@ -591,11 +632,11 @@
//                "                    </div>\n" +
                "                </div>\n" +
                "                <div class=\"div-item\">\n" +
                "                    <div class=\"div-right-item\">最大速度:<span class=\"f-fs14 c-fwb\">"+envData.model.substring(envData.model.length-8)+"</span></div>\n" +
                "                    <div class=\"div-right-item\">最大速度:<span class=\"f-fs14 c-fwb\">" + envData.model.substring(envData.model.length - 8) + "</span></div>\n" +
//                "                    <div class=\"div-right-item\">插槽:<span class=\"f-fs14 c-fwb\">1</span></div>\n" +
                "                    <div class=\"div-right-item\">内核:<span class=\"f-fs14 c-fwb\">"+envData.quantity+"</span></div>\n" +
                "                    <div class=\"div-right-item\">逻辑处理器:<span class=\"f-fs14 c-fwb\">"+envData.totalCores+"</span></div>\n" +
                "                    <div class=\"div-right-item\">物理处理器:<span class=\"f-fs14 c-fwb\">"+envData.totalSockets+"</span></div>\n" +
                "                    <div class=\"div-right-item\">内核:<span class=\"f-fs14 c-fwb\">" + envData.quantity + "</span></div>\n" +
                "                    <div class=\"div-right-item\">逻辑处理器:<span class=\"f-fs14 c-fwb\">" + envData.totalCores + "</span></div>\n" +
                "                    <div class=\"div-right-item\">物理处理器:<span class=\"f-fs14 c-fwb\">" + envData.totalSockets + "</span></div>\n" +
//                "                    <div class=\"div-right-item\">L1缓存:<span class=\"f-fs14 c-fwb\">121KB</span></div>\n" +
//                "                    <div class=\"div-right-item\">L2缓存:<span class=\"f-fs14 c-fwb\">512KB</span></div>\n" +
//                "                    <div class=\"div-right-item\">L3缓存:<span class=\"f-fs14 c-fwb\">3.0MB</span></div>\n" +
@ -604,73 +645,73 @@
        return html;
    }
    function getMemoryHtml(envData){
    function getMemoryHtml(envData) {
        var html = "<div class=\"div-item\">\n" +
                "                    <div>\n" +
                "                        <div class=\"d-item\">已使用</div>" +
                "                        <div class=\"d-item\">可用</div>" +
                "                    </div>" +
                "                    <div class=\"mb20\">\n" +
                "                        <div class=\"c-content\">"+envData.used+"G</div>" +
                "                        <div class=\"c-content\">"+envData.free+"G</div>\n" +
                "                        <div class=\"c-content\">" + envData.used + "G</div>" +
                "                        <div class=\"c-content\">" + envData.free + "G</div>\n" +
                "                    </div>\n" +
                "                    <div>\n" +
                "                        <div class=\"d-item\">交换区使用量</div>\n" +
                "                        <div class=\"d-item\">交换区可用量</div>\n" +
                "                    </div>\n" +
                "                    <div class=\"mb20\">\n" +
                "                        <div class=\"c-content\">"+envData.swapUsed+"G</div>\n" +
                "                        <div class=\"c-content\">"+envData.swapFree+"G</div>\n" +
                "                        <div class=\"c-content\">" + envData.swapUsed + "G</div>\n" +
                "                        <div class=\"c-content\">" + envData.swapFree + "G</div>\n" +
                "                    </div>\n" +
                "                </div>\n" +
                "                <div class=\"div-item\">\n" +
                "            <div>" +
        "                        <div class=\"d-item\">总量:</div>\n" +
        "                        <div class=\"d-item\">交换区总量:</div>\n" +
        "                    </div>\n" +
        "                    <div class=\"mb20\">\n" +
        "                        <div class=\"c-content\">"+envData.total+"G</div>\n" +
        "                        <div class=\"c-content\">"+envData.swapTotal+"G</div>\n" +
        "                    </div>\n" +
                "                        <div class=\"d-item\">总量:</div>\n" +
                "                        <div class=\"d-item\">交换区总量:</div>\n" +
                "                    </div>\n" +
                "                    <div class=\"mb20\">\n" +
                "                        <div class=\"c-content\">" + envData.total + "G</div>\n" +
                "                        <div class=\"c-content\">" + envData.swapTotal + "G</div>\n" +
                "                    </div>\n" +
                "                </div>";
        return html;
    }
    function getFilesHtml(envData){
        var html ="";
    function getFilesHtml(envData) {
        var html = "";
        var total = "";
        var use ="";
        if(envData.length>0){
            for(var i=0;i<envData.length;i++){
                total+="<div class=\"div-right-item\">"+envData[i].devName+"盘总量:<span class=\"f-fs14 c-fwb\">"+envData[i].total+"G</span></div>";
                use+="<div class=\"div-right-item\">"+envData[i].devName+"盘已使用:<span class=\"f-fs14 c-fwb\">"+envData[i].used+"G</span></div>";
        var use = "";
        if (envData.length > 0) {
            for (var i = 0; i < envData.length; i++) {
                total += "<div class=\"div-right-item\">" + envData[i].devName + "盘总量:<span class=\"f-fs14 c-fwb\">" + envData[i].total + "G</span></div>";
                use += "<div class=\"div-right-item\">" + envData[i].devName + "盘已使用:<span class=\"f-fs14 c-fwb\">" + envData[i].used + "G</span></div>";
            }
            html = "<div class=\"div-item\">" +total+"</div><div class=\"div-item\">"+use+"</div>";
            html = "<div class=\"div-item\">" + total + "</div><div class=\"div-item\">" + use + "</div>";
        }
        return html;
    }
    function getNetHtml(envData){
    function getNetHtml(envData) {
        var html = "<div class=\"div-item\">\n" +
                "                    <div>\n" +
                "                        <div class=\"d-item\">发送</div>" +
                "                    </div>" +
                "                    <div class=\"mb20\">\n" +
                "                        <div class=\"c-content\">"+envData.txbps+" kbps</div>" +
                "                        <div class=\"c-content\">" + envData.txbps + " kbps</div>" +
                "                    </div>\n" +
                "                    <div>\n" +
                "                        <div class=\"d-item\">接收</div>\n" +
                "                    </div>\n" +
                "                    <div class=\"mb20\">\n" +
                "                        <div class=\"c-content\">"+envData.rxbps+" kbps</div>\n" +
                "                        <div class=\"c-content\">" + envData.rxbps + " kbps</div>\n" +
                "                    </div>\n" +
                "                </div>\n" +
                "                <div class=\"div-item\">\n" +
                "                    <div class=\"div-right-item\">適配器名:<span class=\"f-fs14 c-fwb\">"+envData.name+"</span></div>\n" +
                "                    <div class=\"div-right-item\">连接类型:<span class=\"f-fs14 c-fwb\">"+envData.type+"</span></div>\n" +
                "                    <div class=\"div-right-item\">IP地址:<span class=\"f-fs14 c-fwb\">"+envData.address+"</span></div>\n" +
                "                    <div class=\"div-right-item\">Mac地址:<span class=\"f-fs14 c-fwb\">"+envData.mac+"</span></div>\n" +
                "                    <div class=\"div-right-item\">適配器名:<span class=\"f-fs14 c-fwb\">" + envData.name + "</span></div>\n" +
                "                    <div class=\"div-right-item\">连接类型:<span class=\"f-fs14 c-fwb\">" + envData.type + "</span></div>\n" +
                "                    <div class=\"div-right-item\">IP地址:<span class=\"f-fs14 c-fwb\">" + envData.address + "</span></div>\n" +
                "                    <div class=\"div-right-item\">Mac地址:<span class=\"f-fs14 c-fwb\">" + envData.mac + "</span></div>\n" +
                "                </div>";
        return html;
    }

File diff suppressed because it is too large
+ 35 - 0
src/main/webapp/develop/lib/plugin/echarts-2.2.7/echarts-all.js


File diff suppressed because it is too large
+ 20 - 0
src/main/webapp/develop/lib/plugin/echarts-2.2.7/echarts.js