马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
x
一、需求分析
会员可以通过移动端自助举行体检预约,在预约时必要选择预约的体检套餐。我们要通过饼形图直观的展示出会员预约的各个套餐占比情况。
二、代码实现
实现步骤:
步骤一:将echarts.js文件复制到工程的plugins目录下
步骤二:在页面引入echarts.js文件
- <script src="../plugins/echarts/echarts.js"></script>
复制代码
步骤三:参照官方实例导入折线图
- <div class="box">
- <!-- 为 ECharts 准备一个具备大小(宽高)的 DOM -->
- <div id="chart1" style="height:600px;"></div>
- </div>
复制代码- <script type="text/javascript">
- // 基于准备好的dom,初始化echarts实例
- var myChart1 = echarts.init(document.getElementById('chart1'));
- // 使用刚指定的配置项和数据显示图表。
- //myChart.setOption(option);
- axios.get("/report/getExaminationReport.do").then((res)=>{
- myChart1.setOption({
- title : {
- text: '套餐预约占比',
- subtext: '',
- x:'center'
- },
- tooltip : {//提示框组件
- trigger: 'item',//触发类型,在饼形图中为item
- formatter: "{a} <br/>{b} : {c} ({d}%)"//提示内容格式
- },
- legend: {//图例
- orient: 'vertical',
- left: 'left',
- data: res.data.data.setmealNames
- },
- series : [//数据系列
- {
- name: '套餐预约占比',
- type: 'pie',//饼形图
- radius : '55%',
- center: ['50%', '60%'],
- data:res.data.data.setmealCount,
- itemStyle: {
- emphasis: {
- shadowBlur: 10,
- shadowOffsetX: 0,
- shadowColor: 'rgba(0, 0, 0, 0.5)'
- }
- }
- }
- ]
- });
- });
- </script>
复制代码 步骤四:根据饼形图对数据格式的要求,我们发送ajax请求,服务端必要返回如下格式的数据:
- {
- "data":{
- "setmealNames":["套餐1","套餐2","套餐3"],
- "setmealCount":[
- {"name":"套餐1","value":10},
- {"name":"套餐2","value":30},
- {"name":"套餐3","value":25}
- ]
- },
- "flag":true,
- "message":"获取套餐统计数据成功"
- }
复制代码 步骤五:编写controller代码,编写测试数据 测试
- @RequestMapping("/getExaminationReport")
- public Result getExaminationReport(){
- //使用模拟数据测试
- Map<String,Object> data = new HashMap<>();
- List<String> setmealNames = new ArrayList<>();
- setmealNames.add("体检套餐");
- setmealNames.add("孕前检查套餐");
- data.put("setmealNames",setmealNames);
- List<Map<String,Object>> setmealCount = new ArrayList<>();
- Map map1 = new HashMap();
- map1.put("name","体检套餐");
- map1.put("value",200);
- Map map2 = new HashMap();
- map2.put("name","孕前检查套餐");
- map2.put("value",300);
- setmealCount.add(map1);
- setmealCount.add(map2);
- data.put("setmealCount",setmealCount);
- return new Result(true,MessageConstant.GET_SETMEAL_COUNT_REPORT_SUCCESS,data);
- }
复制代码 步骤六:编写代码,实现
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |