作为一个后端开发,首先想到的是将需要的数据进行处理反馈给前端。

具体如下:

然后就是专门的echarts模块(我这样写主要是因为echarts会用到的地方比较多,后续直接调用)

1、

2、echarts_action.xml

3、actions.js

 ir_actions_act_window_expense_income_echarts: function (action, options) {
var self = this;
console.log(action)
var dialog = new Dialog(
this,
_.extend({
$content: QWeb.render('Expense_Income_Chart', {
data: action.data,
help_text: action.help_text,
flags: action.flags,
}),
size: action.size || 'large',
title: action.name || _t('销售情况'),
buttons: [
{
text: _t('Close'),
close: true
}
],
}, options)
); dialog.opened().then(function () {
self._rpc({
route: '/web/sales_report_chart',
params: {
data: action.data
}
}).then(function (result) {
console.log(result)
var myChart = echarts.init(document.getElementById('chart-expense-income-report')); var waterMarkText = 'ECHARTS';
var themeJson = result.hes_objs;
var canvas = document.createElement('canvas');
var ctx = canvas.getContext('2d');
canvas.width = canvas.height = 100;
ctx.textAlign = 'center';
ctx.textBaseline = 'middle';
ctx.globalAlpha = 0.08;
ctx.font = '20px Microsoft Yahei';
ctx.translate(50, 50);
ctx.rotate(-Math.PI / 4);
ctx.fillText(waterMarkText, 0, 0);
if (result.total_amount) {
var option = {
backgroundColor: {
type: 'pattern',
image: canvas,
repeat: 'repeat'
},
tooltip: {},
title: [{
text: result.title,
subtext: '总计: ' + result.sum_sales,
x: '25%',
textAlign: 'center'
},
{
text: '类型占比',
x: '75%',
textAlign: 'center'
}],
grid: [{
top: 100,
width: '70%',
bottom: '5%',
height: '80%',
left: 10,
containLabel: true
},],
xAxis: [{
type: 'category',
data: result.expense_name,
axisLabel: {
interval: 0,
},
splitLine: {
show: false
}
},],
yAxis: [{
type: 'value',
splitLine: {
show: false
},
axisLabel: {
interval: 0,
rotate: 30,
formatter: '{value} 元'
},
},],
series: [{
type: 'bar',
stack: 'chart',
z: 3,
label: {
normal: {
position: 'top',
show: true
}
},
itemStyle: {
normal: {
color: '#55A9AF'
}
},
data: result.total_amount
}, {
type: 'pie',
radius: [0, '30%'],
center: ['75%', '30%'],
data: Object.keys(themeJson).map(function (key) {
return {
name: key.replace('.js', ''),
value: themeJson[key]
}
}),
itemStyle: {
emphasis: {
shadowBlur: 10,
shadowOffsetX: 0,
shadowColor: 'rgba(0, 0, 0, 0.5)'
}
}
}]
};
}
else {
var option = {
title: {
text: "无数据!",
},
}
}
myChart.setOption(option);
}).fail(function (error, event) {
event.preventDefault();
}).always(function () {
});
});
return dialog.open();
},

js示例

