1
0
mirror of https://shylinux.com/x/volcanos synced 2025-04-25 16:58:06 +08:00
This commit is contained in:
shaoying 2020-08-07 16:48:11 +08:00
parent 23a8cf4962
commit a7f4b4c654
7 changed files with 98 additions and 151 deletions

View File

@ -9,10 +9,8 @@ Volcanos("onaction", {help: "控件交互", list: [],
}, },
onclick: function(event, can) { onclick: function(event, can) {
var feature = can.sup.Conf("feature") var feature = can.sup.Conf("feature")
var input = feature && feature[can.Conf("name")] var input = feature && feature[can.Conf("name")]; if (input) {
return can.user.input(event, can, input,function(event, button, data, list) {
if (input) {
can.user.input(event, can, input,function(event, button, data, list) {
var args = ["action", can.Conf("name")]; can.core.Item(data, function(key, value) { var args = ["action", can.Conf("name")]; can.core.Item(data, function(key, value) {
key && value && args.push(key, value) key && value && args.push(key, value)
}) })
@ -22,22 +20,16 @@ Volcanos("onaction", {help: "控件交互", list: [],
}, true) }, true)
return true return true
}) })
return
} }
var sub = can.sup && can.sup._outputs && can.sup._outputs[0] var sub = can.sup && can.sup._outputs && can.sup._outputs[0]
var cb = sub && sub.onaction[can.Conf("name")] var cb = sub && sub.onaction && sub.onaction[can.Conf("name")]
if (typeof cb == "function") { if (typeof cb == "function") { return cb(event, sub, can.Conf("name")) }
cb(event, sub, can.Conf("name"))
return
}
switch (can.Conf("type")) { switch (can.Conf("type")) {
case "button": case "button":
var toast = can.user.toast(can, "执行中...", can.sup._help, 100000) var toast = can.user.toast(can, "执行中...", can.sup._help, 100000)
can.run(event, [], function(msg) { can.run(event, [], function(msg) { toast.Close() })
toast.Close()
})
break break
} }
}, },

View File

@ -1,39 +0,0 @@
Volcanos("onimport", {help: "导入数据", list: [],
_init: function(can, feature, output, action, option) {
function passcode(event) {
can.Run(event, [], function(msg) {
can.page.Appends(can, output, [{type: "img", src: "data:image/jpg;base64,"+msg.image[0], onclick: function(event) {
var p = can.page.Append(can, output, [{view: ["what", "div"], dataset: {meta: ""+(event.offsetX+1)+","+(event.offsetY-30+1)+""}, style: {
background: "red", position: "absolute", width: "20px", height: "20px",
left: event.offsetX+1+"px", top: event.offsetY+30+1+"px",
}, onclick: function(event) {
p.parentNode.removeChild(p)
}}]).what
}}])
}, true)
}
can.page.Append(can, option, [
{button: ["刷新", passcode]},
{username: ["账号", "args"]}, {password: ["密码", "args"]},
{button: ["登录", function(event) {
var point = can.page.Select(can, output, "div.what", function(item) {return item.dataset.meta}).join(",")
point == ""? can.page.toast("请点击图片"): can.Run(event, ["check", point], function(msg) {
if (msg.result_code == "4") {
var input = can.page.Select(can, option, "input.args", function(item) {return item.value})
can.Run(event, ["login"].concat(input).concat([msg.cmds[4]]), function(msg) {
can.page.toast(msg.result_message[0])
})
} else {
passcode(event)
}
}, true)
}]},
])
},
})
Volcanos("onaction", {help: "控件交互", list: []})
Volcanos("onchoice", {help: "控件菜单", list: []})
Volcanos("ondetail", {help: "控件详情", list: []})
Volcanos("onexport", {help: "导出数据", list: []})

View File

