From 23a8cf49626646925eea6bc78214920545580a56 Mon Sep 17 00:00:00 2001 From: shaoying Date: Fri, 7 Aug 2020 09:57:18 +0800 Subject: [PATCH] opt draw --- client/mp/pages/action/action.wxml | 4 +- client/mp/pages/river/river.js | 15 ++- frame.js | 4 - plugin/local/code/inner.css | 5 +- plugin/local/code/inner.js | 146 ++++++++++------------------- plugin/local/code/vimer.css | 10 +- plugin/local/code/vimer.js | 136 +++++++++++---------------- plugin/local/wiki/draw.css | 16 ++-- plugin/local/wiki/draw.js | 47 +++++----- 9 files changed, 153 insertions(+), 230 deletions(-) diff --git a/client/mp/pages/action/action.wxml b/client/mp/pages/action/action.wxml index 2ccc37d3..eb7bda9e 100644 --- a/client/mp/pages/action/action.wxml +++ b/client/mp/pages/action/action.wxml @@ -38,8 +38,8 @@ - - {{item}} + + diff --git a/client/mp/pages/river/river.js b/client/mp/pages/river/river.js index 936d60eb..a41405dc 100644 --- a/client/mp/pages/river/river.js +++ b/client/mp/pages/river/river.js @@ -3,7 +3,7 @@ const app = getApp() Page({ data: { - action: ["扫码", "刷新", "登录", "授权"], + action: ["扫码", "刷新", "登录"], river: {}, }, action: { @@ -22,12 +22,7 @@ Page({ page.setData({river: river}) }) }, - "登录": function(event, page, data) { app.conf.sessid = "", - app.usercode(function() { - page.onaction(event, data, "刷新") - }) - }, - "授权": function(event, page, data) { + "登录": function(event, page, data) { app.conf.sessid = "", app.userinfo(function(res) { page.onaction(event, data, "刷新") }) @@ -64,10 +59,12 @@ Page({ app.jumps("action/action", {river: data.river.key, storm: data.key, title: data.river.name+"."+data.name}) }, - onLoad: function (options) { + onLoad: function (options) { var page = this console.log("page", "river", options) app.conf.sessid = options.sessid || app.conf.sessid - this.onaction({}, options, "刷新") + app.usercode(function() { + page.onaction({}, options, "刷新") + }) }, onReady: function () {}, onShow: function () {}, diff --git a/frame.js b/frame.js index def027b5..96f659a0 100644 --- a/frame.js +++ b/frame.js @@ -339,10 +339,6 @@ Volcanos("onappend", { _init: function(can, meta, list, cb, target, field) { met meta.feature = can.base.Obj(meta.feature, {}) can.page.ClassList.add(can, field, meta.feature.style||"") - can.onappend._legend(sub, legend) - if (can.user.Search(can, "share") && can.user.Search(can, "title")) { - can.page.Select(can, field, "legend", function(item) { can.page.Remove(can, item) }) - } sub.onaction && can.onappend._action(sub, sub._action, sub.onaction.list) meta.detail = meta.feature["detail"] || {} diff --git a/plugin/local/code/inner.css b/plugin/local/code/inner.css index 7cb8eb7d..eeea77eb 100644 --- a/plugin/local/code/inner.css +++ b/plugin/local/code/inner.css @@ -52,7 +52,7 @@ fieldset.editor>div.output div.preview>div.item.select { fieldset.editor>div.output div.content { font-size:16px; font-family:monospace; border-left:solid 2px red; - min-height:200px; + min-height:20px; min-width:200px; overflow:auto; float:left; @@ -67,7 +67,8 @@ fieldset.editor>div.output div.content>pre.item { color:white; } fieldset.editor>div.output div.content>pre.item.select { - border:solid 1px red; + /* border:solid 1px red; */ + border-right:0px; } fieldset.editor>div.output div.content>pre.item span.comment { color:cyan; background-color:blue; diff --git a/plugin/local/code/inner.js b/plugin/local/code/inner.js index 85700a08..b11bd916 100644 --- a/plugin/local/code/inner.js +++ b/plugin/local/code/inner.js @@ -5,7 +5,26 @@ Volcanos("onimport", {help: "导入数据", _init: function(can, msg, list, cb, {view: "preview"}, {view: "content"} ]}, {view: ["display", "pre"]}, - {view: "search", style: {display: "none"}}, + + {view: "search", style: {display: "none"}, list: [{view: "action", list: [ + {input: ["word", function(event) { + if (event.key == "Enter") { + can.onaction.searchLine(event, can, can.ui.word.value) + } + }], onfocus: function(event) { + event.target.setSelectionRange(0, -1) + }}, + {button: ["搜索", function(event) { + can.onaction.searchLine(event, can, can.ui.word.value) + }]}, + {button: ["返回", function(event) { + var last = can.history.pop(); last = can.history.pop() + last && can.onimport.tabview(can, last.path, last.file, last.line) + }]}, + {button: ["关闭", function(event) { + can.page.Modify(can, can.ui.search, {style: {display: "none"}}) + }]}, + ]}, {view: "tags"}, ]}, ]) can.tabview = {}, can.history = [] @@ -27,7 +46,7 @@ Volcanos("onimport", {help: "导入数据", _init: function(can, msg, list, cb, can.file = file, can.parse = can.base.Ext(file), can.max = 0 can.onsyntax._init(can, can._msg) - var width = can._target.offsetWidth - can.ui.project.offsetWidth - can.ui.preview.offsetWidth - 20 + var width = can._target.offsetWidth - can.ui.project.offsetWidth - can.ui.preview.offsetWidth - 40 can.Status("当前行", can.onexport.position(can, parseInt(can.Option("line")))-1) can.page.Modify(can, can.ui.content, {style: {"max-width": width+"px"}}) } @@ -76,6 +95,7 @@ Volcanos("onsyntax", {help: "语法高亮", list: ["keyword", "prefix", "line"], can.Status("文件名", can.file), can.Status("解析器", can.parse) can.Status("当前行", can.onexport.position(can, 0)) + can.Status("输入法", "normal") } // plugin @@ -109,48 +129,6 @@ Volcanos("onsyntax", {help: "语法高亮", list: ["keyword", "prefix", "line"], return p.line? p.line(can, line): line }, - makefile: { - prefix: {"#": "comment"}, - suffix: {":": "comment"}, - keyword: { - "ifeq": "keyword", - "ifneq": "keyword", - "else": "keyword", - "endif": "keyword", - }, - }, - shy: { - prefix: {"#": "comment"}, - profile: true, - keyword: { - "chapter": "keyword", - "label": "keyword", - }, - }, - json: {link: "js"}, - css: { - suffix: {"": "comment"}, - }, - html: { - split: { - space: " ", - operator: "<>", - }, - keyword: { - "head": "keyword", - "body": "keyword", - }, - }, - - url: { - line: function(can, line) { - return {button: [line, function(event) { - can.page.Appends(can, can.ui.display, [{type: "iframe", data: {src: line}, style: { - height: "600px", width: can.Conf("width")-80+"px", - }}]) - }]} - } - }, svg: { display: true, show: function(can) { @@ -167,32 +145,28 @@ Volcanos("onsyntax", {help: "语法高亮", list: ["keyword", "prefix", "line"], })) } }, - jpg: { - display: true, - show: function(can) { - can.page.Append(can, can.ui.display, can.core.List(can._msg.result, function(line) { - return {img: "/share/local/"+line, height: 400} - })) + url: { + line: function(can, line) { + return {button: [line, function(event) { + can.page.Appends(can, can.ui.display, [{type: "iframe", data: {src: line}, style: { + height: "600px", width: can.Conf("width")-80+"px", + }}]) + }]} } }, - m4v: { - line: function(can, line) { var auto = true, loop = true, total = 0 - var p = location.href.startsWith("https")? "": "http://localhost:9020" - function cb(event) { console.log(event) } - can.page.Modify(can, can._target, {style: {"min-height": can.Conf("height")-160}}) - return {className: "preview", type: "video", style: {height: can.Conf("height")-160+"px", width: can._target.offsetWidth-160+"px"}, - data: {src: p+"/share/local/"+line, controls: "controls", autoplay: auto, loop: loop}, - oncontextmenu: cb, onplay: cb, onpause: cb, onended: cb, - 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)) - }, - } - }, - }, }) -Volcanos("onaction", {help: "控件交互", list: ["运行", "项目", "搜索"], +Volcanos("onaction", {help: "控件交互", list: [], + "刷新": function(event, can) { + can.run(event, [can.Option("path"), can.Option("file")]) + }, + "编辑": function(event, can) { can.onkeymap && can.onkeymap._insert(can) }, + "保存": function(event, can) { + var msg = can.request(event); msg.Option("content", can.onexport.content(can)) + can.run(event, ["action", "save", can.parse, can.Option("file"), can.Option("path")], function(msg) { + can.user.toast(can, "保存成功") + }, true) + }, + "返回": function(event, can) { var last = can.history.pop(); last = can.history.pop() last && can.onimport.tabview(can, last.path, last.file, last.line) @@ -222,6 +196,7 @@ Volcanos("onaction", {help: "控件交互", list: ["运行", "项目", "搜索"] }}]) var line = can.page.Append(can, can.ui.content, [{view: ["item", "pre", ""], onclick: function(event) { can.onaction.selectLine(can, line) + can.ui.editor && can.ui.editor.focus() }, ondblclick: function(event) { var s = document.getSelection() var str = s.baseNode.data @@ -263,44 +238,25 @@ Volcanos("onaction", {help: "控件交互", list: ["运行", "项目", "搜索"] if (target.offsetTop < can.ui.profile.scrollTop || target.offsetTop > can.ui.profile.scrollTop+can.ui.profile.offsetHeight) { can.ui.profile.scrollTo(0, target.offsetTop-160) } - return - can.page.Modify(can, can.editor, {className: "editor "+can.mode, value: can.current.innerText, style: { + can.ui.editor && can.page.Modify(can, can.ui.editor, {className: "editor "+can.mode, value: can.current.innerText, style: { height: target.offsetHeight, width: target.offsetWidth, left: target.offsetLeft, top: target.offsetTop, display: "block", - }}), can.editor.focus() + }}) - can.page.Modify(can, can.ui.command, {style: { + can.ui.command && can.page.Modify(can, can.ui.command, {style: { height: target.offsetHeight, width: target.offsetWidth, left: target.offsetLeft, }}) }, - searchLine: function(event, can, value) { can.ui.search.innerHTML = "", value = value.trim() + searchLine: function(event, can, value) { value = value.trim() can.page.Modify(can, can.ui.search, {style: {display: ""}}) - var ui = can.page.Append(can, can.ui.search, [{view: "action", list: [ - {input: ["word", function(event) { - if (event.key == "Enter") { - can.onaction.searchLine(event, can, ui.word.value) - } - }], onfocus: function(event) { - event.target.setSelectionRange(0, -1) - }, value: value||"main"}, - {button: ["搜索", function(event) { - can.onaction.searchLine(event, can, ui.word.value) - }]}, - {button: ["返回", function(event) { - var last = can.history.pop(); last = can.history.pop() - last && can.onimport.tabview(can, last.path, last.file, last.line) - }]}, - {button: ["关闭", function(event) { - can.page.Modify(can, can.ui.search, {style: {display: "none"}}) - }]}, - ]}]) + value = can.ui.word.value = value || can.ui.word.value || "main" var msg = can.request(event); msg.Option("_path", can.Option("path")) - value && can.run(event, ["action", "search", can.parse, value, ""], function(msg) { - can.onappend.table(can, can.ui.search, "table", msg, function(value, key, index, line) { + value && can.run(event, ["action", "search", can.parse, value, ""], function(msg) { can.ui.tags.innerHTML = "" + can.onappend.table(can, can.ui.tags, "table", msg, function(value, key, index, line) { value = value.replace("<", "<").replace(">", ">") value = value.replace("./", "") can.Status("标签数", index+1) @@ -308,7 +264,7 @@ Volcanos("onaction", {help: "控件交互", list: ["运行", "项目", "搜索"] line.line && can.onimport.tabview(can, can.Option("path"), line.file.replace("./", ""), parseInt(line.line)) }} }) - can.page.Select(can, can.ui.search, "tr", function(item, index) { + can.page.Select(can, can.ui.tags, "tr", function(item, index) { index == 1 && can.page.Select(can, item, "td", function(item, index) { index == 0 && item.click() }) @@ -316,7 +272,7 @@ Volcanos("onaction", {help: "控件交互", list: ["运行", "项目", "搜索"] }, true) }, }) -Volcanos("onexport", {help: "导出数据", list: ["文件名", "解析器", "当前行", "标签数"], +Volcanos("onexport", {help: "导出数据", list: ["输入法", "文件名", "解析器", "当前行", "标签数"], position: function(can, index, total) { total = total || can.max return parseInt((index+1)*100/total)+"%"+" = "+(parseInt(index)+1)+"/"+parseInt(total) }, diff --git a/plugin/local/code/vimer.css b/plugin/local/code/vimer.css index 48c47679..81618ba4 100644 --- a/plugin/local/code/vimer.css +++ b/plugin/local/code/vimer.css @@ -1,18 +1,18 @@ -fieldset.editor>div.output textarea.editor { +fieldset.editor>div.output input.editor { position:absolute; padding:0; margin:0; font-size:16px; font-family:monospace; - padding-left:12px; + padding-left:9px; background-color:#00000000; color:#00000000; caret-color:yellow; - display:none; min-width:480px; + display:none; } -fieldset.editor>div.output textarea.editor.normal { +fieldset.editor>div.output input.editor.normal { caret-color:#00000000; } -fieldset.editor>div.output textarea.command { +fieldset.editor>div.output input.command { clear:both; padding:0; margin:0; font-size:16px; font-family:monospace; diff --git a/plugin/local/code/vimer.js b/plugin/local/code/vimer.js index b6978da1..b0e7b921 100644 --- a/plugin/local/code/vimer.js +++ b/plugin/local/code/vimer.js @@ -1,32 +1,31 @@ -Volcanos("onimport", {help: "导入数据", list: [], - _init: function(can, msg, list, cb, target) { +Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg, list, cb, target) { can.require(["/plugin/local/code/inner.js"], function(can) { can.onimport._init(can, msg, list, function() { + // can.page.Modify(can, can._option, {style: {display: "none"}}) + var ui = can.page.Append(can, can._target, [ + {view: ["editor", "input"], "rows": "1", onkeydown: function(event) { + can.onkeymap.parse(event, can, "insert"), can.Timer(10, function() { + can.onaction.modifyLine(can, can.current, can.editor.value) + }) + }, onblur: function(event) { + can.onaction.modifyLine(can, can.current, can.editor.value) + }, onclick: function(event) { + + }, ondblclick: function(event) { + can.onkeymap._mode(can, "insert") + }}, + {view: ["command", "input"], onkeydown: function(event) { + can.onkeymap.parse(event, can, "command") + }}, + ]) + can.ui.editor = ui.editor + can.ui.command = ui.command + can.onkeymap._init(can, "normal") typeof cb == "function" && cb() }, target) }) - return - /* - {view: ["editor", "textarea"], onkeydown: function(event) { - can.onkeymap.parse(event, can, "insert"), can.Timer(10, function() { - can.onaction.modifyLine(can, can.current, can.editor.value) - }) - }, onblur: function(event) { - can.onaction.modifyLine(can, can.current, can.editor.value) - }, onclick: function(event) { - - }, ondblclick: function(event) { - can.onkeymap._mode(can, "insert") - }}, - {view: ["command", "textarea"], onkeydown: function(event) { - can.onkeymap.parse(event, can, "command") - }}, - */ }, }, ["/plugin/local/code/vimer.css"]) - -Volcanos("onaction", {help: "交互操作", list: [], -}) Volcanos("onkeymap", {help: "键盘交互", list: ["command", "normal", "insert"], _init: function(can, mode) { can.page.Modify(can, can.ui.command, {style: {display: "none", width: can._target.offsetWidth-20+"px"}}) @@ -39,21 +38,7 @@ Volcanos("onkeymap", {help: "键盘交互", list: ["command", "normal", "insert" }), can.onkeymap[item]._engine = engine }), can.onkeymap._mode(can, mode||"normal") }, - deleteLine: function(can, target) { can.page.Remove(can, target) - var ls = can.page.Select(can, can.ui.preview, "div.item") - can.page.Remove(can, ls[ls.length-1]), can.max-- - }, - insertLine: function(can, target, value, before) { var line = can.onaction.appendLine(can, value) - can.ui.content.insertBefore(line, before && target || target.nextSibling) - return line - }, - mergeLine: function(can, target) { if (!target) {return} - can.onaction.modifyLine(can, target, target.innerHTML + target.nextSibling.innerHTML) - can.onaction.deleteLine(can, target.nextSibling) - return target - }, - _merge: function(can, value) { return true }, - _mode: function(can, value) { can.Action("mode", can.mode = value) + _mode: function(can, value) { can.Status("输入法", can.mode = value) can.page.Modify(can, can.ui.editor, {className: "editor "+can.mode, style: {display: "none"}}) can.page.Modify(can, can.ui.command, {className: "command "+can.mode, style: {display: "none"}}) return value @@ -62,33 +47,28 @@ Volcanos("onkeymap", {help: "键盘交互", list: ["command", "normal", "insert" can.page.Modify(can, can.ui.command, {value: "", style: {display: "block"}}) can.ui.command.focus() }, - _normal: function(can) { can.onkeymap._mode(can, "normal") }, - _insert: function(can) { - can.onkeymap._mode(can, "insert") - can.page.Modify(can, can.ui.editor, {className: "editor "+can.mode, style: {display: ""}}) + _normal: function(can) { can.onkeymap._mode(can, "normal") + can.page.Modify(can, can.ui.editor, {style: {display: "block"}}) + can.ui.editor.focus() + }, + _insert: function(can) { can.onkeymap._mode(can, "insert") + can.page.Modify(can, can.ui.editor, {style: {display: "block"}}) + can.ui.editor.focus() }, - _remote: function(event, can, key, arg, cb) { can.ui.display.innerHTML = "", can.ui.profile.innerHTML = "" - var p = can.onsyntax[can.parse]; can.display = p && p.profile && can.ui.profile || can.ui.display - if (p && p.show) { p.show(can); return } - - can.page.Modify(can, can.display, {innerHTML: "", style: {display: "none"}}) + _remote: function(event, can, key, arg, cb) { + can.page.Modify(can, can.ui.display, {innerHTML: "", style: {display: "none"}}) var msg = can.request(event); msg.Option("content", can.onexport.content(can)) can.run(event, arg||["action", key, can.Option("path"), can.Option("file")], cb||function(msg) { - (msg.Result() || msg.append && msg.append.length > 0) && can.page.Modify(can, can.display, {innerHTML: "", style: {display: "block"}}) - can.onappend.table(can, can.display, "table", msg) - can.onappend.board(can, can.display, "board", msg) + (msg.Result() || msg.append && msg.append.length > 0) && can.page.Modify(can, can.ui.display, {innerHTML: "", style: {display: "block"}}) + can.onappend.table(can, can.ui.display, "table", msg) + can.onappend.board(can, can.ui.display, "board", msg) }, true) }, _engine: { - w: function(event, can) { can.onkeymap._remote(event, can, "保存") }, - e: function(event, can, line, ls) { - can.onimport.tabview(can, can.Option("path"), ls[1]) - }, - r: function(event, can) { can.onkeymap._remote(event, can, "运行") }, - - commit: function(event, can) { can.onkeymap._remote(event, can, "提交") }, - history: function(event, can) { can.onkeymap._remote(event, can, "历史") }, + e: function(event, can, line, ls) { can.onimport.tabview(can, can.Option("path"), ls[1]) }, + w: function(event, can) { can.onaction["保存"](event, can, "保存") }, + r: function(event, can) { can.onaction["运行"](event, can, "运行") }, }, parse: function(event, can, mode) { @@ -188,23 +168,23 @@ Volcanos("onkeymap", {help: "键盘交互", list: ["command", "normal", "insert" can.editor.setSelectionRange(-1, -1) }, o: function(event, can) { can.onkeymap._insert(can) - can.onaction.insertLine(can, can.current).click() + can.onkeymap.insertLine(can, can.current).click() }, O: function(event, can) { can.onkeymap._insert(can) - can.onaction.insertLine(can, can.current, "", true).click() + can.onkeymap.insertLine(can, can.current, "", true).click() }, yy: function(event, can) { can.last = can.current.innerText }, dd: function(event, can) { can.last = can.current.innerText var next = can.current.nextSibling || can.current.previousSibling - can.onaction.deleteLine(can, can.current) + can.onkeymap.deleteLine(can, can.current) next.click() }, p: function(event, can) { - can.onaction.insertLine(can, can.current, can.last).click() + can.onkeymap.insertLine(can, can.current, can.last).click() }, P: function(event, can) { - can.onaction.insertLine(can, can.current, can.last, true).click() + can.onkeymap.insertLine(can, can.current, can.last, true).click() }, }, insert: { @@ -214,10 +194,11 @@ Volcanos("onkeymap", {help: "键盘交互", list: ["command", "normal", "insert" }, Enter: function(event, can) { can.onkeymap.insert.Escape(event, can) - can.onaction.insertLine(can, can.current, "", event.shiftKey).click() + can.onkeymap.insertLine(can, can.current, "", event.shiftKey).click() + can.onkeymap._insert(can) }, Backspace: function(event, can) { if (can.editor.selectionStart > 0) { return } - can.onaction.mergeLine(can, can.current.previousSibling).click() + can.onkeymap.mergeLine(can, can.current.previousSibling).click() event.stopPropagation(), event.preventDefault() }, ArrowDown: function(event, can) { @@ -231,23 +212,18 @@ Volcanos("onkeymap", {help: "键盘交互", list: ["command", "normal", "insert" can.onkeymap.insert.Escape(event, can) }, }, -}) -Volcanos("ondetail", {help: "菜单交互", list: [ -// "保存", "运行", "提交", "记录", "删除行", "合并行", "插入行", "添加行", "追加行", - ], - "删除行": function(event, can, msg) { - can.onaction.deleteLine(can, can.current) + + insertLine: function(can, target, value, before) { var line = can.onaction.appendLine(can, value) + can.ui.content.insertBefore(line, before && target || target.nextSibling) + return line }, - "合并行": function(event, can, msg) { - can.onaction.mergeLine(can, can.current) + deleteLine: function(can, target) { can.page.Remove(can, target) + var ls = can.page.Select(can, can.ui.preview, "div.item") + can.page.Remove(can, ls[ls.length-1]), can.max-- }, - "插入行": function(event, can, msg) { - can.onaction.insertLine(can, can.current, "", true) - }, - "添加行": function(event, can, msg) { - can.onaction.insertLine(can, can.current) - }, - "追加行": function(event, can, msg) { - can.onaction.appendLine(can) + mergeLine: function(can, target) { if (!target) {return} + can.onaction.modifyLine(can, target, target.innerHTML + target.nextSibling.innerHTML) + can.onkeymap.deleteLine(can, target.nextSibling) + return target }, }) diff --git a/plugin/local/wiki/draw.css b/plugin/local/wiki/draw.css index 9e2683fd..0e11e188 100644 --- a/plugin/local/wiki/draw.css +++ b/plugin/local/wiki/draw.css @@ -1,14 +1,12 @@ -fieldset.draw div.action { - clear:none; +fieldset.drawer div.output div.project { + min-width:80px; max-width:240px; overflow:auto; } -fieldset.draw div.output div.project { - min-width:60px; - max-width:120px; - overflow:auto; -} -fieldset.draw div.output div.project div.item.select { +fieldset.drawer div.output div.project div.item:hover { background-color:red; border:solid 2px yellow; } -fieldset.draw div.output svg { +fieldset.drawer div.output div.project div.item.select { + background-color:red; border:solid 2px yellow; +} +fieldset.drawer div.output svg { border: 1px solid red; } diff --git a/plugin/local/wiki/draw.js b/plugin/local/wiki/draw.js index a3aea3f3..c77832f7 100644 --- a/plugin/local/wiki/draw.js +++ b/plugin/local/wiki/draw.js @@ -1,10 +1,11 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg, list, cb, target) { can._output.innerHTML = "" can.onappend.table(can, target, "table", msg), can.ui = can.page.Append(can, target, [ - {view: "project", style: {display: "none"}}, {view: "profile"}, - {view: "preview"}, {view: "content", onmouseenter: function(event) { + {view: "project", style: {display: "none"}}, + {view: "content", onmouseenter: function(event) { can.onkeypop.action = can }}, {view: "display"}, ]) + can.page.Modify(can, can._action, {style: {display: "none"}}) // 交互数据 can.point = [], can.keys = [] @@ -40,8 +41,7 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg, "fill": "purple", "shape": "rect", "grid": "10", - "go": "manual", - "go": "auto", + "go": "run", }, function(key, value) { can.svg.Value(key, can.Action(key, can.svg.Value(key)||value)) }) @@ -173,7 +173,7 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg, can.core.List(can.keys, function(key) { if (!list) { // 查找失败 - return can.keys = [], can.Status("keys", can.keys) + return can.keys = [], can.Status("按键", can.keys) } // 查找递进 @@ -183,7 +183,7 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg, if (!list || !list.list) { // 等待输入 - return can.Status("keys", can.keys+"("+can.core.Item(list).join(",")+")") + return can.Status("按键", can.keys+"("+can.core.Item(list).join(",")+")") } function call(cmds) { @@ -192,7 +192,7 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg, // 执行命令 call(prefix.concat(list.list)) - return can.keys = [], can.Status("keys", can.keys) + return can.keys = [], can.Status("按键", can.keys) }, }, ["plugin/local/wiki/draw.css"]) Volcanos("onfigure", {help: "图形绘制", list: [], @@ -546,7 +546,7 @@ Volcanos("onfigure", {help: "图形绘制", list: [], }, }, }, ["/plugin/local/wiki/draw/heart.js"]) -Volcanos("onaction", {help: "组件菜单", list: ["", "项目", "保存", "", +Volcanos("onaction", {help: "组件菜单", list: [ ["grid", 1, 2, 3, 4, 5, 10, 20], ["stroke-width", 1, 2, 3, 4, 5], ["font-size", 12, 16, 18, 24, 32], @@ -556,14 +556,18 @@ Volcanos("onaction", {help: "组件菜单", list: ["", "项目", "保存", "", {text: [" a:", "div", "item"]}, ["mode", "translate", "draw", "resize", "delete"], {text: [" s:", "div", "item"]}, ["shape", "block", "rect", "text", "line", "path", "circle", "ellipse", "heart"], ], + "编辑": function(event, can, key) { can.Action("go", "auto") }, + "保存": function(event, can, key) { + var msg = can.request(event); msg.Option("content", can.onexport.content(can, can.svg)) + can.run(event, ["action", key, can.Option("path"), can.Option("file")], function() { + can.user.toast(can, "保存成功") + }, true) + }, "项目": function(event, can, key) { can.page.Modify(can, can.ui.project, {style: {display: can.ui.project.style.display=="none"? "block": "none"}}) }, - "保存": function(event, can, key) { var msg = can.request(event) - msg.Option("content", can.onexport.file(can, can.svg)) - can.run(event, ["action", key, can.Option("path")], function() { - can.user.toast(can, "保存成功") - }, true) + "变参": function(event, can, key) { + can.page.Modify(can, can._action, {style: {display: can._action.style.display=="none"? "": "none"}}) }, "清空": function(event, can) { can.group.innerHTML = "", can.point = [], can.keys = [], delete(can.temp) @@ -700,14 +704,9 @@ Volcanos("onaction", {help: "组件菜单", list: ["", "项目", "保存", "", return point }, _show: function(can, target) { var figure = can.onfigure._get(can, target) - can.Status("group", target.Groups()) - can.Status("target", target.tagName + " " + ( + can.Status("分组", target.Groups() || can.group.Value("class") ) + can.Status("图形", target.tagName + " " + ( figure? figure.show(can, target): "")) - if (target.Value) { - can.Status("zone", target.Value("zone")) - can.Status("type", target.Value("type")) - can.Status("name", target.Value("name")) - } }, _auto: function(can, target, pos) { if (target.tagName == "text") { @@ -749,8 +748,8 @@ Volcanos("onaction", {help: "组件菜单", list: ["", "项目", "保存", "", }, onmousemove: function(event, can) { var point = can.onaction._point(event, can) - can.Status("point", point.x+","+point.y) - if (can.Action("go") == "run") { return } + can.Status("坐标", point.x+","+point.y) + if (can.Action("go") == "run") { return can.page.Modify(can, event.target, {style: {cursor: ""}}) } var pos = can.page.Prepos(event, event.target) if (can.Action("go") == "auto" && can.point.length == 0) { @@ -810,8 +809,8 @@ Volcanos("ondetail", {help: "组件详情", list: ["复制", "标签", "编辑", can.onfigure._copy(event, can, event.target) }, }) -Volcanos("onexport", {help: "导出数据", list: ["point", "group", "target", "zone", "type", "name", "keys"], - file: function(can, svg) { +Volcanos("onexport", {help: "导出数据", list: ["坐标", "分组", "图形", "按键"], + content: function(can, svg) { return ['