mirror of
https://shylinux.com/x/volcanos
synced 2025-04-25 16:58:06 +08:00
opt some
This commit is contained in:
parent
1fed6b185e
commit
cebbef0366
15
lib/base.js
15
lib/base.js
@ -114,6 +114,21 @@ Volcanos("base", {help: "数据类型",
|
||||
return res + (n > 0? "."+parseInt(n/10): "") + "s"
|
||||
},
|
||||
Format: shy("数据格式化", function(obj) { return JSON.stringify(obj) }),
|
||||
Simple: function() { var res = []
|
||||
for (var i = 0; i < arguments.length; i++) {
|
||||
var arg = arguments[i]; switch (typeof arguments[i]) {
|
||||
case "number": res.push(arg); break
|
||||
case "string": res.push(arg); break
|
||||
case "object":
|
||||
if (arg.length > 0) {
|
||||
res = res.concat(arg)
|
||||
} else {
|
||||
for (var k in arg) { res.push(k, arg[k]) }
|
||||
}
|
||||
}
|
||||
}
|
||||
return res
|
||||
},
|
||||
Number: shy("数字格式化", function(d, n) { var result = []
|
||||
while (d > 0) { result.push(d % 10); d = parseInt(d / 10); n-- }
|
||||
while (n > 0) { result.push("0"); n-- }
|
||||
|
37
lib/user.js
37
lib/user.js
@ -1,6 +1,8 @@
|
||||
Volcanos("user", {help: "用户模块", agent: {
|
||||
scanQRCode: function(cb) {
|
||||
typeof cb == "function" && cb({name: "some"})
|
||||
scanQRCode: function(cb, can) {
|
||||
can.user.input(event, can, [{_input: "textarea"}], function(ev, button, data, list, args) {
|
||||
cb(list[0])
|
||||
})
|
||||
},
|
||||
getLocation: function(cb) {
|
||||
typeof cb == "function" && cb({name: "some"})
|
||||
@ -122,19 +124,19 @@ Volcanos("user", {help: "用户模块", agent: {
|
||||
var ui = can.user.input({clientX: 200, clientY: 100}, can, [
|
||||
{username: "username", name: "用户"},
|
||||
{password: "password", name: "密码"},
|
||||
{button: [["登录", function(event) {
|
||||
can.user.Cookie(can, "sessid", "")
|
||||
can.run({}, ["login", ui["用户"].value, ui["密码"].value], function(msg) {
|
||||
if (can.user.Cookie(can, "sessid")||msg.Option("user.name")||msg.Result()) {
|
||||
can.page.Remove(can, ui.first); return typeof cb == "function" && cb()
|
||||
}
|
||||
can.user.alert("用户或密码错误")
|
||||
})
|
||||
}], ["扫码", function(event) {
|
||||
// TODO
|
||||
}]]},
|
||||
{button: ["登录", "扫码"]},
|
||||
], function(event, button, data, list) {
|
||||
// TODO
|
||||
switch (button) {
|
||||
case "登录":
|
||||
can.user.Cookie(can, "sessid", "")
|
||||
can.run({}, ["login", ui["用户"].value, ui["密码"].value], function(msg) {
|
||||
if (can.user.Cookie(can, "sessid")||msg.Option("user.name")||msg.Result()) {
|
||||
can.page.Remove(can, ui.first); return typeof cb == "function" && cb()
|
||||
}
|
||||
can.user.alert("用户或密码错误")
|
||||
})
|
||||
break
|
||||
}
|
||||
})
|
||||
},
|
||||
carte: function(event, can, meta, list, cb, view) {
|
||||
@ -196,9 +198,7 @@ Volcanos("user", {help: "用户模块", agent: {
|
||||
|
||||
var button; var ui = can.page.Append(can, document.body, [{view: ["input inputs", "fieldset"], style: {left: x+"px", top: y+"px"}, list: [
|
||||
{view: ["option", "table"], list: can.core.List(form, function(item) {
|
||||
if (item.button) { button = can.core.List(item.button, function(item) {
|
||||
return {button: typeof item == "object"? item: [item, function(event) { cbs(event, item) }]}
|
||||
}); return }
|
||||
if (item.button) { button = item.button; return }
|
||||
|
||||
item.run = function(event, cmds, cb) {
|
||||
var msg = can.request(event, Option())
|
||||
@ -226,11 +226,12 @@ Volcanos("user", {help: "用户模块", agent: {
|
||||
]}])
|
||||
|
||||
can.onappend._action(can, button||["提交", "关闭"], ui.action, {
|
||||
_engine: function(event, can, key) { cbs(event, key) },
|
||||
"提交": function(event) { cbs(event, "提交") },
|
||||
"关闭": function(event) { can.page.Remove(can, ui.first) },
|
||||
})
|
||||
|
||||
can.page.Select(can, ui.first, "input", function(item, index) {
|
||||
can.page.Select(can, ui.first, "textarea,input", function(item, index) {
|
||||
index == 0 && can.core.Timer(100, function() {
|
||||
item.focus(), item.setSelectionRange(0, -1)
|
||||
})
|
||||
|
@ -47,7 +47,14 @@ Volcanos("onimport", {help: "导入数据", _init: function(can, msg, list, cb,
|
||||
case "inner": can.onimport.tabview(can, msg.Option("path"), msg.Option("file"), msg.Option("line")); return
|
||||
} }
|
||||
|
||||
can.run(event, ["action", "favor"].concat(cmds), cb, true)
|
||||
can.run(event, ["action", "favor"].concat(cmds), function(msg) {
|
||||
typeof cb == "function" && cb(msg)
|
||||
can.core.Timer(10, function() {
|
||||
can.onappend._action(sub, ["关闭"], sub._action, {
|
||||
"关闭": function(event) { can.onmotion.hidden(sub, sub._target) },
|
||||
})
|
||||
})
|
||||
}, true)
|
||||
}, can.ui.favor = sub
|
||||
|
||||
can.onmotion.hidden(sub, sub._target)
|
||||
|
@ -1,53 +1,60 @@
|
||||
Volcanos("onimport", {help: "导入数据", list: [], _merge: function(can, sub) {
|
||||
can.onimport.inner_init = sub._init
|
||||
}, _init: function(can, msg, list, cb, target) {
|
||||
Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg, list, cb, target) {
|
||||
can.require(["/plugin/local/code/inner.js"], function(can) {
|
||||
can.onimport.inner_init(can, msg, list, function() {
|
||||
can.onimport._input(can), can.onimport._output(can)
|
||||
can.keylist = [], can.onkeymap._init(can, "insert")
|
||||
typeof cb == "function" && cb(msg)
|
||||
|
||||
var ui = can.page.Append(can, can.ui.content.parentNode, [
|
||||
{view: ["current", "input"], onkeydown: function(event) {
|
||||
can.onkeymap.parse(event, can, "insert")
|
||||
can.core.Timer(10, function() {
|
||||
can.current.text(can.ui.current.value)
|
||||
})
|
||||
}, onblur: function(event) {
|
||||
can.current.text(can.ui.current.value)
|
||||
}, onfocus: function(event) {
|
||||
can._output.scrollLeft += -1000
|
||||
|
||||
can.current.scroll(-1000, 0)
|
||||
}, onclick: function(event) {
|
||||
can.onkeymap._insert(can)
|
||||
}},
|
||||
{view: ["command", "input"], onkeydown: function(event) {
|
||||
can.onkeymap.parse(event, can, "command")
|
||||
}, onfocus: function(event) {
|
||||
can._output.scrollLeft += -1000
|
||||
can.current.scroll(-1000, 0)
|
||||
}},
|
||||
]); can.base.Copy(can.ui, ui, "current", "command")
|
||||
|
||||
var ui = can.page.Appends(can, can.ui.display, [
|
||||
{view: "action", list: [
|
||||
{input: ["cmd", function(event) {
|
||||
can.onkeymap.parse(event, can, "command")
|
||||
}], value: "", onfocus: function(event) {
|
||||
event.target.setSelectionRange(0, -1)
|
||||
can.onkeymap._command(can)
|
||||
}},
|
||||
{button: ["执行", function(event) {
|
||||
can.onkeymap.command.Enter(event, can, can.ui.cmd.value)
|
||||
}]},
|
||||
{button: ["关闭", function(event) {
|
||||
can.onmotion.hidden(can, can.ui.display)
|
||||
} ]},
|
||||
]}, {view: "output"},
|
||||
]); can.base.Copy(can.ui, ui, "output", "cmd")
|
||||
}, target)
|
||||
}, function(can, name, sub) {
|
||||
sub._name == "onimport" && (can.onimport.inner_init = sub._init)
|
||||
})
|
||||
},
|
||||
_input: function(can) {
|
||||
var ui = can.page.Append(can, can.ui.content.parentNode, [
|
||||
{view: ["current", "input"], onkeydown: function(event) {
|
||||
can.onkeymap.parse(event, can, "insert")
|
||||
can.core.Timer(10, function() {
|
||||
can.current.text(can.ui.current.value)
|
||||
})
|
||||
}, onblur: function(event) {
|
||||
can.current.text(can.ui.current.value)
|
||||
}, onfocus: function(event) {
|
||||
can._output.scrollLeft += -1000
|
||||
|
||||
can.current.scroll(-1000, 0)
|
||||
}, onclick: function(event) {
|
||||
can.onkeymap._insert(can)
|
||||
}},
|
||||
|
||||
{view: ["command", "input"], onkeydown: function(event) {
|
||||
can.onkeymap.parse(event, can, "command")
|
||||
}, onfocus: function(event) {
|
||||
can._output.scrollLeft += -1000
|
||||
can.current.scroll(-1000, 0)
|
||||
}},
|
||||
]); can.base.Copy(can.ui, ui, "current", "command")
|
||||
},
|
||||
_output: function(can) {
|
||||
var ui = can.page.Appends(can, can.ui.display, [
|
||||
{view: "action", list: [
|
||||
{input: ["cmd", function(event) {
|
||||
can.onkeymap.parse(event, can, "command")
|
||||
}], value: "", onfocus: function(event) {
|
||||
event.target.setSelectionRange(0, -1)
|
||||
can.onkeymap._command(can)
|
||||
}},
|
||||
{button: ["执行", function(event) {
|
||||
can.onkeymap.command.Enter(event, can, can.ui.cmd.value)
|
||||
}]},
|
||||
{button: ["清空", function(event) {
|
||||
can.onmotion.clear(can, ui.output)
|
||||
} ]},
|
||||
{button: ["关闭", function(event) {
|
||||
can.onmotion.hidden(can, can.ui.display)
|
||||
} ]},
|
||||
]}, {view: "output"},
|
||||
]); can.base.Copy(can.ui, ui, "output", "cmd")
|
||||
},
|
||||
}, ["/plugin/local/code/vimer.css"])
|
||||
Volcanos("onkeymap", {help: "键盘交互", list: ["command", "normal", "insert"], _init: function(can, mode) {
|
||||
can.core.List(can.onkeymap.list, function(item) { var engine = {}
|
||||
|
@ -76,7 +76,9 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg,
|
||||
},
|
||||
onclick: function(event) { if (event.target.type == "button") {
|
||||
var msg = can.request(event, can.task)
|
||||
can.run(event, ["action", event.target.name])
|
||||
can.run(event, ["action", event.target.name], function(msg) {
|
||||
can.run()
|
||||
}, true)
|
||||
} },
|
||||
}]) })
|
||||
|
||||
@ -84,14 +86,14 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg,
|
||||
index: task["extra.ctx"]+"."+task["extra.cmd"], args: task["extra.arg"],
|
||||
}, function(sub, meta) {
|
||||
sub.run = function(event, cmds, cb) {
|
||||
var msg = can.request(event); can.core.Item(can.task, function(key, value) {
|
||||
msg.Option("task."+key, value)
|
||||
})
|
||||
var msg = can.request(event, {"task.zone": task.zone, "task.id": task.id})
|
||||
can.run(event, ["action", "command", "run", meta.index].concat(cmds), function(msg) {
|
||||
typeof cb == "function" && cb(msg)
|
||||
}, true)
|
||||
}
|
||||
}, can.ui.display)
|
||||
can.page.Modify(can, can.ui.display, {style: {display: "block"}})
|
||||
// can.onmotion.show(can, can.ui.display)
|
||||
},
|
||||
|
||||
day: function(can, msg) {
|
||||
|
@ -60,14 +60,24 @@ Volcanos("onaction", {help: "交互操作", list: [], _init: function(can, msg,
|
||||
can.user.agent.scanQRCode(function(text) { var cmds = ["action", cmd]
|
||||
can.core.Item(can.base.parseJSON(text), function(key, value) { cmds.push(key, value) })
|
||||
can.run(event, cmds, function(msg) { can.user.toast(can, "添加成功"), can.run() }, true)
|
||||
})
|
||||
}, can)
|
||||
},
|
||||
scanQRCode0: function(event, can) { can.user.agent.scanQRCode() },
|
||||
getClipboardData: function(event, can, cmd) {
|
||||
navigator.clipboard.readText().then(text => { var cmds = ["action", cmd]
|
||||
can.core.Item(can.base.parseJSON(text), function(key, value) { cmds.push(key, value) })
|
||||
can.run(event, cmds, function(msg) { can.user.toast(can, text, "添加成功"), can.run() }, true)
|
||||
}).catch((err) => { can.base.Log(err) })
|
||||
if (navigator.clipboard) {
|
||||
navigator.clipboard.readText().then(text => {
|
||||
can.run(event, can.base.Simple("action", cmd, can.base.parseJSON(text)), function(msg) {
|
||||
can.user.toast(can, text, "添加成功"), can.run()
|
||||
}, true)
|
||||
}).catch((err) => { can.base.Log(err) })
|
||||
return
|
||||
} else {
|
||||
can.user.input(event, can, [{_input: "textarea"}], function(ev, button, data, list, args) {
|
||||
can.run(event, can.base.Simple("action", cmd, can.base.parseJSON(list[0])), function(msg) {
|
||||
can.user.toast(can, list[0], "添加成功"), can.run()
|
||||
}, true)
|
||||
})
|
||||
}
|
||||
},
|
||||
getLocation: function(event, can, cmd) { var msg = can.request(can)
|
||||
can.user.agent.getLocation(function(res) { can.request(event, res)
|
||||
|
Loading…
x
Reference in New Issue
Block a user