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

来源:互联网 发布:荷兰语翻译软件 编辑:程序博客网 时间:2024/05/21 18:31

首先引用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
原创粉丝点击