diff --git a/frame.js b/frame.js index 45224651..b46df9f3 100644 --- a/frame.js +++ b/frame.js @@ -1,54 +1,29 @@ -Volcanos("onimport", { - _init: function(can, meta, list, cb, target) { - if (Volcanos.meta.follow[can._root]) { debugger } +Volcanos("onaction", { _init: function(can, meta, list, cb, target) { can.core.Next(meta.panes, function(item, next) { can.onappend._init(can, item, Config.libs.concat(item.list), function(pane) { - // 插件回调 - pane.Conf(item), pane.run = function(event, cmds, cb) { var msg = pane.request(event); - if (can.onaction[cmds[0]]) { - can.onaction[cmds[0]](event, can, msg, pane, cmds, cb); - } else { - can.onaction[meta.main.engine](event, can, msg, pane, cmds, cb); - } + pane.Conf(item), pane.run = function(event, cmds, cb) { + (can.onaction[cmds[0]]||can.onaction[meta.main.engine])(event, can, pane.request(event), pane, cmds, cb); }, can[item.name] = pane, next(); }, can._target); }, function() { can.onlayout._init(can, meta, list, function() { - if (Volcanos.meta.follow[can._root]) { debugger } var pane = can[meta.main.name], msg = can.request(can._event); pane.onaction._init(pane, msg, msg.option||[], cb, target); }, target) }); }, -}) -Volcanos("onaction", { search: function(event, can, msg, pane, cmds, cb) { var chain = cmds[1] - if (Volcanos.meta.follow[can._root]) { debugger } var sub, mod = can, key, fun = can; can.core.List(chain.split("."), function(value, index, array) { fun && (sub = mod, mod = fun, key = value, fun = mod[value]) }); if (!sub || !mod || !fun) { console.error("not found", chain); return } - Volcanos.meta.debug[can._root] && console.log(can._root, can._name, "engine", chain, "match", sub._name+"."+mod._name) - typeof fun == "function" && fun(sub, msg, cmds.slice(2), function(value) { - typeof cb == "function" && cb(value) - }, sub._target) + typeof fun == "function" && fun(sub, msg, cmds.slice(2), cb, sub._target) }, remote: function(event, can, msg, pane, cmds, cb) { - if (Volcanos.meta.follow[can._root]) { debugger } - if (can.onengine && can.onengine.remote(event, can, msg, pane, cmds, cb)) { - return - } - if (location.protocol == "file:") { - typeof cb == "function" && cb(msg) - return - } - - Volcanos.meta.debug[can._root] && console.log(can._root, pane._name, "remote", msg._name, "detail", cmds); - can.misc.Run(event, can, {names: pane._name}, cmds, function(msg) { - typeof cb == "function" && cb(msg); - }) + if (can.onengine && can.onengine.remote(event, can, msg, pane, cmds, cb)) { return } + if (location.protocol == "file:") { typeof cb == "function" && cb(msg); return } + can.misc.Run(event, can, {names: pane._name}, cmds, cb) }, }) -Volcanos("onappend", { - _init: function(can, meta, list, cb, target, field) { +Volcanos("onappend", { _init: function(can, meta, list, cb, target, field) { field = field || can.onappend.field(can, target, meta.type||"plugin", meta); var option = can.page.Select(can, field, "form.option")[0]; var action = can.page.Select(can, field, "div.action")[0]; @@ -56,12 +31,13 @@ Volcanos("onappend", { var feature = can.base.Obj(meta.feature) // 添加插件 - if (Volcanos.meta.follow[can._root]) { debugger } var sub = Volcanos(meta.name, { _help: meta.name, _target: field, _option: option, _action: action, _output: output, _history: [], + _follow: can._follow+"."+meta.name, }, [Config.volcano].concat(list), function(sub) { - sub.onimport._init(sub, sub.Conf(meta), list, function() { - }, field); + meta.feature = can.base.Obj(meta.feature, {}) + meta.detail = meta.feature["detail"] || {} + sub.onimport._init(sub, sub.Conf(meta), list, function() {}, field); // 添加控件 var args = can.base.Obj(meta.args, []) @@ -69,12 +45,12 @@ Volcanos("onappend", { sub[item.name] = Volcanos(item.name, { _help: item.name, _target: can.onappend.input(sub, option, item.type, item, args[index]), _option: option, _action: action, _output: output, + _follow: can._follow+"."+meta.name+"."+item.name, }, 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) { + // 控件回调 switch (item.name) { case "返回": // 历史命令 @@ -99,12 +75,12 @@ Volcanos("onappend", { var display = "plugin/"+(msg.Option("_display")||feature.display||"table.js") sub[display] = Volcanos(display, { _target: output, _option: option, _action: action, _output: output, - }, Config.libs.concat(["frame.js", display]), function(table) { - table.onimport._init(table, msg, msg.append||[], function() { - }, output) + _follow: can._follow+"."+meta.name+"."+display, + }, Config.libs.concat(["frame.js", display]), function(table) { table.Conf(sub.Conf()) + table.onimport._init(table, msg, msg.append||[], function() {}, output) - // 组件回调 table.run = function(event, cmds, cb, silent) { + // 组件回调 cmds[0] == "field"? sub.run(event, cmds.slice(1), cb, silent): input.run(event, cmds, cb, silent) } @@ -127,11 +103,9 @@ Volcanos("onappend", { }) }); cb(sub); }, - item: function(can, target, type, item, cb, cbs) { var ui = can.page.Append(can, target, [{view: [type, "div", item.nick||item.name], - oncontextmenu: function(event) { cbs(event, ui.item) }, - click: function(event) { + oncontextmenu: function(event) { cbs(event, ui.item) }, click: function(event) { can.page.Select(can, target, "div."+type, function(item) { can.page.ClassList.del(can, item, "select"); }); can.page.ClassList.add(can, ui.item, "select"); @@ -158,7 +132,6 @@ Volcanos("onappend", { var input = {type: "input", name: item.name, data: item, dataset: {}}; switch (item.type = item.type || item._type || item._input || "text") { case "upfile": item.type = "file"; break - // case "button": item.value = item.value || item.name || "查看"; break case "button": item.value = item.name || item.value || "查看"; break case "select": item.values = typeof item.values == "string"? item.values.split(" "): item.values; @@ -197,18 +170,64 @@ Volcanos("onappend", { item.type == "select" && (target.value = item.value || item.values[item.index||0]); return target; }, - table: function(can, target, type, msg, cb) { + table: function(can, target, type, msg) { var table = can.page.AppendTable(can, can._output, msg, msg.append, function(event, value, key, index, tr, td) { can.page.Select(can, can._option, "input.args", function(input) { if (input.name == key) { var data = input.dataset || {} input.value = value; if (data.action == "auto") { can.run(event, [], function(msg) {}) } } }) + }, function(event, value, key, index, tr, td) { + can.onappend.carte(can, can.ondetail||{}, msg["_detail"] || can.Conf("detail") || can.ondetail.list, function(event, item, meta) { + var res = can.request(event); can.core.List(msg.append, function(key) { + res.Option(key, msg[key][index]) + }); can.run(event, ["field", "action", item, key, value.trim()], function(res) {}, true) + }) }) + }, + board: function(can, target, type, msg) { + msg.result && can.page.AppendBoard(can, can._output, can.page.Display(msg.Result())) + }, + carte: function(can, meta, list, cb) { + can._carte = can._carte || can.page.Append(can, can._target, [{view: "carte", onmouseleave: function(event) { + can.page.Modify(can, can._carte, {style: {display: "none"}}) + }}]).last + + can.page.Appends(can, can._carte, can.core.List(list, function(item) { + return {view: ["item"], list: [typeof item == "string"? {text: [item], click: function(event) { + typeof cb == "function" && cb(event, item, meta) + }}: item.args? {text: [item.name], click: function(event) { + can.user.input(event, can, item.args, function(event, cmd, form, list) { + var msg = can.Event(event); + can.core.Item(form, function(key, value) {msg.Option(key, value)}) + cmd == "提交" && typeof cb == "function" && cb(event, item.name, meta) + return true + }) + }}: {select: [item, function(event) { + typeof cb == "function" && cb(event, event.target.value, meta) + }], value: src[item[0]]||""}]} + })) + + var pos = {position: "absolute", display: "block", left: event.x, top: event.y} + if (document.body.clientWidth - event.x < 60) { + var pos = {display: "block", right: event.x, top: event.y} + } + pos.left += "px"; pos.top += "px"; + can.page.Modify(can, can._carte, {style: pos}) + + event.stopPropagation() + event.preventDefault() + }, + share: function(can, meta) { + return + can._share = can._share || can.page.Append(can, can._target, [{view: "share", onmouseleave: function(event) { + can.page.Modify(can, can._carte, {style: {display: "none"}}) + }}]).last + + can.page.Appends(can, can._share, [{view: ["title", "div", ]},]) } }, [], function(can) {}) -Volcanos("onlayout", { - _init: function(can, meta, list, cb, target) { +Volcanos("onlayout", { _init: function(can, meta, list, cb, target) { var width = can._width, height = can._height; if (Volcanos.meta.follow[can._root]) { debugger } diff --git a/index.html b/index.html index 7703b591..fd8afa22 100644 --- a/index.html +++ b/index.html @@ -3,7 +3,6 @@ volcanos - diff --git a/index.js b/index.js index f4ad81b5..79bd1f56 100644 --- a/index.js +++ b/index.js @@ -6,7 +6,9 @@ var Config = {name: "demo", volcano: "frame.js", iceberg: "/chat/", intshell: "p {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: "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"]}, + {type: "pane", name: "Footer", help: "状态条", pos: "foot", list: ["pane/Footer.js", "pane/Footer.css"], state: [ + "ncmd", + ]}, ], main: {name: "Header", engine: "remote", list: []}, list: ["plugin/state.js", "plugin/input.js", "plugin/table.js", "plugin/input/key", @@ -21,11 +23,11 @@ var Preload = Config.libs; Config.panes.forEach(function(pane) { Preload = Preload.concat(pane.list); }); Preload = Preload.concat(Config.list) -Volcanos(Config.name, { _target: document.body, +Volcanos(Config.name, { _target: document.body, _follow: "demo", _head: document.head, _body: document.body, _width: window.innerWidth, _height: window.innerHeight, }, Preload.concat(Config.volcano), function(can) { // 程序入口 - can.onimport._init(can, can.Conf(Config), [], function(msg) { + can.onaction._init(can, can.Conf(Config), [], function(msg) { console.log(can._root, can._name, "start", can, msg); can.Footer.onaction._init(can.Footer, msg); }, can._target) diff --git a/pane/Action.css b/pane/Action.css index e9769e85..35051458 100644 --- a/pane/Action.css +++ b/pane/Action.css @@ -2,10 +2,16 @@ fieldset.Action { min-width:160px; min-height:160px; } +fieldset.Action>div.output { + overflow:auto; +} fieldset.Action fieldset.plugin { margin:5px; } +fieldset.Action fieldset.plugin:hover { + border-color:red; +} fieldset.Action fieldset.plugin legend { border:ridge 2px cyan; margin-top:5px; @@ -17,9 +23,3 @@ fieldset.Action fieldset.plugin div.output { margin:5px; color:white; } -fieldset.Action fieldset.plugin div.output tr { - background:green; -} - - - diff --git a/pane/Action.js b/pane/Action.js index 1cdf6690..a1075afc 100644 --- a/pane/Action.js +++ b/pane/Action.js @@ -1,6 +1,5 @@ Volcanos("onimport", {help: "导入数据", list: [], - _init: function(can, meta, list, cb, target) { - }, + _init: function(can, meta, list, cb, target) {}, }) Volcanos("onaction", {help: "交互操作", list: [], _init: function(can, msg, list, cb, target) { @@ -9,36 +8,25 @@ Volcanos("onaction", {help: "交互操作", list: [], }) Volcanos("onexport", {help: "导出数据", list: [], _init: function(can, msg, list, cb, target) { var key = "action"; - if (Volcanos.meta.follow[can._root]) { debugger } can.run(msg._event, ["search", "Storm.onaction._init"], function(msg) { - if (Volcanos.meta.follow[can._root]) { debugger } - can.Cache(can.Conf("river")+can.Conf("storm"), can._output, can.Conf(key)); - var river = can.Conf("river", msg.Option("river")); - var storm = can.Conf("storm", msg.Option("storm")); - console.log(can._root, can._name, "show", river, storm); - if (can.Conf(key, msg.Option(key, can.Cache(river+"."+storm, can._output)))) { - typeof cb == "function" && cb(msg); return - } + can.Cache(can.Conf("river")+"."+can.Conf("storm"), can._output, can._output.scrollTop+1); + var river = can.Conf("river", msg.Option("river")), storm = can.Conf("storm", msg.Option("storm")); + var position = can.Conf(key, msg.Option(key, can.Cache(river+"."+storm, can._output))); + if (position) { can._output.scrollTo(0, position-1); typeof cb == "function" && cb(msg); return } - var pod = can.user.Search(can, "pod") - msg = can.request({}, {}), can.run(msg._event, [river, storm], function(msg) { can._output.innerHTML = ""; - if (Volcanos.meta.follow[can._root]) { debugger } - msg.Table(function(value, index, array) { - // 添加列表 - can.onappend._init(can, value, Config.libs.concat(["plugin/state.js"]), function(sub) { + var pod = can.user.Search(can, "pod"); msg = can.request({}, {}); + can.run(msg._event, [river, storm], function(msg) { can._output.innerHTML = ""; msg.Table(function(value, index, array) { + // 添加插件 + can.onappend._init(can, value, Config.libs.concat(["plugin/state.js"]), function(sub) { + sub.run = function(event, cmds, cb, silent) { // 插件回调 - sub.run = function(event, cmds, cb, silent) { - var msg = can.request(event) - pod && msg.Option("pod", pod) - can.run(event, [river, storm, index].concat(cmds), cb, silent) - } - }, can._output) - can.Conf(key, "which") - }); - msg.Option(key, can.Conf(key)) - typeof cb == "function" && cb(msg) - }) - }) + var msg = can.request(event); pod && msg.Option("pod", pod); + can.run(event, [river, storm, index].concat(cmds), cb, silent); + can.run(msg._event, ["search", "Footer.onaction.cmd"]) + } + }, can._output); + }); typeof cb == "function" && cb(msg); }) + }); }, }) diff --git a/pane/Carte.css b/pane/Carte.css new file mode 100644 index 00000000..149827b1 --- /dev/null +++ b/pane/Carte.css @@ -0,0 +1,32 @@ +fieldset.dialog.Carte { + padding:0; + border:solid 2px red; + /* background-color:greenyellow; */ + position:absolute; + display:none; + z-index:200; +} +fieldset.dialog.Carte>div.action { + padding:0; +} +fieldset.dialog.Carte>div.output { + padding:0; +} +fieldset.dialog.Carte>div.output button { + display:block; +} +fieldset.dialog.Carte>div.output select { + display:block; +} +fieldset.dialog.Carte>div.output div.layout>div { + float:left; +} +fieldset.dialog.Carte>div.output div.item { + padding:0px 6px; +} +fieldset.dialog.Carte>div.output div.space { + border:solid 1px gray; + margin-top:8px; + clear:both; +} + diff --git a/pane/Carte.js b/pane/Carte.js new file mode 100644 index 00000000..3b343746 --- /dev/null +++ b/pane/Carte.js @@ -0,0 +1,11 @@ +Volcanos("onimport", {help: "导入数据", list: [], + _init: function(can, conf, output, action, option, field) { + }, +}) +Volcanos("onaction", {help: "组件交互", list: [], + onmouseleave: function(event, can) {can.Hide()}, +}) +Volcanos("onchoice", {help: "组件菜单", list: []}) +Volcanos("ondetail", {help: "组件详情", list: []}) +Volcanos("onexport", {help: "导出数据", list: []}) + diff --git a/pane/Footer.js b/pane/Footer.js index 81421432..87b19fc0 100644 --- a/pane/Footer.js +++ b/pane/Footer.js @@ -6,20 +6,23 @@ Volcanos("onaction", {help: "交互数据", list: [], _init: function(can, msg, list, cb, target) { can.onexport._init(can, msg, list, cb, target) }, + cmd: function(can, msg, list, cb, target) { + can.Conf("ncmd", parseInt(can.Conf("ncmd")||"0")+1+"") + can.onexport._init(can, msg, list, cb, target) + }, }) Volcanos("onexport", {help: "导出数据", list: [], - _init: function(can, msg, list, cb, target) { can._output.innerHTML = ""; - msg = can.request({}, {}) - can.run(msg._event, [], function(msg) { - console.log(can._root, can._name, "show", msg.result) + _init: function(can, msg, list, cb, target) { + msg = can.request({}, {}), can.run(msg._event, [], function(msg) { can._output.innerHTML = ""; can.core.List(msg.result, function(title) { can.page.Append(can, can._output, [{view: ["title", "div", title]}]) }) - console.log(can._root, can._name, "show", can.Conf("state")) can.ui = can.page.Append(can, can._output, [{view: "state", list: can.core.List(can.Conf("state"), function(item) { - return {text: can.Conf(item)||"", className: item, click: function(event) {can.onaction[item](event, can, item)}}; - })}]) + return {view: "item", list: [{text: item}, {text: ": "}, {text: can.Conf(item)||""}], click: function(event) { + can.onaction[item](event, can, item); + }}; + }) }]) }) }, }) diff --git a/pane/Header.js b/pane/Header.js index 4d155257..87a36b8c 100644 --- a/pane/Header.js +++ b/pane/Header.js @@ -5,12 +5,15 @@ Volcanos("onimport", {help: "导入数据", list: [], Volcanos("onaction", {help: "交互数据", list: [], _init: function(can, msg, list, cb, target) { can.onexport._init(can, msg, list, cb, target) - can.run(msg._event, ["search", "Footer.onaction._init"], function(msg) { + can.run(msg._event, ["search", "River.onaction._init"], function(msg) { }) - can.run(msg._event, ["search", "Action.onaction._init"], function(msg) { + can.run(msg._event, ["search", "Footer.onaction._init"], function(msg) { }) }, title: function(event, can, key) { + can.run(event, ["search", "Action.onaction._init"], function(msg) { + console.log(msg) + }) }, username: function(event, can, key) { // can.ui[key].innerHTML = can.base.Time().split(" ")[1] diff --git a/pane/River.js b/pane/River.js index b8053b97..30ffca20 100644 --- a/pane/River.js +++ b/pane/River.js @@ -1,6 +1,5 @@ Volcanos("onimport", {help: "导入数据", list: [], - _init: function(can, meta, list, cb, target) { - }, + _init: function(can, meta, list, cb, target) {}, }) Volcanos("onaction", {help: "交互数据", list: [], _init: function(can, msg, list, cb, target) { @@ -9,30 +8,19 @@ Volcanos("onaction", {help: "交互数据", list: [], }) Volcanos("onexport", {help: "导出数据", list: [], _init: function(can, msg, list, cb, target) { var key = "river"; - if (Volcanos.meta.follow[can._root]) { debugger } - if (msg.Option(key, can.Conf(key))) { - typeof cb == "function" && cb (msg); return - } + if (msg.Option(key, can.Conf(key))) { typeof cb == "function" && cb (msg); return } - msg = can.request({}, {}), can.run(msg._event, [], function(msg) { can._output.innerHTML = ""; - if (Volcanos.meta.follow[can._root]) { debugger } - var select; msg.Table(function(value, index, array) { - // 添加列表 - var view = can.onappend.item(can, can._output, "item", value, function(event, item) { - // 左键点击 - can.Conf(key, value.key); can.run(event, ["search", "Storm.onaction._init"], function(action) { - // 切换群组 - }); - }, function(event) { - // 右键点击 - }); - if (index == 0 || [value.key, value.name].indexOf(can.user.Search(can, key)) > -1) { - msg.Option("river", value.key) - select = view - } - }); select && select.click(); - typeof cb == "function" && cb(msg) - }) + msg = can.request({}, {}), can.run(msg._event, [], function(msg) { can._output.innerHTML = ""; var select; msg.Table(function(value, index, array) { + var view = can.onappend.item(can, can._output, "item", value, function(event, item) { + // 左键点击 + can.Conf(key, value.key); can.run(event, ["search", "Storm.onaction._init"], function(action) { }); + }, function(event) { + // 右键点击 + }); + if (index == 0 || [value.key, value.name].indexOf(can.user.Search(can, key)) > -1) { + msg.Option(key, value.key), select = view + } + }); select && select.click(); typeof cb == "function" && cb(msg); }) }, }) diff --git a/pane/Storm.js b/pane/Storm.js index 25e33fb6..69fbf36f 100644 --- a/pane/Storm.js +++ b/pane/Storm.js @@ -1,42 +1,43 @@ Volcanos("onimport", {help: "导入数据", list: [], - _init: function(can, meta, list, cb, target) { - }, + _init: function(can, meta, list, cb, target) {}, }) -Volcanos("onaction", {help: "交互数据", list: [], +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, value) { + can.onappend.share(can, {river: can.Conf("river"), storm: can.Conf("storm")}) + }, +}) Volcanos("onexport", {help: "导出数据", list: [], _init: function(can, msg, list, cb, target) { var key = "storm"; - if (Volcanos.meta.follow[can._root]) { debugger } can.run(msg._event, ["search", "River.onaction._init"], function(msg) { - if (Volcanos.meta.follow[can._root]) { debugger } can.Cache(can.Conf("river"), can._output, can.Conf(key)); var river = can.Conf("river", msg.Option("river")); - console.log(can._root, can._name, "show", river); - if (can.Conf(key, msg.Option(key, can.Cache(river, can._output)))) { - typeof cb == "function" && cb (msg); return - } + if (can.Conf(key, msg.Option(key, can.Cache(river, can._output)))) { typeof cb == "function" && cb (msg); return } - msg = can.request({}, {}), can.run(msg._event, [river], function(msg) { can._output.innerHTML = ""; - if (Volcanos.meta.follow[can._root]) { debugger } - var select; msg.Table(function(value, index, array) { - // 添加列表 - var view = can.onappend.item(can, can._output, "item", value, function(event, item) { - // 左键点击 - can.Conf(key, value.key); can.run(event, ["search", "Action.onaction._init"], function(msg) { - }) - }, function(event, item) { - // 右键点击 - }); - if (index == 0 || [value.key, value.name].indexOf(can.user.Search(can, key)) > -1) { - msg.Option("storm", value.key) - select = view - } - }); select && select.click(); - typeof cb == "function" && cb(msg) - }) + msg = can.request({}, {}), can.run(msg._event, [river], function(msg) { can._output.innerHTML = ""; var select; msg.Table(function(value, index, array) { + var view = can.onappend.item(can, can._output, "item", value, function(event, item) { + // 左键点击 + can.Conf(key, value.key); can.run(event, ["search", "Action.onaction._init"], function(msg) {}) + }, function(event, item) { + // 右键点击 + can.onappend.carte(can, can.ondetail, can.ondetail.list, function(event, item, meta) { + meta[item] && meta[item](event, can, value) + console.log(item) + }) + }); + + if (index == 0 || [value.key, value.name].indexOf(can.user.Search(can, key)) > -1) { + msg.Option(key, value.key), select = view + } + }); select && select.click(); typeof cb == "function" && cb(msg); }) }) }, }) + diff --git a/plugin/input.js b/plugin/input.js index f37c07e4..5fdd0b1a 100644 --- a/plugin/input.js +++ b/plugin/input.js @@ -14,6 +14,8 @@ Volcanos("onaction", {help: "控件交互", list: [], switch (event.key) { case "Enter": can.run(event, [], function() {}) + event.stopPropagation() + event.preventDefault() break } }, @@ -21,6 +23,8 @@ Volcanos("onaction", {help: "控件交互", list: [], switch (event.key) { case "Enter": can.run(event, [], function() {}) + event.stopPropagation() + event.preventDefault() break } }, diff --git a/plugin/input/province.js b/plugin/input/province.js index 89215f15..c330f691 100644 --- a/plugin/input/province.js +++ b/plugin/input/province.js @@ -13,6 +13,6 @@ Volcanos("onfigure", {help: "控件详情", list: [], }); }}, }, [ - "plugin/github.com/shylinux/echarts/echarts.js", - "plugin/github.com/shylinux/echarts/china.js", + // "plugin/github.com/shylinux/echarts/echarts.js", + // "plugin/github.com/shylinux/echarts/china.js", ]) diff --git a/plugin/local/wiki/draw.js b/plugin/local/wiki/draw.js index b858ebf9..df381c30 100644 --- a/plugin/local/wiki/draw.js +++ b/plugin/local/wiki/draw.js @@ -15,12 +15,9 @@ Volcanos("onimport", {help: "导入数据", list: [], can.Action("mode", "draw") can.Action("shape", "path") }, - init: function(can, msg, cb, output, action, option) {output.innerHTML = ""; + _init: function(can, msg, list, cb, target) { can._output.innerHTML = ""; if (msg.Option("_display") == "table") { - // 文件目录 - can.page.AppendTable(can, output, msg, msg.append, function(event, value, key, index, tr, td) { - can.Export(event, value, key) - }) + can.onappend.table(can, target, "table", msg) return typeof cb == "function" && cb(msg); } @@ -31,8 +28,8 @@ Volcanos("onimport", {help: "导入数据", list: [], can.last = null // 加载绘图 - var code = can.page.AppendBoard(can, output, msg.Result()||can.Export(event, null, "file")) - can.page.Select(can, output, "svg", function(svg) { + var code = can.page.AppendBoard(can, can._output, msg.Result()||can.Export(event, null, "file")) + can.page.Select(can, can._output, "svg", function(svg) { // 画布 can.onaction.init(event, can, msg, "init", svg); can.group = can.svg = svg; diff --git a/plugin/story/trend.js b/plugin/story/trend.js index 4b76594a..aebb3021 100644 --- a/plugin/story/trend.js +++ b/plugin/story/trend.js @@ -18,14 +18,15 @@ Volcanos("onimport", {help: "导入数据", list: [], can.page.ClassList.add(can, can.ui.display, "hidden") }, }]) - can.data = can.msg.Table() + can.data = msg.Table() can.page.ClassList.add(can, can.ui.total, "status") - can.sub = can.Output(can, {}, "/plugin/local/wiki/draw", can.Event({}), function() { + return + can.sub = can.Output(can, {}, "/plugin/local/wiki/draw", can.request({}), function() { can.Action("width", 600) can.onaction["编辑"]({}, can) can.onaction["股价图"]({}, can) - }, can.ui.output, can.ui.action, option, can.ui.status) + }, can.ui.output, can.ui.action, can._option, can.ui.status) }, }) Volcanos("onaction", {help: "组件菜单", list: ["编辑", "清空", "股价图", "趋势", "比例", ["width", "200", "400", "600", "800", "1000"], ["height", "200", "400", "600"], "表格"], diff --git a/plugin/table.js b/plugin/table.js index d3279b80..292dc4a6 100644 --- a/plugin/table.js +++ b/plugin/table.js @@ -1,7 +1,7 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg, list, cb, target) { can._output.innerHTML = ""; can.onappend.table(can, target, "table", msg) - msg.result && can.page.AppendBoard(can, can._output, msg.result.join("")) + can.onappend.board(can, target, "board", msg) return typeof cb == "function" && cb(msg) }, }) diff --git a/style.css b/style.css index 01641ce9..b385236d 100644 --- a/style.css +++ b/style.css @@ -1,18 +1,18 @@ -* { - background:black; -} body { + background:black; padding:0; margin:0; } fieldset { color:cyan; padding:2px; - margin:0px; } legend { margin-left:10px; } +div.hidden { + display:none; +} fieldset>form.option { padding:0 5px; @@ -51,18 +51,19 @@ fieldset>form.option>div.item input.opts { width:80px; } fieldset>form.option>div.item textarea.args { + background-color:cyan; width:300px; height:50px; - background-color:cyan; } - fieldset>form.option>div.item.text>input { background-color:cyan; } fieldset>form.option>div.item.button>input { + background:black; color:cyan; } fieldset>form.option>div.item.select>select { + background:black; color:cyan; } fieldset>form.option>div.item.textarea { @@ -70,46 +71,37 @@ fieldset>form.option>div.item.textarea { clear:both; } -fieldset.Action>div.output { - overflow:auto; -} -fieldset>div.output { +fieldset div.output { margin-top:4px; clear:both; overflow:auto; } +fieldset div.code { + color:white; + font-size:14px; + font-family:monospace; + background-color:#343a34f2; + white-space:pre; + padding:10px; + overflow:auto; + border:solid 3px green; + max-height:640px; +} fieldset table { font-size:14px; - overflow: auto; -} -fieldset table caption { - font-size:18px; - font-style:italic; - border:solid 1px green; -} -fieldset table tbody { - overflow:auto; -} -fieldset table td sup.more { - color:red; -} - -fieldset table { - border:solid 1px green; cursor:pointer; + border:solid 1px green; + overflow: auto; } fieldset table tr:hover { background-color:#0fbd45; } -fieldset table tr.over { - background:red; -} fieldset table tr.select { background-color:#0fbd45; } -fieldset table th { - background-color:#0fbd45; +fieldset table tr.over { + background:red; } fieldset table th { font-family:monospace; @@ -130,30 +122,15 @@ fieldset table td.select { background-color:red; } -fieldset div.code { - color:white; - font-size:14px; - font-family:monospace; - background-color:#343a34f2; - white-space:pre; - padding:10px; - overflow:auto; - border:solid 3px green; - max-height:640px; +div.carte { + background:black; + border:solid 2px red; } -fieldset div.hidden { - display:none; +div.carte div.item { + padding:0 5px; } - -fieldset div.code { - color:white; - font-size:14px; - font-family:monospace; - background-color:#343a34f2; - white-space:pre; - padding:10px; - overflow:auto; - border:solid 3px green; - max-height:640px; +div.carte div.item:hover { + background:red; + border:solid 2px yellow; + cursor:pointer; } -