From a3ba72c2320d5aed2de2a8d3bfd7319818d1d351 Mon Sep 17 00:00:00 2001 From: shylinux Date: Mon, 20 Apr 2020 11:28:44 +0800 Subject: [PATCH] add story --- frame.js | 4 ++-- lib/page.js | 4 +--- plugin/table.js | 27 ++++++++++++++++++++++++++- 3 files changed, 29 insertions(+), 6 deletions(-) diff --git a/frame.js b/frame.js index 924052c6..63078511 100644 --- a/frame.js +++ b/frame.js @@ -247,7 +247,7 @@ var can = Volcanos("chat", { }, Delete: function(event) {field.parentNode.removeChild(field)}, }, Config.libs.concat(["plugin/"+(meta.type||feature.active||"state")]), function(plugin) {plugin.Conf(meta); - var list = typeof meta.inputs == "string"? JSON.parse(meta.inputs||"[]"): meta.inputs; + var list = typeof meta.inputs == "string"? JSON.parse(meta.inputs||"[]"): meta.inputs || []; // 加载配置 plugin.onimport._init? plugin.onimport._init(plugin, feature, plugin.output, plugin.action, plugin.option): // 加载控件 @@ -318,7 +318,7 @@ var can = Volcanos("chat", { run: function(event, cmd, cb, silent) {var msg = can.Event(event); cmd = cmd || can.Option(), can.page.Select(can, option, ".args", function(item) { - item.name && item.value && msg.Option(item.name, item.value) + item.name && item.value && msg.Option(item.name) == undefined && msg.Option(item.name, item.value) }); can.Run(event, cmd, cb, silent); }, diff --git a/lib/page.js b/lib/page.js index cc108777..1a7aa2d0 100644 --- a/lib/page.js +++ b/lib/page.js @@ -156,7 +156,7 @@ Volcanos("page", {help: "网页模块", Appends: shy("添加节点", function(can, target, key, value) { return target.innerHTML = "", can.page.Append(can, target, key, value) }), - Remove: shy("删除节点", function(can, target, key, value) { + Remove: shy("删除节点", function(can, target) { target.parentNode && target.parentNode.removeChild(target) }), @@ -292,8 +292,6 @@ Volcanos("page", {help: "网页模块", can.page.Remove(can, can.figure.first); delete(can.figure); }}]) }), - AppendStruct: shy("添加控件", function(event, can, cmd, name) { - }), AppendAction: shy("添加控件", function(can, action, list, cb) { return can.page.Append(can, action, can.core.List(list, function(line) { return ["br", "hr"].indexOf(line.type) > -1? line: {view: "item", list: [typeof line == "string"? {button: [line, cb]}: line.length > 0? {select: [line, cb]}: diff --git a/plugin/table.js b/plugin/table.js index bb062090..84532596 100644 --- a/plugin/table.js +++ b/plugin/table.js @@ -62,7 +62,32 @@ Volcanos("onchoice", {help: "组件菜单", list: ["返回", "清空", "复制", can.page.Download(can, list[0]+list[1], list[2]); }, }) -Volcanos("ondetail", {help: "组件详情", list: ["选择", "编辑", "删除", "复制", "下载", "收藏"], +Volcanos("ondetail", {help: "组件详情", list: ["渲染", "选择", "编辑", "删除", "复制", "下载", "收藏"], + "渲染": function(event, can, msg, index, key, cmd, td) { + can._story = can._story || can.Plugin(can, msg.name[index], {inputs: [ + {_input: "button", name: "喜欢"}, + {_input: "button", name: "讨厌"}, + {_input: "button", name: "查看"}, + {_input: "button", name: "关闭"}, + ]}, function(event, cmds, cb, silent) { + var req = can.Event(event) + switch (req.Option("_action")) { + case "关闭": + can.page.Remove(can, can._story.target) + delete(can._story) + break + default: + req.Option("pod", ""); + can.run(event, ["set", msg.pod[index], msg.engine[index], msg.favor[index], msg.id[index], + msg.type[index], msg.name[index], msg.text[index]], function(res) { + can._story.Show(res.Option("display")||"table", res, cb) + }, true) + } + }, can.page.AppendField(can, document.body, "story", {name: msg.type[index], help: msg.name[index]}), function(plugin) { + can.page.Modify(can, plugin.target, {style: {position: "absolute", left: "10px", top: "100px"}}) + }) + can._story.Runs(event) + }, "选择": "select", "删除": "delete", "编辑": function(event, can, msg, index, key, cmd, td) {