1. 程式人生 > >echart動態載入多個柱形圖

echart動態載入多個柱形圖

前臺

service層

@Service("hosdeptStatusService")
@Transactional
public class HosdeptServiceImpl implements HosdeptStatusService {

    @Autowired
    private HosdeptStatusDAO hosdeptStatisDAO;
    
    
    /**
     * 原生sql實現
     */
    @Autowired
    private BaseDAO baseDao;

    @Override
    public List<Map<String, String>> queryNumAndDate(String orgCode) {
        String sql="select DEPT_NAME,BUSY_DATE,ORG_CODE,O_NUM from (select DEPT_NAME,BUSY_DATE,ORG_CODE,O_NUM from PHP_MOBILE_HOS_DEPT_STATUS order by BUSY_DATE) where rownum<=7"
                + "  and t.ORG_CODE='"+ orgCode + "'"+" order by rownum DESC";
        List<Map<String, String>> list = new ArrayList<Map<String, String>>(); 
        List<Map<String, Object>> mapList = baseDao.mapQueryBySql(sql);
        for (Map<String, Object> map : mapList){
            Map<String, String> mp=new HashMap<String, String>();
            mp.put("deptName", map.get("DEPT_NAME").toString());
            mp.put("busyDate", map.get("BUSY_DATE").toString());
            mp.put("oNum", map.get("O_NUM").toString());
            list.add(mp);
        }
        return list;
    }

    @Override
    public List<Map<String, String>> oldPeopVis(String orgCode) {
        // TODO Auto-generated method stub
        return null;
    }

    @Override
    public Response queryDeptStaicData(String orgCode) {
        String sql="SELECT t.DEPT_NAME  FROM PHP_MOBILE_HOS_DEPT_STATUS t   where " +" t.ORG_CODE='"+ orgCode + "'" + "  and t.DEPT_NAME is not null  GROUP BY t.DEPT_NAME"; 
        List<Map<String, String>> list = new ArrayList<Map<String, String>>();
        //獲得醫院的所有科室
        List<Map<String, Object>> deptNameList = baseDao.mapQueryBySql(sql);
        
        for (Map<String, Object> map : deptNameList){
            Map<String, String> data = new HashMap<String, String>();
            //迴圈獲得科室名稱
            Object DEPT_NAME = map.get("DEPT_NAME");
            if(DEPT_NAME != null && !"".equals(DEPT_NAME) && !"null".equals(DEPT_NAME)) {
                StringBuffer dateStr = new StringBuffer();//時間
                StringBuffer oNumStr = new StringBuffer();//門診量
                
                
                
                String sql1="select DEPT_NAME,BUSY_DATE,ORG_CODE,O_NUM from (select DEPT_NAME,BUSY_DATE,ORG_CODE,O_NUM from PHP_MOBILE_HOS_DEPT_STATUS order by BUSY_DATE) where rownum<=7"
                        + "  and DEPT_NAME='"+ DEPT_NAME + "'"+" order by rownum DESC";
                
                //通過部門名稱獲取時間和門診量
                List<Map<String, Object>> dateAndNumList = baseDao.mapQueryBySql(sql1);
                if(dateAndNumList != null) {
                    for (Map<String, Object> map1 : dateAndNumList){
                        dateStr.append(map1.get("BUSY_DATE").toString()).append(",");
                        oNumStr.append(map1.get("O_NUM").toString()).append(",");
                    }
                    String as1 = dateStr.toString();
                    String as2 = oNumStr.toString();
                    data.put("BUSY_DATE", as1.substring(0,as1.length() - 1));
                    data.put("O_NUM", as2.substring(0,as2.length() - 1));
                    data.put("DEPT_NAME", DEPT_NAME.toString());
                }
                
                list.add(data);
            }else {
                return new FailedResponse("科室名稱為空");
            }
        }
        if(list.size() > 0) {
            return new ObjectResponse<List<Map<String, String>>>(list);
        }else {
            return new FailedResponse("沒有取到醫院下的科室資料");
        }
    }


    
    
    
    @Override
    public Response queryHositoryInfo(String orgCode) {
        String sql="SELECT t.ORGANNAME,t.ADDRESS,t.TEL FROM hc_gy_sys.SYS_ORGANIZATION t WHERE "
                +" t.ORGANCODE='"+ orgCode + "'" ; 
        List<Map<String, String>> list = new ArrayList<Map<String, String>>();
                //通過醫院ID獲取醫詳情資訊
                List<Map<String, Object>> dateAndNumList = baseDao.mapQueryBySql(sql);
                if (dateAndNumList!=null) {
                    for (Map<String, Object> map : dateAndNumList){
                        Map<String, String> mp=new HashMap<String, String>();
                        Object ORGANNAME = map.get("ORGANNAME");
                        Object ADDRESS = map.get("ADDRESS");
                        Object TEL = map.get("TEL");
                        if(ORGANNAME != null && !"".equals(ORGANNAME) && !"null".equals(ORGANNAME)) {
                            mp.put("organName", ORGANNAME.toString());
                        }
                        
                        if(ADDRESS != null && !"".equals(ADDRESS) && !"null".equals(ADDRESS)) {
                            mp.put("address", ADDRESS.toString());    
                        }
                        
                        if(TEL != null && !"".equals(TEL) && !"null".equals(TEL)) {
                            mp.put("tel", TEL.toString());
                        }
                        list.add(mp);
                    }
                }else {
             return new FailedResponse("沒有取到醫院資料");
                }
        if(list.size() > 0) {
            return new ObjectResponse<List<Map<String, String>>>(list);
        }else {
            return new FailedResponse("沒有取到醫院資料");
        }
    }

}