@ -1,19 +1,18 @@
Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg, list, cb, target) { Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg, list, cb, target) {
if (!msg.append || !msg.append[0] || !msg[msg.append[0]]) { return } can.ui = can.page.Appends(can, can._target, [
can._name = "plan", can.ui = can.page.Appends(can, can._target, [
{view: ["project", "table"], style: {display: can.user.Searchs(can, "project")||"none"}}, {view: ["project", "table"], style: {display: can.user.Searchs(can, "project")||"none"}},
{view: ["content", "table"]}, {view: ["content", "table"]},
{view: ["profile", "table"]}, {view: ["profile", "table"]},
{view: ["display", "pre"]}, {view: ["display", "pre"]},
]) ])
can.onimport[can.Option("scale")](can, msg), can.Timer(10, function() { can.onimport._stat(can, msg) can.onimport[can.Option("scale")](can, msg)
can.page.Select(can, can.ui.content, "div.item.id"+can.user.Searchs(can, "id"), function(item) { typeof cb == "function" && cb()
item.click()
}) can.onaction.view({}, can, "view", can.user.Searchs(can, "view")||"text")
can.onaction.view({}, can, "view", can.user.Searchs(can, "view")||"text") can.page.Select(can, can.ui.content, "div.item.id"+can.user.Searchs(can, "id"), function(item) {
can.page.Modify(can, can._action, {style: {display: "none"}}) item.click()
}) }), can.page.Modify(can, can._action, {style: {display: "none"}})
}, },
_stat: function(can, msg) { _stat: function(can, msg) {
var stat = { var stat = {
@ -154,7 +153,6 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg,
var head = ["hour"].concat(["周日", "周一", "周二", "周三", "周四", "周五", "周六"]); var head = ["hour"].concat(["周日", "周一", "周二", "周三", "周四", "周五", "周六"]);
var list = [0]; for (var i = 7; i < 24; i++) { list.push(can.base.Number(i, 2)) } var list = [0]; for (var i = 7; i < 24; i++) { list.push(can.base.Number(i, 2)) }
for (var i = 0; i < 7; i++) { list.push(can.base.Number(i, 2)) }
function set(week, hour) { return can.base.Time(can.base.TimeAdd(begin_time, week-begin_time.getDay()+hour/24)) } function set(week, hour) { return can.base.Time(can.base.TimeAdd(begin_time, week-begin_time.getDay()+hour/24)) }
var table = can.page.Append(can, can.ui.content, [{type: "table", list: var table = can.page.Append(can, can.ui.content, [{type: "table", list:
@ -233,9 +231,9 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg,
}, },
}, ["/plugin/local/team/plan.css"]) }, ["/plugin/local/team/plan.css"])
Volcanos("onaction", {help: "组件交互", list: [ Volcanos("onaction", {help: "组件交互", list: [
// ["level", "all", "l1", "l2", "l3", "l4", "l5"], ["level", "all", "l1", "l2", "l3", "l4", "l5"],
// ["status", "all", "prepare", "process", "cancel", "finish"], ["status", "all", "prepare", "process", "cancel", "finish"],
// ["score", "all", "s1", "s2", "s3", "s4", "s5"], ["score", "all", "s1", "s2", "s3", "s4", "s5"],
["view", "", "name", "text", "level", "score"], ["view", "", "name", "text", "level", "score"],
], ],
insertTask: function(event, can, time) { insertTask: function(event, can, time) {
@ -294,13 +292,13 @@ Volcanos("onaction", {help: "组件交互", list: [
level: function(event, can, key, value) { can.onaction._filter(event, can, key, value) }, level: function(event, can, key, value) { can.onaction._filter(event, can, key, value) },
status: function(event, can, key, value) { can.onaction._filter(event, can, key, value) }, status: function(event, can, key, value) { can.onaction._filter(event, can, key, value) },
score: function(event, can, key, value) { can.onaction._filter(event, can, key, value) }, score: function(event, can, key, value) { can.onaction._filter(event, can, key, value) },
view: function(event, can, key, value) { can.ui.content.innerHTML = "" view: function(event, can, key, value) { can.ui.content.innerHTML = ""
can.Action(key, value), can.onimport[can.Option("scale")](can, can._msg) can.Action(key, value), can.onimport[can.Option("scale")](can, can._msg)
}, },
"统计": function(event, can, key) { "统计": function(event, can, key) {
can.page.Modify(can, can.ui.project, {style: {display: can.ui.project.style.display=="none"? "table": "none"}}) can.page.Modify(can, can.ui.project, {style: {display: can.ui.project.style.display=="none"? "table": "none"}})
can.onimport._stat(can, msg)
}, },
"详情": function(event, can, key) { "详情": function(event, can, key) {
can.page.Modify(can, can.ui.profile, {style: {display: can.ui.profile.style.display=="none"? "table": "none"}}) can.page.Modify(can, can.ui.profile, {style: {display: can.ui.profile.style.display=="none"? "table": "none"}})
@ -308,6 +306,9 @@ Volcanos("onaction", {help: "组件交互", list: [
"启动": function(event, can, key) { "启动": function(event, can, key) {
can.onaction.modifyTask(event, can, can.task, "status", "process", can.task.status) can.onaction.modifyTask(event, can, can.task, "status", "process", can.task.status)
}, },
"筛选": function(event, can, key) {
can.page.Modify(can, can._action, {style: {display: can._action.style.display=="none"? "block": "none"}})
},
"运行": function(event, can, key) { "运行": function(event, can, key) {
can.onaction.pluginTask(event, can, can.task) can.onaction.pluginTask(event, can, can.task)
}, },

View File

@ -14,7 +14,7 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg,
can.current = null can.current = null
// 加载绘图 // 加载绘图
var code = can.page.AppendBoard(can, can.ui.content, msg.Result()||can.onexport.file(can)) var code = can.page.AppendBoard(can, can.ui.content, msg.Result()||can.onexport.content(can))
can.page.Select(can, can.ui.content, "svg", function(svg) { can.svg = can.group = svg can.page.Select(can, can.ui.content, "svg", function(svg) { can.svg = can.group = svg
can.onimport.block(can, svg), can.onimport.group(can, svg).click() can.onimport.block(can, svg), can.onimport.group(can, svg).click()
can.page.Select(can, svg, "*", function(item, index) { can.page.Select(can, svg, "*", function(item, index) {
@ -108,6 +108,7 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg,
return list.reverse().join(".") return list.reverse().join(".")
} }
target.ondblclick = function(event) { target.ondblclick = function(event) {
if (can.Action("go") == "run") { return }
can.ondetail["标签"](event, can) can.ondetail["标签"](event, can)
event.stopPropagation() event.stopPropagation()
event.preventDefault() event.preventDefault()
@ -765,26 +766,8 @@ Volcanos("onaction", {help: "组件菜单", list: [
}, },
}) })
Volcanos("ondetail", {help: "组件详情", list: ["复制", "标签", "编辑", "删除"], Volcanos("ondetail", {help: "组件详情", list: ["复制", "标签", "编辑", "删除"],
"删除": function(event, can) { if (event.target == can.svg) { return } "复制": function(event, can) {
can.core.List(event.target.Value("ship"), function(value) { can.onfigure._copy(event, can, event.target)
can.page.Select(can, can.svg, "."+value.pid, function(item) {
can.page.Remove(can, item)
})
})
can.page.Select(can, can.svg, "."+event.target.Value("text"), function(item) {
can.page.Remove(can, item)
})
can.page.Remove(can, event.target)
},
"编辑": function(event, can) { var target = event.target
var figure = can.onfigure._get(can, target)
can.user.input(event, can, can.core.List(["x", "y", "transform", "translate_x", "translate_y"].concat(figure.data.copy||[]), function(item) {
return {_input: "text", name: item, value: target.Value(item)}
}), function(event, cmd, meta, list) {
can.core.Item(meta, function(key, value) {
target.Value(key, value)
})
})
}, },
"标签": function(event, can) { var target = event.target "标签": function(event, can) { var target = event.target
var def = target.Value("text"); can.page.Select(can, can.svg, "."+target.Value("text"), function(item) { var def = target.Value("text"); can.page.Select(can, can.svg, "."+target.Value("text"), function(item) {
@ -805,8 +788,26 @@ Volcanos("ondetail", {help: "组件详情", list: ["复制", "标签", "编辑",
target.Value("text", obj.Value("pid")) target.Value("text", obj.Value("pid"))
}, def) }, def)
}, },
"复制": function(event, can) { "编辑": function(event, can) { var target = event.target
can.onfigure._copy(event, can, event.target) var figure = can.onfigure._get(can, target)
can.user.input(event, can, can.core.List(["x", "y", "transform", "translate_x", "translate_y"].concat(figure.data.copy||[]), function(item) {
return {_input: "text", name: item, value: target.Value(item)}
}), function(event, cmd, meta, list) {
can.core.Item(meta, function(key, value) {
target.Value(key, value)
})
})
},
"删除": function(event, can) { if (event.target == can.svg) { return }
can.core.List(event.target.Value("ship"), function(value) {
can.page.Select(can, can.svg, "."+value.pid, function(item) {
can.page.Remove(can, item)
})
})
can.page.Select(can, can.svg, "."+event.target.Value("text"), function(item) {
can.page.Remove(can, item)
})
can.page.Remove(can, event.target)
}, },
}) })
Volcanos("onexport", {help: "导出数据", list: ["坐标", "分组", "图形", "按键"], Volcanos("onexport", {help: "导出数据", list: ["坐标", "分组", "图形", "按键"],

View File

@ -1,71 +1,39 @@
Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg, list, cb) { Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg, list, cb, target) {
can._target.innerHTML = "", can.ui = can.page.Append(can, can._target, [ can.page.Modify(can, can._action, {style: {display: "none"}})
{view: "content"}, {view: "control"}, {view: "display"}, typeof cb == "function" && cb()
]) can.list = msg.Table()||[]
can.table = can.onappend.table(can, can.ui.content, "table", msg, function(value, key, index, line) { can.begin = 0
return {text: [value, "td"], onclick: function(event) { can.Action("倍速", 1)
if (line.path.endsWith("/")) { can.Action("数量", can.limit = parseInt(msg.Option("limit"))||3)
can.run(event, [can.Option("path", line.path)]) can.Action("高度", can.height = parseInt(msg.Option("height"))||200)
} else { can.Option("path") != "最近/" && can.onimport.page(can, can.list, can.begin, can.limit)
can.onimport.file(can, line.path)
}
}}
})
var list = msg.Table()||[], begin = 0, limit = 3; function page() {
can.ctrl.offset.innerHTML = begin+"-"+(begin+limit)
can.onimport.page(can, list, begin, limit)
}
can.ctrl = can.page.Append(can, can.ui.control, [
{button: ["clear", function() {
can.ui.display.innerHTML = ""
}]},
{select: [["height", 100, 200, 400, 600, 800], function(event, value) {
can.height = parseInt(value), page()
}]},
{select: [["rate", 0.1, 0.2, 0.5, 1, 2, 3, 5, 10], function(event, value) {
can.rate = value, page()
}]},
{button: ["prev", function() {
begin > 0 && (begin -= limit, can.onimport.page(can, list, begin, limit))
}]},
{text: [begin+"-"+(begin+limit)], name: "offset"},
{button: ["next", function() {
begin < msg[msg.append[0]].length && (begin += limit, page())
}]},
{select: [["limit", 1, 3, 6, 9, 12, 15], function(event, value) {
limit = parseInt(value), page()
}]},
{text: [list.length]},
])
can.rate = can.ctrl.rate.value = 1
limit = can.ctrl.limit.value = parseInt(msg.Option("limit"))||1
can.height = can.ctrl.height.value = parseInt(msg.Option("height"))||200
can.Option("path") != "最近/" && can.onimport.page(can, list, begin, limit)
}, },
page: function(can, list, begin, limit) { can.ui.display.innerHTML = "" page: function(can, list, begin, limit) { can._target.innerHTML = ""
for (var i = begin; i < begin+limit; i++) { list[i] && can.onimport.file(can, list[i].path) } for (var i = begin; i < begin+limit; i++) { list[i] && can.onimport.file(can, list[i].path) }
can.Status("begin", begin), can.Status("limit", limit), can.Status("total", can.list.length)
}, },
file: function(can, item) { file: function(can, path) { can.Status("文件", path)
var p = location.href.startsWith("http")? "": "http://localhost:9020" var p = location.href.startsWith("http")? "": "http://localhost:9020"
item = item.startsWith("http")? item: p+can.base.Path("/share/local", " "+(can._msg.Option("prefix")||""), item) path = path.startsWith("http")? path: p+can.base.Path("/share/local", " "+(can._msg.Option("prefix")||""), path)
var ls = item.split("/") var ls = path.split("/")
var ls = ls[ls.length-1].split(".") var ls = ls[ls.length-1].split(".")
var ext = ls[ls.length-1].toLowerCase() var ext = ls[ls.length-1].toLowerCase()
ext && can.page.Append(can, can.ui.display, [can.onfigure[ext](can, item)]) ext && can.page.Append(can, can._target, [can.onfigure[ext](can, path)])
}, },
}, ["/plugin/local/wiki/feel.css"]) }, ["/plugin/local/wiki/feel.css"])
Volcanos("onfigure", {help: "组件菜单", list: [], Volcanos("onfigure", {help: "组件菜单", list: [],
image: function(can, path) {
return {img: path, height: can.height}
},
jpeg: function(can, path) { return can.onfigure.image(can, path) },
jpg: function(can, path) { return can.onfigure.image(can, path) },
png: function(can, path) { return can.onfigure.image(can, path) },
qrc: function(can, path) { return can.onfigure.image(can, path) }, qrc: function(can, path) { return can.onfigure.image(can, path) },
png: function(can, path) { return can.onfigure.image(can, path) },
jpg: function(can, path) { return can.onfigure.image(can, path) },
jpeg: function(can, path) { return can.onfigure.image(can, path) },
image: function(can, path) { return {img: path, height: can.height, onclick: function(event) {
can.Status("文件", path)
}, _init: function(target) {
can.Status("文件", path)
}
} },
video: function(can, path) { var auto = true, loop = true, total = 0 video: function(can, path) { var auto = true, loop = true, total = 0
function cb(event) { console.log(event) } function cb(event) { console.log(event) }
@ -75,7 +43,7 @@ Volcanos("onfigure", {help: "组件菜单", list: [],
onloadedmetadata: function(event) { total = event.timeStamp onloadedmetadata: function(event) { total = event.timeStamp
event.target.currentTime = can._msg.currentTime || 0 event.target.currentTime = can._msg.currentTime || 0
}, onloadeddata: cb, ontimeupdate: function(event) { }, onloadeddata: cb, ontimeupdate: function(event) {
can.Status("当前行", can.onexport.position(can, (can._msg.currentTime=event.target.currentTime)-1, event.target.duration)) can.Status("position", can.onexport.position(can, (can._msg.currentTime=event.target.currentTime)-1, event.target.duration))
}, },
} }
}, },
@ -83,8 +51,11 @@ Volcanos("onfigure", {help: "组件菜单", list: [],
mp4: function(can, path) { return can.onfigure.video(can, path) }, mp4: function(can, path) { return can.onfigure.video(can, path) },
mov: function(can, path) { return can.onfigure.video(can, path) }, mov: function(can, path) { return can.onfigure.video(can, path) },
}) })
Volcanos("onaction", {help: "组件菜单", list: [
Volcanos("onaction", {help: "组件菜单", list: ["", "上传", "收藏"], ["数量", 1, 3, 6, 9, 12, 15],
["高度", 100, 200, 400, 600, 800],
["倍速", 0.1, 0.2, 0.5, 1, 2, 3, 5, 10],
],
"上传": function(event, can) { can.user.upload(event, can) }, "上传": function(event, can) { can.user.upload(event, can) },
"收藏": function(event, can) { "收藏": function(event, can) {
chrome.tabs.query({ active: true, currentWindow: true }, function (tabs) { chrome.tabs.query({ active: true, currentWindow: true }, function (tabs) {
@ -97,8 +68,29 @@ Volcanos("onaction", {help: "组件菜单", list: ["", "上传", "收藏"],
}) })
}) })
}, },
"清空": function(event, can) {
can._target.innerHTML = ""
},
"参数": function(event, can) {
can.page.Modify(can, can._action, {style: {display: can._action.style.display=="none"? "block": "none"}})
},
"上一页": function(event, can, key, value) {
can.begin > 0 && (can.begin -= can.limit, can.onimport.page(can, can.list, can.begin, can.limit))
},
"下一页": function(event, can, key, value) {
can.begin + can.limit < can.list.length && (can.begin += can.limit, can.onimport.page(can, can.list, can.begin, can.limit))
},
"数量": function(event, can, key, value) {
can.limit = parseInt(value), can.onimport.page(can, can.list, can.begin, can.limit)
},
"高度": function(event, can, key, value) {
can.height = parseInt(value), can.onimport.page(can, can.list, can.begin, can.limit)
},
"倍速": function(event, can, key, value) {
can.rate = parseInt(value), can.onimport.page(can, can.list, can.begin, can.limit)
},
}) })
Volcanos("onexport", {help: "导出数据", list: ["当前行"], Volcanos("onexport", {help: "导出数据", list: ["begin", "limit", "total", "position", "文件"],
position: function(can, index, total) { total = total || can.max position: function(can, index, total) { total = total || can.max
return parseInt((index+1)*100/total)+"%"+" = "+(parseInt(index)+1)+"/"+parseInt(total) return parseInt((index+1)*100/total)+"%"+" = "+(parseInt(index)+1)+"/"+parseInt(total)
}, },

View File

@ -8,8 +8,7 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg,
}, },
}) })
Volcanos("onaction", {help: "控件交互", list: [], Volcanos("onaction", {help: "控件交互", list: [],
onclick: function(event, can) { "添加": function(event, can) {
can.run(event, [], function() {})
}, },
}) })
Volcanos("ondetail", {help: "控件交互", list: ["编辑", "删除"], Volcanos("ondetail", {help: "控件交互", list: ["编辑", "删除"],

View File

@ -27,6 +27,7 @@ Volcanos("onimport", {help: "导入数据", list: [],
}) })
} }
}, can.ui.content) }, can.ui.content)
return typeof cb == "function" && cb(msg)
}, },
}) })
Volcanos("onaction", {help: "组件菜单", list: ["编辑", "清空", ["view", "股价图", "趋势图", "数据源"], ["height", "100", "200", "400", "600"], ["speed", "10", "20", "50", "100"]], Volcanos("onaction", {help: "组件菜单", list: ["编辑", "清空", ["view", "股价图", "趋势图", "数据源"], ["height", "100", "200", "400", "600"], ["speed", "10", "20", "50", "100"]],