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

opt share

This commit is contained in:
shylinux 2020-05-15 11:00:17 +08:00
parent bbdaa41dfa
commit 72374b2c8a
5 changed files with 43 additions and 25 deletions

View File

@ -6,7 +6,7 @@ Volcanos("onaction", { _init: function(can, meta, list, cb, target) {
}, can[item.name] = pane, next(); }, can[item.name] = pane, next();
}, can._target); }, can._target);
}, function() { can.onlayout._init(can, meta, list, function() { }, function() { can.onlayout._init(can, meta, list, function() {
can.require(["publish/order.js"], function(can) { can.require(["/publish/order.js"], function(can) {
function getAction() {} function getAction() {}
function getStorm(storm) { can.core.Item(storm, function(key, value) { function getStorm(storm) { can.core.Item(storm, function(key, value) {
value._link? can.require([value._link], function(can) { value._link? can.require([value._link], function(can) {
@ -64,6 +64,10 @@ Volcanos("onaction", { _init: function(can, meta, list, cb, target) {
can.core.List(storm.action, function(value) { can.core.List(storm.action, function(value) {
msg.Push("name", value.name||""); msg.Push("name", value.name||"");
msg.Push("help", value.help||""); msg.Push("help", value.help||"");
msg.Push("pod", value.pod||"");
msg.Push("group", value.group||"");
msg.Push("index", value.index||"");
msg.Push("args", value.args||"[]");
msg.Push("inputs", JSON.stringify(value.inputs||[])); msg.Push("inputs", JSON.stringify(value.inputs||[]));
msg.Push("feature", JSON.stringify(value.feature||{})); msg.Push("feature", JSON.stringify(value.feature||{}));
}) })
@ -108,7 +112,7 @@ Volcanos("onappend", { _init: function(can, meta, list, cb, target, field) {
_target: can.onappend.input(sub, option, item.type, item, args[index]), _target: can.onappend.input(sub, option, item.type, item, args[index]),
_option: option, _action: action, _output: output, _option: option, _action: action, _output: output,
_follow: can._follow+"."+meta.name+"."+item.name, _follow: can._follow+"."+meta.name+"."+item.name,
}, Config.libs.concat([item.display||"plugin/input.js"]), function(input) { }, Config.libs.concat([item.display||"/plugin/input.js"]), function(input) {
input.onimport._init(input, input.Conf(item), item.list||[], function() {}, input._target); input.onimport._init(input, input.Conf(item), item.list||[], function() {}, input._target);
input.run = function(event, cmds, cb, silent) { input.run = function(event, cmds, cb, silent) {
@ -135,12 +139,12 @@ Volcanos("onappend", { _init: function(can, meta, list, cb, target, field) {
// 添加组件 // 添加组件
var display = (msg.Option("_display")||feature.display||"table.js") var display = (msg.Option("_display")||feature.display||"table.js")
display.indexOf("/") == 0 || (display = "plugin/"+display) display.indexOf("/") == 0 || (display = "/plugin/"+display)
sub[display] = Volcanos(display, { _target: output, sub[display] = Volcanos(display, { _target: output,
_option: option, _action: action, _output: output, _option: option, _action: action, _output: output,
_follow: can._follow+"."+meta.name+"."+display, _follow: can._follow+"."+meta.name+"."+display,
}, Config.libs.concat(["frame.js", display]), function(table) { table.Conf(sub.Conf()) }, Config.libs.concat(["/frame.js", display]), function(table) { table.Conf(sub.Conf())
table.onimport._init(table, msg, msg.append||[], function() {}, output) table.onimport._init(table, msg, msg.append||[], function() {}, output)
table.run = function(event, cmds, cb, silent) { table.run = function(event, cmds, cb, silent) {
@ -223,7 +227,7 @@ Volcanos("onappend", { _init: function(can, meta, list, cb, target, field) {
item.value == "auto" && (item.value = "") item.value == "auto" && (item.value = "")
item.action == "auto" && (input.dataset.action = "auto") item.action == "auto" && (input.dataset.action = "auto")
var target = can.page.Append(can, option, [{view: ["item "+item.type], list: [item.position && {text: item.name+": "}, input]}]).last var target = can.page.Append(can, option, [{view: ["item "+item.type], list: [item.position && {text: item.name+": "}, input]}]).last
item.figure && item.figure.indexOf("@") == 0 && (item.figure = item.figure.slice(1)) && can.require(["plugin/input/"+item.figure], function() { item.figure && item.figure.indexOf("@") == 0 && (item.figure = item.figure.slice(1)) && can.require(["/plugin/input/"+item.figure], function() {
target.type != "button" && (target.value = "") target.type != "button" && (target.value = "")
}) })

View File

@ -4,11 +4,11 @@
<meta name="viewport" content="width=device-width,initial-scale=0.7,user-scalable=no"> <meta name="viewport" content="width=device-width,initial-scale=0.7,user-scalable=no">
<title>volcanos</title> <title>volcanos</title>
<link rel="shortcut icon" type="image/ico" href="favicon.ico"> <link rel="shortcut icon" type="image/ico" href="favicon.ico">
<link rel="stylesheet" type="text/css" href="style.css"> <link rel="stylesheet" type="text/css" href="/style.css">
</head> </head>
<body> <body>
<script src="proto.js"></script> <script src="/proto.js"></script>
<script src="index.js"></script> <script src="/index.js"></script>
</body> </body>

View File

@ -1,20 +1,20 @@
var Config = {name: "demo", volcano: "frame.js", iceberg: "/chat/", intshell: "plug.sh", var Config = {name: "demo", volcano: "/frame.js", iceberg: "/chat/", intshell: "plug.sh",
libs: ["lib/base", "lib/core", "lib/misc", "lib/page", "lib/user"], panes: [ libs: ["/lib/base", "/lib/core", "/lib/misc", "/lib/page", "/lib/user"], panes: [
{type: "pane", name: "Header", help: "标题栏", pos: "head", list: ["pane/Header.js", "pane/Header.css"], state: [ {type: "pane", name: "Header", help: "标题栏", pos: "head", list: ["/pane/Header.js", "/pane/Header.css"], state: [
"time", "username", "time", "username",
]}, ]},
{type: "pane", name: "River", help: "群聊组", pos: "left", list: ["pane/River.js", "pane/River.css"]}, {type: "pane", name: "River", help: "群聊组", pos: "left", list: ["/pane/River.js", "/pane/River.css"]},
{type: "pane", name: "Storm", help: "应用流", pos: "right", list: ["pane/Storm.js", "pane/Storm.css"]}, {type: "pane", name: "Storm", help: "应用流", pos: "right", list: ["/pane/Storm.js", "/pane/Storm.css"]},
{type: "pane", name: "Action", help: "工作台", pos: "middle", list: ["pane/Action.js", "pane/Action.css"]}, {type: "pane", name: "Action", help: "工作台", pos: "middle", list: ["/pane/Action.js", "/pane/Action.css"]},
{type: "pane", name: "Footer", help: "状态条", pos: "foot", list: ["pane/Footer.js", "pane/Footer.css"], state: [ {type: "pane", name: "Footer", help: "状态条", pos: "foot", list: ["/pane/Footer.js", "/pane/Footer.css"], state: [
"ncmd", "ncmd",
]}, ]},
], main: {name: "Header", engine: "remote", list: []}, ], main: {name: "Header", engine: "remote", list: []},
list: ["plugin/state.js", "plugin/input.js", "plugin/table.js", list: ["/plugin/state.js", "/plugin/input.js", "/plugin/table.js",
"plugin/input/key", "/plugin/input/key",
"plugin/input/date", "/plugin/input/date",
"plugin/input/upload", "/plugin/input/upload",
"plugin/input/province", "/plugin/input/province",
], ],
} }

View File

@ -6,6 +6,19 @@ Volcanos("onaction", {help: "交互操作", list: [],
can.onexport._init(can, msg, list, cb, target) can.onexport._init(can, msg, list, cb, target)
}, },
}) })
Volcanos("ondetail", {help: "交互菜单", list: ["共享", "更名", "删除"],
"共享": function(event, can, value) {
var msg = can.request(event)
msg.Option("name", "storm")
msg.Option("node", value.pod)
msg.Option("group", value.group)
msg.Option("index", value.index)
msg.Option("args", value.args)
msg.Option("storm", can.Conf("storm"))
msg.Option("river", can.Conf("river"))
can.onappend.share(can, msg)
},
})
Volcanos("onexport", {help: "导出数据", list: [], Volcanos("onexport", {help: "导出数据", list: [],
_init: function(can, msg, list, cb, target) { var key = "action"; _init: function(can, msg, list, cb, target) { var key = "action";
can.Cache(can.Conf("river")+"."+can.Conf("storm"), can._output, can._output.scrollTop+1); can.Cache(can.Conf("river")+"."+can.Conf("storm"), can._output, can._output.scrollTop+1);
@ -16,7 +29,7 @@ Volcanos("onexport", {help: "导出数据", list: [],
msg.Clear("option"), can.run(msg._event, [river, storm], function(sup) { can._output.innerHTML = ""; sup.Table(function(value, index, array) { msg.Clear("option"), can.run(msg._event, [river, storm], function(sup) { can._output.innerHTML = ""; sup.Table(function(value, index, array) {
value.inputs = can.base.Obj(value.inputs, []) value.inputs = can.base.Obj(value.inputs, [])
value.inputs.length == 0 && (value.inputs = [{type: "text"}, {type: "button", name: "查看"}]) value.inputs.length == 0 && (value.inputs = [{type: "text"}, {type: "button", name: "查看"}])
can.onappend._init(can, value, Config.libs.concat(["plugin/state.js"]), function(sub) { can.onappend._init(can, value, Config.libs.concat(["/plugin/state.js"]), function(sub) {
sub.run = function(event, cmds, cb, silent) { var msg = can.request(event, {_msg: sup}); sub.run = function(event, cmds, cb, silent) { var msg = can.request(event, {_msg: sup});
// 插件回调 // 插件回调
can.run(event, [river, storm, index].concat(cmds), function(msg) { can.run(event, [river, storm, index].concat(cmds), function(msg) {
@ -25,6 +38,11 @@ Volcanos("onexport", {help: "导出数据", list: [],
typeof cb == "function" && cb(msg) typeof cb == "function" && cb(msg)
}, silent); }, silent);
} }
sub._target.oncontextmenu = function(event) {
can.onappend.carte(can, can.ondetail, can.ondetail.list, function(event, item, meta) {
meta[item] && meta[item](event, can, value)
})
}
}, can._output); }, can._output);
}) }) }) })
}, },

View File

@ -7,9 +7,6 @@ Volcanos("onaction", {help: "交互操作", list: [],
}, },
}) })
Volcanos("ondetail", {help: "交互菜单", list: ["共享", "更名", "删除"], Volcanos("ondetail", {help: "交互菜单", list: ["共享", "更名", "删除"],
_init: function(can, msg, list, cb, target) {
can.onexport._init(can, msg, list, cb, target)
},
"共享": function(event, can, value) { "共享": function(event, can, value) {
var msg = can.request(event) var msg = can.request(event)
msg.Option("name", "storm") msg.Option("name", "storm")
@ -35,7 +32,6 @@ Volcanos("onexport", {help: "导出数据", list: [],
// 右键点击 // 右键点击
can.onappend.carte(can, can.ondetail, can.ondetail.list, function(event, item, meta) { can.onappend.carte(can, can.ondetail, can.ondetail.list, function(event, item, meta) {
meta[item] && meta[item](event, can, value) meta[item] && meta[item](event, can, value)
console.log(item)
}) })
}); });