ODOO引用Echarts数据展示的更多相关文章

  1. 基于Echarts的中国地图数据展示

    发布时间:2018-10-31   技术:javascript+html5+canvas   概述 基于echarts的大数据中国地图展示,结合API定制,开发样式,监听鼠标事件,实现带参数路由跳转等 ...

  2. vue+echarts+datav大屏数据展示及实现中国地图省市县下钻

    随着前端技术的飞速发展,大数据时代的来临,我们在开发项目时越来越多的客户会要求我们做一个数据展示的大屏,可以直观的展示用户想要的数据,同时炫酷的界面也会深受客户的喜欢. 大屏展示其实就是一堆的图表能够 ...

  3. WebGIS中利用AGS JS+eCharts实现一些数据展示的探索

    文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/. 1.背景 eCharts提供了迁徙图.热点图.夜视图等跟地图能够很好的 ...

  4. Echarts 获取后台数据 使用后台数据展示 柱形图

    后台数据要以json格式返回 页面:引用echarts.js , 然后data以ajax的数据请求并返回 <%@ page language="java" import=&q ...

  5. Echarts数据可视化series-pie饼图,开发全解+完美注释

    全栈工程师开发手册 (作者:栾鹏) Echarts数据可视化开发代码注释全解 Echarts数据可视化开发参数配置全解 6大公共组件详解(点击进入): title详解. tooltip详解.toolb ...

  6. Echarts数据可视化visualMap,开发全解+完美注释

    全栈工程师开发手册 (作者:栾鹏) Echarts数据可视化开发代码注释全解 Echarts数据可视化开发参数配置全解 6大公共组件详解(点击进入): title详解. tooltip详解.toolb ...

  7. Echarts数据可视化全解注释

    全栈工程师开发手册 (作者:栾鹏) Echarts数据可视化开发代码注释全解 Echarts数据可视化开发参数配置全解 6大公共组件详解(点击进入): title详解. tooltip详解.toolb ...

  8. Grafana 利用Grafana Variables变量配置快速切换不同主机的图表数据展示

    用Grafana Variables变量配置快速切换不同主机的图表数据展示   by:授客 QQ:1033553122 测试环境 需求描述 操作步骤 结果展示 测试环境 influxdb-1.5.2. ...

  9. 移动端引用echarts的折线图

          移动端写一个图表引用echarts,highcharts插件,本次要找一个能够显示最新数据的折线图,最后只找到显示最大值: 找到echarts的实例:记一下个各功能.   <!DOC ...

随机推荐

  1. Android原生(Native)C开发之四:SDL移植笔记

    http://www.apkbus.com/forum.php?mod=viewthread&tid=1989 SDL(Simple DirectMedia Layer)是一套开放源码的跨平台 ...

  2. 【CH5105】cookies 贪心+DP

    通过邻项交换法可知,怨气值大的孩子分得的饼干数也应该多(否则交换之后得到的解更优). 观察目标函数的性质,可知目标函数本身是由孩子饼干数的相对大小得到,因此此题中关注的是相对大小. 状态设计:\(dp ...

  3. share.js一键分享到微博、QQ空间、QQ好友、微信、腾讯微博、豆瓣、Facebook、Twitter、Linkedin、Google+、点点等

    官网上面 https://github.com/overtrue/share.js非常详细的介绍了share.js他的使用 使用方式有:第一:使用 npm npm install social-sha ...

  4. Hadoop原生态版安装

    1 安装环境和必要软件 3 台 ubuntu 16.04 vim 2 创建hadoop用户 sudo useradd -m hadoop -s /bin/bash sudo passwd hadoop ...

  5. zabbix3.x添加H3C网络设备详解

    zabbix3.x添加H3C网络设备详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 前言: 欢迎加入:高级运维工程师之路 598432640 相信大家在看我的文章之前,也看过其 ...

  6. iframe伪造ajax

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  7. Linux记录-Linux 企业运维人员最常用 150 个命令

    命令 功能说明 线上查询及帮助命令 (2 个) man 查看命令帮助,命令的词典,更复杂的还有 info,但不常用. help 查看 Linux 内置命令的帮助,比如 cd 命令. 文件和目录操作命令 ...

  8. weblogic11g 修改密码和重置密码【原】

    修改密码 知道密码的情况下,可参考该链接 http://www.cnblogs.com/may12138/p/6022946.html 或 http://www.cnblogs.com/lsdb/p/ ...

  9. 11. SpringBoot 之CRUD实例

    SpringBoot静态页路径,可直接通过URL访问的: /META-INF/resources /resources /static /public 而    5. /template 只和模板引擎 ...

  10. SmartUpload文件上传组件的使用教程

    在项目中使用SmartUpload组件可以进行文件的上传和下载操作 使用步骤 1.导入jar包,进行build path操作 2.编写文件上传页面,代码如下 <form action=" ...