一个js问题关于echarts的

@Ta 2019-05-07发布,2019-05-07修改 5184点击


在这个echarts的官方示例中,我能不能吧自己的数据保存成json格式的文本文件,放在服务器,然后在这个实例中读取我保存的数据读入表格
小米8高配版(五颜六色)

https://www.echartsjs.com/gallery/editor.html?c=doc-example/tutorial-async
小米8高配版(五颜六色)

回复列表(8|隐藏机器人聊天)
  • @Ta / 2019-05-07 / /

    用.js格式里面用JOSN格式的数据然后用JQ 的 ajax来请求你本地的数据文件 的路径就行了。
    如https://api.isoyu.com/gy/data.js

    我渣渣用法,官方请等待老虎解答姬长信api

  • @Ta / 2019-05-07 / /

    我不太懂js。又懒得学个10来天所以能不能求一段代码嘻嘻嘻@已重置
    小米8高配版(五颜六色)

  • @Ta / 2019-05-07 / /

    function fetchData(cb) {
    // 通过 setTimeout 模拟异步加载
    setTimeout(function () {
    cb({
    categories: ["衬衫","羊毛衫","雪纺衫","裤子","高跟鞋","袜子"],
    data: [5, 20, 36, 10, 10, 20]
    });
    }, 1000);
    }

    // 初始 option
    option = {
    title: {
    text: '异步数据加载示例'
    },
    tooltip: {},
    legend: {
    data:['销量']
    },
    xAxis: {
    data: []
    },
    yAxis: {},
    series: [{
    name: '销量',
    type: 'bar',
    data: []
    }]
    };

    fetchData(function (data) {
    myChart.setOption({
    xAxis: {
    data: data.categories
    },
    series: [{
    // 根据名字对应到相应的系列
    name: '销量',
    data: data.data
    }]
    });
    });
    小米8高配版(五颜六色)

  • @Ta / 2019-05-08 / /

    直接请求json文件路径就行了

    <!DOCTYPE html>
    <html lang="en">
    <head>
      <meta charset="UTF-8">
      <meta name="viewport" content="width=device-width, initial-scale=1.0">
      <meta http-equiv="X-UA-Compatible" content="ie=edge">
      <title>Document</title>
    </head>
    <body>
      <div id="main" style="width: 600px;height:400px;"></div>
    </body>
      <script src="https://cdn.bootcss.com/echarts/4.2.1/echarts.min.js"></script>
      <script>
      let myChart = echarts.init(document.getElementById('main'));  
      function fetchData(cb) {
          let xhr = new XMLHttpRequest()
          xhr.open('get', '/index.json')
          xhr.send(null)
          xhr.onreadystatechange = function(){
               if(xhr.readyState == 4){
                    let data = JSON.parse(xhr.responseText)
                    cb(data)
               }
            };
      }
      // 初始 option
      option = {
          title: {
              text: '异步数据加载示例'
          },
          tooltip: {},
          legend: {
              data:['销量']
          },
          xAxis: {
              data: []
          },
          yAxis: {},
          series: [{
              name: '销量',
              type: 'bar',
              data: []
          }]
      };
      myChart.setOption(option);
      fetchData(function (data) {
          myChart.setOption({
              xAxis: {
                  data: data.categories
              },
              series: [{
                  // 根据名字对应到相应的系列
                  name: '销量',
                  data: data.data
              }]
          });
      });
      </script>
    </html>
    

    json文件内容如下:

    {
      "categories": ["衬衫","羊毛衫","雪纺衫","裤子","高跟鞋","袜子"],
      "data": [5, 20, 36, 10, 10, 20]
    }
    
  • @Ta / 2019-05-08 / /

    @老虎会游泳,你好像搞了两套高亮。markdown的```和ubb的[code]

  • @Ta / 2019-05-08 / /

    @Curtion,目前两者都调用geshi.php。

  • @Ta / 2019-05-08 / /

    @Curtion,谢谢你
    小米8高配版(五颜六色)

  • @Ta / 2019-05-09 / /
    <html><head>
        <meta charset="utf-8">
        <meta name="renderer" content="webkit">
        <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
        <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0">
        <script src="/static/js/jq.js"></script>
        <link rel="stylesheet" href="/static/layuiadmin/layui/css/layui.css" media="all">
        <link rel="stylesheet" href="/static/layuiadmin/style/admin.css" media="all">
        <script src="__JS__/echarts.js"></script>
    
    </head>
    <body layadmin-themealias="default" style="height: 100%">
    
    <div class="layui-fluid">
        <div class="layui-row layui-col-space15">
            <!--<div class="layui-col-md12">-->
                <!--<div class="layui-card-header layui-bg-cyan" align="center"><h2>统计图</h2></div>-->
    
            <!--</div>-->
    
    
            <div class="layui-col-md6">
                <div class="layui-card">
                    <div class="layui-card-body">
    
                        <div style="width: 100%;min-height: 40%" id="payment_total"> </div>
                    </div>
                </div>
            </div>
    
            <div class="layui-col-md6">
                <div class="layui-card">
                    <div class="layui-card-body">
    
                        <div style="width: 100%;min-height: 40%" id="payment_cyc"> </div>
                    </div>
                </div>
            </div>
    
    
            <div class="layui-col-md6">
                <div class="layui-card">
                    <div class="layui-card-body">
    
                        <div style="width: 100%;min-height: 40%" id="payment_notify_fail_total"> </div>
                    </div>
                </div>
            </div>
    
    
            <div class="layui-col-md6">
                <div class="layui-card">
                    <div class="layui-card-body">
    
                        <div style="width: 100%;min-height: 40%" id="payment_notify_fail_cyc"> </div>
                    </div>
                </div>
            </div>
    
    
        </div>
    
    
    </div>
    
    
    <script src="/static/js/layer/layer.js"></script>
    <script src="/static/layuiadmin/layui/layui.js"></script>
    <script>
    
        function payment_total()
        {
            var loading=layer.load(2);
            $.post("",{
                type:"total"
            },function (res) {
                layer.close(loading);
                var myChart = echarts.init(document.getElementById('payment_total'));
                option = {
                    title : {
                        text: '支付流水K线近7天',
                        x:'center'
                    },
                    xAxis: {
                        type: 'category',
                        data: res.dates
                    },
                    yAxis: {
                        type: 'value'
                    },
                    series: [{
                        data: res.moneys,
                        type: 'line',
                        smooth: true
                    }]
                };
                myChart.setOption(option);
            });
        }
    
    
        
        function payment_cyc()
        {
            var loading=layer.load(2);
            $.post("",{
                type:"chartTypeTotalCyc"
            },function (res) {
                layer.close(loading);
                var myChart = echarts.init(document.getElementById('payment_cyc'));
                option = {
                    title : {
                        text: '支付成功占比',
                        x:'center'
                    },
                    tooltip : {
                        trigger: 'item',
                        formatter: "{a} <br/>{b} : {c} ({d}%)"
                    },
                    legend: {
                        orient: 'vertical',
                        left: 'left',
                        data: ['支付宝','微信支付','QQ支付']
                    },
                    series : [
                        {
                            name: '支付来源',
                            type: 'pie',
                            radius : '55%',
                            center: ['50%', '60%'],
                            data:res.datas,
                            itemStyle: {
                                emphasis: {
                                    shadowBlur: 10,
                                    shadowOffsetX: 0,
                                    shadowColor: 'rgba(0, 0, 0, 0.5)'
                                }
                            }
                        }
                    ]
                };
                myChart.setOption(option);
            })
        }
    
        /**
         * 通知失败折线图
         */
        function payment_notify_fail_total()
        {
            var loading=layer.load(2);
            $.post("",{
                type:"chartNotifyTotal"
            },function (res) {
    
                layer.close(loading);
                var myChart = echarts.init(document.getElementById('payment_notify_fail_total'));
                option = {
                    title : {
                        text: '通知失败折线图',
                        x:'center'
                    },
                    xAxis: {
                        type: 'category',
                        data: res.dates
                    },
                    yAxis: {
                        type: 'value'
                    },
                    series: [{
                        data: res.values,
                        type: 'line',
                        smooth: true
                    }]
                };
                myChart.setOption(option);
            });
        }
    
    
        /**
         * 失败原图
         */
        function payment_notify_fail_cyc()
        {
            var loading=layer.load(2);
            $.post("",{
                type:"chartNotifyCyc"
            },function (res) {
                layer.close(loading);
                var myChart = echarts.init(document.getElementById('payment_notify_fail_cyc'));
                option = {
                    title : {
                        text: '通知失败占比',
    
                        x:'center'
                    },
                    tooltip : {
                        trigger: 'item',
                        formatter: "{a} <br/>{b} : {c} ({d}%)"
                    },
                    legend: {
                        orient: 'vertical',
                        left: 'left',
                        data: ['正常通知','5次以下','目前未成功']
                    },
                    series : [
                        {
                            name: '支付来源',
                            type: 'pie',
                            radius : '55%',
                            center: ['50%', '60%'],
                            data:res.datas,
                            itemStyle: {
                                emphasis: {
                                    shadowBlur: 10,
                                    shadowOffsetX: 0,
                                    shadowColor: 'rgba(0, 0, 0, 0.5)'
                                }
                            }
                        }
                    ]
                };
                myChart.setOption(option);
            })
        }
    
        $(document).ready(function () {
            payment_total();
            payment_cyc();
            payment_notify_fail_total();
            payment_notify_fail_cyc();
        });
    </script>
    <script>
    
    </script>
    </body>
    </html>
    
添加新回复
回复需要登录