From 06f5715a679465780ceab914b1ebb04a96cebff4 Mon Sep 17 00:00:00 2001 From: harveyshao Date: Thu, 3 Mar 2022 10:38:10 +0800 Subject: [PATCH] opt some --- frame.js | 1 + panel/action.js | 1 + plugin/local/code/inner.js | 16 +++++++++------- plugin/local/code/vimer.js | 11 ++++++++++- 4 files changed, 21 insertions(+), 8 deletions(-) diff --git a/frame.js b/frame.js index d98d85b1..32adf311 100644 --- a/frame.js +++ b/frame.js @@ -176,6 +176,7 @@ Volcanos("onappend", {help: "渲染引擎", list: [], _init: function(can, meta, CloneInput: function() { can.onmotion.focus(can, add(item)._target) }, }, [item.display, chat.PLUGIN_INPUT_JS], function(input) { input.Conf(item) input.run = function(event, cmds, cb, silent) { var msg = can.request(event) + if (item._cb) { return item._cb(event) } if (msg.RunAction(event, can.core.Value(can, "_outputs.-1"), cmds)) { return } if (msg.RunAction(event, input, cmds)) { return } return can.Update(event, can.Input(cmds, silent), cb, silent) diff --git a/panel/action.js b/panel/action.js index c2c4ffa4..16e90ddc 100644 --- a/panel/action.js +++ b/panel/action.js @@ -77,6 +77,7 @@ Volcanos("onengine", {help: "解析引擎", list: [], _engine: function(event, p msg.Push(ctx.INDEX, value.index||"") msg.Push(ctx.ARGS, value.args||"[]") msg.Push(ice.MSG_ACTION, value._action||"") + msg.Push("display", value.display||"") }), can.base.isFunc(cb) && cb(msg) } return true diff --git a/plugin/local/code/inner.js b/plugin/local/code/inner.js index 592f045e..690a17a5 100644 --- a/plugin/local/code/inner.js +++ b/plugin/local/code/inner.js @@ -40,7 +40,7 @@ Volcanos("onimport", {help: "导入数据", _init: function(can, msg, cb, target cli.CLOSE, function(event) { can.onmotion.hidden(can, target), can.onimport.layout(can) }, cli.CLEAR, function(event) { can.onmotion.clear(can, ui.output) }, cli.SHOW, function(event) { can.onaction["展示"](event, can) }, - "加载", function(event) { can.onaction["加载"](event, can), can.user.ToastSuccess(can) }, + "加载", function(event) { can.onaction["加载"](event, can), can.user.toastSuccess(can) }, mdb.PLUGIN, function(event) { can.user.input(event, can, [ctx.INDEX], function(event, button, data) { can.onimport.plugin(can, data, ui.output) @@ -144,7 +144,6 @@ Volcanos("onimport", {help: "导入数据", _init: function(can, msg, cb, target sub.page.style(sub, sub._output, html.MAX_HEIGHT, sub.ConfHeight()) sub.page.style(sub, sub._output, html.MAX_WIDTH, sub.ConfWidth()) sub.select = function() { return sub._legend.click(), sub } - sub.onappend._option(sub, [{type: html.BUTTON, name: "close"}]) can._status.appendChild(sub._legend), sub._legend.onclick = function(event) { if (can.page.Select(can, can._status, ice.PT+html.SELECT)[0] == event.target) { @@ -156,19 +155,22 @@ Volcanos("onimport", {help: "导入数据", _init: function(can, msg, cb, target can.onmotion.select(can, can.ui.toolkit.output, html.FIELDSET, sub._target) can.onmotion.focus(can, can.page.Select(can, sub._option, html.OPTION_ARGS)[0]) }, can.base.isFunc(cb) && cb(sub) + can.core.Timer(100, function() { can.onappend._option(sub, {inputs: [{type: html.BUTTON, name: cli.CLOSE, _cb: function() { + sub._legend.click() + }}]}) }) }) }, process: function(can, msg, target, width) { can.user.toastSuccess(can) can.onmotion.clear(can, target) - if (msg.Option("_process") == "_field") { - msg.Table(function(meta) { meta.display = msg.Option("_display") + if (msg.Option(ice.MSG_PROCESS) == "_field") { + msg.Table(function(meta) { meta.display = msg.Option(ice.MSG_DISPLAY) can.onimport.plugin(can, meta, target, function(sub) { width && sub.ConfWidth(width) can.onmotion.focus(can, can.page.Select(can, sub._option, html.OPTION_ARGS)[0]) }) }) - } else if (msg.Option("_display") != "") { - can.onappend._output(can, msg, msg.Option("_display"), target, false) + } else if (msg.Option(ice.MSG_DISPLAY) != "") { + can.onappend._output(can, msg, msg.Option(ice.MSG_DISPLAY), target, false) } else { can.onappend.table(can, msg, null, target) can.onappend.board(can, msg, target) @@ -339,7 +341,7 @@ Volcanos("onkeymap", {help: "导入数据", _init: function(can, msg, cb, target Volcanos("onaction", {help: "控件交互", list: ["搜索", "打开", "添加", "插件", "扩展"], _trans: {width: "宽度", height: "高度", website: "网页"}, "加载": function(event, can) { - var file = "/require/shylinux.com/x/contexts/"+can.Option(nfs.PATH)+can.Option(nfs.FILE) + var file = can.base.Path("/require/", can.Option(nfs.PATH), can.Option(nfs.FILE)) delete(Volcanos.meta.cache[file]), eval(`\n_can_name = "`+file+`"\n`+can.onexport.content(can)+`\n_can_name = ""\nconsole.log("once")`) }, "刷新": function(event, can) { can.onimport.tabview(can, "src/", "main.go", "", function() {}, skip) }, diff --git a/plugin/local/code/vimer.js b/plugin/local/code/vimer.js index 4c8a1d15..677d9207 100644 --- a/plugin/local/code/vimer.js +++ b/plugin/local/code/vimer.js @@ -126,7 +126,7 @@ Volcanos("onkeymap", {help: "键盘交互", list: [], }, }, _engine: {}, }) -Volcanos("onaction", {help: "控件交互", list: [nfs.SAVE, code.AUTOGEN, code.COMPILE, chat.WEBSITE], +Volcanos("onaction", {help: "控件交互", list: [nfs.SAVE, code.AUTOGEN, code.COMPILE, "script", chat.WEBSITE], save: function(event, can) { var msg = can.request(event, {content: can.onexport.content(can)}) can.run(event, [ctx.ACTION, nfs.SAVE, can.parse, can.Option(nfs.FILE), can.Option(nfs.PATH)], function(msg) { can.onimport.project(can, can.Option(nfs.PATH)) @@ -150,6 +150,15 @@ Volcanos("onaction", {help: "控件交互", list: [nfs.SAVE, code.AUTOGEN, code. } }, true) }, + script: function(event, can, button) { var meta = can.Conf() + can.request(event, {_handle: ice.TRUE, text: `Volcanos("onimport", {help: "导入数据"})`}) + can.user.input(event, can, meta.feature[button], function(ev, btn, data, list, args) { + can.run(event, [ctx.ACTION, button].concat(args), function(msg) { + can.onimport.tabview(can, can.Option(nfs.PATH), msg.Option(nfs.FILE)) + can.onimport.project(can, can.Option(nfs.PATH)) + }, true) + }) + }, website: function(event, can, button) { can.request(event, {action: button}) can.user.input(event, can, [{name: nfs.FILE, value: "hi.txt"}], function(ev, btn, data, list, args) { can.onimport.tabview(can, "src/", "website/"+list[0], "", function() {}, true)