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

opt table.js

This commit is contained in:
shaoying 2021-05-24 00:03:33 +08:00
parent 680189e78d
commit 0f15e109ad
6 changed files with 62 additions and 127 deletions

View File

@ -82,10 +82,7 @@ Volcanos("ondaemon", {help: "推荐引擎", list: [], _init: function(can, name)
}, },
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 || !sub._outputs || !sub._outputs.length) { return } sub.onimport._grow(sub, arg.join(""))
var out = sub._outputs[sub._outputs.length-1]
out.onimport._grow(out, arg.join(""))
}, },
toast: function(can, msg, arg) { toast: function(can, msg, arg) {
can.onmotion.float.add(can, "float", can.core.CallFunc(can.user.toast, {can: can, msg: msg, cmds: arg})) can.onmotion.float.add(can, "float", can.core.CallFunc(can.user.toast, {can: can, msg: msg, cmds: arg}))
@ -166,7 +163,7 @@ Volcanos("onappend", {help: "渲染引擎", list: [], _init: function(can, meta,
}, },
_option: function(can, meta, option) { var index = -1, args = can.base.Obj(meta.args||meta.arg, []) _option: function(can, meta, option) { var index = -1, args = can.base.Obj(meta.args||meta.arg, [])
function add(item, next) { item._input != "button" && item.type != "button" && index++ function add(item, next) { item._input != "button" && item.type != "button" && index++
Volcanos(item.name, {_follow: can.core.Keys(can._follow, item.name), _target: can.onappend.input(can, item, args[index], option), return Volcanos(item.name, {_follow: can.core.Keys(can._follow, item.name), _target: can.onappend.input(can, item, args[index], option),
_option: can._option, _action: can._action, _output: can._output, _status: can._status, _option: can._option, _action: can._action, _output: can._output, _status: can._status,
Option: can.Option, Action: can.Action, Status: can.Status, Option: can.Option, Action: can.Action, Status: can.Status,
CloneInput: function() { add(item)._target.focus() }, CloneField: function() { can.Clone() }, CloneInput: function() { add(item)._target.focus() }, CloneField: function() { can.Clone() },
@ -176,6 +173,11 @@ Volcanos("onappend", {help: "渲染引擎", list: [], _init: function(can, meta,
return msg.Option("_handle", "true"), can.core.CallFunc(input.onaction[cmds[1]], {event: event, can: input, msg: msg}) return msg.Option("_handle", "true"), can.core.CallFunc(input.onaction[cmds[1]], {event: event, can: input, msg: msg})
} }
var table = can.core.Value(can, "_outputs.-1")
if (msg.Option("_handle") != "true" && cmds && cmds[0] == "action" && table.onaction[cmds[1]]) {
return msg.Option("_handle", "true"), can.core.CallFunc(table.onaction[cmds[1]], {event: event, can: table, msg: msg})
}
return can.onappend._output(can, meta, event, can.Pack(cmds, silent), cb, silent) return can.onappend._output(can, meta, event, can.Pack(cmds, silent), cb, silent)
}, can._inputs[item.name] = input }, can._inputs[item.name] = input
@ -210,14 +212,16 @@ Volcanos("onappend", {help: "渲染引擎", list: [], _init: function(can, meta,
}) })
if (msg.Option("_handle") != "true" && cmds && cmds[0] == "action" && can.onaction[cmds[1]]) { if (msg.Option("_handle") != "true" && cmds && cmds[0] == "action" && can.onaction[cmds[1]]) {
return can.onaction[cmds[1]](event, can, cmds[1]) return msg.Option("_handle", "true"), can.core.CallFunc(can.onaction[cmds[1]], {event: event, can: can, msg: msg})
} }
var feature = can.Conf("feature") var feature = can.Conf("feature")
var input = msg.Option("_handle") != "true" && cmds && cmds[0] == "action" && feature && feature[cmds[1]]; if (input) { var input = msg.Option("_handle") != "true" && cmds && cmds[0] == "action" && feature && feature[cmds[1]]; if (input) {
can.user.input(event, can, input, function(ev, button, data, list, args) { can.user.input(event, can, input, function(ev, button, data, list, args) {
var msg = can.request(event, {_handle: "true"}, can.Option()) var msg = can.request(event, {_handle: "true"}, can.Option())
can.onappend._output(can, meta, event, cmds.slice(0, 2).concat(args), cb, true) can.onappend._output(can, meta, event, cmds.slice(0, 2).concat(args), function(msg) {
can.onappend._output(can, meta, event, can.Pack(), cb)
}, true)
}) })
return return
} }
@ -330,9 +334,9 @@ Volcanos("onappend", {help: "渲染引擎", list: [], _init: function(can, meta,
can.core.List(array, function(item, index) { line[item.key||line.name] = item.value }) can.core.List(array, function(item, index) { line[item.key||line.name] = item.value })
} }
return {type: "td", inner: value, onclick: function(event) { var target = event.target return {text: [value, "td"], onclick: function(event) { var target = event.target
if (target.tagName == "INPUT" && target.type == "button") { if (target.tagName == "INPUT" && target.type == "button") { var msg = can.sup.request(event, can.Option())
var msg = can.sup.request(event, can.Option(), line) key == "value"? can.core.List(array, function(item, index) { msg.Option(item.key, item.value) }): msg.Option(line)
return can.run(event, ["action", target.name], function(msg) { can.run() }, true) return can.run(event, ["action", target.name], function(msg) { can.run() }, true)
} }
@ -340,11 +344,9 @@ Volcanos("onappend", {help: "渲染引擎", list: [], _init: function(can, meta,
can.onimport._init(can, msg, [], cb, can._output) can.onimport._init(can, msg, [], cb, can._output)
}) })
}, ondblclick: function(event) { var target = event.target }, ondblclick: function(event) { var target = event.target
can.onmotion.modify(can, target, function(event, value, old) { can.onmotion.modify(can, target, function(event, value, old) { var msg = can.sup.request(event, can.Option())
var msg = can.sup.request(event, can.Option(), line) key == "value"? can.core.List(array, function(item, index) { msg.Option(item.key, item.value) }): msg.Option(line)
can.run(event, ["action", "modify", key, value], function(msg) { can.run(event, ["action", "modify", key == "value"? line.key||line.name: key, value], function(msg) { can.run() }, true)
can.user.toast(can, "修改成功")
}, true)
}) })
}} }}
}); table && can.page.Modify(can, table, {className: "content"}) }); table && can.page.Modify(can, table, {className: "content"})

View File

@ -177,7 +177,7 @@ Volcanos("user", {help: "用户操作", agent: {
} }
can.onappend.figure(can, item, item.value, function() {}, target) can.onappend.figure(can, item, item.value, function() {}, target)
target.value = target.value || msg.Option(item.name) || item.value target.value = target.value || msg.Option(item.name)
} }
return {type: "tr", list: [{type: "td", list: [{text: item.name||""}]}, {type: "td", list: [item]} ]} return {type: "tr", list: [{type: "td", list: [{text: item.name||""}]}, {type: "td", list: [item]} ]}

View File

@ -112,6 +112,9 @@ Volcanos({name: "chat", iceberg: "/chat/", volcano: "/frame.js",
]}, ]},
}}, }},
"operate": {name: "运维群", storm: { "operate": {name: "运维群", storm: {
"aaa": {name: "权限 aaa", index: [
"user",
]},
"cli": {name: "系统 cli", index: [ "cli": {name: "系统 cli", index: [
"system", "daemon", "python", "output", "system", "daemon", "python", "output",
"runtime", "process", "runtime", "process",

View File

@ -3,17 +3,11 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, meta,
}) })
Volcanos("onaction", {help: "控件交互", list: [], _init: function(can, meta, list, cb, target) { Volcanos("onaction", {help: "控件交互", list: [], _init: function(can, meta, list, cb, target) {
can.base.isFunc(cb) && cb(); switch (meta.type) { can.base.isFunc(cb) && cb(); switch (meta.type) {
case "textarea":
case "text":
!target.placeholder && (target.placeholder = can.user.trans(can, meta.name) || "")
!target.title && (target.title = target.placeholder)
break
case "select": meta.value && (target.value = meta.value); break case "select": meta.value && (target.value = meta.value); break
case "button": meta.action == "auto" && target.click(); break case "button": meta.action == "auto" && target.click(); break
} }
}, },
upload: function(event, can) { can.user.upload(event, can) },
"执行": function(event, can) { can.run(event) }, "执行": function(event, can) { can.run(event) },
"刷新": function(event, can) { can.run(event) }, "刷新": function(event, can) { can.run(event) },
"查看": function(event, can) { can.run(event) }, "查看": function(event, can) { can.run(event) },
@ -40,7 +34,6 @@ Volcanos("onaction", {help: "控件交互", list: [], _init: function(can, meta,
case "m": if (event.ctrlKey) { can.CloneField() } break case "m": if (event.ctrlKey) { can.CloneField() } break
} }
}, },
onkeyup: function(event, can) { },
}) })
Volcanos("onexport", {help: "导出数据", list: []}) Volcanos("onexport", {help: "导出数据", list: []})

View File

@ -1,8 +1,7 @@
Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, conf, list, cb, target) { Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, conf, list, cb, target) {
}, },
_process: function(can, msg, cmds, cb, silent) { _process: function(can, msg) { return can.core.CallFunc([can.onimport, msg.Option("_process")], [can, msg]) },
return can.core.CallFunc([can.onimport, msg.Option("_process")], [can, msg, cmds, cb, silent])
},
_refresh: function(can, msg) { _refresh: function(can, msg) {
can.core.Timer(parseInt(msg.Option("_delay")||"500"), function() { can.core.Timer(parseInt(msg.Option("_delay")||"500"), function() {
var sub = can.request({}, {_count: parseInt(msg.Option("_count"))-1}) var sub = can.request({}, {_count: parseInt(msg.Option("_count"))-1})
@ -10,41 +9,6 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, conf,
}) })
return true return true
}, },
_hold: function(can, msg) { return true },
_back: function(can) {
can._history.pop(); for (var his = can._history.pop(); his; his = can._history.pop()) {
if (his[0] == "action") { continue }
can.page.Select(can, can._option, "textarea.args,input.args,select.args", function(item, index) {
item.value = his[index]||""
}), can.onappend._output(can, can.Conf(), {}, can.Pack([]))
break
}
!his && can.onappend._output(can, can.Conf(), {}, can.Pack([]))
return true
},
_progress: function(can, msg, cmds, cb, silent) {
var size = msg.Append("size") || msg.Append("count")
if (size != "" && size == msg.Append("total")) { return true }
can.user.toast(can, {
title: can._name+" "+msg.Append("step")+"% ", width: 400,
content: "执行进度: "+can.base.Size(size||0)+"/"+can.base.Size(msg.Append("total")||"1000")+"\n"+msg.Append("name"),
duration: 1100, progress: parseInt(msg.Append("step")),
})
can.page.Select(can, can._output, "td", function(td) {
if (td.innerText == msg.Option("name")) {
can.page.ClassList.add(can, td, "done")
}
})
can.core.Timer(1000, function() {
var res = can.request({}, {_progress: msg.Option("_progress")})
return can.onappend._output(can, can.Conf(), res._event, can.Pack(cmds), cb, silent)
})
return true
},
_field: function(can, msg) { _field: function(can, msg) {
msg.Table(function(item) { can.onappend._plugin(can, item, {}, function(sub, meta) { msg.Table(function(item) { can.onappend._plugin(can, item, {}, function(sub, meta) {
sub.run = function(event, cmds, cb, silent) { sub.run = function(event, cmds, cb, silent) {
@ -56,6 +20,41 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, conf,
}) }) }) })
return true return true
}, },
_inner: function(can, msg) {
can.onappend.table(can, msg, function(value, key, index, line, array) {
return can.onimport._table(can, value, key, index, line, array)
}, can._output)
can.onappend.board(can, msg.Result(), can._output)
can.onmotion.story.auto(can, can._output)
can.page.Modify(can, can._output, {style: {display: "block"}})
return true
},
_hold: function(can, msg) { return true },
_back: function(can) {
can._history.pop(); for (var his = can._history.pop(); his; his = can._history.pop()) {
if (his[0] == "action") { continue }
can.page.Select(can, can._option, "textarea.args,input.args,select.args", function(item, index) {
item.value = his[index]||""
}), can.onappend._output(can, can.Conf(), {}, can.Pack())
break
}
!his && can.onappend._output(can, can.Conf(), {}, can.Pack())
return true
},
_grow: function(can, str) {
if (can.page.Select(can, can._output, "div.code", function(div) {
can.page.Modify(can, div, {style: {"max-height": 400}})
can.page.Append(can, div, [{text: [str]}])
div.scrollBy(0, 10000)
return true
}).length == 0) {
can.onappend.board(can, str)
}
// can.onmotion.story.auto(can, can._output)
},
_open: function(can, msg) { _open: function(can, msg) {
can.user.open(msg.Option("_arg")) can.user.open(msg.Option("_arg"))
return true return true

View File

@ -1,62 +1,11 @@
Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg, list, cb, target) { Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg, list, cb, target) {
can.onmotion.clear(can) can.onmotion.clear(can), can.base.isFunc(cb) && cb(msg)
can.page.Append(can, target, [can.onimport._control(can, msg)]) can.onappend.table(can, msg)
can.onappend.table(can, msg, function(value, key, index, line, array) {
return can.onimport._table(can, value, key, index, line, array, cb)
})
can.base.isFunc(cb) && cb(msg)
can.onappend.board(can, msg.Result()) can.onappend.board(can, msg.Result())
can.onmotion.story.auto(can, can._output) can.onmotion.story.auto(can, target)
},
_table: function(can, value, key, index, line, array, cb) {
return {text: [value, "td"], onclick: function(event) { var target = event.target
if (target.tagName == "INPUT" && target.type == "button") { var msg = can.sup.request(event, can.Option())
key == "value"? can.core.List(array, function(item, index) { msg.Option(item.key, item.value) }): msg.Option(line)
return can.run(event, ["action", target.name], function(msg) { can.run() }, true)
}
if (can.sup.onaction.change(event, can.sup, key, value, function(msg) {}).length > 0) { return }
}, ondblclick: function(event) {
can.onmotion.modify(can, event.target, function(event, value, old) {
var msg = can.sup.request(event, can.Option()); msg = can.sup.request(event, line)
can.run(event, ["action", "modify", key == "value"? line.key||line.name: key, value], function(msg) { }, true)
})
}}
}, },
_process: function(can, msg) { _process: function(can, msg) { return can.core.CallFunc([can.onimport, msg.Option("_process")], [can, msg]) },
return can.core.CallFunc([can.onimport, msg.Option("_process")], [can, msg])
},
_follow: function(can, msg) {
if (msg.Option("cache.status") == "stop") { return can.user.toast(can, msg.Option("cache.action")+" done!")}
can.page.Modify(can, can._output, {className: "code", style: {"max-height": 400, "display": "block"}})
can.page.Append(can, can._output, [{text: msg.Result()}])
can._output.scrollBy(0, 1000)
can.core.Timer(100, function() { var sub = can.request({})
sub.Option("cache.hash", msg.Option("cache.hash"))
sub.Option("cache.begin", msg.Option("cache.begin"))
sub.Option("cache.limit", msg.Option("cache.limit"))
can.run(sub._event, ["action", msg.Option("cache.action")], function(msg) {
can.onimport._follow(can, msg)
}, true)
})
return true
},
_inner: function(can, msg) {
can.onappend.table(can, msg, function(value, key, index, line, array) {
return can.onimport._table(can, value, key, index, line, array)
}, can._output)
can.onappend.board(can, msg.Result(), can._output)
can.onmotion.story.auto(can, can._output)
can.page.Modify(can, can._output, {style: {display: "block"}})
return true
},
_control: function(can, msg) { _control: function(can, msg) {
var cb = can.onimport[msg.Option("_control")] var cb = can.onimport[msg.Option("_control")]
@ -113,17 +62,6 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg,
}, data: {"className": "args"}}, }, data: {"className": "args"}},
]} ]}
}, },
_grow: function(can, str) {
if (can.page.Select(can, can._output, "div.code", function(div) {
can.page.Modify(can, div, {style: {"max-height": 400}})
can.page.Append(can, div, [{text: [str]}])
div.scrollBy(0, 10000)
return true
}).length == 0) {
can.onappend.board(can, str)
}
// can.onmotion.story.auto(can, can._output)
},
}) })
Volcanos("onaction", {help: "控件交互", list: []}) Volcanos("onaction", {help: "控件交互", list: []})
Volcanos("onexport", {help: "导出数据", list: []}) Volcanos("onexport", {help: "导出数据", list: []})