• 设为首页
  • 收藏本站
  • 积分充值
  • VIP赞助
  • 手机版
  • 微博
  • 微信
    微信公众号 添加方式:
    1:搜索微信号(888888
    2:扫描左侧二维码
  • 快捷导航
    福建二哥 门户 查看主题

    extjs ColumnChart设置不同的颜色实现代码

    发布者: 嘉6148 | 发布时间: 2025-8-13 16:12| 查看数: 31| 评论数: 0|帖子模式

    Ext.onReady(function(){
    //定义store
    var chartStore = new Ext.data.JsonStore({
    root:'root',
    fields:[
    {name:'ne',type:'string'},//网元
    {name:'confine',type:'int'},//阀值
    {name:'bill',type:'string'}//工单数
    ],
    sortInfo:{field: 'bill', direction: 'ASC'}
    });
    //测试数据
    var obj={
    root:[
    {ne:'网元一',confine:80,bill:150},
    {ne:'网元二',confine:150,bill:140},
    {ne:'网元三',confine:180,bill:160},
    {ne:'网元五',confine:120,bill:180},
    {ne:'网元六',confine:165,bill:13},
    {ne:'网元七',confine:54,bill:12},
    {ne:'网元八',confine:55,bill:44},
    {ne:'网元九',confine:33,bill:113},
    {ne:'网元十',confine:122,bill:77}
    ]
    }
    //载入数据
    chartStore.loadData(obj);
    //pushlet 回调函数
    window.onData = function (event) {
    //alert(event.get("data1"));
    var obj1 = eval('('+event.get("data1")+')');
    //obj=obj1;
    //chartStore.loadData(obj);
    }
    // 系统属性定义列数据模型
    var cm = new Ext.grid.ColumnModel([new Ext.grid.RowNumberer(),
    {header:'网元',dataIndex:'ne'},
    {header:'工单量',dataIndex:'bill',renderer:function(value, cellMeta, record, rowIndex, columnIndex, store){
    var confine = record.data['confine'];
    /*if(value>=confine){
    //cellMeta.css='x-grid-back-red';
    var row = cm.findColumnIndex(rowIndex);
    row.css='x-grid-back-red';
    }*/
    return value;
    }},
    {header:'阀值',dataIndex:'confine'}
    //{header:'操作',dataIndex:'state',renderer:renderOperate}
    ]);
    var grid = new Ext.grid.EditorGridPanel({
    title:'工单积压监控统计',
    cm:cm,
    store:chartStore,
    sm : new Ext.grid.RowSelectionModel({
    singleSelect : true
    }),
    stripeRows:true,
    loadMask:true,
    clicksToEdit : 2,//双击触发,
    enableColumnMove : false,
    trackMouseOver : false,
    stripeRows:true,
    frame:true,
    loadMask:{
    msg:"数据加载中....."
    },
    viewConfig:{
    forceFit:true,
    columnsText:'显示列',
    scrollOffset:25,
    sortAscText:'升序',
    sortDescText:'降序'
    },
    autoExpandColumn:'desc',
    bbar:new Ext.PagingToolbar({
    pageSize:24,
    store:chartStore,
    displayInfo:true,
    displayMsg:'显示第 {0} 条到第 {1} 条记录,总共 {2} 条',
    emptyMsg:'无记录'
    }),
    viewConfig:{forceFit:true,sortAscText:'正序',sortDescText:'降序',
    getRowClass : function(record,rowIndex,rowParams,store){
    if(record.data.bill>=record.data.confine){
    return 'x-grid-back-red';
    }
    }
    }
    });
    var linechart = new Ext.chart.LineChart({
    title:'工单积压图表',
    xtype:'linechart',
    url: AIUPP_ROOT+'/css/resources/charts.swf',
    store:chartStore,
    //xField: 'label',
    //yField:'alarmCount',
    //定义tip内容
    tipRenderer : function(chart, record){
    //alert(record.get('startTime'));
    var ne = record.get('ne');
    var str = String.format('网元:{0}\n工单量:{1}\n阀值:{2}',ne,record.get('bill'),record.get('confine'))
    return str;
    },
    //定义两个图表,一个是柱状图,一个是折线图
    series: [{
    type: 'column',
    displayName: '工单个数',
    id:"billId",
    xField: 'ne',
    yField: 'bill',
    style: {
    color:0x99BBE8,
    size: 20
    }
    },{
    type:'column',
    displayName: '阀值',
    xField: 'ne',
    yField: 'confine',
    style: {
    color: '#ff0000',
    size: 20
    }
    }],
    listeners:{
    "show":function(){
    var c = linechart.series;
    //alert(c[1].store);
    //c[1].style.color='#00ff00';
    }
    },
    //定义图表样式
    chartStyle: {
    legend:{
    display: "top"
    },
    xAxis: {
    color: 0x69aBc8,
    majorTicks: {color: 0x69aBc8, length:4},
    minorTicks: {color: 0x69aBc8, length: 2},
    majorGridLines:{size: 1, color: 0xeeeeee}
    },
    yAxis: {
    color: 0x69aBc8,
    majorTicks: {color: 0x69aBc8, length: 4},
    minorTicks: {color: 0x69aBc8, length: 2},
    majorGridLines: {size: 1, color: 0xdfe8f6}
    }
    }
    });
    var contentPanel = new Ext.TabPanel({
    region:'center',
    enableTabScroll:true,
    activeTab:0,
    closable:false,
    split : false,
    collapsible : false,
    layoutOnTabChange:true,
    items:[linechart,grid]
    });
    // 间隔时间
    var interval = new Ext.form.TextField({
    name:'interval',
    fieldLabel:'间隔时间',
    id:"searchInterval"
    });
    // 分组方式
    var groupType = new Ext.form.RadioGroup({
    name:'groupType',
    fieldLabel:'分组方式',
    id:"searchGroupType",
    items:[
    new Ext.form.Radio({
    name:"groupType",
    inputValue:"1",
    boxLabel:"地区"
    }),
    new Ext.form.Radio({
    name:"groupType",
    inputValue:"2",
    boxLabel:"地区+网元"
    }),
    new Ext.form.Radio({
    name:"groupType",
    inputValue:"3",
    boxLabel:"地区+网元+业务代码"
    })
    ]
    });
    // 开始按钮
    var startBtn = new Ext.Button({
    text:'开始',
    minWidth:80,
    handler:function(){
    //store.load();
    }
    });
    // 停止按钮
    var stopBtn = new Ext.Button({
    text:'停止',
    minWidth:80,
    handler:function(){
    //store.load();
    }
    });
    var searchPanel = new Ext.form.FormPanel({
    labelAlign:'left',
    labelWidth:60,
    frame:true,
    layout:'column',
    items:[
    {columnWidth:.28,layout:'form',items:[interval]},
    {columnWidth:.38,layout:'form',items:[groupType]},
    {columnWidth:.10,layout:'form',items:[startBtn]},
    {columnWidth:.16,layout:'form',items:[stopBtn]}
    ]
    });
    var vp = new Ext.Viewport({
    layout:'border',
    border:false,
    hideBorders:true,
    bufferResize:100,
    items:[
    //{region:'north',title:'::监控条件',autoHeight:true,margins:'5 5 10 5',collapsible:true,items:[searchPanel]},
    {region:'center',layout:'fit',margins:'5 5 5 5',items:[contentPanel]}
    ]
    });
    vp.show();
    });

    来源:互联网
    免责声明:如果侵犯了您的权益,请联系站长(1277306191@qq.com),我们会及时删除侵权内容,谢谢合作!

    最新评论

    QQ Archiver 手机版 小黑屋 福建二哥 ( 闽ICP备2022004717号|闽公网安备35052402000345号 )

    Powered by Discuz! X3.5 © 2001-2023

    快速回复 返回顶部 返回列表