ODOO引用Echarts数据展示
作为一个后端开发,首先想到的是将需要的数据进行处理反馈给前端。
具体如下:

然后就是专门的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数据展示的更多相关文章
- 基于Echarts的中国地图数据展示
发布时间:2018-10-31 技术:javascript+html5+canvas 概述 基于echarts的大数据中国地图展示,结合API定制,开发样式,监听鼠标事件,实现带参数路由跳转等 ...
- vue+echarts+datav大屏数据展示及实现中国地图省市县下钻
随着前端技术的飞速发展,大数据时代的来临,我们在开发项目时越来越多的客户会要求我们做一个数据展示的大屏,可以直观的展示用户想要的数据,同时炫酷的界面也会深受客户的喜欢. 大屏展示其实就是一堆的图表能够 ...
- WebGIS中利用AGS JS+eCharts实现一些数据展示的探索
文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/. 1.背景 eCharts提供了迁徙图.热点图.夜视图等跟地图能够很好的 ...
- Echarts 获取后台数据 使用后台数据展示 柱形图
后台数据要以json格式返回 页面:引用echarts.js , 然后data以ajax的数据请求并返回 <%@ page language="java" import=&q ...
- Echarts数据可视化series-pie饼图,开发全解+完美注释
全栈工程师开发手册 (作者:栾鹏) Echarts数据可视化开发代码注释全解 Echarts数据可视化开发参数配置全解 6大公共组件详解(点击进入): title详解. tooltip详解.toolb ...
- Echarts数据可视化visualMap,开发全解+完美注释
全栈工程师开发手册 (作者:栾鹏) Echarts数据可视化开发代码注释全解 Echarts数据可视化开发参数配置全解 6大公共组件详解(点击进入): title详解. tooltip详解.toolb ...
- Echarts数据可视化全解注释
全栈工程师开发手册 (作者:栾鹏) Echarts数据可视化开发代码注释全解 Echarts数据可视化开发参数配置全解 6大公共组件详解(点击进入): title详解. tooltip详解.toolb ...
- Grafana 利用Grafana Variables变量配置快速切换不同主机的图表数据展示
用Grafana Variables变量配置快速切换不同主机的图表数据展示 by:授客 QQ:1033553122 测试环境 需求描述 操作步骤 结果展示 测试环境 influxdb-1.5.2. ...
- 移动端引用echarts的折线图
移动端写一个图表引用echarts,highcharts插件,本次要找一个能够显示最新数据的折线图,最后只找到显示最大值: 找到echarts的实例:记一下个各功能. <!DOC ...
随机推荐
- go vendor目录
参考 https://blog.csdn.net/u010649766/article/details/80327035 那么查找依赖包路径的解决方案如下: 当前包下的vendor目录. 向上级目录查 ...
- intent 几种用法
Intent 应该算是Android中特有的东西.你可以在Intent中指定程序 要执行的动作(比如:view,edit,dial),以及程序执行到该动作时所需要的资料.都指定好后,只要调用start ...
- 【loj3044】【zjoi2019】Minimax
题目 描述 给出一颗树,定义根节点1的深度为1,其他点深度为父亲深度+1: 如下定义一个点的点权: 1.叶子:为其编号:2.奇数深度:为其儿子编号最大值:3.偶数深度:为其儿子编号最小值: ...
- 【codevs1048】石子归并(初级版)
采用动态规划的原因:合并有一定次序,即:只能相邻石子进行合并. 阶段:当前合并了的区间长度 状态:区间的左右端点 状态转移方程:\(dp[l][r]=min\{dp[l][r],dp[l][k]+dp ...
- 12: MyBatis之传入参数parameterType
源链接地址:http://blog.csdn.net/liaoxiaohua1981/article/details/6862764
- git 子模块
为了方便各个子模块独立开发,或使用第三方不断更新的仓库,可以使用子模块来引用. 子模块对应的源码是子模块仓库的克隆. git submodule 与 subtree对比 git submodule 允 ...
- MATLAB:图像的与、或、非、异或逻辑运算(&、|、~、xor)
图像的与.或.非.异或逻辑运算涉及到了&.|.~和xor符号 close all;%关闭当前所有图形窗口,清空工作空间变量,清除工作空间所有变量 clc; clear all; I=imrea ...
- zookeeper配置
原文链接:https://www.cnblogs.com/yuyijq/p/3438829.html 前面两篇文章介绍了Zookeeper是什么和可以干什么,那么接下来我们就实际的接触一下Zookee ...
- 枚举 enum 成员变量初始化
typedef enum { A1, A2, A3, A4 = , A_END }A; 如果A1赋值为5,则下列依次递增1,即A2等于6,A3等于7: 由于A4赋值为10,所以A_END等于11 如果 ...
- Django 设置media static
ango 设置media static 本文python版本3.6.1,Django版本1.11.1 1.settings.py配置 增加django.template.context_process ...