首页 > 其他分享 >多表联动

多表联动

时间:2022-10-15 18:01:17浏览次数:37  
标签:console log myChartone result 联动 var 多表 data

<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <script src="JS/echarts.js"></script>
  <script src="https://code.jquery.com/jquery-3.1.1.js"></script>
  <script src="https://cdn.jsdelivr.net/npm/echarts-gl/dist/echarts-gl.min.js"></script>
  <link rel="shortcut icon" href="#"/>
  <title>测试</title>
</head>
<body>
<!-- 为ECharts准备一个具备大小(宽高)的Dom -->
<div id="areaone" style="width: 600px;height:400px;"></div>
<div id="areaone1" style="width: 600px;height:400px;"></div>
<script type="text/javascript">
  var goodsNamedata = [];
  var salesMountdata = [];
  var salesMountdata0 = [];
  var a1 = [];
  var b1 = [];
  var c1 = [];
  let index=0;
  var url = "Servletselect";
  <!--使用ajax动态获取数据,将获取的数据放到数组中-->
  $.ajax({
    async: false,
    type: "GET",
    url: url,
    dataType: 'json',
    contentType: "application/json;charset=UTF-8",
    success: function(result){
      console.log(result);
      for (var i = 0; i < result.length; i++) {

        goodsNamedata.push(result[i].day_id);

        salesMountdata.push(result[i].round);
        salesMountdata0.push(result[i].cnt);

      }
    }
  });
  var myChartone = echarts.init(document.getElementById('areaone'));
  // 指定图表的配置项和数据
  var optionone = {
    title: {
      text: 'ECharts动态展示数据'
    },
    tooltip: {},
    legend: {
      data: ['sum','mony'],
      orient: 'horizontal',
      itemGap: 40,
      textStyle: {
        color: 'red',
        fontSize: '20px',
        fontWeight: 700
      }
    },
    xAxis: {
      data: goodsNamedata
    },
    yAxis: {
    },
    series: [{
      name: 'sum',
      type: 'bar',
      data: salesMountdata
    },
      {
        name: 'mony',
        type: 'bar',
        data: salesMountdata0
      }]
  };
  myChartone.getZr().on('click',function(params){
    console.log("aini");
    let point=[params.offsetX,params.offsetY];
    let xIndex=myChartone.convertFromPixel({seriesIndex:0},point)[0];
    // let yIndex=myChartone.convertFromPixel({seriesIndex:0},point)[0];
    let op=myChartone.getOption();
    let name=op.xAxis[0].data[xIndex];
    index++;
    if(index % 2 == 1)
    {
    console.log("zengjia");
    $.ajax({
      async: false,
      type: "GET",
      url: "Servletiii",
      data: {name1:name,jk:"1"},
      dataType: 'json',
      contentType: "application/json;charset=UTF-8",
      success: function(result) {
        add(result);
        myfunction(result);
      }
    });
    }
    else{
      console.log("shanchu");
      $.ajax({
        async: false,
        type: "GET",
        url: "delete",
        data: {name1:name,jk:"1"},
        dataType: 'json',
        contentType: "application/json;charset=UTF-8",
        success: function(result) {
          delet(result);
          myfunction(result);
        }
      });
    }
  })
  function add(result){
    for (var i = 0; i < result.length; i++) {
      a1.push(result[i].day_id);
      b1.push(result[i].round);
      c1.push(result[i].cnt);
    }
  }
  function myfunction(result){
    var chartDom = document.getElementById('areaone1');
    var myChart = echarts.init(chartDom);
    var option;
    const data11 = []
    console.log(data11);
    for(var num=0;num<a1.length;num++)
    {
      data11.push([a1[num],b1[num]]);
    }
    const data12 = []
    for(var num1=0;num1<a1.length;num1++)
    {
      data12.push([a1[num1],c1[num1]]);
    }
    const dateList = data11.map(function (item) {
      return item[0];
    });
    const valueList = data12.map(function (item) {
      return item[1];
    });
    option = {
      // Make gradient line here
      visualMap: [
        {
          show: false,
          type: 'continuous',
          seriesIndex: 0,
          min: 0,
          max: 400
        },
        {
          show: false,
          type: 'continuous',
          seriesIndex: 1,
          dimension: 0,
          min: 0,
          max: dateList.length - 1
        }
      ],
      title: [
        {
          left: 'center',
          text: 'Gradient along the y axis'
        },
        {
          top: '55%',
          left: 'center',
          text: 'Gradient along the x axis'
        }
      ],
      tooltip: {
        trigger: 'axis'
      },
      xAxis: [
        {
          data: dateList
        },
        {
          data: dateList,
          gridIndex: 1
        }
      ],
      yAxis: [
        {},
        {
          gridIndex: 1
        }
      ],
      grid: [
        {
          bottom: '60%'
        },
        {
          top: '60%'
        }
      ],
      series: [
        {
          type: 'line',
          showSymbol: false,
          data: valueList
        },
        {
          type: 'line',
          showSymbol: false,
          data: valueList,
          xAxisIndex: 1,
          yAxisIndex: 1
        }
      ]
    };
    option && myChart.setOption(option);
  }
  function delet(result){
    Array.prototype.indexOf = function(val) {
      for (var i = 0; i < this.length; i++) {
        if (this[i] == val) return i;
      }
      return -1;
    };
    Array.prototype.remove = function(val) {
      var index = this.indexOf(val);
      if (index > -1) {
        this.splice(index, 1);
      }
    };
    for (var i = 0; i < result.length; i++) {
      console.log("shanchu111");
      console.log(result[i].day_id);
      a1.remove(result[i].day_id);
      b1.remove(result[i].round);
      c1.remove(result[i].cnt);
    }
  }
  myChartone.setOption(optionone);
  option && myChart.setOption(option);
