@{ Layout = null; } <!DOCTYPE html> <html> <head> <meta name="viewport" content="width=device-width" /> <title>@ViewBag.Title</title> @Scripts.Render("~/bundles/CusJS") @Styles.Render("~/Content/CusCSS") </head> <body> <div class="index_det"> <header class="in_header"> <a href="index.html" class="logo_a"><img src="~/images/index01.png"></a> <div class="index_menu"> @Html.Partial("_MenuPartial") @Html.Action("LoginPartial", new { controller = "UserPartial" }) </div> <div class="clear"></div> </header> <div class="clear"></div> </div> <div class="detail_con"> <div class="w1200"> <h2 class="his_h2">历史趋势图</h2> <div class="his_map"> <div class="his_sear"> <span>请输入关键词</span> <input type="text" class="sear_input" id="keyWord1" placeholder=""> <span class="sear_span01">+</span> <input type="text" class="sear_input" id="keyWord2" placeholder=""> <span class="sear_span01">+</span> <input type="text" class="sear_input" id="keyWord3" placeholder=""> <a class="sear_a01">查 询</a> <span class="sear_span02">在结果中选择时间段</span> <select class="sear_select" data-class="start" onchange="ChangeYear(‘start‘)"> @foreach (int item in ViewBag.yearListBegin) { <option value="@item">@item</option> } </select> <select class="sear_select" data-class="stop" onchange="ChangeYear(‘stop‘)"> @foreach (int item in ViewBag.yearListEnd) { <option value="@item">@item</option> } </select> <span>年</span> </div> <div class="map_line" id="main"> </div> <script src="~/js/echarts-all.js"></script> <script type="text/javascript"> // 基于准备好的dom,初始化echarts图表 var myChart = echarts.init(document.getElementById(‘main‘)); var option = { tooltip: { trigger: ‘axis‘ }, dataZoom: { handleColor: ‘#ad8a64‘, fillerColor: ‘#f1e6d8‘, show: true, start: 0, end: 100 }, legend: { //data: [‘海关‘, ‘口岸‘, ‘关税‘] data: [‘‘] }, backgroundColor: ‘#F3F2F1‘, color: [ ‘#db0000‘, ‘#cade9a‘, ‘#ff8e4c‘, ‘#32cd32‘, ‘#6495ed‘, ‘#ff69b4‘, ‘#ba55d3‘, ‘#cd5c5c‘, ‘#ffa500‘, ‘#40e0d0‘, ‘#1e90ff‘, ‘#ff6347‘, ‘#7b68ee‘, ‘#00fa9a‘, ‘#ffd700‘, ‘#6b8e23‘, ‘#ff00ff‘, ‘#3cb371‘, ‘#b8860b‘, ‘#30e0e0‘ ], toolbox: { show: true, feature: { mark: { show: true }, dataView: { show: true, readOnly: false }, magicType: { show: true, type: [‘line‘, ‘bar‘, ‘stack‘, ‘tiled‘] }, restore: { show: true }, saveAsImage: { show: true } } }, calculable: true, xAxis: [ { type: ‘category‘, axisLine: { lineStyle: { color: ‘#e20800‘ } }, axisTick: { lineStyle: { color: ‘#e20800‘ } }, boundaryGap: false, splitNumber: 10, //data后面是一个数组对象,里面数据对应X轴的值,从后台传过来,现在是随机生成 data: [""] } ], yAxis: [ { type: ‘value‘, axisLine: { lineStyle: { color: ‘#dc143c‘ } }, } ], series: [ { name: ‘海关‘, type: ‘line‘, stack: ‘总量‘, itemStyle: { normal: { label: { show: true, position: ‘top‘ } } }, //data后面是一个数组对象,里面数据对应Y轴的值,从后台传过来,现在是随机生成 data: [""] } ] }; function ChangePartiaOption(start, end) { option.dataZoom.start = start; option.dataZoom.end = end; } function LoadData() { myChart.clear(); myChart.setOption(option); myChart.setTheme("macarons"); }; function ChangeYear(type) { var startoption = $(".sear_select[data-class=‘start‘]").find("option:selected").val() var stopoption = $(".sear_select[data-class=‘stop‘]").find("option:selected").val() if (parseInt(stopoption) < parseInt(startoption)) { alert("截止日期不能小于起始日期!"); $(".sear_select[data-class=‘stop‘]").find("option[value=‘" + startoption + "‘]").prop("selected", true); return; } //if (type == "start") { // start = (startoption - 1850) * ((1940 - 1850) / 100); // ChangePartiaOption(start, end); //} else { // end = (stopoption - 1850) * ((1940 - 1850) / 100); // ChangePartiaOption(startoption, end); //} var start = (startoption - 1850) / (1940 - 1850) * 100; var end = (stopoption - 1850) /(1940 - 1850) * 100; ChangePartiaOption(start, end); LoadData(); }; function SearchData(searchKey) { $.ajax({ type: ‘POST‘, url: "/Home/EchartsSearch", data: { searchKey: searchKey }, success: function (data) { if (data != null) { option.legend.data = data.legend; option.xAxis[0].data = data.xarix; var series = new Array(); for (var i = 0; i < data.legend.length; i++) { series[i] = new Series(data.legend[i], "line", "总量", data.yarix[i]); } option.series = series; } myChart.setOption(option); myChart.setTheme("macarons"); } }); }; function Series(name, type, stack, data) { this.name = name; this.type = type; this.stack = stack; this.itemStyle = { normal: { label: { show: true, position: ‘top‘ } } }; this.data = data; }; $(function () { // 为echarts对象加载数据 SearchData(""); //查询按钮 $(".sear_a01").click(function () { //$("#main").empty(); //var myChart = echarts.init(document.getElementById(‘main‘)); var searchkeyword = ""; if ($("#keyWord1").val() != "") { searchkeyword += $("#keyWord1").val() + ","; } if ($("#keyWord2").val() != "") { searchkeyword += $("#keyWord2").val() + ","; } if ($("#keyWord3").val() != "") { searchkeyword += $("#keyWord3").val() + ","; } if (searchkeyword.length > 0) { //searchkeyword = searchkeyword.RTrim(","); searchkeyword = searchkeyword.substr(0, searchkeyword.length - 1); } SearchData(searchkeyword); }); }); </script> </div> </div> </div> <footer class="index_foot"> <p class="foot_p"><span>Copyright 2010 中国海关出版社</span><span>版权所有 京ICP备10022862号</span><span>京公网安备1101054539号</span></p> <p class="foot_p"><span>社址:北京市朝阳区东四环南路甲1号海关信息出版大楼6层 </span><span>邮编:100023</span><span>电话:010-65194242</span></p> <p class="foot_p"><span>书店:北京市建国门内大街6号海关总署东配楼一层</span> <span>邮编:100730</span><span>电话:010-65195616</span></p> </footer> </body> </html>
public class EchartViewModel { public List<int> xarix = new List<int>(); public List<string> legend = new List<string>(); public List<List<int>> yarix = new List<List<int>>(); }
public ActionResult EchartsSearch(string searchKey) { string[] listsearchKey = null; //int[] listintperiod = new int[2]; int bYear = BeginYear; int eYear = EndYear; EchartViewModel echart = new EchartViewModel(); if (!string.IsNullOrEmpty(searchKey)) { listsearchKey = searchKey.Split(‘,‘); for (int i = 0; i < listsearchKey.Count(); i++) { string tempsear = listsearchKey[i]; List<TradeArchive> templist = db.TradeArchives.Where(p => p.Title.Contains(tempsear) || p.Content.Contains(tempsear)).ToList(); echart.legend.Add(listsearchKey[i]); List<int> tempcount = new List<int>(); for (int j = 0; j <= eYear - bYear; j++) { int tempyear = bYear + j; if (i == 0) { echart.xarix.Add(bYear + j); } tempcount.Add(templist.Where(p => p.BeginDate <= tempyear && p.EndDate >= tempyear).Count()); } echart.yarix.Add(tempcount); } } else { List<TradeArchive> templist = null; //templist = db.TradeArchives.Where(p => p.BeginDate >= bYear || p.EndDate <= eYear).ToList(); templist = db.TradeArchives.ToList(); ; echart.legend.Add("全部"); List<int> tempcount = new List<int>(); for (int j = 0; j <= eYear - bYear; j++) { int tempyear = bYear + j; echart.xarix.Add(bYear + j); tempcount.Add(templist.Where(p => p.BeginDate <= tempyear && p.EndDate >= tempyear).Count()); } echart.yarix.Add(tempcount); } return Json(echart); }