diff --git a/plugin/input.js b/plugin/input.js index 29762de5..078d3c8b 100644 --- a/plugin/input.js +++ b/plugin/input.js @@ -9,10 +9,8 @@ Volcanos("onaction", {help: "控件交互", list: [], }, onclick: function(event, can) { var feature = can.sup.Conf("feature") - var input = feature && feature[can.Conf("name")] - - if (input) { - can.user.input(event, can, input,function(event, button, data, list) { + var input = feature && feature[can.Conf("name")]; if (input) { + return can.user.input(event, can, input,function(event, button, data, list) { var args = ["action", can.Conf("name")]; can.core.Item(data, function(key, value) { key && value && args.push(key, value) }) @@ -22,22 +20,16 @@ Volcanos("onaction", {help: "控件交互", list: [], }, true) return true }) - return } var sub = can.sup && can.sup._outputs && can.sup._outputs[0] - var cb = sub && sub.onaction[can.Conf("name")] - if (typeof cb == "function") { - cb(event, sub, can.Conf("name")) - return - } + var cb = sub && sub.onaction && sub.onaction[can.Conf("name")] + if (typeof cb == "function") { return cb(event, sub, can.Conf("name")) } switch (can.Conf("type")) { case "button": var toast = can.user.toast(can, "执行中...", can.sup._help, 100000) - can.run(event, [], function(msg) { - toast.Close() - }) + can.run(event, [], function(msg) { toast.Close() }) break } }, diff --git a/plugin/local/mall/input.js b/plugin/local/mall/input.js deleted file mode 100644 index 0aae3a62..00000000 --- a/plugin/local/mall/input.js +++ /dev/null @@ -1,39 +0,0 @@ -Volcanos("onimport", {help: "导入数据", list: [], - _init: function(can, feature, output, action, option) { - function passcode(event) { - can.Run(event, [], function(msg) { - can.page.Appends(can, output, [{type: "img", src: "data:image/jpg;base64,"+msg.image[0], onclick: function(event) { - var p = can.page.Append(can, output, [{view: ["what", "div"], dataset: {meta: ""+(event.offsetX+1)+","+(event.offsetY-30+1)+""}, style: { - background: "red", position: "absolute", width: "20px", height: "20px", - left: event.offsetX+1+"px", top: event.offsetY+30+1+"px", - }, onclick: function(event) { - p.parentNode.removeChild(p) - }}]).what - }}]) - }, true) - } - - can.page.Append(can, option, [ - {button: ["刷新", passcode]}, - {username: ["账号", "args"]}, {password: ["密码", "args"]}, - {button: ["登录", function(event) { - var point = can.page.Select(can, output, "div.what", function(item) {return item.dataset.meta}).join(",") - point == ""? can.page.toast("请点击图片"): can.Run(event, ["check", point], function(msg) { - if (msg.result_code == "4") { - var input = can.page.Select(can, option, "input.args", function(item) {return item.value}) - can.Run(event, ["login"].concat(input).concat([msg.cmds[4]]), function(msg) { - can.page.toast(msg.result_message[0]) - }) - } else { - passcode(event) - } - }, true) - }]}, - ]) - }, -}) -Volcanos("onaction", {help: "控件交互", list: []}) -Volcanos("onchoice", {help: "控件菜单", list: []}) -Volcanos("ondetail", {help: "控件详情", list: []}) -Volcanos("onexport", {help: "导出数据", list: []}) - diff --git a/plugin/local/team/plan.js b/plugin/local/team/plan.js index f7faeb8a..4ebf47d8 100644 --- a/plugin/local/team/plan.js +++ b/plugin/local/team/plan.js @@ -1,19 +1,18 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg, list, cb, target) { - if (!msg.append || !msg.append[0] || !msg[msg.append[0]]) { return } - can._name = "plan", can.ui = can.page.Appends(can, can._target, [ + can.ui = can.page.Appends(can, can._target, [ {view: ["project", "table"], style: {display: can.user.Searchs(can, "project")||"none"}}, {view: ["content", "table"]}, {view: ["profile", "table"]}, {view: ["display", "pre"]}, ]) - can.onimport[can.Option("scale")](can, msg), can.Timer(10, function() { can.onimport._stat(can, msg) - can.page.Select(can, can.ui.content, "div.item.id"+can.user.Searchs(can, "id"), function(item) { - item.click() - }) - can.onaction.view({}, can, "view", can.user.Searchs(can, "view")||"text") - can.page.Modify(can, can._action, {style: {display: "none"}}) - }) + can.onimport[can.Option("scale")](can, msg) + typeof cb == "function" && cb() + + can.onaction.view({}, can, "view", can.user.Searchs(can, "view")||"text") + can.page.Select(can, can.ui.content, "div.item.id"+can.user.Searchs(can, "id"), function(item) { + item.click() + }), can.page.Modify(can, can._action, {style: {display: "none"}}) }, _stat: function(can, msg) { var stat = { @@ -154,7 +153,6 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg, var head = ["hour"].concat(["周日", "周一", "周二", "周三", "周四", "周五", "周六"]); var list = [0]; for (var i = 7; i < 24; i++) { list.push(can.base.Number(i, 2)) } - for (var i = 0; i < 7; i++) { list.push(can.base.Number(i, 2)) } function set(week, hour) { return can.base.Time(can.base.TimeAdd(begin_time, week-begin_time.getDay()+hour/24)) } var table = can.page.Append(can, can.ui.content, [{type: "table", list: @@ -233,9 +231,9 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg, }, }, ["/plugin/local/team/plan.css"]) Volcanos("onaction", {help: "组件交互", list: [ - // ["level", "all", "l1", "l2", "l3", "l4", "l5"], - // ["status", "all", "prepare", "process", "cancel", "finish"], - // ["score", "all", "s1", "s2", "s3", "s4", "s5"], + ["level", "all", "l1", "l2", "l3", "l4", "l5"], + ["status", "all", "prepare", "process", "cancel", "finish"], + ["score", "all", "s1", "s2", "s3", "s4", "s5"], ["view", "", "name", "text", "level", "score"], ], insertTask: function(event, can, time) { @@ -294,13 +292,13 @@ Volcanos("onaction", {help: "组件交互", list: [ level: function(event, can, key, value) { can.onaction._filter(event, can, key, value) }, status: function(event, can, key, value) { can.onaction._filter(event, can, key, value) }, score: function(event, can, key, value) { can.onaction._filter(event, can, key, value) }, - view: function(event, can, key, value) { can.ui.content.innerHTML = "" can.Action(key, value), can.onimport[can.Option("scale")](can, can._msg) }, "统计": function(event, can, key) { can.page.Modify(can, can.ui.project, {style: {display: can.ui.project.style.display=="none"? "table": "none"}}) + can.onimport._stat(can, msg) }, "详情": function(event, can, key) { can.page.Modify(can, can.ui.profile, {style: {display: can.ui.profile.style.display=="none"? "table": "none"}}) @@ -308,6 +306,9 @@ Volcanos("onaction", {help: "组件交互", list: [ "启动": function(event, can, key) { can.onaction.modifyTask(event, can, can.task, "status", "process", can.task.status) }, + "筛选": function(event, can, key) { + can.page.Modify(can, can._action, {style: {display: can._action.style.display=="none"? "block": "none"}}) + }, "运行": function(event, can, key) { can.onaction.pluginTask(event, can, can.task) }, diff --git a/plugin/local/wiki/draw.js b/plugin/local/wiki/draw.js index c77832f7..d74673a5 100644 --- a/plugin/local/wiki/draw.js +++ b/plugin/local/wiki/draw.js @@ -14,7 +14,7 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg, can.current = null // 加载绘图 - var code = can.page.AppendBoard(can, can.ui.content, msg.Result()||can.onexport.file(can)) + var code = can.page.AppendBoard(can, can.ui.content, msg.Result()||can.onexport.content(can)) can.page.Select(can, can.ui.content, "svg", function(svg) { can.svg = can.group = svg can.onimport.block(can, svg), can.onimport.group(can, svg).click() can.page.Select(can, svg, "*", function(item, index) { @@ -108,6 +108,7 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg, return list.reverse().join(".") } target.ondblclick = function(event) { + if (can.Action("go") == "run") { return } can.ondetail["标签"](event, can) event.stopPropagation() event.preventDefault() @@ -765,26 +766,8 @@ Volcanos("onaction", {help: "组件菜单", list: [ }, }) Volcanos("ondetail", {help: "组件详情", list: ["复制", "标签", "编辑", "删除"], - "删除": function(event, can) { if (event.target == can.svg) { return } - can.core.List(event.target.Value("ship"), function(value) { - can.page.Select(can, can.svg, "."+value.pid, function(item) { - can.page.Remove(can, item) - }) - }) - can.page.Select(can, can.svg, "."+event.target.Value("text"), function(item) { - can.page.Remove(can, item) - }) - can.page.Remove(can, event.target) - }, - "编辑": function(event, can) { var target = event.target - var figure = can.onfigure._get(can, target) - can.user.input(event, can, can.core.List(["x", "y", "transform", "translate_x", "translate_y"].concat(figure.data.copy||[]), function(item) { - return {_input: "text", name: item, value: target.Value(item)} - }), function(event, cmd, meta, list) { - can.core.Item(meta, function(key, value) { - target.Value(key, value) - }) - }) + "复制": function(event, can) { + can.onfigure._copy(event, can, event.target) }, "标签": function(event, can) { var target = event.target var def = target.Value("text"); can.page.Select(can, can.svg, "."+target.Value("text"), function(item) { @@ -805,8 +788,26 @@ Volcanos("ondetail", {help: "组件详情", list: ["复制", "标签", "编辑", target.Value("text", obj.Value("pid")) }, def) }, - "复制": function(event, can) { - can.onfigure._copy(event, can, event.target) + "编辑": function(event, can) { var target = event.target + var figure = can.onfigure._get(can, target) + can.user.input(event, can, can.core.List(["x", "y", "transform", "translate_x", "translate_y"].concat(figure.data.copy||[]), function(item) { + return {_input: "text", name: item, value: target.Value(item)} + }), function(event, cmd, meta, list) { + can.core.Item(meta, function(key, value) { + target.Value(key, value) + }) + }) + }, + "删除": function(event, can) { if (event.target == can.svg) { return } + can.core.List(event.target.Value("ship"), function(value) { + can.page.Select(can, can.svg, "."+value.pid, function(item) { + can.page.Remove(can, item) + }) + }) + can.page.Select(can, can.svg, "."+event.target.Value("text"), function(item) { + can.page.Remove(can, item) + }) + can.page.Remove(can, event.target) }, }) Volcanos("onexport", {help: "导出数据", list: ["坐标", "分组", "图形", "按键"], diff --git a/plugin/local/wiki/feel.js b/plugin/local/wiki/feel.js index ceb6afd2..cd890169 100644 --- a/plugin/local/wiki/feel.js +++ b/plugin/local/wiki/feel.js @@ -1,71 +1,39 @@ -Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg, list, cb) { - can._target.innerHTML = "", can.ui = can.page.Append(can, can._target, [ - {view: "content"}, {view: "control"}, {view: "display"}, - ]) +Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg, list, cb, target) { + can.page.Modify(can, can._action, {style: {display: "none"}}) + typeof cb == "function" && cb() + can.list = msg.Table()||[] - can.table = can.onappend.table(can, can.ui.content, "table", msg, function(value, key, index, line) { - return {text: [value, "td"], onclick: function(event) { - if (line.path.endsWith("/")) { - can.run(event, [can.Option("path", line.path)]) - } else { - can.onimport.file(can, line.path) - } - }} - }) - - var list = msg.Table()||[], begin = 0, limit = 3; function page() { - can.ctrl.offset.innerHTML = begin+"-"+(begin+limit) - can.onimport.page(can, list, begin, limit) - } - can.ctrl = can.page.Append(can, can.ui.control, [ - {button: ["clear", function() { - can.ui.display.innerHTML = "" - }]}, - {select: [["height", 100, 200, 400, 600, 800], function(event, value) { - can.height = parseInt(value), page() - }]}, - {select: [["rate", 0.1, 0.2, 0.5, 1, 2, 3, 5, 10], function(event, value) { - can.rate = value, page() - }]}, - {button: ["prev", function() { - begin > 0 && (begin -= limit, can.onimport.page(can, list, begin, limit)) - }]}, - {text: [begin+"-"+(begin+limit)], name: "offset"}, - {button: ["next", function() { - begin < msg[msg.append[0]].length && (begin += limit, page()) - }]}, - {select: [["limit", 1, 3, 6, 9, 12, 15], function(event, value) { - limit = parseInt(value), page() - }]}, - {text: [list.length]}, - ]) - - can.rate = can.ctrl.rate.value = 1 - limit = can.ctrl.limit.value = parseInt(msg.Option("limit"))||1 - can.height = can.ctrl.height.value = parseInt(msg.Option("height"))||200 - can.Option("path") != "最近/" && can.onimport.page(can, list, begin, limit) + can.begin = 0 + can.Action("倍速", 1) + can.Action("数量", can.limit = parseInt(msg.Option("limit"))||3) + can.Action("高度", can.height = parseInt(msg.Option("height"))||200) + can.Option("path") != "最近/" && can.onimport.page(can, can.list, can.begin, can.limit) }, - page: function(can, list, begin, limit) { can.ui.display.innerHTML = "" + page: function(can, list, begin, limit) { can._target.innerHTML = "" for (var i = begin; i < begin+limit; i++) { list[i] && can.onimport.file(can, list[i].path) } + can.Status("begin", begin), can.Status("limit", limit), can.Status("total", can.list.length) }, - file: function(can, item) { + file: function(can, path) { can.Status("文件", path) var p = location.href.startsWith("http")? "": "http://localhost:9020" - item = item.startsWith("http")? item: p+can.base.Path("/share/local", " "+(can._msg.Option("prefix")||""), item) + path = path.startsWith("http")? path: p+can.base.Path("/share/local", " "+(can._msg.Option("prefix")||""), path) - var ls = item.split("/") + var ls = path.split("/") var ls = ls[ls.length-1].split(".") var ext = ls[ls.length-1].toLowerCase() - ext && can.page.Append(can, can.ui.display, [can.onfigure[ext](can, item)]) + ext && can.page.Append(can, can._target, [can.onfigure[ext](can, path)]) }, }, ["/plugin/local/wiki/feel.css"]) Volcanos("onfigure", {help: "组件菜单", list: [], - image: function(can, path) { - return {img: path, height: can.height} - }, - jpeg: function(can, path) { return can.onfigure.image(can, path) }, - jpg: function(can, path) { return can.onfigure.image(can, path) }, - png: function(can, path) { return can.onfigure.image(can, path) }, qrc: function(can, path) { return can.onfigure.image(can, path) }, + png: function(can, path) { return can.onfigure.image(can, path) }, + jpg: function(can, path) { return can.onfigure.image(can, path) }, + jpeg: function(can, path) { return can.onfigure.image(can, path) }, + image: function(can, path) { return {img: path, height: can.height, onclick: function(event) { + can.Status("文件", path) + }, _init: function(target) { + can.Status("文件", path) + } + } }, video: function(can, path) { var auto = true, loop = true, total = 0 function cb(event) { console.log(event) } @@ -75,7 +43,7 @@ Volcanos("onfigure", {help: "组件菜单", list: [], onloadedmetadata: function(event) { total = event.timeStamp event.target.currentTime = can._msg.currentTime || 0 }, onloadeddata: cb, ontimeupdate: function(event) { - can.Status("当前行", can.onexport.position(can, (can._msg.currentTime=event.target.currentTime)-1, event.target.duration)) + can.Status("position", can.onexport.position(can, (can._msg.currentTime=event.target.currentTime)-1, event.target.duration)) }, } }, @@ -83,8 +51,11 @@ Volcanos("onfigure", {help: "组件菜单", list: [], mp4: function(can, path) { return can.onfigure.video(can, path) }, mov: function(can, path) { return can.onfigure.video(can, path) }, }) - -Volcanos("onaction", {help: "组件菜单", list: ["", "上传", "收藏"], +Volcanos("onaction", {help: "组件菜单", list: [ + ["数量", 1, 3, 6, 9, 12, 15], + ["高度", 100, 200, 400, 600, 800], + ["倍速", 0.1, 0.2, 0.5, 1, 2, 3, 5, 10], + ], "上传": function(event, can) { can.user.upload(event, can) }, "收藏": function(event, can) { chrome.tabs.query({ active: true, currentWindow: true }, function (tabs) { @@ -97,8 +68,29 @@ Volcanos("onaction", {help: "组件菜单", list: ["", "上传", "收藏"], }) }) }, + "清空": function(event, can) { + can._target.innerHTML = "" + }, + "参数": function(event, can) { + can.page.Modify(can, can._action, {style: {display: can._action.style.display=="none"? "block": "none"}}) + }, + "上一页": function(event, can, key, value) { + can.begin > 0 && (can.begin -= can.limit, can.onimport.page(can, can.list, can.begin, can.limit)) + }, + "下一页": function(event, can, key, value) { + can.begin + can.limit < can.list.length && (can.begin += can.limit, can.onimport.page(can, can.list, can.begin, can.limit)) + }, + "数量": function(event, can, key, value) { + can.limit = parseInt(value), can.onimport.page(can, can.list, can.begin, can.limit) + }, + "高度": function(event, can, key, value) { + can.height = parseInt(value), can.onimport.page(can, can.list, can.begin, can.limit) + }, + "倍速": function(event, can, key, value) { + can.rate = parseInt(value), can.onimport.page(can, can.list, can.begin, can.limit) + }, }) -Volcanos("onexport", {help: "导出数据", list: ["当前行"], +Volcanos("onexport", {help: "导出数据", list: ["begin", "limit", "total", "position", "文件"], position: function(can, index, total) { total = total || can.max return parseInt((index+1)*100/total)+"%"+" = "+(parseInt(index)+1)+"/"+parseInt(total) }, diff --git a/plugin/story/paste.js b/plugin/story/paste.js index 43c6ab8e..50c3ec07 100644 --- a/plugin/story/paste.js +++ b/plugin/story/paste.js @@ -8,8 +8,7 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg, }, }) Volcanos("onaction", {help: "控件交互", list: [], - onclick: function(event, can) { - can.run(event, [], function() {}) + "添加": function(event, can) { }, }) Volcanos("ondetail", {help: "控件交互", list: ["编辑", "删除"], diff --git a/plugin/story/trend.js b/plugin/story/trend.js index 1d641caa..3ea1fde1 100644 --- a/plugin/story/trend.js +++ b/plugin/story/trend.js @@ -27,6 +27,7 @@ Volcanos("onimport", {help: "导入数据", list: [], }) } }, can.ui.content) + return typeof cb == "function" && cb(msg) }, }) Volcanos("onaction", {help: "组件菜单", list: ["编辑", "清空", ["view", "股价图", "趋势图", "数据源"], ["height", "100", "200", "400", "600"], ["speed", "10", "20", "50", "100"]],