baseDao

@SuppressWarnings("unchecked")
    @Override
    public List<Map<String, Object>> mapQueryBySql(String sql) {
        List<Map<String, Object>> list = null;
        Session session = null;
        try {
            session = sessionFactory.openSession();
            list = session.createSQLQuery(sql).setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP).list();
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            if (session != null && session.isOpen()) {
                session.close();
                session = null;
            }
        }
        return list;
    }

後臺js使用:

app.hospital.dept.busy = {
    orgCode:"",
    open : function(orgCode){
        debugger;
        app.hospital.dept.busy.orgCode = orgCode;
        if(typeof(navigator.connection) != "undefined" && typeof(Connection) != "undefined"){
            if(navigator.connection.type == Connection.NONE) {
                app.alert('網路連線不穩定,請檢查網路後重新整理重試。', '網路異常');
            } else {
                app.viewMain.router.load({url: 'pages/guide/deptBusy.html'});
            }
        }else{
            app.viewMain.router.load({url: 'pages/guide/deptBusy.html'});
        }
    },
    init : function() {
        debugger;
        //alert(app.hospital.dept.busy.orgCode);
        
        app.api.hospital.queryDeptStaicData({
            data : {orgCode : app.hospital.dept.busy.orgCode},
            success : function(result) {
                debugger;
                if (result.responseCode == "0") {
                    app.alert(result.responseMsg, '錯誤');
                } else {
                    var datasTemp = result.datas;
                    for(var i=0; i<datasTemp.length; i++){
                        var id = "deptEchartsDiv_"+i;
                        var template = j$("#deptEchartsDivTemplate").clone();
                        var div = j$(template.html());
                        div.attr("id",id);
                        j$("#deptEchartsShowDiv").append(div);
                        
                        var bd = datasTemp[i].BUSY_DATE;
                        var onum = datasTemp[i].O_NUM;
                        var dn = datasTemp[i].DEPT_NAME;
                        app.hospital.dept.busy.createEcharts(id,dn,bd.split(","),onum.split(",")); 
                    }
                }
            },
            error : app.api.error 
        });
        
        /*app.api.hospital.queryHositoryInfo({
            data : {orgCode : app.hospital.dept.busy.orgCode},
            success : function(result) {
                debugger;
                if (result.responseCode == "0") {
                    app.alert(result.responseMsg, '錯誤');
                } else {
                    var datasTemp = result.datas;
                    //alert(datasTemp);
                    var template = $('#tmpl-hospital-introduction-list').html();
                    $('#hospital-introduction-list').html($m.tmpl(template, datasTemp));
                    
                }
            },
            error : app.api.error 
        });*/
        
    }, 
    createEcharts : function(id,name,bd,onum){
        var myChart = echarts.init(document.getElementById(id));
        var option = {
            title: {
                text: name
            },
            legend: {
                data:['科室']
            },
            grid: { // 控制圖的大小,調整下面這些值就可以,
                x: 40,
                x2: 100,
                y2: 150,// y2可以控制 X軸跟Zoom控制元件之間的間隔,避免以為傾斜後造成 label重疊到zoom上
            },
            xAxis: {
                data: bd,
                axisLabel:{
                     /*interval:0,//橫軸資訊全部顯示
                     rotate:-30,//-30度角傾斜顯示*/
                    formatter:function(val){
                        return val.split("").join("\n");
                    }
            }
            },
            series: [{
                name: '門診量', 
                type: 'bar',
                data: onum
            }]
        };
        myChart.setOption(option);
    }
};

