From 31a4563e5d79cbc9582beefa436b1965f82e39ad Mon Sep 17 00:00:00 2001 From: shaoying Date: Mon, 10 Aug 2020 02:47:20 +0800 Subject: [PATCH] add webpack --- frame.js | 17 ++++++++++++++-- index.html | 13 +++++++------ index.js | 2 +- pane/Header.js | 53 +++++++++++++++++++++++++++++++++----------------- proto.js | 2 +- 5 files changed, 59 insertions(+), 28 deletions(-) diff --git a/frame.js b/frame.js index 03ece92e..961059a9 100644 --- a/frame.js +++ b/frame.js @@ -10,7 +10,7 @@ Volcanos("onengine", { _init: function(can, meta, list, cb, target) { }, target) }, function() { can.onlayout._init(can, meta, list, function() { - can.require(meta.main.list, function(can) { + can.require(location.protocol == "file:"? []: meta.main.list, function(can) { can.onkeypop._init(can) can.onengine._topic(can) can.onengine._daemon(can, can.user.title()) @@ -31,6 +31,7 @@ Volcanos("onengine", { _init: function(can, meta, list, cb, target) { can.page.Modify(can, can._target, {className: can.user.Search(can, "topic")||(can.user.Search(can, "pod")? "black": "white")}) }, _daemon: function(can, name) { + return can.misc.WSS(can, "", {name: name, type: "chrome"}, function(event, msg) { if (msg.Option("_handle")) { return can.user.toast(can, msg.result.join("")) } can.user.toast(can, msg.detail.join(" ")) @@ -57,8 +58,20 @@ Volcanos("onengine", { _init: function(can, meta, list, cb, target) { }, remote: function(event, can, msg, pane, cmds, cb) { if (can.onengine.engine(event, can, msg, pane, cmds, cb)) { return } + + var res = Volcanos.meta.pack[pane._name+","+cmds.join(",")] + if (res) { + res = can.request(event, res) + delete(msg._event), delete(msg._can) + return typeof cb == "function" && cb(res) + } + if (location.protocol == "file:") { typeof cb == "function" && cb(msg); return } - can.misc.Run(event, can, {names: pane._name}, cmds, cb) + can.misc.Run(event, can, {names: pane._name}, cmds, function(msg) { + delete(msg._event), delete(msg._can) + Volcanos.meta.pack[pane._name+","+cmds.join(",")] = msg + typeof cb == "function" && cb(msg) + }) }, engine: function(event, can, msg, pane, cmds, cb) { if (!can.onengine) { return false } switch (pane._name) { diff --git a/index.html b/index.html index 54c794a4..432ffb73 100644 --- a/index.html +++ b/index.html @@ -3,14 +3,15 @@ volcanos - - - + + + - - - + + + + diff --git a/index.js b/index.js index 0813daa1..edac57ea 100644 --- a/index.js +++ b/index.js @@ -5,7 +5,7 @@ Volcanos({name: "chat", volcano: "/frame.js", iceberg: "/chat/", intshell: "plug {name: "Action", help: "工作台", pos: "middle"}, {name: "Search", help: "搜索框", pos: "float"}, {name: "Footer", help: "状态条", pos: "foot", state: ["ncmd" ]}, - ], main: {name: "Header", engine: "remote", list: ["/publish/order.js"]}, plugin: [ + ], main: {name: "Header", engine: "remote", list: ["publish/order.js"]}, plugin: [ "/plugin/state.js", "/plugin/table.js", "/plugin/input.js", diff --git a/pane/Header.js b/pane/Header.js index 680682e8..d745e9f2 100644 --- a/pane/Header.js +++ b/pane/Header.js @@ -9,6 +9,7 @@ Volcanos("onaction", {help: "交互数据", list: [], _init: function(can, msg, can.run(msg._event, ["search", "Footer.onaction._init"]) }, target) } + if (location.protocol == "file:") { return init() } can.run({}, ["check"], function(msg) { if (msg.Result()) { return init() } can.user.login(can, init) }) @@ -26,6 +27,37 @@ Volcanos("onaction", {help: "交互数据", list: [], _init: function(can, msg, can.user.reload(true) } }, + pack: function(event, can, key) { + var msg = can.request(event) + can.core.Item(Volcanos.meta.pack, function(key, msg) { + delete(msg._event), delete(msg._can) + }) + msg.Option("content", JSON.stringify(Volcanos.meta.pack)) + can.run(event, ["pack"], function(msg) { + can.user.toast(can, "保存成功") + }) + }, + white: function(event, can, key) { + can.page.Modify(can, document.body, {className: key}) + }, + black: function(event, can, key) { + can.page.Modify(can, document.body, {className: key}) + }, + Footer: function(event, can, key) { + can.page.Select(can, document.body, "fieldset.Action", function(item) { + if (item.style.height) { + height = document.body.offsetHeight + can.page.Select(can, item, "div.output")[0].style.height = "" + item.style.height = "" + } else { + can.page.Select(can, item, "div.output")[0].style.height = height-100+"px" + item.style.height = height-88+"px" + } + }) + can.page.Select(can, document.body, "fieldset."+key, function(item) { + can.page.Modify(can, item, {style: {display: item.style.display == "none"? "block": "none"}}) + }) + }, }) Volcanos("onexport", {help: "导出数据", list: [], _init: function(can, msg, list, cb, target) { can.run(msg._event, [], function(msg) { can._output.innerHTML = "" @@ -58,27 +90,12 @@ Volcanos("onexport", {help: "导出数据", list: [], _init: function(can, msg, }, }], }]).input) var height = document.body.offsetHeight - var ui = can.page.Append(can, can._output, can.core.List(["Search", "River", "Footer"], function(item) { + var ui = can.page.Append(can, can._output, can.core.List(["Search", "River", "Footer", "pack"], function(item) { return {view: "item", list: [{type: "input", data: {name: item, type: "button", value: item.toLowerCase()}, onclick: function(event) { - if (item == "white") { - can.page.Modify(can, document.body, {className: item}) - return + var cb = can.onaction[item]; if (typeof cb == "function") { + return cb(event, can, item) } - if (item == "black") { - can.page.Modify(can, document.body, {className: item}) - return - } - if (item == "Footer") { can.page.Select(can, document.body, "fieldset.Action", function(item) { - if (item.style.height) { - height = document.body.offsetHeight - can.page.Select(can, item, "div.output")[0].style.height = "" - item.style.height = "" - } else { - can.page.Select(can, item, "div.output")[0].style.height = height-100+"px" - item.style.height = height-88+"px" - } - }) } can.page.Select(can, document.body, "fieldset."+item, function(item) { can.page.Modify(can, item, {style: {display: item.style.display == "none"? "block": "none"}}) diff --git a/proto.js b/proto.js index a1ce3528..5dd6a01b 100644 --- a/proto.js +++ b/proto.js @@ -13,7 +13,7 @@ function shy(help, meta, list, cb) { return cb } var Volcanos = shy("火山架", {cache: {}, index: 1, order: 1, debug: { -}, libs: []}, [], function(name, can, libs, cb) { var meta = arguments.callee.meta, list = arguments.callee.list +}, libs: [], pack: {}}, [], function(name, can, libs, cb) { var meta = arguments.callee.meta, list = arguments.callee.list if (typeof name == "object") { var Config = name meta.volcano = Config.volcano, meta.libs = Config.libs var Preload = Config.libs; Config.panes.forEach(function(pane) {