From be7a780b67a4fd758971b5ffa217596125d8a9da Mon Sep 17 00:00:00 2001 From: shylinux Date: Fri, 14 Apr 2023 10:20:48 +0800 Subject: [PATCH] opt some --- index.css | 42 +++++++++++++++++++------------------- plugin/local/code/inner.js | 1 + plugin/local/wiki/draw.js | 3 ++- plugin/local/wiki/word.css | 1 + plugin/local/wiki/word.js | 2 +- plugin/story/spide.js | 8 +++++--- 6 files changed, 31 insertions(+), 26 deletions(-) diff --git a/index.css b/index.css index fce80d8a..da49ee50 100644 --- a/index.css +++ b/index.css @@ -47,7 +47,7 @@ table.content.full { width:100%; } div.code { background-color:#5066b945; font-size:14px; } div.story[data-type=spark] { padding:5px 10px; border-left:blue solid 5px; } table.content div.story[data-type=spark] { margin:0; } -h1 { text-align:center; margin:20px 0; } h2 { margin:20px 0; } h3 { margin:20px 0; } ul { padding-left:40px; margin:20px 0; } +h1 { text-align:center; margin:20px 0; } h2 { margin:20px 0; } h3 { margin:20px 0; } ul { text-align:left; padding-left:40px; margin:20px 0; } hr, td.hr { border-bottom:gray dashed 1px; margin:5px; } /* fieldset */ fieldset.contexts { position:fixed; } @@ -134,8 +134,13 @@ body.dark span.keyword { color:royalblue; } div.item.text { position:relative; } div.item.text>span.icon.delete { font-size:20px; line-height:28px; position:absolute; top:2px; right:10px; visibility:hidden; } div.item.text:hover>span.icon.delete { visibility:visible; } +fieldset.float div.text:hover>span.icon.delete { visibility:hidden; } +fieldset.float>form.option>div.text>input { display:none; } +fieldset.float>form.option>div.text>span { display:none; } +fieldset.float>form.option>div.text>span.value { padding:7px; height:32px; display:block; } +fieldset:not(.float)>form.option>div.text>span.value { display:none; } form.option>div.icon:first-child { margin-left:-5px; } -form.option>div.icon { line-height:30px; font-size:26px; padding:0 5px; height:32px; display:none; } +form.option>div.icon { line-height:30px; font-size:26px; padding:0 5px; height:32px; } form.option>div.icon.refresh { line-height:28px; } form.option>div.icon.goback { line-height:28px; } form.option>div.icon.play { line-height:28px; } @@ -143,23 +148,16 @@ form.option>div.icon.next { font-size:18px; } form.option>div.icon.prev { font-size:18px; } form.option>div.icon.lt { font-size:20px; line-height:30px; } form.option>div.icon:hover { background-color:white; } -form.option>div.item.button>span.icon { line-height:30px; font-size:26px; padding:0 5px; height:32px; display:none; } +form.option>div.button>span.icon { line-height:30px; font-size:26px; padding:0 5px; height:32px; } +body:not(.mobile) fieldset:not(.story):not(.float):not(.full):not(.cmd)>form.option>div.button>span.icon { display:none; } +body:not(.mobile) fieldset:not(.story):not(.float):not(.full):not(.cmd)>form.option>div.icon { display:none; } fieldset.plug>form.option>div.icon { margin-left:5px; } -fieldset.story>form.option>div.icon { display:block; } -fieldset.story>form.option>div.item.button.icons { display:none; } -fieldset.story>form.option>div.item.button>span.icon { display:unset; } -fieldset:not(.float)>form.option>div.text>span.value { display:none; } -fieldset.float div.item.text:hover>span.icon.delete { visibility:hidden; } -fieldset.float>form.option>div.icon { display:block; } -fieldset.float>form.option>div.item.button.icons { display:none; } -fieldset.float>form.option>div.text>span.value { padding:7px; height:32px; display:block; } -fieldset.float>form.option>div.text>input { display:none; } -fieldset.full>form.option>div.icon { display:block; } -fieldset.full>form.option>div.icon.delete { display:block; } -fieldset.full>form.option>div.item.button.icons { display:none; } -fieldset.cmd>form.option>div.icon { display:block; } -fieldset.cmd>form.option>div.item.button>span.icon { display:unset; } -fieldset.cmd>form.option>div.item.button.icons { display:none; } +fieldset.story>form.option>div.button.icons>input { display:none; } +fieldset.float>form.option>div.button.icons>input { display:none; } +fieldset.full>form.option>div.button.icons>input { display:none; } +fieldset.cmd>form.option>div.button.icons>input { display:none; } +body.mobile fieldset>form.option>div.button.icons>input { display:none; } +body.mobile fieldset>form.option>div.button>span.icon { line-height:38px; font-size:38px; height:38px; } body.windows form.option>div.icon { font-size:21px; } body.windows fieldset.inner.cmd>div.output>div.layout.flow>div.tabs div.website.icon { line-height:36px; } /* svg */ @@ -267,7 +265,7 @@ body.white h2:hover { background-color:#4682b46b; } body.white h3:hover { background-color:#4682b46b; } body.light fieldset.panel:not(.main) { background-color:#4a566e; color:#d0d3da; } body.light fieldset.panel:not(.main) label { color:#d0d3da; } -body.light fieldset.panel:not(.main) input { background-color:#6b7488; color:white; border-radius:5px; } +body.light fieldset.panel:not(.main):not(.auto) input { background-color:#6b7488; color:white; border-radius:5px; } body.light fieldset.panel:not(.main) input::placeholder { background-color:#6b7488; color:#d0d3da; } body.light fieldset.panel:not(.main):not(.auto) div.item.select { background-color:#2b3446; color:white; } body.light fieldset.panel:not(.main):not(.auto) div.item:hover { background-color:#2b3446; color:white; } @@ -303,13 +301,13 @@ body.mobile select { font-size:1.4rem; height:38px; } body.mobile input { font-size:1.2rem; height:38px; } body.mobile textarea { font-size:1.2rem; } body.mobile form.option>div.item { margin:0; height:38px; } -body.mobile form.option>div.item.icon { font-size:32px; padding:0 10px; } +body.mobile form.option>div.item.icon { font-size:38px; padding:5px 10px; } body.mobile form.option>div.item.textarea { height:unset; } body.mobile div.action>div.item { margin:0; height:38px; } body.mobile div.carte div.item { font-size:1.6rem; } body.mobile table.content th { padding:6px; } body.mobile table.content { width:100%; } -body.mobile fieldset:not(.panel):not(.input)>div.action { display:none; } +body.mobile fieldset:not(.panel):not(.input):not(.play)>div.action { display:none; } body.mobile fieldset.plugin:not(.float):not(.full):not(.cmd) { margin:10px 0; } body.mobile fieldset.Header { padding:0; width:100%; position:fixed; top:0; } body.mobile fieldset.Header>div.output { font-size:1.6rem; line-height:3rem; height:3rem; } @@ -318,6 +316,7 @@ body.mobile fieldset.Header div.output div.search>input { font-size:2.2rem; back body.mobile fieldset.River { min-width:240px; position:fixed; top:3rem; z-index:10; } body.mobile fieldset.River>div.output { font-size:1.6rem; width:320px; } body.mobile fieldset.Action { margin-top:3rem; margin-bottom:3rem; } +body.mobile fieldset.Action>div.output { overflow-x:hidden; } body.mobile fieldset.Action.cmd { margin-top:0; margin-bottom:0; } body.mobile fieldset.Footer { font-size:1.6rem; height:3rem; width:100%; position:fixed; bottom:0; } body.mobile fieldset.Footer div.output { height:3rem; } @@ -325,6 +324,7 @@ body.mobile fieldset.Footer div.output div { height:3rem; } body.mobile fieldset.Footer input[name=cmd] { height:3rem; } body.mobile fieldset.input.date div.output td { padding:8px 20px; } body.mobile fieldset.word.float>div.output>div.project { top:38px; } +body.mobile fieldset.word>div.output { overflow-x:hidden; } /* misc */ fieldset.cmd>div.item.time { padding:5px 10px; line-height:22px; float:right; } fieldset.cmd>div.item.avatar { padding:0; float:right; height:32px; } diff --git a/plugin/local/code/inner.js b/plugin/local/code/inner.js index 00249759..2f3441d4 100644 --- a/plugin/local/code/inner.js +++ b/plugin/local/code/inner.js @@ -27,6 +27,7 @@ Volcanos(chat.ONIMPORT, {_init: function(can, msg, cb, target) { can.onmotion.cl can.onmotion.delay(can, function() { can.core.Next(files.slice(1), function(file, next) { can.onimport._tabview(can, paths[0], file, "", next) }, function() { if (can.user.isWebview && last) { var ls = can.core.Split(last, ice.DF); ls.length > 0 && can.onimport._tabview(can, ls[0], ls[1], ls[2]) } }) }) + can.user.isMobile && can.onmotion.hidden(can, can.ui.project) } var args = can.misc.SearchHash(can); can.db.tabview[can.onexport.keys(can)] = msg can.onimport.tabview(can, can.Option(nfs.PATH), can.Option(nfs.FILE), can.Option(nfs.LINE), function() { if (!can.user.isWebview && args.length > 0 && can.isCmdMode()) { can.onimport._tabview(can, args[args.length-3], args[args.length-2]||can.Option(nfs.FILE), args[args.length-1]) diff --git a/plugin/local/wiki/draw.js b/plugin/local/wiki/draw.js index 4b074152..98ef460a 100644 --- a/plugin/local/wiki/draw.js +++ b/plugin/local/wiki/draw.js @@ -214,7 +214,8 @@ Volcanos(chat.ONEXPORT, {list: [svg.GROUP, svg.FIGURE, ctx.INDEX, "pos"], can.Status(svg.GROUP, target.Groups()||can.group.Groups()||html.SVG) can.Status(ctx.INDEX, target.Value(ctx.INDEX)||"") }, - content: function(can, target) { return ['", target? target.innerHTML: "", ""]).join("") }, cursor: function(event, can, target) { diff --git a/plugin/local/wiki/word.css b/plugin/local/wiki/word.css index 020f4f03..1bcf7a8a 100644 --- a/plugin/local/wiki/word.css +++ b/plugin/local/wiki/word.css @@ -15,6 +15,7 @@ fieldset.word img { word-break:break-all; } fieldset.word svg.story.auto defs marker { stroke:red; fill:red; } body.white fieldset.word svg.story.auto defs marker { stroke:red; fill:red; } +fieldset.word.play.float { top:0; } fieldset.word.play.float>div.action { display:contents; } fieldset.word.play.float>div.status { clear:none; } fieldset.word.play.float>div.output>div.project { background-color:#4682b46b; padding:10px; position:fixed; right:0; top:32px; z-index:10; } diff --git a/plugin/local/wiki/word.js b/plugin/local/wiki/word.js index 153caa42..f4638d45 100644 --- a/plugin/local/wiki/word.js +++ b/plugin/local/wiki/word.js @@ -103,7 +103,7 @@ Volcanos(chat.ONACTION, {_trans: {view: "视图"}, sub.page.Append(sub, sub.ui.content, [{view: "page"+(index==0? " first": ""), list: can.core.List(page, function(item) { var data = item.dataset||{} switch (data.type) { case wiki.PREMENU: item = item.cloneNode(false); break - case chat.FIELD: item = can.onappend.field(can, chat.STORY, can.base.Obj(data.meta), sub.ui.content)._target; break + case chat.FIELD: item = can.onappend.field(can, chat.STORY, can.base.Copy(can.base.Obj(data.meta), {height: can.page.height(), width: can.page.width()}), sub.ui.content)._target; break default: item = item.cloneNode(true) } return can.core.CallFunc([can.onimport, data.type], [sub, data, item, can.page.width()]), item diff --git a/plugin/story/spide.js b/plugin/story/spide.js index c4640bf0..198f2abd 100644 --- a/plugin/story/spide.js +++ b/plugin/story/spide.js @@ -1,6 +1,7 @@ Volcanos(chat.ONIMPORT, {_init: function(can, msg, cb) { can.page.requireDraw(can, function() { can.ConfDefault({field: msg.append[0], split: ice.PS}) can.dir_root = can.Conf(nfs.DIR_ROOT)||msg.Option(nfs.DIR_ROOT), can._tree = can.onimport._tree(can, msg.Table(), can.Conf(mdb.FIELD), can.Conf(lex.SPLIT)) can.onaction.list = [], can.base.isFunc(cb) && cb(msg), can.onimport.layout(can) + can.onappend._status(can, msg.Option(ice.MSG_STATUS)) }) }, _tree: function(can, list, field, split) { var node = {}; can.core.List(list, function(item) { can.core.List(item[field].split(split), function(value, index, array) { var last = array.slice(0, index).join(split)||can.dir_root, name = array.slice(0, index+1).join(split) @@ -42,15 +43,16 @@ Volcanos(chat.ONACTION, {list: [[ice.VIEW, "横向", "纵向"], [html.SIZE, 24, ], style: {stroke: cli.CYAN}}), can.onaction._draw_vertical(can, item, x+offset, y+tree.height+8*can.margin), offset += item.width }) }, - _draw_horizontal: function(can, tree, x, y) { - tree.width = can.onaction._draw(can, tree, tree.x = x, tree.y = y+tree.height*(can.size+can.margin)/2).Val(svg.TEXT_LENGTH); if (x+tree.width > can.svg.Val(html.WIDTH)) { can.svg.Val(html.WIDTH, x+tree.width) } + _draw_horizontal: function(can, tree, x, y) { var height = can.size+can.margin + tree.width = can.onaction._draw(can, tree, tree.x = x, tree.y = y+tree.height*(can.size+can.margin)/2).Val(svg.TEXT_LENGTH)||(tree.name.length*16); if (x+tree.width > can.svg.Val(html.WIDTH)) { can.svg.Val(html.WIDTH, x+tree.width) } var offset = 0; tree.hide || can.core.List(tree.list, function(item) { can.onimport.draw(can, {shape: svg.PATH2H, points: [ - {x: x+tree.width+can.margin/2, y: y+tree.height*(can.size+can.margin)/2}, {x: x+tree.width+8*can.margin-can.margin/2, y: y+offset+item.height*(can.size+can.margin)/2} + {x: x+tree.width+can.margin/2, y: y+tree.height*height/2-can.size/4}, {x: x+tree.width+8*can.margin-can.margin/2, y: y+offset+item.height*height/2-can.size/4} ], style: {stroke: cli.CYAN}}), can.onaction._draw_horizontal(can, item, x+tree.width+8*can.margin, y+offset), offset += item.height*(can.size+can.margin) }) }, }) +Volcanos(chat.ONEXPORT, {list: [mdb.TIME, mdb.COUNT]}) Volcanos(chat.ONDETAIL, { onclick: function(event, can, tree) { if (tree.list.length > 0 || tree.name.endsWith(can.Conf(lex.SPLIT))) { return tree.hide = !tree.hide, can.onaction[can.Action(ice.VIEW)||"横向"](event, can) }