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) {
var feature = can.sup.Conf("feature")
var input = feature && feature[can.Conf("name")]
if (input) {
can.user.input(event, can, input,function(event, button, data, list) {
var input = feature && feature[can.Conf("name")]; if (input) {
return can.user.input(event, can, input,function(event, button, data, list) {
var args = ["action", can.Conf("name")]; can.core.Item(data, function(key, value) {
key && value && args.push(key, value)
})
@ -22,22 +20,16 @@ Volcanos("onaction", {help: "控件交互", list: [],
}, true)
return true
})
return
}
var sub = can.sup && can.sup._outputs && can.sup._outputs[0]
var cb = sub && sub.onaction[can.Conf("name")]
if (typeof cb == "function") {
cb(event, sub, can.Conf("name"))
return
}
var cb = sub && sub.onaction && sub.onaction[can.Conf("name")]
if (typeof cb == "function") { return cb(event, sub, can.Conf("name")) }
switch (can.Conf("type")) {
case "button":
var toast = can.user.toast(can, "执行中...", can.sup._help, 100000)
can.run(event, [], function(msg) {
toast.Close()
})
can.run(event, [], function(msg) { toast.Close() })
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) {
if (!msg.append || !msg.append[0] || !msg[msg.append[0]]) { return }
can._name = "plan", can.ui = can.page.Appends(can, can._target, [
can.ui = can.page.Appends(can, can._target, [
{view: ["project", "table"], style: {display: can.user.Searchs(can, "project")||"none"}},
{view: ["content", "table"]},
{view: ["profile", "table"]},
{view: ["display", "pre"]},
])
can.onimport[can.Option("scale")](can, msg), can.Timer(10, function() { can.onimport._stat(can, msg)
can.page.Select(can, can.ui.content, "div.item.id"+can.user.Searchs(can, "id"), function(item) {
item.click()
})
can.onaction.view({}, can, "view", can.user.Searchs(can, "view")||"text")
can.page.Modify(can, can._action, {style: {display: "none"}})
})
can.onimport[can.Option("scale")](can, msg)
typeof cb == "function" && cb()
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) {
item.click()
}), can.page.Modify(can, can._action, {style: {display: "none"}})
},
_stat: function(can, msg) {
var stat = {
@ -154,7 +153,6 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg,
var head = ["hour"].concat(["周日", "周一", "周二", "周三", "周四", "周五", "周六"]);
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)) }
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"])
Volcanos("onaction", {help: "组件交互", list: [
// ["level", "all", "l1", "l2", "l3", "l4", "l5"],
// ["status", "all", "prepare", "process", "cancel", "finish"],
// ["score", "all", "s1", "s2", "s3", "s4", "s5"],
["level", "all", "l1", "l2", "l3", "l4", "l5"],
["status", "all", "prepare", "process", "cancel", "finish"],
["score", "all", "s1", "s2", "s3", "s4", "s5"],
["view", "", "name", "text", "level", "score"],
],
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) },
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) },
view: function(event, can, key, value) { can.ui.content.innerHTML = ""
can.Action(key, value), can.onimport[can.Option("scale")](can, can._msg)
},
"统计": function(event, can, key) {
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) {
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) {
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) {
can.onaction.pluginTask(event, can, can.task)
},

View File

@ -14,7 +14,7 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg,
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.onimport.block(can, svg), can.onimport.group(can, svg).click()
can.page.Select(can, svg, "*", function(item, index) {
@ -108,6 +108,7 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg,
return list.reverse().join(".")
}
target.ondblclick = function(event) {
if (can.Action("go") == "run") { return }
can.ondetail["标签"](event, can)
event.stopPropagation()
event.preventDefault()
@ -765,26 +766,8 @@ Volcanos("onaction", {help: "组件菜单", list: [
},
})
Volcanos("ondetail", {help: "组件详情", list: ["复制", "标签", "编辑", "删除"],
"删除": 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)
},
"编辑": 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) {
can.onfigure._copy(event, can, 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) {
@ -805,8 +788,26 @@ Volcanos("ondetail", {help: "组件详情", list: ["复制", "标签", "编辑",
target.Value("text", obj.Value("pid"))
}, def)
},
"复制": function(event, can) {
can.onfigure._copy(event, 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) { 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: ["坐标", "分组", "图形", "按键"],

View File

@ -1,71 +1,39 @@
Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg, list, cb) {
can._target.innerHTML = "", can.ui = can.page.Append(can, can._target, [
{view: "content"}, {view: "control"}, {view: "display"},
])
Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg, list, cb, target) {
can.page.Modify(can, can._action, {style: {display: "none"}})
typeof cb == "function" && cb()
can.list = msg.Table()||[]
can.table = can.onappend.table(can, can.ui.content, "table", msg, function(value, key, index, line) {
return {text: [value, "td"], onclick: function(event) {
if (line.path.endsWith("/")) {
can.run(event, [can.Option("path", line.path)])
} else {
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)
can.begin = 0
can.Action("倍速", 1)
can.Action("数量", can.limit = parseInt(msg.Option("limit"))||3)
can.Action("高度", can.height = parseInt(msg.Option("height"))||200)
can.Option("path") != "最近/" && can.onimport.page(can, can.list, can.begin, can.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) }
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"
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 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"])
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) },
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
function cb(event) { console.log(event) }
@ -75,7 +43,7 @@ Volcanos("onfigure", {help: "组件菜单", list: [],
onloadedmetadata: function(event) { total = event.timeStamp
event.target.currentTime = can._msg.currentTime || 0
}, 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) },
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) {
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
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: [],
onclick: function(event, can) {
can.run(event, [], function() {})
"添加": function(event, can) {
},
})
Volcanos("ondetail", {help: "控件交互", list: ["编辑", "删除"],

View File

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