// 增加醫院標註
            app.hospital.busy.map.addMarker({
                longitude : hdata[i].coord.longitude,
                latitude : hdata[i].coord.latitude,
                //iconUrl : 'images/icon/hospital/' + hdata[i].busyLevel + '.png',
                markerOffset : {
                    x: width,
                    y: -30
                },
                html : '<div class="map-window hospital-busy-marker">'+
                            '<div><img src="images/icon/hospital/' + hdata[i].busyLevel + '.png" /></div>'+
                            '<div><span class = "busy-level-img-background-'+hdata[i].busyLevel+'" > '+hdata[i].name+' </span></div>'+
                        '</div>',
                content : '<div class="map-window map-busy">' + '<div class="hospital-name" >' + hdata[i].name
                        + '</div>' + departmentStr + '<div class="busy-title" >繁忙程度</div>'
                        + '<div class="busy-level-img busy-level-img-background-' + hdata[i].busyLevel + '" >'
                        + hdata[i].busyDisply + '</div>' + treatmentStr + '<div onclick="app.hospital.dept.busy.open(\''+hdata[i].orgCode+'\');">檢視詳情</div></div>'
            });

        }
    }

前臺頁面

<div data-page="page-hospital-dept-busy" class="page navbar-fixed">
    <div class="navbar">
        <div class="navbar-inner">
            <div class="left">
                <a href="#" class="back link icon-only">
                    <i class="icon icon-back color-white"></i>
                </a>
            </div>
            <div class="center">醫院熱度詳情</div>
            <div class="right">
                
            </div>
        </div>
    </div>
    <div class="page-content bg-white">
       <div class="list-block media-list" id="hospital-introduction-list"> 
       </div>
         <script type="text/html" id="tmpl-hospital-introduction-list">
        <!--% for (var i=0; i <o.length; i++) { %-->
        <ul>
                <li>
                    <div class="item-inner" >
                    <div class="item-title">{%=o[i].organName%}</div>
                      <div class="item-title">{%=o[i].address%}</div>
                      <div class="item-title">{%=o[i].tel%}</div>
                    </div>
                </li>
         </ul>
        <!--% } %-->
      </script>
    </div>
        
    <div class="page-content bg-white" id="deptEchartsShowDiv">
         
    </div>
    <div id="deptEchartsDivTemplate">
        <div style="width: 100%;height:400px;"></div>
    </div>
</div>        

相關推薦

echart動態載入

