diff --git a/frame.js b/frame.js index 61bd8c4b..f23572f5 100644 --- a/frame.js +++ b/frame.js @@ -135,7 +135,6 @@ Volcanos("onappend", { _init: function(can, meta, list, cb, target, field) { can.page.Select(can, field, "legend", function(item) { can.page.Remove(can, item) }) } - // 添加控件 var args = can.base.Obj(meta.args, []) can.core.Next(can.base.Obj(meta.inputs, []), function(item, next, index) { @@ -243,6 +242,13 @@ Volcanos("onappend", { _init: function(can, meta, list, cb, target, field) { }]) return ui.item.Meta = item, ui.item }, + menu: function(can, msg, value) { + can.ondetail && can.ondetail.list && can.ondetail.list.length > 0 && (can._target.oncontextmenu = function(event) { + can.onappend.carte(can, can.ondetail||{}, msg["_detail"] || can.Conf("detail"), function(ev, item, meta) { + (can.ondetail[item]||can.onaction[item])(event, can, value, item) + }) + }) + }, field: function(can, target, type, item) { var dataset = {}; item && item.name && (dataset.names = item.name); item.help = typeof item.help == "string" && item.help.startsWith("[") && (item.help = can.base.Obj(item.help, [""])[0]) || item.help || "" var field = can.page.Append(can, target, [{view: [(type||"")+" "+(item.name||"")+" "+(item.pos||""), "fieldset"], list: [ diff --git a/pane/River.js b/pane/River.js index 68d733ed..a925f608 100644 --- a/pane/River.js +++ b/pane/River.js @@ -1,10 +1,23 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, meta, list, cb, target) { }, }) -Volcanos("onaction", {help: "交互数据", list: [], _init: function(can, msg, list, cb, target) { +Volcanos("onaction", {help: "控件交互", list: [], _init: function(can, msg, list, cb, target) { can.onexport._init(can, msg, list, cb, target) }, }) +Volcanos("ondetail", {help: "菜单交互", list: ["添加用户", "重命名", "删除"], _init: function(can, msg, list, cb, target) { + can.onexport._init(can, msg, list, cb, target) + }, + "添加用户": function(event, can, river, button) { + console.log(river, button) + }, + "重命名": function(event, can, river, button) { + console.log(river, button) + }, + "删除": function(event, can, river, button) { + console.log(river, button) + }, +}) Volcanos("onexport", {help: "导出数据", list: [], _init: function(can, msg, list, cb, target) { var key = "river"; can.run(msg._event, [], function(sup) { can._output.innerHTML = ""; var select; sup.Table(function(value, index, array) { var view = can.onappend.item(can, can._output, "item", value, function(event, item) { var msg = can.request(event, {_msg: sup}); @@ -12,6 +25,7 @@ Volcanos("onexport", {help: "导出数据", list: [], _init: function(can, msg, msg.Option(key, can.Conf(key, value.key)), can.run(event, ["search", "Storm.onaction._init"]); }, function(event) { // 右键点击 + can.onappend.menu(can, msg, value) }); if (index == 0 || [value.key, value.name].indexOf(can.user.Search(can, key)) > -1) { diff --git a/plugin/inner.js b/plugin/inner.js index 09b7058f..df298958 100644 --- a/plugin/inner.js +++ b/plugin/inner.js @@ -32,11 +32,12 @@ Volcanos("onimport", {help: "导入数据", _init: function(can, msg, list, cb, msg.Option("path", can.Option("path")) msg.Option("name", can.Option("name")) + msg.Option("key", can.Option("key")) can.tabview = {}, can.Timer(10, function() { can.onlayout._init(can) + can.onsyntax._init(can, msg) can.onkeymap._init(can, "normal") can.onimport.project(can, can.Option("path")) - can.onimport.tabview(can, can.Option("path"), can.Option("name")) }) return typeof cb == "function" && cb(msg) },