mirror of
https://shylinux.com/x/volcanos
synced 2025-04-25 16:58:06 +08:00
opt table
This commit is contained in:
parent
a4b99ca2f9
commit
cda9ab80c5
80
frame.js
80
frame.js
@ -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) {
|
||||||
|
@ -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; */
|
||||||
|
26
lib/page.js
26
lib/page.js
@ -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'>")
|
||||||
|
@ -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)
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
Loading…
x
Reference in New Issue
Block a user