1
0
forked from x/volcanos

opt table.js

This commit is contained in:
shylinux 2020-12-11 10:43:09 +08:00
parent f4a8acdcb4
commit 5e3fb6eb89
4 changed files with 28 additions and 33 deletions

View File

@ -269,6 +269,7 @@ Volcanos("onappend", {help: "渲染引擎", list: [], _init: function(can, meta,
_option: can._option, _action: can._action, _output: can._output,
CloneInput: function() { add(item)._target.focus() },
CloneField: function() { can.Clone() },
Option: can.Option,
}, Volcanos.meta.libs.concat([item.display||"/plugin/input.js", Volcanos.meta.volcano]), function(input) {
input.Conf(item), input.sup = can
input.run = function(event, cmds, cb, silent) {
@ -304,11 +305,11 @@ Volcanos("onappend", {help: "渲染引擎", list: [], _init: function(can, meta,
})
can.run(event, cmds||[], function(msg) {
if (can.onimport._process(can, msg, cmds, cb)) { return }
typeof cb == "function" && cb(msg)
if (silent) { return }
if (can.onimport._process(can, msg)) { return }
var display = meta.feature.display || "table.js"
display.indexOf("/") == 0 || (display = "/plugin/"+display)
display.endsWith(".js") || (display += ".js")

View File

@ -82,9 +82,8 @@ Volcanos("onaction", {help: "控件交互", list: [], _init: function(can, meta,
switch (event.key) {
case "Enter":
if (can.Conf("type") == "text") { event.target.setSelectionRange(0, -1), can.run(event) }
if (can.Conf("type") == "textarea") { break }
event.stopPropagation()
event.preventDefault()
if (can.Conf("type") == "textarea") { if (!event.ctrlKey) { break }; can.run(event) }
event.stopPropagation(), event.preventDefault()
break
case "b": if (!event.ctrlKey) { break }; can.CloneInput(); break
case "m": if (!event.ctrlKey) { break }; can.CloneField(); break
@ -94,8 +93,7 @@ Volcanos("onaction", {help: "控件交互", list: [], _init: function(can, meta,
switch (event.key) {
case "Enter":
if (can.Conf("type") == "textarea") { break }
event.stopPropagation()
event.preventDefault()
event.stopPropagation(), event.preventDefault()
break
}
},

View File

@ -1,29 +1,31 @@
Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, conf, list, cb, target) {
},
_process: function(can, msg) {
var cb = can.onimport[msg.Option("_process") || can.Conf("feature._process")]
return typeof cb == "function" && cb(can, msg)
_process: function(can, msg, cmds, cb, silent) {
var action = can.onimport[msg.Option("_process") || can.Conf("feature._process")]
return typeof action == "function" && action(can, msg, cmds, cb, silent)
},
_progress: function(can, sub, conf, msg, cmds, cb, silent) {
_progress: function(can, msg, cmds, cb, silent) {
var size = msg.Append("size") || msg.Append("count")
if (size != "" && size == msg.Append("total")) {
return typeof cb == "function" && cb(msg)
return false
}
can.user.toast(can, {
width: 400,
title: conf.name+" "+msg.Append("step")+"% ", duration: 1100,
title: can._name+" "+msg.Append("step")+"% ", duration: 1100,
text: "执行进度: "+can.base.Size(size||0)+"/"+can.base.Size(msg.Append("total")||"1000")+"\n"+msg.Append("name"),
progress: parseInt(msg.Append("step")),
width: 400,
})
can.page.Select(can, sub._output, "td", function(td) {
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 = sub.request({})
res.Option("_progress", msg.Option("_progress"))
sub.run(res._event, cmds, cb, silent)
var res = can.request({}, {_process: msg.Option("_progress")})
return can.onappend._output(can, can.Conf(), res._event, can.Pack(cmds), cb, silent)
})
return true
},
@ -53,15 +55,15 @@ Volcanos("onaction", {help: "交互操作", list: [], _init: function(can, msg,
},
input: function(event, can, name, cb) { var feature = can.Conf("feature")
feature[name]? can.user.input(event, can, feature[name], function(ev, button, data, list) {
var msg = can.request(event); msg.Option(can.Option())
var msg = can.request(event, can.Option())
var args = ["action", name]; can.core.Item(data, function(key, value) {
key && value && args.push(key, value)
})
var sub = can._outputs && can._outputs[can._outputs.length-1] || can
sub.run(event, args, function(msg) { typeof cb == "function" && cb(msg) })
sub.run(event, args, function(msg) { typeof cb == "function" && cb(msg) }, true)
return true
}): can.run(event, ["action", name], function(msg) { typeof cb == "function" && cb(msg) })
}): can.run(event, ["action", name], function(msg) { typeof cb == "function" && cb(msg) }, true)
},
change: function(event, can, name, value, cb) {
can.page.Select(can, can._option, "input.args", function(input) { if (input.name == name) { var data = input.dataset || {}

View File

@ -71,19 +71,13 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg,
},
_table: function(can, value, key, index, line, array) {
return {type: "td", inner: value, click: function(event) { var target = event.target
if (target.tagName == "INPUT" && target.type == "button") { var msg = can.sup.request(event); msg.Option(can.Option())
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)
var msg = can.request(event)
msg.Option("action", target.name)
var cb = can.onaction[target.name]; return typeof cb == "function"? cb(event, can, target.name):
can.sup.onaction.input(event, can.sup, target.name, function(msg) {
can.user.toast(can, msg.Result())
if (can.onimport._process(can, msg)) {
return typeof cb == "function" && cb(msg)
}
can.run({})
var cb = can.onaction[msg.Option("action", target.name)]
typeof cb == "function"? cb(event, can, target.name): can.sup.onaction.input(event, can.sup, target.name, function(msg) {
can.onimport._process(can, msg) || can.run({})
})
} else {
can.sup.onaction.change(event, can.sup, key, value, function(msg) {