10.27日进度报告

今天学习自主学习了多条件查询,外加上图表联动

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="https://cdn.staticfile.org/twitter-bootstrap/4.3.1/css/bootstrap.min.css">
 <script src="${pageContext.request.contextPath}/js/echarts.min.js"></script>
 <script src="${pageContext.request.contextPath}/js/jquery-3.4.1.js"></script>
<script src="https://cdn.staticfile.org/jquery/3.2.1/jquery.min.js"></script>
<script src="https://cdn.staticfile.org/popper.js/1.15.0/umd/popper.min.js"></script>
<script src="https://cdn.staticfile.org/twitter-bootstrap/4.3.1/js/bootstrap.min.js"></script>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
<!-- 可选的 Bootstrap 主题文件(一般不用引入) -->
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap-theme.min.css" integrity="sha384-rHyoN1iRsVXV4nD0JutlnGaslCJuC7uwjduW9SVrLvRYooPp2bWYgmgJQIXwl/Sp" crossorigin="anonymous">
<!-- 最新的 Bootstrap 核心 JavaScript 文件 -->
<script src="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>

<script>
    i = 1;
    function insert() {
        if (i<12){
            var j=i;
            i++;
            var newtr = tbl.insertRow();
            var newTd0 = newtr.insertCell();
            var newTd1 = newtr.insertCell();
            var newTd2 = newtr.insertCell();
            var newTd3 = newtr.insertCell();
            newTd0.innerHTML="<select name='yhf'>" +
                "<option value='binghan'>并含</option>" +
                "<option value='huohan'>或含</option>" +
                "<option value='buhan'>不含</option>" +
                "</select>";
            newTd1.innerHTML="<select name='name'>" +
                "<option value='jgmc'>机构全称</option>" +
                "<option value='gkglbm'>归口管理部门</option>" +
                "<option value='szdy'>所在地域</option>" +
                "<option value='frdb'>法人代表</option>" +
                "<option value='yzbm'>邮政编码</option>" +
                "<option value='dwwz'>单位网址</option>" +
                "<option value='jsxqmc'>技术需求名称</option>" +
                "<option value='gjz1'>关键字</option>" +
                "<option value='dzyx'>电子邮箱</option>" +
                "<option value='qyjg'>机构属性</option>" +
                "<option value='kjhdlx'>科技活动类型</option>" +
                "<option value='xkfl'>学科分类</option>" +
                "<option value='hzms'>解决方法</option>" +
                "<option value='yxdw'>合作意向单位</option>" +
                "<option value='hzms'>形式审核是否通过</option>" +
                "<option value='yxdw'>部门审核是否通过</option>" +
                
                ">";
            newTd2.innerHTML="<input type='text'name='value'>";
            newTd3.innerHTML="<select name='jingmo'>" +
                "<option value='jingque'>精确</option>" +
                "<option value='mohu'>模糊</option>" +
                ">";
        }
    }
    function deltr() {
        if (i!=1){
            tbl.deleteRow(i+1);
            i--;
        }
    }
    
</script>