</script>
</body>
</html>

标签:console,log,myChartone,result,联动,var,多表,data
From: https://www.cnblogs.com/jyt604743080/p/16794669.html

相关文章

  • SQL进阶篇之多表联查
    SQLAlias(别名)通过使用SQL,可以为列名称和表名称指定别名(Alias)表的SQLAlias语法SELECTcolumn_name(s)FROMtable_nameASalias_name列的SQLAlias语法SELEC......
  • echarts多表联动初步
    在大数据的学习过程中,后台数据分析、输出很重要,但最终是将其表现在图表上,使用echarts进行数据可视化官网上给出的数据可视化是饼图和折线图的联动,饼图和其他图的联动基本......
  • 【Oracle】多表联合查询超时问题排查
    文中使用的Oracle版本为10g。本文内容将涉及大规模SQL联合查询优化内容,本人尽可能讲得容易理解一些,若有看不懂的地方是本人表述不清楚,望各位海涵。此外文章是2016年写的,那时......
  • 多表关系_多对多关系实现和多表关系_一对一关系实现
    多表关系_多对多关系实现:1.分类:多对多:如:学生和课程分析:一个学生可以选择很多门课程,一个课程也可以被很多学生选择2.实现关系∶多对多:如:学生和课程实现方式:多......
  • mybatis plus 多表联查
    1、先定义mapper中的方法/***获取地址*/@Select("SELECTa.id,"+"a.mid,"+"m.membername,"+"a.address,"......
  • 多表关系介绍和多表关系_一对多关系实现
    多表关系介绍:1.—对一(了解):如∶人和身份证分析:一个人只有一个身份证,一个身份证只能对应一个人2.一对多(多对一):如∶部门和员工分析:一个......
  • 【Vegas原创】Ajax实现无刷新三联动
    1.html代码:<SCRIPTlanguage="javascript">//部别------------------------------functionexcclassResult(){......
  • 多表查询
    笛卡尔积有两个集合A,B取这两个集合的所有组成情况要完成多表查询,需要消除无用的数据 查询所有员工信息和对应的部门信息    查询员工表的名称,性别......
  • 多表查询-练习
    多表查询-练习--部门表CREATETABLEdept(idINTPRIMARYKEYPRIMARYKEY,--部门iddnameVARCHAR(50),--部门名称locVARCHAR(50)--部门所在地);......
  • 多表查询内连接和外连接
    多表查询的分类:1.内连接查询: 1.隐式内连接:使用where条件消除无用数据 *例子: --查询所有员工信息和对应的部门信息 SELECT*FR......