1
0
mirror of https://shylinux.com/x/volcanos synced 2025-04-25 16:58:06 +08:00

opt frame.js

This commit is contained in:
harveyshao 2021-05-17 20:43:33 +08:00
parent 0c3f6033a3
commit 9f1c7644fa
14 changed files with 90 additions and 102 deletions

View File

@ -29,8 +29,9 @@ Volcanos("onengine", {help: "搜索引擎", list: [], _init: function(can, meta,
"list": cmds.slice(2), "cb": cb, "target": sub._target, "list": cmds.slice(2), "cb": cb, "target": sub._target,
}, mod) }, mod)
}, },
_engine: function(event, can, msg, panel, cmds, cb) { return false },
_remote: function(event, can, msg, panel, cmds, cb) { _remote: function(event, can, msg, panel, cmds, cb) {
if (panel.onengine.engine(event, can, msg, panel, cmds, cb)) { return } if (panel.onengine._engine(event, can, msg, panel, cmds, cb)) { return }
var key = panel._name+"."+cmds.join(",") var key = panel._name+"."+cmds.join(",")
if (can.user.isLocalFile) { var msg = can.request(event); msg.Clear("append") if (can.user.isLocalFile) { var msg = can.request(event); msg.Clear("append")
@ -39,11 +40,10 @@ Volcanos("onengine", {help: "搜索引擎", list: [], _init: function(can, meta,
} }
can.misc.Run(event, can, {names: (can.Conf("iceberg")||"/chat/")+panel._name, daemon: can.ondaemon._list[0]+"."+msg._daemon}, cmds, function(msg) { can.misc.Run(event, can, {names: (can.Conf("iceberg")||"/chat/")+panel._name, daemon: can.ondaemon._list[0]+"."+msg._daemon}, cmds, function(msg) {
delete(msg._handle), delete(msg._toast) Volcanos.meta.pack[key] = msg, delete(msg._handle), delete(msg._toast)
Volcanos.meta.pack[key] = msg
can.base.isFunc(cb) && cb(msg) can.base.isFunc(cb) && cb(msg)
}) })
}, engine: function(event, can, msg, panel, cmds, cb) { return false }, },
listen: shy("监听事件", {}, [], function(can, name, cb) { listen: shy("监听事件", {}, [], function(can, name, cb) {
arguments.callee.meta[name] = (arguments.callee.meta[name]||[]).concat(cb) arguments.callee.meta[name] = (arguments.callee.meta[name]||[]).concat(cb)
@ -57,33 +57,25 @@ Volcanos("onengine", {help: "搜索引擎", list: [], _init: function(can, meta,
for (var k in sub["river"]) { can.onengine["river"] = sub["river"]; break } for (var k in sub["river"]) { can.onengine["river"] = sub["river"]; break }
}, },
}) })
Volcanos("ondaemon", {help: "推荐引擎", list: [], _init: function(can) { Volcanos("ondaemon", {help: "推荐引擎", list: [], _init: function(can, name) { if (can.user.isLocalFile) { return }
if (can.user.isLocalFile) { return } can.misc.WSS(can, {type: "chrome", name: can.user.Search(can, "daemon")||name}, function(event, msg, cmd, arg) { if (!msg) { return }
can.misc.WSS(can, {type: "chrome", name: can.user.Search(can, "daemon")||""}, function(event, msg, cmd, arg) { if (!msg) { return } can.base.isFunc(can.ondaemon[cmd])? can.core.CallFunc(can.ondaemon[cmd], {
if (can.base.isFunc(can.ondaemon[cmd])) { "can": can, "msg": msg, "cmd": cmd, "arg": arg, "cb": function() { msg.Reply() },
can.core.CallFunc(can.ondaemon[cmd], { }): can.onengine._search({}, can, msg, can, ["_search", cmd].concat(arg), function() {
"can": can, "msg": msg, "cmd": cmd, "arg": arg, msg.Reply()
"cb": function() { msg.Reply() }, })
})
} else {
can.onengine._search({}, can, msg, can, ["_search", cmd].concat(arg), function() {
msg.Reply()
})
}
}) })
}, _list: [""], }, _list: [""],
toast: function(can, msg, arg) { arg[0] = can pwd: function(can, msg, arg) { can.ondaemon._list[0] = arg[0] },
can.onmotion.float.add(can, "float", can.core.CallFunc(can.user.toast, {can: can, msg: msg, cmds: arg}))
},
grow: function(can, msg, arg) { grow: function(can, msg, arg) {
var sub = can.ondaemon._list[msg.Option("_target")] var sub = can.ondaemon._list[msg.Option("_target")]
if (!sub._outputs || !sub._outputs.length) { return } if (!sub || !sub._outputs || !sub._outputs.length) { return }
var out = sub._outputs[sub._outputs.length-1] var out = sub._outputs[sub._outputs.length-1]
out.onimport._grow(out, arg.join("")) out.onimport._grow(out, arg.join(""))
}, },
pwd: function(can, msg, arg) { toast: function(can, msg, arg) {
can.ondaemon._list[0] = arg[0] can.onmotion.float.add(can, "float", can.core.CallFunc(can.user.toast, {can: can, msg: msg, cmds: arg}))
}, },
}) })
Volcanos("onappend", {help: "渲染引擎", list: [], _init: function(can, meta, list, cb, target, field) { Volcanos("onappend", {help: "渲染引擎", list: [], _init: function(can, meta, list, cb, target, field) {
@ -95,9 +87,9 @@ Volcanos("onappend", {help: "渲染引擎", list: [], _init: function(can, meta,
var output = can.page.Select(can, field, "div.output")[0] var output = can.page.Select(can, field, "div.output")[0]
var status = can.page.Select(can, field, "div.status")[0] var status = can.page.Select(can, field, "div.status")[0]
var sub = Volcanos(meta.name, {_follow: can._follow+"."+meta.name, var sub = Volcanos(meta.name, {_follow: can.core.Keys(can._follow, meta.name), _target: field,
_legend: legend, _option: option, _action: action, _output: output, _status: status, _legend: legend, _option: option, _action: action, _output: output, _status: status,
_target: field, _inputs: {}, _outputs: [], _history: [], _inputs: {}, _outputs: [], _history: [],
Option: function(key, value) { Option: function(key, value) {
if (key == undefined) { value = {} if (key == undefined) { value = {}
sub.page.Select(sub, option, "textarea.args,input.args,select.args", function(item) { sub.page.Select(sub, option, "textarea.args,input.args,select.args", function(item) {
@ -190,7 +182,7 @@ Volcanos("onappend", {help: "渲染引擎", list: [], _init: function(can, meta,
key.indexOf("on") == 0 && !input._target[key] && (input._target[key] = function(event) { key.indexOf("on") == 0 && !input._target[key] && (input._target[key] = function(event) {
value(event, input) value(event, input)
}) })
}), can.onappend.figure(input, item, item.value, input._target) }), can.onappend.figure(input, item, item.value, function() {}, input._target)
can.core.CallFunc([input.onaction, "_init"], [input, item, [], next, input._target]) can.core.CallFunc([input.onaction, "_init"], [input, item, [], next, input._target])
}) })
@ -383,7 +375,7 @@ Volcanos("onappend", {help: "渲染引擎", list: [], _init: function(can, meta,
return sort && can.page.RangeTable(can, table, sort), table return sort && can.page.RangeTable(can, table, sort), table
}, },
board: function(can, text, target) { text = can.page.Display(text||"") board: function(can, text, target) { text = can.page.Color(text||"")
var code = text && can.page.Append(can, target||can._output, [{view: ["code", "div", text]}]).code var code = text && can.page.Append(can, target||can._output, [{view: ["code", "div", text]}]).code
can.page.Select(can, code, "input[type=button]", function(target) { can.page.Select(can, code, "input[type=button]", function(target) {
target.onclick = function(event) { target.onclick = function(event) {
@ -395,13 +387,13 @@ Volcanos("onappend", {help: "渲染引擎", list: [], _init: function(can, meta,
return code return code
}, },
figure: function(can, meta, key, target) { figure: function(can, meta, key, cb, target) {
if (!key || key[0] != "@") { return } if (!key || key[0] != "@") { return }
var list = can.core.Split(key, "@=", "@=") var list = can.core.Split(key, "@=", "@=")
var pkey = list[0], pval = list[1]||"" var pkey = list[0], pval = list[1]||""
target.type != "button" && (target.value = pval||""), can.require(["/plugin/input/"+pkey+".js"], function(can) { target.type != "button" && (target.value = pval||""), can.require(["/plugin/input/"+pkey+".js"], function(can) {
can.core.Item(can.onfigure[pkey], function(key, cb) { if (key.indexOf("on") == 0) { target[key] = function(event) { can.core.Item(can.onfigure[pkey], function(key, on) { if (key.indexOf("on") == 0) { target[key] = function(event) {
can.onappend._init(can, {type: "input", name: pkey, pos: "float"}, [], function(sub) { can.onappend._init(can, {type: "input", name: pkey, pos: "float"}, [], function(sub) {
sub.run = function(event, cmds, cb) { sub.run = function(event, cmds, cb) {
var msg = sub.request(event, can.Option()); var msg = sub.request(event, can.Option());
@ -411,7 +403,7 @@ Volcanos("onappend", {help: "渲染引擎", list: [], _init: function(can, meta,
can.onmotion.float.add(can, "input", sub) can.onmotion.float.add(can, "input", sub)
meta.style && sub.page.Modify(sub, sub._target, {style: meta.style}) meta.style && sub.page.Modify(sub, sub._target, {style: meta.style})
cb(event, sub, meta, target) on(event, sub, meta, cb, target)
}, document.body) }, document.body)
} } }) } } })
}) })
@ -568,11 +560,10 @@ Volcanos("onmotion", {help: "动态特效", list: [], _init: function(can, targe
}, },
auto: function(can, target, key) { var that = this auto: function(can, target, key) { var that = this
var list = can.core.List(arguments).slice(2)
can.page.Modify(can, target, {onmouseover: function(event) { can.page.Modify(can, target, {onmouseover: function(event) {
if (event.target.tagName == "img") { return } if (event.target.tagName == "IMG") { return }
can.core.List(arguments, function(key, index) { can.core.List(list, function(key, index) { that.del(can, key) })
index > 1 && that.del(can, key)
})
}}) }})
}, },
}, },

View File

@ -103,7 +103,7 @@ Volcanos("core", {help: "数据结构",
return res return res
}), }),
List: shy("迭代器", function(list, cb, interval, cbs) { list = list || [] List: shy("迭代器", function(list, cb, interval, cbs) {
if (typeof list == "string") { // 默认序列 if (typeof list == "string") { // 默认序列
list = [list] list = [list]
@ -116,20 +116,19 @@ Volcanos("core", {help: "数据结构",
} }
} }
list = list || []
if (interval > 0) { // 时间序列 if (interval > 0) { // 时间序列
function loop(i) { if (i >= list.length) { return typeof cbs == "function" && cbs(list) } function loop(i) { if (i >= list.length) { return typeof cbs == "function" && cbs(list) }
cb(list[i], i, list), setTimeout(function() { loop(i+1) }, interval) cb(list[i], i, list), setTimeout(function() { loop(i+1) }, interval)
} }
typeof cb == "function" && list.length > 0 && setTimeout(function() { loop(0) }, interval/4) typeof cb == "function" && list.length > 0 && setTimeout(function() { loop(0) }, interval/4)
} else { // 选择序列 } else { // 选择序列
var slice = [], res var slice = [], res
for (var i = 0; i < list.length; i++) { for (var i = 0; i < list.length; i++) {
typeof cb == "function"? (res = cb(list[i], i, list)) != undefined && slice.push(res): slice.push(list[i]) typeof cb == "function"? (res = cb(list[i], i, list)) != undefined && slice.push(res): slice.push(list[i])
} }; list = slice
list = slice
} }
return list return list
}), }),
Next: shy("迭代器", function(list, cb, cbs) { Next: shy("迭代器", function(list, cb, cbs) {

View File

@ -163,7 +163,7 @@ Volcanos("page", {help: "网页模块", ClassList: {
// 递归节点 // 递归节点
item.list && can.page.Append(can, node, item.list, value) item.list && can.page.Append(can, node, item.list, value)
target && target.append && target.appendChild(node) target && target.append && target.appendChild(node)
typeof item._init == "function" && item._init(node) can.base.isFunc(item._init) && item._init(node)
}) })
return value return value
}), }),
@ -182,7 +182,7 @@ Volcanos("page", {help: "网页模块", ClassList: {
}]) }])
can.page.Append(can, table, can.core.List(msg.Table(), function(line, index, array) { can.page.Append(can, table, can.core.List(msg.Table(), function(line, index, array) {
return {type: "tr", dataset: {index: index}, list: can.core.List(list, function(key) { if (key.indexOf("_") == 0) { return } return {type: "tr", dataset: {index: index}, list: can.core.List(list, function(key) { if (key.indexOf("_") == 0) { return }
return cb(can.page.Display(line[key]).trim(), key, index, line, array) return cb(can.page.Color(line[key]).trim(), key, index, line, array)
})} })}
})) }))
return can.page.OrderTable(can, table) return can.page.OrderTable(can, table)
@ -248,13 +248,19 @@ Volcanos("page", {help: "网页模块", ClassList: {
} }
}, },
Display: function(text) { if (typeof text != "string") { return "" } Format: function(type, src) {
switch (type) {
case "a": return "<a href='"+arguments[1]+"' target='_blank'>"+(arguments[2]||arguments[1])+"</a>"
case "img": return arguments[2]? "<img src='"+arguments[1]+"' height="+arguments[2]+">": "<img src='"+arguments[1]+"'>"
}
},
Color: function(text) { if (typeof text != "string") { return "" }
if (text.indexOf("http://") == 0 || text.indexOf("https://") == 0 || text.indexOf("ftp://") == 0) { if (text.indexOf("http://") == 0 || text.indexOf("https://") == 0 || text.indexOf("ftp://") == 0) {
var ls = text.split(" "); var ls = text.split(" ");
text = "<a href='"+ls[0]+"' target='_blank'>"+ls[0]+"</a>"+ls.slice(1).join(" ") text = "<a href='"+ls[0]+"' target='_blank'>"+ls[0]+"</a>"+ls.slice(1).join(" ")
}; text = text.replace(/\\n/g, "<br>") }; text = text.replace(/\\n/g, "<br>")
// if (!text.indexOf("\033\[")) { return text } if (text.indexOf("\033\[") == -1) { return text }
text = text.replace(/\033\[31m/g, "<span style='color:#f00'>") text = text.replace(/\033\[31m/g, "<span style='color:#f00'>")
text = text.replace(/\033\[32m/g, "<span style='color:#0f0'>") text = text.replace(/\033\[32m/g, "<span style='color:#0f0'>")
text = text.replace(/\033\[33m/g, "<span style='color:#ff0'>") text = text.replace(/\033\[33m/g, "<span style='color:#ff0'>")
@ -267,12 +273,6 @@ Volcanos("page", {help: "网页模块", ClassList: {
text = text.replace(/\033\[m/g, "</span>") text = text.replace(/\033\[m/g, "</span>")
return text return text
}, },
Format: function(type, src) {
switch (type) {
case "a": return "<a href='"+arguments[1]+"' target='_blank'>"+(arguments[2]||arguments[1])+"</a>"
case "img": return arguments[2]? "<img src='"+arguments[1]+"' height="+arguments[2]+">": "<img src='"+arguments[1]+"'>"
}
},
Cache: function(name, output, data) { var cache = output._cache || {}; output._cache = cache Cache: function(name, output, data) { var cache = output._cache || {}; output._cache = cache
if (data) { if (output.children.length == 0) { return } if (data) { if (output.children.length == 0) { return }
var temp = document.createDocumentFragment() var temp = document.createDocumentFragment()

View File

@ -169,7 +169,7 @@ Volcanos("user", {help: "用户操作", agent: {
}); can.run(event, cmds, cb, true) }); can.run(event, cmds, cb, true)
} }
can.onappend.figure(can, item, item.value, target) can.onappend.figure(can, item, item.value, function() {}, target)
target.value = target.value || msg.Option(item.name) target.value = target.value || msg.Option(item.name)
} }

View File

@ -161,6 +161,7 @@ table.content tr {
table.content th { table.content th {
background-color:#0fbd45; background-color:#0fbd45;
padding:2px 6px; padding:2px 6px;
cursor:pointer;
} }
table.content td { table.content td {
padding:2px 6px; padding:2px 6px;

View File

@ -112,9 +112,6 @@ Volcanos({name: "chat", iceberg: "/chat/", volcano: "/frame.js",
]}, ]},
}}, }},
"operate": {name: "运维群", storm: { "operate": {name: "运维群", storm: {
"ctx": {name: "模块 ctx", index: [
"context", "command", "config",
]},
"cli": {name: "系统 cli", index: [ "cli": {name: "系统 cli", index: [
"system", "daemon", "python", "output", "system", "daemon", "python", "output",
"runtime", "process", "runtime", "process",
@ -123,10 +120,6 @@ Volcanos({name: "chat", iceberg: "/chat/", volcano: "/frame.js",
"route", "serve", "space", "dream", "route", "serve", "space", "dream",
"spide", "share", "cache", "story", "spide", "share", "cache", "story",
]}, ]},
"aaa": {name: "权限 aaa", index: [
"user", "sess", "role", "totp",
]},
"nfs": {name: "文件 nfs", index: [ "nfs": {name: "文件 nfs", index: [
"nfs.cat", "nfs.dir", "nfs.tail", "nfs.trash", "nfs.cat", "nfs.dir", "nfs.tail", "nfs.trash",
]}, ]},

View File

@ -62,7 +62,7 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg)
}, },
}) })
Volcanos("onengine", {help: "解析引擎", list: [], Volcanos("onengine", {help: "解析引擎", list: [],
engine: function(event, page, msg, can, cmds, cb) { _engine: function(event, page, msg, can, cmds, cb) {
var river = can.onengine.river[cmds[0]] var river = can.onengine.river[cmds[0]]
var storm = river && river.storm[cmds[1]] var storm = river && river.storm[cmds[1]]
if (!storm || cmds.length != 2) { return false } if (!storm || cmds.length != 2) { return false }
@ -92,7 +92,7 @@ Volcanos("onaction", {help: "交互操作", list: [], _init: function(can, msg,
var share = can.user.Search(can, can._SHARE); if (share) { var share = can.user.Search(can, can._SHARE); if (share) {
can.run({}, ["_share", share], function(msg) { msg.Length()>0? can.onimport._share(can, msg, share): can.run({}, ["_share", share], function(msg) { msg.Length()>0? can.onimport._share(can, msg, share):
can.onengine.engine({}, can, msg, can, [msg.Option("sess.river"), msg.Option("sess.storm")], function(msg) { can.onengine._engine({}, can, msg, can, [msg.Option("sess.river"), msg.Option("sess.storm")], function(msg) {
can.onimport._share(can, msg, share) can.onimport._share(can, msg, share)
}) })
}) })
@ -136,7 +136,11 @@ Volcanos("onaction", {help: "交互操作", list: [], _init: function(can, msg,
can.onmotion.select(can, can._output, "fieldset.plugin", 0) can.onmotion.select(can, can._output, "fieldset.plugin", 0)
can.onmotion.select(can, can._action, "div.item", 0) can.onmotion.select(can, can._action, "div.item", 0)
} }
if (key == "free") {
can.page.Select(can, can._target, "div.output>fieldset.plugin", function(item, index) {
can.onmotion.move(can, item, {left: 10*index, top: 10*index})
})
}
var header = can.get("Header", "height") var header = can.get("Header", "height")
var footer = can.get("Footer", "height") var footer = can.get("Footer", "height")

View File

@ -1,12 +1,4 @@
Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg, list, cb, target) { Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg, list, cb, target) {
const GRANT = "grant"; if (can.user.Search(can, GRANT)) {
if (can.user.confirm(GRANT+" "+can.user.Search(can, GRANT))) {
can.run(event, [can._ACTION, GRANT, "space", can.user.Search(can, GRANT)])
}
can.user.Search(can, GRANT, "")
return
}
can._trans = { can._trans = {
"river": "菜单", "river": "菜单",
"search": "搜索", "search": "搜索",
@ -24,16 +16,37 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg,
} }
can.onmotion.clear(can) can.onmotion.clear(can)
can.onimport._agent(can, msg, target)
can.onimport._grant(can, msg, target)
can.onimport._title(can, msg, target) can.onimport._title(can, msg, target)
can.onimport._state(can, msg, target) can.onimport._state(can, msg, target)
can.onimport._search(can, msg, target) can.onimport._search(can, msg, target)
can.onimport._background(can, msg, target) can.onimport._background(can, msg, target)
can.onimport._agent(can, msg, target)
can.onimport._menu(can, msg, target) can.onimport._menu(can, msg, target)
can.base.isFunc(cb) && cb(msg)
can.onmotion.float.auto(can, can._output, "carte", "input") can.onmotion.float.auto(can, can._output, "carte", "input")
can.base.isFunc(cb) && cb(msg)
},
_agent: function(can, msg, target) {
if (can.user.isMobile) {
can.onaction.River(can)
can.onaction.Footer(can)
} else if (can.user.isExtension) {
can.onaction.River(can)
} else if (can.user.Search(can, "pod")) {
can.onaction.River(can)
can.onaction.Footer(can)
}
can.user.isWeiXin && can.onimport._weixin(can)
},
_grant: function() {
const GRANT = "grant"; if (can.user.Search(can, GRANT)) {
if (can.user.confirm(GRANT+" "+can.user.Search(can, GRANT))) {
can.run(event, [can._ACTION, GRANT, "space", can.user.Search(can, GRANT)])
}
can.user.Search(can, GRANT, "")
return true
}
}, },
_title: function(can, msg, target) { _title: function(can, msg, target) {
can.user.title(can.user.Search(can, can._TITLE)||can.user.Search(can, "pod")) can.user.title(can.user.Search(can, can._TITLE)||can.user.Search(can, "pod"))
@ -68,26 +81,11 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg,
// ; can.onmotion.autosize(can, ui.input, 240, 120) // ; can.onmotion.autosize(can, ui.input, 240, 120)
can.user.isMobile && can.page.Modify(can, ui.first, {style: {float: "right"}}) can.user.isMobile && can.page.Modify(can, ui.first, {style: {float: "right"}})
}, },
_avatar: function(can, msg) {
!can.user.isLocalFile && can.page.Modify(can, "div.output div.state.avatar>img", {src: can.Conf(can._AVATAR, msg.Option(can._AVATAR))})
},
_background: function(can, msg) { _background: function(can, msg) {
if (can.user.isLocalFile) { return } if (can.user.isLocalFile) { return }
if (can.user.isExtension) { return } if (can.user.isExtension) { return }
can.onlayout.background(can, msg.Option(can._BACKGROUND), document.body) can.onlayout.background(can, msg.Option(can._BACKGROUND), document.body)
}, },
_agent: function(can, msg, target) {
if (can.user.isMobile) {
can.onaction.River(can)
can.onaction.Footer(can)
} else if (can.user.isExtension) {
can.onaction.River(can)
} else if (can.user.Search(can, "pod")) {
can.onaction.River(can)
can.onaction.Footer(can)
}
can.user.isWeiXin && can.onimport._weixin(can)
},
_menu: function(can, msg, target) { _menu: function(can, msg, target) {
can.onimport.menu(can, can.user.isMobile||can.user.isExtension||can.user.Search(can, "pod")? ["header", can._RIVER]: can.onimport.menu(can, can.user.isMobile||can.user.isExtension||can.user.Search(can, "pod")? ["header", can._RIVER]:
["header", ["setting", "black", "white", "print", "pack"]], function(event, item) { ["header", ["setting", "black", "white", "print", "pack"]], function(event, item) {
@ -121,17 +119,18 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg,
}) })
}) }) }) })
}, },
_avatar: function(can, msg) {
!can.user.isLocalFile && can.page.Modify(can, "div.output div.state.avatar>img", {src: can.Conf(can._AVATAR, msg.Option(can._AVATAR))})
},
_time: function(can, target) { _time: function(can, target) {
can.core.Timer({interval: 1000}, function() { can.onimport.time(can, target) }) can.core.Timer({interval: 1000}, function() { can.onimport.time(can, target) })
can.onappend.figure(can, {style: {"min-width": 306}}, "@date", target) can.onappend.figure(can, {style: {"min-width": 306}}, "@date", function(sub) {
can.search({}, ["Action.onexport.size"], function(msg, top) {
target.onmouseenter = function(event) { target.click() can.page.Modify(can, sub._target, {style: {top: top, left: window.innerWidth-sub._target.offsetWidth}})
can.core.Timer(10, function() {
// can.onlayout.figure(event, can, Volcanos.meta.float.input._target)
}) })
} }, target), target.onmouseenter = function() { target.click() }
}, },
time: function(can, target) { can.onlayout.topic(can) time: function(can, target) { can.onlayout.topic(can)
target.innerHTML = can.base.Time(null, "%w %H:%M:%S") target.innerHTML = can.base.Time(null, "%w %H:%M:%S")
}, },

View File

@ -89,7 +89,7 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg,
}}) }})
}, },
}) })
Volcanos("onengine", {help: "解析引擎", list: [], engine: function(event, can, msg, panel, cmds, cb) { Volcanos("onengine", {help: "解析引擎", list: [], _engine: function(event, can, msg, panel, cmds, cb) {
cmds.length == 0 && can.core.Item(can.onengine.river, function(key, value) { cmds.length == 0 && can.core.Item(can.onengine.river, function(key, value) {
msg.Push({hash: key, name: value.name}) msg.Push({hash: key, name: value.name})
}); if (cmds.length != 1 && cmds[1] != "tool") { return false } }); if (cmds.length != 1 && cmds[1] != "tool") { return false }
@ -153,6 +153,7 @@ Volcanos("onaction", {help: "控件交互", list: [], _init: function(can, msg,
var carte = can.user.carte(event, can, can.ondetail, list, cb) var carte = can.user.carte(event, can, can.ondetail, list, cb)
can.page.Modify(can, carte._target, {style: { can.page.Modify(can, carte._target, {style: {
left: event.clientX-event.offsetX+event.target.offsetWidth-3, left: event.clientX-event.offsetX+event.target.offsetWidth-3,
top: carte._target.offsetTop-event.target.offsetHeight,
}}) }})
}, },

View File

@ -1,6 +1,6 @@
Volcanos("onfigure", {help: "控件详情", list: [], date: {onclick: function(event, can, item, target) { Volcanos("onfigure", {help: "控件详情", list: [], date: {onclick: function(event, can, meta, cb, target) {
function set(now) { target.value = can.base.Time(now), can.page.Remove(can, can._target) function set(now) { target.value = can.base.Time(now), can.page.Remove(can, can._target)
item && item.action == "auto" && can.run({}) meta && meta.action == "auto" && can.run({})
} }
// 添加控件 // 添加控件
@ -56,7 +56,7 @@ Volcanos("onfigure", {help: "控件详情", list: [], date: {onclick: function(e
for (var day = new Date(one); day < end; day.setDate(day.getDate()+1)) {add(day, "main")} for (var day = new Date(one); day < end; day.setDate(day.getDate()+1)) {add(day, "main")}
for (var day = new Date(end); end.getDay() != 0 && day < tail; day.setDate(day.getDate()+1)) {add(day, "next")} for (var day = new Date(end); end.getDay() != 0 && day < tail; day.setDate(day.getDate()+1)) {add(day, "next")}
return can.onlayout.figure(event, can), now return can.onlayout.figure(event, can), cb(can), now
}; show(now) }; show(now)
}} }, ["/plugin/input/date.css"]) }} }, ["/plugin/input/date.css"])

View File

@ -1,5 +1,5 @@
Volcanos("onfigure", {help: "控件详情", list: [], key: {onclick: function(event, can, item, target) { Volcanos("onfigure", {help: "控件详情", list: [], key: {onclick: function(event, can, meta, cb, target) {
can.run(event, ["action", "inputs", item.name, target.value], function(msg) { can.run(event, ["action", "inputs", meta.name, target.value], function(msg) {
if (msg.Length() == 0) { return can.page.Remove(can, can._target) } if (msg.Length() == 0) { return can.page.Remove(can, can._target) }
can.onappend._action(can, ["关闭", "清空"], can._action, { can.onappend._action(can, ["关闭", "清空"], can._action, {

View File

@ -1,4 +1,4 @@
Volcanos("onfigure", {help: "控件详情", list: [], province: {onclick: function(event, can, item, target) { Volcanos("onfigure", {help: "控件详情", list: [], province: {onclick: function(event, can, meta, cb, target) {
can.require(["/require/github.com/shylinux/echarts/echarts.js","/require/github.com/shylinux/echarts/china.js"], function() { can.require(["/require/github.com/shylinux/echarts/echarts.js","/require/github.com/shylinux/echarts/china.js"], function() {
can.onappend._action(can, ["关闭", "清空"], can._action, { can.onappend._action(can, ["关闭", "清空"], can._action, {
"关闭": function(event) { can.page.Remove(can, can._target) }, "关闭": function(event) { can.page.Remove(can, can._target) },

View File

@ -86,7 +86,7 @@ Volcanos("ondetail", {help: "组件菜单", list: ["关闭", "下载", "上一
can.onappend._init(can, {type: "story feel float"}, [], function(sub) { can.sub = sub can.onappend._init(can, {type: "story feel float"}, [], function(sub) { can.sub = sub
sub.run = function(event, cmds, cb) { return can.run(event, cmds, cb, true) } sub.run = function(event, cmds, cb) { return can.run(event, cmds, cb, true) }
sub.search(["Action.onexport.size"], function(msg, left, top, width, height) { sub.search({}, ["Action.onexport.size"], function(msg, left, top, width, height) {
sub.page.Modify(sub, sub._target, {style: {left: left, top: top}}) sub.page.Modify(sub, sub._target, {style: {left: left, top: top}})
sub.page.Modify(sub, sub._output, {style: {"max-width": width, "max-height": height}}) sub.page.Modify(sub, sub._output, {style: {"max-width": width, "max-height": height}})
sub.onappend._action(can, can.ondetail.list, sub._action, can.ondetail) sub.onappend._action(can, can.ondetail.list, sub._action, can.ondetail)

View File

@ -45,7 +45,7 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg,
item.type = "story" item.type = "story"
can.onappend._init(can, item, ["/plugin/state.js"], function(sub) { can.onappend._init(can, item, ["/plugin/state.js"], function(sub) {
sub.run = function(event, cmds, cb, silent) { sub.run = function(event, cmds, cb, silent) {
can.run(event, (cmds && cmds[0] == "search"? []: ["action", "story", data.type, data.name, data.text]).concat(cmds), cb, true) can.run(event, (cmds && cmds[0] == "_search"? []: ["action", "story", data.type, data.name, data.text]).concat(cmds), cb, true)
} }
can.page.Modify(can, sub._output, {style: {"max-width": item.width-40}}) can.page.Modify(can, sub._output, {style: {"max-width": item.width-40}})