.net输出仪表盘图表(基于highcharts)

首先引用highcharts的主脚本,此处略。

以下为封装的代码:

/// <summary>
        /// 生成仪表盘脚本
        /// </summary>
        /// <param name="jzcode">机组编号</param>
        /// <param name="data">指针数据</param>
        /// <param name="jzname">机组名称</param>
        /// <param name="title">仪表标题</param>
        /// <param name="unit">单位</param>
        /// <param name="min">仪表最小值</param>
        /// <param name="max">机组最大值</param>
        /// <param name="isneed">是否要波动</param>
        /// <returns></returns>
        public static string GetDashboard(string jzcode, decimal data, string jzname, string title = "发电煤耗", string unit = " g/kWh", int min = 0, int max = 350,bool isneed=true)
        {
            StringBuilder sb = new StringBuilder();
            sb.Append("$('#jz" + jzcode + "').highcharts({\r\n");
            sb.Append("chart: {\r\n");
            sb.Append("type: 'gauge',");
            sb.Append("plotBackgroundColor: null,\r\n");
            sb.Append("plotBackgroundImage: null,\r\n");
            sb.Append("plotBorderWidth: 0,\r\n");
            sb.Append("plotShadow: false\r\n");
            sb.Append("},\r\n");
            sb.Append("credits: { enabled: false },\r\n");
            sb.Append("exporting: { enabled: false },\r\n");
            sb.Append("title: {\r\n");
            sb.Append("text: '" + jzname + "'\r\n");
            sb.Append("},\r\n");
            sb.Append("pane: {\r\n");
            sb.Append("startAngle: -150,\r\n");
            sb.Append("endAngle: 150,\r\n");
            sb.Append("background: [{\r\n");
            sb.Append("backgroundColor: {\r\n");
            sb.Append("linearGradient: { x1: 0, y1: 0, x2: 0, y2: 1 },\r\n");
            sb.Append("stops: [\r\n");
            sb.Append("[0, '#FFF'],\r\n");
            sb.Append("[1, '#333']\r\n");
            sb.Append("]\r\n");
            sb.Append("},\r\n");
            sb.Append("borderWidth: 0,\r\n");
            sb.Append("outerRadius: '109%'\r\n");
            sb.Append("}, {\r\n");
            sb.Append("backgroundColor: {\r\n");
            sb.Append("linearGradient: { x1: 0, y1: 0, x2: 0, y2: 1 },\r\n");
            sb.Append("stops: [\r\n");
            sb.Append("[0, '#333'],\r\n");
            sb.Append("[1, '#FFF']\r\n");
            sb.Append("]\r\n");
            sb.Append("},\r\n");
            sb.Append("borderWidth: 1,\r\n");
            sb.Append("outerRadius: '107%'\r\n");
            sb.Append("}, {\r\n");
            sb.Append("}, {\r\n");
            sb.Append("backgroundColor: '#DDD',\r\n");
            sb.Append("borderWidth: 0,\r\n");
            sb.Append("outerRadius: '105%',\r\n");
            sb.Append("innerRadius: '103%'\r\n");
            sb.Append("}]\r\n");
            sb.Append("},\r\n");
            sb.Append("yAxis: {\r\n");
            sb.Append("min: " + min + ",\r\n");
            sb.Append("max: " + max + ",\r\n");
            sb.Append("minorTickInterval: 'auto',\r\n");
            sb.Append("minorTickWidth: 1,\r\n");
            sb.Append("minorTickLength: 10,\r\n");
            sb.Append("minorTickPosition: 'inside',\r\n");
            sb.Append("minorTickColor: '#666',\r\n");
            sb.Append("tickPixelInterval: 30,\r\n");
            sb.Append("tickWidth: 2,\r\n");
            sb.Append("tickPosition: 'inside',\r\n");
            sb.Append("tickLength: 10,\r\n");
            sb.Append("tickColor: '#666',\r\n");
            sb.Append("labels: {\r\n");
            sb.Append("   step: 2,\r\n");
            sb.Append("   rotation: 'auto'\r\n");
            sb.Append("},\r\n");
            sb.Append("title: {\r\n");
            sb.Append("    text: '" + title + "'\r\n");
            sb.Append("},\r\n");
            sb.Append("plotBands: [{\r\n");
            sb.Append("    from: 0,\r\n");
            sb.Append("    to: 300,\r\n");
            sb.Append("    color: '#55BF3B' // green\r\n");
            sb.Append("}, {\r\n");
            sb.Append("    from: 300,\r\n");
            sb.Append("    to: 330,\r\n");
            sb.Append("    color: '#DDDF0D' // yellow\r\n");
            sb.Append("}, {\r\n");
            sb.Append("    from: 330,\r\n");
            sb.Append("   to: 350,\r\n");
            sb.Append("   color: '#DF5353' // red\r\n");
            sb.Append("}]\r\n");
            sb.Append("},\r\n");
            sb.Append("series: [{\r\n");
            sb.Append("    name: '" + jzname + "',\r\n");
            sb.Append("   data: [" + Math.Round(data,2) + "],\r\n");
            sb.Append("   tooltip: {\r\n");
            sb.Append("        valueSuffix: ' " + unit + "'\r\n");
            sb.Append("   }\r\n");
            sb.Append("}]\r\n");
            sb.Append("}\r\n");
            if (isneed)
            {
                sb.Append(",function (chart) {\r\n");
                sb.Append("    if (!chart.renderer.forExport) {\r\n");
                sb.Append("        setInterval(function () {\r\n");
                sb.Append("            var point = chart.series[0].points[0],\r\n");
                sb.Append("               newVal,\r\n");
                sb.Append("               inc = Math.round((Math.random() - 0.5) * 5);\r\n");
                sb.Append("           newVal = point.y + inc;\r\n");
                sb.Append("           if (newVal < min || newVal > max) {\r\n");
                sb.Append("               newVal = point.y - inc;\r\n");
                sb.Append("            }\r\n");
                sb.Append("           if(point.y>0)");
                sb.Append("           point.update(newVal);\r\n");
                sb.Append("       }, 3000);\r\n");
                sb.Append("    }}\r\n");
            }
            sb.Append(" );\r\n");
            return sb.ToString();
        }


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值