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

具体如下:

然后就是专门的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. linux 自定义信号

    从来没试过linux自定义信号,查了下,说是系统只提供了SIGUSR1和SIGUSR2两个,就两个够吗?更要命的是如果要自定义信号如#define SIG_MYSIG   ....的话要改内核才行,哥 ...

  2. 【SPOJ10628】Count on a tree

    题目大意:给定一棵 N 个节点的树,点有点权,要求回答 M 个询问,每次询问点 u 到点 v 的简单路径(链)上权值第 K 小是多少. 题解:学习到了树上主席树. 主席树维护序列时,每次将后一个点的树 ...

  3. 关于next.js中的css

    css进行了全局和局部的限制 export default () => ( <div className='hello'> <p>Hello World</p> ...

  4. VS Code折腾记 - (2) 快捷键大全,没有更全

    前言 VSCode的快捷键继承了一些IDE风格,有VS的身影,也有Emacs的身影..简言之,内置快捷键玩熟了,效率提高不是一点两点. VsCode 快捷键有五种组合方式(科普) Ctrl + Shi ...

  5. Codeforce Div-3 E.Cyclic Components

    You are given an undirected graph consisting of nn vertices and mm edges. Your task is to find the n ...

  6. shell 备份代码

    #!/bin/sh # 备份代码 basedir=/data/backup www_src=$basedir/$(date +%F_$H) [ ! -d "$www_src" ] ...

  7. Python/spss-多元回归建模-共线性诊断1(推荐A)

    欢迎关注博主主页,学习python视频资源,还有大量免费python经典文章 sklearn实战-乳腺癌细胞数据挖掘 https://study.163.com/course/introduction ...

  8. linux的一个find命令配合rm删除某天前的文件

    语句写法: find 对应目录 -mtime +天数 -name "文件名" -exec rm -rf {} \; 例1: 将/usr/local/backups目录下所有10天前 ...

  9. 缓存方案 通过SqlDependency实现Cache和Database的同步

    对于一个真正的企业级的应用来说,Caching肯定是一个不得不考虑的因素,合理.有效地利用Caching对于增强应用的Performance(减少对基于Persistent storage的IO操作) ...

  10. 纯js异步无刷新请求(只支持IE)【原】

    纯js异步无刷新请求 下载地址:http://pan.baidu.com/s/1slakL1F 所以因为非IE浏览器都禁止跨域请求,所以以只支持IE. <HTML> <!-- 乱码( ...