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;
}
-