mirror of
https://shylinux.com/x/volcanos
synced 2025-04-25 08:48:06 +08:00
opt chart
This commit is contained in:
parent
ac8c8f2c01
commit
ccfcb880a7
8
frame.js
8
frame.js
@ -576,6 +576,14 @@ Volcanos("onmotion", {help: "动态特效", list: [], _init: function(can, targe
|
||||
can.page.Select(can, target||can._output, html.IFRAME, function(item) {
|
||||
can.page.Modify(can, item, {style: {height: can.Conf(html.HEIGHT)-88, width: can.Conf(html.WIDTH)-30}})
|
||||
})
|
||||
can.page.Select(can, target||can._output, html.SVG, function(item) {
|
||||
item.oncontextmenu = function(event) {
|
||||
can.user.carte(event, can, {"导出": function(event, can, button) {
|
||||
|
||||
}}, ["导出"])
|
||||
}
|
||||
// can.page.Modify(can, item, {style: {height: can.Conf(html.HEIGHT)-88, width: can.Conf(html.WIDTH)-30}})
|
||||
})
|
||||
},
|
||||
},
|
||||
float: {_hash: {},
|
||||
|
15
lib/user.js
15
lib/user.js
@ -157,6 +157,21 @@ Volcanos("user", {help: "用户操作", agent: {
|
||||
})
|
||||
} },
|
||||
|
||||
toPNG: function(can, name, text, height, width) {
|
||||
if (text.indexOf("<svg") != 0) {
|
||||
text = '<svg xmlns="http://www.w3.org/2000/svg">'+text+"</svg>"
|
||||
}
|
||||
var img = document.createElement("img")
|
||||
img.onload = function() {
|
||||
var canvas = document.createElement("canvas")
|
||||
canvas.height = height, canvas.width = width
|
||||
canvas.getContext("2d").drawImage(img, 0, 0)
|
||||
|
||||
var a = document.createElement("a")
|
||||
a.href = canvas.toDataURL("image/png")
|
||||
a.download = name, a.click()
|
||||
}, img.src = "data:image/svg+xml,"+encodeURIComponent(text)
|
||||
},
|
||||
copy: function(event, can, text) {
|
||||
if (navigator.clipboard) { var ok = false
|
||||
navigator.clipboard.writeText(text).then(function() { ok = true })
|
||||
|
@ -109,6 +109,14 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg,
|
||||
}
|
||||
}, can._output, target)
|
||||
},
|
||||
chart: function(can, data, target) {
|
||||
target.oncontextmenu = function(event) {
|
||||
var ui = can.user.carte(event, can, {"导出": function(event, can, button) {
|
||||
can.user.toPNG(can, "hi.png", target.outerHTML, parseInt(target.getAttribute(html.HEIGHT)), parseInt(target.getAttribute(html.WIDTH)))
|
||||
}}, ["导出"])
|
||||
can.page.Modify(can, ui._target, {style: {left: event.clientX, top: event.clientY}})
|
||||
}
|
||||
},
|
||||
|
||||
iframe: function(can, data, target) { var meta = can.base.Obj(data.meta)
|
||||
can.page.Modify(can, target, {width: can.Conf("width")-200})
|
||||
|
@ -73,7 +73,7 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, conf,
|
||||
})
|
||||
Volcanos("onaction", {help: "交互操作", list: [
|
||||
"共享工具", "生成链接", "生成脚本", "保存参数", "清空参数", "刷新数据", [
|
||||
"其它 ->", "复制数据", "下载数据", "清空数据", "删除工具", "摄像头",
|
||||
"其它 ->", "复制数据", "下载数据", "清空数据", "删除工具", "摄像头", "生成图片",
|
||||
],
|
||||
], _init: function(can, msg, list, cb, target) {},
|
||||
_engine: function(event, can, button) {
|
||||
@ -136,6 +136,9 @@ Volcanos("onaction", {help: "交互操作", list: [
|
||||
},
|
||||
"清空数据": function(event, can) { can.onmotion.clear(can, can._output) },
|
||||
"删除工具": function(event, can) { can.page.Remove(can, can._target) },
|
||||
"生成图片": function(event, can) {
|
||||
can.user.toPNG(can, "hi.png", can._target.outerHTML, can.Conf(html.HEIGHT), can.Conf(html.WIDTH))
|
||||
},
|
||||
|
||||
"摄像头": function(event, can) {
|
||||
var constraints = {audio: false, video: {width: 200, height: 200}}
|
||||
|
@ -57,7 +57,7 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg,
|
||||
return tree.meta&&tree.meta.color || (tree.list == 0? cli.PURPLE: cli.YELLOW)
|
||||
},
|
||||
}, [""])
|
||||
Volcanos("onaction", {help: "用户操作", list: ["编辑", [ice.VIEW, "横向", "纵向"]],
|
||||
Volcanos("onaction", {help: "用户操作", list: ["编辑", [ice.VIEW, "横向", "纵向"], "生成图片"],
|
||||
"编辑": function(event, can) {
|
||||
can.onmotion.toggle(can, can._action)
|
||||
can.onmotion.toggle(can, can._status)
|
||||
@ -78,6 +78,9 @@ Volcanos("onaction", {help: "用户操作", list: ["编辑", [ice.VIEW, "横向"
|
||||
can.height = 0, can.onaction._draw_vertical(can, can._tree[""], can.margin, can.margin+can.size)
|
||||
can.svg.Val(html.HEIGHT, can.height+can.margin)
|
||||
},
|
||||
"生成图片": function(event, can) {
|
||||
can.user.toPNG(can, "hi.png", can.svg.outerHTML, can.svg.Val(html.HEIGHT), can.svg.Val(html.WIDTH))
|
||||
},
|
||||
_draw: function(can, tree, x, y, style) {
|
||||
var color = can.onimport._color(can, tree)
|
||||
tree.view = can.onimport.draw({}, can, {
|
||||
|
Loading…
x
Reference in New Issue
Block a user