1
0
mirror of https://shylinux.com/x/volcanos synced 2025-04-25 08:48:06 +08:00
volcanos/trash/pane/Steam.js
2020-07-13 22:56:34 +08:00

114 lines
4.9 KiB
JavaScript

Volcanos("onimport", {help: "导入数据", list: [],
_init: function(can, conf, output, action, option, field) {output.innerHTML = "";
function create(event, cmd) {
if (!ui.name.value) {ui.name.focus(); can.user.toast("请输入群名"); return}
var list = []
can.page.Select(can, ui.list, "tr", function(item, index) {if (index > 0) {
list.push(item.dataset.pod)
list.push(item.dataset.key)
list.push(item.dataset.index)
list.push(item.dataset.help)
}})
var name = ui.name.value;
switch (event.target.value) {
case "创建应用": cmd = "spawn"; break
case "追加应用": cmd = "append", name = can.Conf("storm"); break
}
can.run(event, [can.Conf("river"), cmd, name].concat(list), function(msg) {
can.Hide(), can.Export(event, "update", "storm");
})
}
can.page.AppendAction(can, field, [{type: "text", name: "pod"}])
var device = can.page.Append(can, field, [{"view": ["device", "table"]}]).last
var ui = can.page.Append(can, field, [{view: ["create"], list: [
{input: "name", value: can.Conf("def_name"), title: "应用名称"},
{button: ["创建应用", create]},
{button: ["追加应用", create]},
{name: "list", view: ["list", "table"], list: [
{text: ["3. 已选命令列表", "caption"]},
{row: ["ctx", "cmd", "name", "help"], sub: "th"},
]},
]}])
can.device = device
can.ui = ui
},
init: function(event, can, msg, key) {can.output.innerHTML = ""; can.Show(event, -100, -100);
var table = can.page.Append(can, can.output, "table")
can.page.Append(can, table, [{text: ["1. 选择用户节点 ->", "caption"]}])
can.page.AppendTable(can, table, msg, ["type", "name", "user"], function(event, value, key, index, tr, td) {
can.page.Select(can, table, "tr.select", function(item) {can.page.ClassList.del(can, item, "select")})
can.page.ClassList.add(can, tr, "select")
var node = msg.name[index];
can.run(event, [can.Conf("river"), msg.user[index], node], function(com) {var list = com.Table()
can.page.Appends(can, can.device, [{text: ["2. 选择模块命令 ->", "caption"]}])
can.com = list, can.command = can.page.AppendTable(can, can.device, com, ["key", "index", "name", "help"], function(event, value, key, index, tr, td) {
var line = list[index];
line.pod = node;
var last = can.page.Append(can, can.ui.list, [{
row: [line.key, line.index, line.name, line.help], dataset: line,
click: function(event) {last.parentNode.removeChild(last)},
}]).first
}, function(event, value, key, index, tr, td) {
can.user.carte(event, shy(can.ondetail, can.ondetail.list, function(event, key, meta) {
meta[key](event, can, com, value, key, index, td)
}))
})
})
}), table.querySelector("td").click()
},
steam: function(event, can, value, key, field) {
if (value == "create") {
can.run(event, [can.Conf("river")], function(msg) {
can.onimport.init(event, can, msg, key, field);
});
}
},
river: function(event, can, value, key, field) {if (value == "update") {return}
can.Conf("river", value)
},
storm: function(event, can, value, key, field) {if (value == "update") {return}
can.Conf("storm", value)
},
})
Volcanos("onaction", {help: "组件交互", list: ["关闭", "刷新", {input: ["pod"]}, {input: ["cmd", function(event, can) {
}, function(event, can) {
if (event.key == "Enter") {
can.page.Select(can, can.command, "tr", function(tr, index) {
if (index == 0) {return}
if (!can.page.ClassList.has(can, tr, "hidden")) {
tr.firstChild.click()
event.target.value = ""
}
})
return
}
can.page.Select(can, can.command, "tr", function(tr, index) {
if (index == 0) {return}
if (can.com[index-1].index.indexOf(event.target.value) > -1) {
can.page.ClassList.del(can, tr, "hidden")
} else {
can.page.ClassList.add(can, tr, "hidden")
}
})
}]}],
"关闭": function(event, can, meta, key, field) {
can.Hide()
},
"刷新": function(event, can, meta, key, field) {
can.Import(event, "create", "steam")
},
})
Volcanos("onchoice", {help: "组件菜单", list: ["关闭", "刷新"]})
Volcanos("ondetail", {help: "组件详情", list: []})
Volcanos("onexport", {help: "导出数据", list: []})