<title></title>
<style>
    #main2
    {
        display:none;
    }
    .form-group{
width:35%;
float:left;
margin-left:10px;
margin-top:10px;
}
label{
width:30%;
float:left;
margin-right:5px;
margin-top:5px;
}
.form-control{
width:60%;
}
.btn{
width:100px;
height:40px;
border:0px;
border-radius:5px;
background-color:orange;
color:black;
margin-left:20px;
margin-top:10px
}
</style>
</head>
<body>
<form action="SelectServlet"  method="post">
    <table  id="tbl">
        <tr>
            <td></td>
        </tr>
        <tr>
            <td>
                <input type="button"  class="btn" onclick="insert()" value="添加" />
            </td>
            <td>
                <input type="button"  class="btn" onclick="deltr()" value="删除" />
            </td>
        </tr>
        <tr>
            <td>
                <select name='yhf'>
                    <option value='binghan'>并含</option>
                    <option value='buhan'>不含</option>
                </select>
            </td>
            <td>
                <select name='name'>
                    <option value='jgmc'>机构全称</option>
                    <option value='gkglbm'>归口管理部门</option>
                    <option value='szdy'>所在地域</option>
                    <option value='frdb'>法人代表</option>
                    <option value='yzbm'>邮政编码</option>
                    <option value='dwwz'>单位网址</option>
                       <option value='jsxqmc'>技术需求名称</option>
                    <option value='gjz1'>关键字</option>
                    <option value='dzyx'>电子邮箱</option>
                    <option value='qyjg'>机构属性</option>
                    <option value='yjlx'>科技活动类型</option>
                    <option value='xkfl'>学科分类</option>
                    <option value='hzms'>解决方法</option>
                    <option value='yxdw'>合作意向单位</option>
                    <option value='yxdw'>形式审核是否通过</option>
                    <option value='yxdw'>部门审核是否通过</option>
                    
                </select>
            </td>
            <td>
                <input type='text'name='value' >
            </td>
            <td>
                <select name='jingmo'>
                    <option value='jingque'>精确</option>
                    <option value='mohu'>模糊</option>
                </select>
            </td>
        </tr>
    </table>
    <input type="submit"  class="btn" value="查询">
    <select   onchange="change_echarts(this)" >
                    <option value="饼状图">饼状图</option>
                    <option value="柱状图">柱状图</option>
                    

                </select>
<div id="main1" style="height: 400px; 600px"></div>
<div id="main2" style="height: 400px; 600px"></div>
</form>
    <div align="center">
        <table class="table table-hover table-striped table-bordered table-sm" id="resultshow">
            <tr>
                <td>技术需求名称</td>
                <td>机构全称</td>
                <td>归口管理部门</td>
                <td>所在地域</td>
                <td>法人代表</td>
                <td>邮政编码</td>
                <td>机构属性</td>
                <td>关键字</td>
                <td>电子邮箱</td>
                <td>学科分类</td>
                <td>科技活动类型</td>
                <td>技术需求解决方法</td>
                <td>合作意向单位</td>            
            </tr>
            <c:forEach items="${table}" var="item">
                <tr>
                    <td><a href="chakan.jsp?id=${item.id}">${item.jgxqmc}</a></td>
                    <td>${item.jgmc}</td>
                    <td>${item.gkglbm}</td>
                    <td>${item.szdy}</td>
                    <td>${item.frdb}</td>
                    <td>${item.yzbm}</td>
                    <td>${item.qyjg}</td>
                    <td>${item.gjz}</td>
                    <td>${item.dzyx}</td>
                    <td>${item.xkfl}</td>
                    <td>${item.yjlx}</td>
                    <td>${item.hzms}</td>
                    <td>${item.yxdw}</td>
                </tr>
            </c:forEach>
        </table>
    </div>
</body>
<script>
//*******图表*****************


//点击下拉框改变图标
 function change_echarts(obj)
{
    var selected=obj.value;
    if(selected=="饼状图");
    {
        document.getElementById("main1").style.display = 'block';
        document.getElementById("main2").style.display = 'none';
    }
    if(selected=="柱状图")
    {
        document.getElementById("main1").style.display = 'none';
        document.getElementById("main2").style.display = 'block';
    }
} 

var mapDataJson='${mapDataJson}';
var json=JSON.parse(mapDataJson);

// 页面加载函数

