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

opt table

This commit is contained in:
shaoying 2020-06-15 09:56:22 +08:00
parent a4b99ca2f9
commit cda9ab80c5
4 changed files with 73 additions and 43 deletions

View File

@ -359,47 +359,47 @@ Volcanos("onappend", { _init: function(can, meta, list, cb, target, field) { met
return target; return target;
}, },
table: function(can, target, type, msg, cb) { table: function(can, target, type, msg, cb) {
var table = can.page.AppendTable(can, target, msg, msg.append, function(event, value, key, index, tr, td) { var table = can.page.AppendTables(can, target, msg, msg.append, cb || function(value, key, index, line) {
can.page.Select(can, can._option, "input.args", function(input) { if (input.name == key) { var data = input.dataset || {} function run(event, item, value) {
input.value = value; typeof cb == "function" && cb(event, value); if (data.action == "auto") { var msg = can.request(event); msg.Option(line)
var sub = can.request(event) var cb = can.onaction[item] || can.onaction["运行"]
can.core.Item(can.Option(), sub.Option) cb? cb(event, can, item): can.run(event, ["action", item, key, value.trim()], function(res) {
sub.Option("_action", msg.Option("_action")) can.ui.display.innerHTML = ""
can.run(event, can.page.Select(can, can._option, "input.args", function(item) { can.onappend.table(can, can.ui.display, "table", res)
return item.name && item.value || "" can.onappend.board(can, can.ui.display, "board", res)
})) }, true)
}
return {type: "td", inner: value, click: function(event) {
var target = event.target; if (target.tagName == "INPUT" && target.type == "button") {
return run(event, event.target.value, value)
} }
} }) can.page.Select(can, can._option, "input.args", function(input) { if (input.name == key) { var data = input.dataset || {}
}, function(event, value, key, index, tr, td) { input.value = value; typeof cb == "function" && cb(event, value); if (data.action == "auto") {
can.onappend.carte(can, can.ondetail||{}, msg["_detail"] || can.Conf("detail") || can.ondetail.list, function(event, item, meta) { var sub = can.request(event)
var back = td.innerHTML can.core.Item(can.Option(), sub.Option)
switch (item) { sub.Option("_action", msg.Option("_action"))
case "编辑": can.run(event, can.page.Select(can, can._option, "input.args", function(item) {
var ui = can.page.Appends(can, td, [{type: "input", value: back, onkeydown: function(event) { return item.name && item.value || ""
switch (event.key) { }))
case "Enter": }
td.innerHTML = event.target.value } })
}, ondblclick: function(event) {
var res = can.request(event); can.core.List(msg.append, function(key) { can.onappend.modify(can, event.target, function(event, value, old) {
res.Option(key, msg[key][index]) run(event, "编辑", value)
}); can.run(event, ["action", item, key, event.target.value.trim(), value.trim()], function(res) {}, true) })
break }, oncontextmenu: function(event) {
case "Escape": can.onappend.carte(can, can.ondetail||{}, msg["_detail"] || can.Conf("detail") || can.ondetail.list, function(event, item, meta) {
td.innerHTML = back switch (item) {
break case "编辑":
} can.onappend.modify(can, event.target, function(event, value, old) {
}, onkeyup: function(event) { run(event, "编辑", value)
})
}}]); break
ui.input.focus() default:
ui.input.setSelectionRange(0, -1) run(event, item, value)
return }
} })
}, }
var res = can.request(event); can.core.List(msg.append, function(key) {
res.Option(key, msg[key][index])
}); can.run(event, ["action", item, key, value.trim()], function(res) {}, true)
})
}) })
}, },
board: function(can, target, type, msg) { board: function(can, target, type, msg) {

View File

@ -111,6 +111,9 @@ fieldset>div.output {
overflow:auto; overflow:auto;
position:relative; position:relative;
} }
fieldset>div.output div.code a {
color:yellow;
}
fieldset>div.output>div.project { fieldset>div.output>div.project {
float:left; float:left;
/* position:fixed; */ /* position:fixed; */

View File

@ -252,6 +252,26 @@ var page = Volcanos("page", {help: "网页模块",
})) }))
return table; return table;
}), }),
AppendTables: shy("添加表格", function(can, target, msg, list, cb) {
if (!msg.append || msg.append.length == 0) {return}
var table = can.page.Append(can, target, "table");
var tr = can.page.Append(can, table, "tr", {dataset: {index: -1}});
can.core.List(list, function(key, index) {if (key.indexOf("_") == 0) {return}
can.page.Append(can, tr, "th", key.trim()).onclick = function(event) {
var dataset = event.target.dataset;
dataset["sort_asc"] = (dataset["sort_asc"] == "1") ? 0: 1;
can.page.RangeTable(can, table, index, dataset["sort_asc"] == "1");
}
});
can.page.Append(can, table, can.core.List(msg.Table(), function(line, index) {
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)
})}
}))
return table;
}),
RangeTable: function(can, table, index, sort_asc) { RangeTable: function(can, table, index, sort_asc) {
var list = can.page.Select(can, table, "tr", function(tr) { var list = can.page.Select(can, table, "tr", function(tr) {
return tr.style.display == "none" || can.page.ClassList.has(can, tr, "hide")? null: tr return tr.style.display == "none" || can.page.ClassList.has(can, tr, "hide")? null: tr
@ -328,7 +348,11 @@ var page = Volcanos("page", {help: "网页模块",
}), }),
Display: function(text) { Display: function(text) {
if (text.startsWith("http")) {return "<a href='"+text+"' target='_blank'>"+text+"</a>"} if (text.startsWith("http")) {
var ls = text.split(" ")
return "<a href='"+ls[0]+"' target='_blank'>"+ls[0]+"</a>"+ls.slice(1).join(" ")
}
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'>")

View File

@ -1,7 +1,10 @@
Volcanos("onimport", {help: "导入数据", list: [], Volcanos("onimport", {help: "导入数据", list: [],
_init: function(can, msg, list, cb, target) { can._output.innerHTML = ""; _init: function(can, msg, list, cb, target) { can._output.innerHTML = "";
can.onappend.table(can, target, "table", msg) can.ui = can.page.Append(can, can._target, [
can.onappend.board(can, target, "board", msg) {view: ["content", "div"]}, {view: ["display", "pre"]},
])
can.onappend.table(can, can.ui.content, "table", msg)
can.onappend.board(can, can.ui.display, "board", msg)
return typeof cb == "function" && cb(msg) return typeof cb == "function" && cb(msg)
}, },
}) })