Skip to content

Commit

Permalink
add 添加 template6 以 html 元素实现 Echarts
Browse files Browse the repository at this point in the history
  • Loading branch information
Xavier9896 committed Aug 8, 2023
1 parent 3acf3d5 commit 2dcac51
Show file tree
Hide file tree
Showing 2 changed files with 223 additions and 0 deletions.
Binary file added res/template6.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
223 changes: 223 additions & 0 deletions src/demo/templates/template-files/template6.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,223 @@
/*
* @Author: 54xavier
* @LastEditors: [email protected]
* @Date: 2023-02-28 14:00:03
* @LastEditTime: 2023-08-08 19:32:55
*/
export const name = "Echarts实现";
export const desc = "通过HTML元素实现Echarts-svg";
export const author = "54xavier";
export const link = "https://ccsimple.gitee.io/vue-plugin-hiprint/";
// url 或者 base64 或者 require('../../../assets/logo.png')
export const preview =
"https://gitee.com/CcSimple/vue-plugin-hiprint/raw/main/res/template6.png";
function getRandomInt({ min = 10, max = 200 }) {
return Math.floor(Math.random() * (max - min + 1)) + min;
}
export const printData = {
lineData: Array.from(new Array(7), () => getRandomInt({})),
barData: Array.from(new Array(7), () => getRandomInt({})),
pieData: Array.from(new Array(5), (_, i) => ({
value: getRandomInt({}),
name: `系列${i}`,
})),
};
export const json = {
panels: [
{
index: 0,
name: 1,
height: 297,
width: 210,
paperHeader: 0,
paperFooter: 842,
printElements: [
{
options: {
left: 0,
top: 0,
height: 1,
width: 1,
formatter: `function(t, e, printData) {
var script = document.createElement("script");
script.setAttribute("type", "text/javascript");
script.setAttribute("src", "https://cdnjs.cloudflare.com/ajax/libs/echarts/5.4.3/echarts.min.js");
return script;
}`,
},
printElementType: {
// 此元素为 Echarts 依赖,此方法仅浏览器打印(print)生效,print2可能会无法加载依赖,需要手动在electron-hiprint项目中引入依赖
// 如果不使用 print2 可将此依赖全局添加到你自己项目中,只需设计、预览时能加载到此依赖即可
title: "Echarts依赖",
type: "html",
},
},
{
options: {
left: 12,
top: 12,
height: 200,
width: 200,
formatter: `function(t, e, printData) {
if (window.echarts) {
var echartDom = document.createElement("div");
echartDom.style.width = "267px";
echartDom.style.height = "267px";
var echartInstance = echarts.init(echartDom,null,{renderer: "svg"})
echartInstance.setOption({
animation: false,
grid: {
top: 10,
right: 20,
bottom: 30,
left: 36,
},
xAxis: {
type: 'category',
data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
},
yAxis: {
type: 'value'
},
series: [
{
data: printData?.lineData || [150, 230, 224, 218, 135, 147, 260],
type: 'line'
}
]
})
return echartDom;
} else {
return '<div style="width: 267px;height: 267px; border: 1px solid;">点击打印预览查看</div>'
}
}`,
},
printElementType: { title: "html", type: "html" },
},
{
options: {
left: 230,
top: 12,
height: 200,
width: 200,
formatter: `function(t, e, printData) {
if (window.echarts) {
var echartDom = document.createElement("div");
echartDom.style.width = "267px";
echartDom.style.height = "267px";
var echartInstance = echarts.init(echartDom,null,{renderer: "svg"})
echartInstance.setOption({
animation: false,
grid: {
top: 10,
right: 20,
bottom: 30,
left: 36,
},
xAxis: {
type: 'category',
data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
},
yAxis: {
type: 'value'
},
series: [
{
data: printData?.barData || [150, 230, 224, 218, 135, 147, 260],
type: 'bar'
}
]
})
return echartDom;
} else {
return '<div style="width: 267px;height: 267px; border: 1px solid;">点击打印预览查看</div>'
}
}`,
},
printElementType: { title: "html", type: "html" },
},
{
options: {
left: 12,
top: 230,
height: 200,
width: 200,
formatter: `function(t, e, printData) {
if (window.echarts) {
var echartDom = document.createElement("div");
echartDom.style.width = "267px";
echartDom.style.height = "267px";
var echartInstance = echarts.init(echartDom,null,{renderer: "svg"})
echartInstance.setOption({
animation: false,
series: [
{
name: 'Access From',
type: 'pie',
radius: ['40%', '70%'],
avoidLabelOverlap: false,
itemStyle: {
borderRadius: 10,
borderColor: '#fff',
borderWidth: 2
},
label: {
show: false,
position: 'center'
},
emphasis: {
label: {
show: true,
fontSize: 40,
fontWeight: 'bold'
}
},
labelLine: {
show: false
},
data: printData?.pieData || [
{ value: 1048, name: 'Search Engine' },
{ value: 735, name: 'Direct' },
{ value: 580, name: 'Email' },
{ value: 484, name: 'Union Ads' },
{ value: 300, name: 'Video Ads' }
]
}
]
})
return echartDom;
} else {
return '<div style="width: 267px;height: 267px; border: 1px solid;">点击打印预览查看</div>'
}
}`,
},
printElementType: { title: "html", type: "html" },
},
{
options: {
left: 12,
top: 460,
height: 12,
width: 418,
title:
"说明:此处模版以一个不可见 html 元素加载 echarts ,故第一次打开无法显示预览,但后续的 print api 能够正常显示,你可以在你的项目中全局加载 echarts 依赖,保证设计、预览时能加载到 echarts 依赖,即可删除用于引入依赖的html元素。使用 print2 需要在 electron-hiprint 项目渲染层中添加该依赖,否则客户端首次打印都无法正常渲染 echarts",
},
printElementType: { title: "说明", type: "text" },
},
],
paperNumberLeft: 565.5,
paperNumberTop: 819,
paperNumberContinue: true,
watermarkOptions: {},
},
],
};
export default {
preview: preview,
name: name,
desc: desc,
author: author,
link: link,
printData: printData,
json: json,
};

0 comments on commit 2dcac51

Please sign in to comment.