前臺 service層 @Service("hosdeptStatusService") @Transactional public class HosdeptServiceImpl implements HosdeptStatusService {     @Auto

Echart--

http cat center itemstyle pre img tip item idt 設置數據: 效果圖: optionAll: { title: { text: ‘營收情況‘, left: ‘

ajax動態賦值highcharts

實現的效果為 1.jsp頁面 <!-- 引入highcharts官方js --> <script src="js/highcharts.js"></script> <script> $(function(){ //獲得h

32、python繪製、單個、、堆積、雙向

目錄 一、繪圖函式 二、案例 第一、單個柱形圖 第二個、多個柱形圖 第三、堆積柱形圖 第四、雙向柱形圖   柱形圖:一種長方形的單位長度,根據資料大小回繪製的統計圖,用來比較兩個或以上的資料(時間或類別) 一、繪圖函式 bar(left,right,

echart-一條柱子顯示個數據

personCountOption = { backgroundColor:'#fff', tooltip: { trigger: 'item', axisPointer: {

echart折線 資料格式化 動態繫結資料 frame處理

var myChart; var eCharts; require.config({ paths : { 'echarts' : '${pageContext.reques

echart動態載入資料繪製雙

//編輯組織資料,這裡後臺返回的data格式為{'categ': ['男', '女'], 'data': [[2, 136, 38, 4, 1, 0], [3, 75, 25, 5, 1, 0]], 'name': ['青少年', '青年人', '中年人', '老年前期', '老年人',

echarts+ajax+json動態生成不同隨機顏色的

前端部分程式碼: <div id="main" style="width: 1200px;height:600px;"></div> <script type="text/javascript">$(function(){$.ajax({

Echart--單個

normal osi width data inter nor itl body char 效果圖: dom: <div class="chartAll" ref="chartAll"></div> js: let chartAll = t

【Echarts】簡單實現——第一的實現(在後臺動態獲取資料)

  第一次接觸這個東西,感覺還有點濛濛的。經過兩天的努力終於搞明白。下面我用自己的方式實現以下,方便大家理解。   下面是我使用一個簡單的mvc框架來實現這個demo。 效果圖: 步驟: 1、新建一個mvc框架的專案。 2、新建控制器:EchartsBa

echart修改在上顯示為0的情況

function genBar(id){ var myChart = echarts.init(document.getElementById(id)); myChart.title = '正負條形圖';

ajax動態賦值echarts(餅

本文以柱形圖和餅形圖ajax動態賦值為例 一、餅形圖賦值步驟 (1)jsp頁面 <!-- 引入echarts官方js --> <script src="js/echarts.js"></script> <body> <!

Android之MPAndroidChart的動態

匯入MPAndroidChart的jar包以後就寫個工具類:package itsoha.com.tffic.Utils; import android.content.Context; import android.graphics.Color; import com.

網頁,html5,canvas,js 動態繪製

<!DOCTYPE html>     <head><title>chart demo</title>         <style>             #chartContainer{          

Fusioncharts ---折線(2D)

1,使用到這個外掛的情況是,做報表。很突然的情況,要給某個公司做報表,看見專案中前輩使用的是fusioncharts這個外掛,於是也就接著使用了。本次展示多折線圖,和多柱形圖(2D)。 2,圖表的實現包括3個部分 a)資料庫對資料進行查詢拼裝 b)控制層

d3 畫簡單的

pen oca func vba head 高度 turn cti ret <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>testD3-3

,餅狀JavaScript

column 註意 文件 label max number span item pointf <script type="text/javascript"> $(function () { $(‘#container_2‘).highcharts({

在Echarts 的單擊事件中寫入自定義的參數

cnblogs img ges == innerhtml .com echart 通過 code

ECHARTS和餅數值顯示

echartsECHARTS柱形圖和餅圖數值顯示,官方文檔寫的很不錯,這裏自己單獨梳理一下,以後可能會用的到。1、柱形圖數值顯示 在option添加: label:{ normal:{ show: true, position: ‘to

d3.js——給添加事件出現的問題總結

htm 代碼 lac ring tle log 顏色 out edge 首先做出一個動態的柱形圖(這兒用的d3.js的版本是v3,用v4的話有些函數會發生變化) 效果圖: 代碼: <!DOCTYPE html> <html lang="en">