//饼状图
$(function () {
    //进行echarts的初始化
    var myEcharts = echarts.init(document.getElementById("main1"));
    var option = {
        // 定义标题
        title : {
            text: '科技活动类型分布图',
            subtext: '模拟数据',
            // x 设置水平安放位置,默认左对齐,可选值:'center' ¦ 'left' ¦ 'right' ¦ {number}(x坐标,单位px)
            x: 'center',
            // y 设置垂直安放位置,默认全图顶端,可选值:'top' ¦ 'bottom' ¦ 'center' ¦ {number}(y坐标,单位px)
            y: 'top',
            // itemGap设置主副标题纵向间隔,单位px,默认为10,
            itemGap: 30,
            backgroundColor: '#EEE',
            // 主标题文本样式设置
            textStyle: {
              fontSize: 26,
              fontWeight: 'bolder',
              color: '#000080'
            },
            // 副标题文本样式设置
            subtextStyle: {
              fontSize: 18,
              color: '#8B2323'
            }
          },
        // 鼠标悬停显示数据
        tooltip:{
            // trigger 设置触发类型,默认数据触发,可选值:'item' ¦ 'axis'
            trigger: 'item',
            showDelay: 20,   // 显示延迟,添加显示延迟可以避免频繁切换,单位ms
            hideDelay: 20,   // 隐藏延迟,单位ms
            backgroundColor: 'rgba(255,0,0,0.7)',  // 提示框背景颜色
            textStyle: {
              fontSize: '16px',
              color: '#000'  // 设置文本颜色 默认#FFF
            },
            // formatter设置提示框显示内容
            // {a}指series.name  {b}指series.data的name
            // {c}指series.data的value  {d}%指这一部分占总数的百分比
            formatter: '{a} <br/>{b} : {c}个 ({d}%)'
            
            
            
        },
        //图例
        legend : {
            // orient 设置布局方式,默认水平布局,可选值:'horizontal'(水平) ¦ 'vertical'(垂直)
            orient: 'vertical',
            // x 设置水平安放位置,默认全图居中,可选值:'center' ¦ 'left' ¦ 'right' ¦ {number}(x坐标,单位px)
            x: 'left',
            // y 设置垂直安放位置,默认全图顶端,可选值:'top' ¦ 'bottom' ¦ 'center' ¦ {number}(y坐标,单位px)
            y: 'center',
            itemWidth: 24,   // 设置图例图形的宽
            itemHeight: 18,  // 设置图例图形的高
            textStyle: {
              color: '#666'  // 图例文字颜色
            },
            // itemGap设置各个item之间的间隔,单位px,默认为10,横向布局时为水平间隔,纵向布局时为纵向间隔
            itemGap: 30,
            backgroundColor: '#eee',  // 设置整个图例区域背景颜色
            data: ['基础研究','应用研究','试验发展','研究与试验发展成果应用','技术推广与科技服务','生产性活动']
          },
        //数据
        series: [
                {
                  name: '科技活动类型',
                  type: 'pie',
                  // radius: '50%',  // 设置饼状图大小,100%时,最大直径=整个图形的min(宽,高)
                  radius: '50%',  // 设置环形饼状图, 第一个百分数设置内圈大小,第二个百分数设置外圈大小
                  center: ['50%', '50%'],  // 设置饼状图位置,第一个百分数调水平位置,第二个百分数调垂直位置
                  data: getData(),
                  // itemStyle 设置饼状图扇形区域样式
                  itemStyle: {
                    // emphasis:英文意思是 强调;着重;(轮廓、图形等的)鲜明;突出,重读
                    // emphasis:设置鼠标放到哪一块扇形上面的时候,扇形样式、阴影
                    emphasis: {
                      shadowBlur: 10,
                      shadowOffsetX: 0,
                      shadowColor: 'rgba(30, 144, 255,0.5)'
                    }
                  },
                  // 设置值域的那指向线
                  labelLine: {
                    normal: {
                      show: false   // show设置线是否显示,默认为true,可选值:true ¦ false
                    }
                  },
                  // 设置值域的标签
                  label: {
                    normal: {
                      position: 'inner',  // 设置标签位置,默认在饼状图外 可选值:'outer' ¦ 'inner(饼状图上)'
                      // formatter: '{a} {b} : {c}个 ({d}%)'   设置标签显示内容 ,默认显示{b}
                      // {a}指series.name  {b}指series.data的name
                      // {c}指series.data的value  {d}%指这一部分占总数的百分比
                      formatter: '{c}'
                    }
                  }
                }
              ]
    };
    // 设置配置项
    myEcharts.setOption(option);
    
    
    
    // 设置echarts的点击事件
    myEcharts.on('click',function (params) {
        // 获取table下所有的tr
        let trs = $("#table tbody tr");
        var flag=1;
        for (let i = 0;i<trs.length;i++){
            // 获取tr下所有的td
            let tds = trs.eq(i).find("td");
            // 先把之前的标记的success去掉
            $("#table tbody tr").eq(i).removeClass('success');
            // 如果点击图示的名字和table下的某一个行的第一个td的值一样
            if (params.name == tds.eq(2).text()){
                //设置success状态
                $("#table tbody tr").eq(i).addClass('success');
                // 跳转到页面指定的id位置
                if(flag==1)
                   {
                       $("html,body").animate({scrollTop:$("#table tbody tr").eq(i).offset().top},10);
                       flag=0;
                   }
                
            }
        }
    });
    // 当鼠标落在tr时,显示浮动
    $("#table tbody").find("tr").on("mouseenter",function () {
        // 获得当前匹配元素的个数
        let row = $(this).prevAll().length;
        // 获得当前tr下td的名字
        let name = $("#table tbody").find("tr").eq(row).find("td").eq(0).text();
        // 设置浮动
        myEcharts.dispatchAction({ type: 'showTip',seriesIndex: 0, name:name});//选中高亮
    });
    // 当鼠标移开tr时候取消浮动
    $("#table tbody").find("tr").on("mouseleave",function () {
        // 获得当前匹配元素的个数
        let row = $(this).prevAll().length;
        // 获得当前tr下td的名字
        let name = $("#table tbody").find("tr").eq(row).find("td").eq(0).text();
        // 设置浮动
        myEcharts.dispatchAction({ type: 'hideTip', name:name});//选中高亮
    });
});
//柱状图
$(function () {
    
    var data=getData();
    var name=data.map(x => {return x.name}); 
    var value=data.map(x => {return x.value}); 
    //进行echarts的初始化
    var myChart = echarts.init(document.getElementById('main2'));
        var option = {
                title: {
                    text: '该时间内信息'
                },
                tooltip: {
                    show: true
                },
                legend: {
                    data:['人数']
                },
                xAxis: {
                    

                    data:name,
                   "axisLabel":{
                           interval: 0,
                           rotate:50  
                       }
                    
                },
                yAxis: {},
                series: [{
                    name: '个数',
                    type: 'bar',
                    data:value,
                   itemStyle: {
                       normal: {
                           label: {
                               show: true,        //开启显示
                               position: 'top',    //在上方显示
                               textStyle: {        //数值样式
                                   color: 'black',
                                   fontSize: 16
                               }
                           }
                       }
                   }
    

                }]
            };
 myChart.setOption(option,true);
//设置echarts的点击事件
 myChart.on('click',function (params) {
     
     // 获取table下所有的tr
     let trs = $("#table tbody tr");
     var flag=1;
     for (let i = 0;i<trs.length;i++){
         // 获取tr下所有的td
         let tds = trs.eq(i).find("td");
         // 先把之前的标记的success去掉
         $("#table tbody tr").eq(i).removeClass('success');
         // 如果点击图示的名字和table下的某一个行的第一个td的值一样
         if (params.name == tds.eq(2).text()){
             //设置success状态
             $("#table tbody tr").eq(i).addClass('success');
             // 跳转到页面指定的id位置
             if(flag==1)
                {
                    $("html,body").animate({scrollTop:$("#table tbody tr").eq(i).offset().top},10);
                    flag=0;
                }
             
         }
     }
 });
 // 当鼠标落在tr时,显示浮动
 $("#table tbody").find("tr").on("mouseenter",function () {
     // 获得当前匹配元素的个数
     let row = $(this).prevAll().length;
     // 获得当前tr下td的名字
     let name = $("#table tbody").find("tr").eq(row).find("td").eq(0).text();
     // 设置浮动
     myEcharts.dispatchAction({ type: 'showTip',seriesIndex: 0, name:name});//选中高亮
 });
 // 当鼠标移开tr时候取消浮动
 $("#table tbody").find("tr").on("mouseleave",function () {
     // 获得当前匹配元素的个数
     let row = $(this).prevAll().length;
     // 获得当前tr下td的名字
     let name = $("#table tbody").find("tr").eq(row).find("td").eq(0).text();
     // 设置浮动
     myEcharts.dispatchAction({ type: 'hideTip', name:name});//选中高亮
 });
});


function getData(){
    return json;
    }
</script>
</html>

这个是前端jsp代码

然后是后台serverlet下次再发

原文地址:https://www.cnblogs.com/sunhongbin/p/14017403.html