From eeea6f5a771d25d4e39ed8c53c238578b21eb030 Mon Sep 17 00:00:00 2001 From: shy Date: Wed, 25 Sep 2024 22:38:24 +0800 Subject: [PATCH] add some --- frame.js | 4 ++++ index.css | 25 +++++++++++-------------- lib/page.js | 5 ++++- plugin/input/date.js | 3 ++- plugin/table.js | 8 ++------ proto.js | 7 ++----- 6 files changed, 25 insertions(+), 27 deletions(-) diff --git a/frame.js b/frame.js index f43b0e65..984e02ff 100644 --- a/frame.js +++ b/frame.js @@ -37,6 +37,7 @@ Volcanos(chat.ONENGINE, { can.misc.Run(event, can, {names: names}, cmds, function(msg) { toast && can.user.toastSuccess(msg._can, _toast), toast && toast.close && toast.close(), toast = true // delete(sub._toast), delete(sub.__toast) + can.onmotion.delay(can, function() { can.page.ClassList.del(can, sub._target, "_process") }, 300) can.base.isFunc(cb) && cb(msg), Volcanos.meta.pack[can.core.Keys(panel._name, cmds.join(mdb.FS))] = msg }) }, @@ -564,6 +565,9 @@ Volcanos(chat.ONAPPEND, { can.page.Select(can, carte._target, html.DIV_ITEM, function(item) { if (target.value == item.innerText) { can.onappend.style(can, html.SELECT, item) + can.onmotion.delay(can, function() { + can.onmotion.scrollIntoView(can, item) + }, 300) } }) }, _init: function(target) { can.page.style(can, target, html.WIDTH, (select.offsetWidth||80)+30), can.onappend.style(can, html.HIDE, select) }}, {icon: mdb.SELECT}]) diff --git a/index.css b/index.css index 6a16c033..69c571f4 100644 --- a/index.css +++ b/index.css @@ -154,18 +154,13 @@ table.content.detail tr.action input { color:var(--notice-bg-color); } table.content.detail tr.action input.danger { color:var(--danger-bg-color); } table.content.detail tr.action i { display:unset; color:var(--notice-bg-color); } table.content.detail tr.action i.bi-trash { color:var(--danger-bg-color); } -fieldset.plugin.cmd.output>div.output { - top:0; -} -fieldset.plugin.cmd>div.output { - // position:absolute; - // top:32px; -} -div.output._prepare { - position:absolute; -} -div.output._unload { - position:absolute; +fieldset.plugin.cmd.output>div.output { top:0; } +div.output._prepare { position:absolute; } +div.output._unload { position:absolute; } +fieldset._process input { + border:var(--box-border) !important; + background-color:var(--disable-fg-color) !important; + color:var(--disable-fg-color) !important; } body.mobile table.content.checkbox th:first-child { padding:var(--table-padding) var(--input-padding); } body.mobile table.content.checkbox td:first-child { padding:var(--table-padding) var(--input-padding); } @@ -357,6 +352,7 @@ fieldset.input.date>div.action>div>div:first-child { margin-left:0; } fieldset.input.date>div.action>div { display:flex; justify-content:space-between; } fieldset.input.date div.action>div.time div.item span { display:none; } fieldset.input.date div.action span.close { display:none; } +fieldset.input.date>div.output { text-align:center; } fieldset.input.date>div.output table.content { text-align:center; border:var(--box-notice); width:100%; } fieldset.input.date>div.output td.prev { color:var(--disable-fg-color); } fieldset.input.date>div.output td.next { color:var(--disable-fg-color); } @@ -364,6 +360,7 @@ fieldset.input.date>div.output td span.lunar { font-size:8px; display:block; cle fieldset.input.date>div.output td span.lunar.term { color:green; } fieldset.input.date>div.output td span.lunar.fest { color:red; } fieldset.input.date>div.output td { cursor:pointer; } +fieldset.input.date>div.output td.select { background-color:var(--notice-bg-color); } fieldset.input.date>div.status { text-align:center; border-top:unset; } fieldset.input.date>div.status>div.today { padding:var(--input-padding); } body.mobile fieldset.input.date { left:0 !important; width:100%; } @@ -555,8 +552,8 @@ body:not(.mobile):not(.pad) div.item:not(.text):hover { background-color:var(--h div.item.select:not(.button) { background-color:var(--hover-bg-color); color:var(--hover-fg-color); } body:not(.mobile) div.item.button.danger input:hover[type=button] { background-color:var(--danger-bg-color); color:var(--danger-fg-color); } body:not(.mobile) div.item.button.notice input:hover[type=button] { background-color:var(--notice-bg-color); color:var(--notice-fg-color); } -div.item.button.danger input { border:var(--box-danger); } -div.item.button.notice input { border:var(--box-notice); } +div.item.button.danger input { border:var(--box-danger); color:var(--danger-bg-color); } +div.item.button.notice input { border:var(--box-notice); color:var(--notice-bg-color); } div.action div.tabs.select { background-color:var(--output-bg-color); border-top:var(--item-notice); } fieldset.vimer>div.action div.tabs.select { border-top:var(--box-border3); } fieldset.vimer.normal>div.action div.tabs.select { border-top:var(--box-notice3); } diff --git a/lib/page.js b/lib/page.js index 758a15fd..f14d5dd7 100644 --- a/lib/page.js +++ b/lib/page.js @@ -496,7 +496,10 @@ Volcanos("page", { appendAction: function(can, value, target) { if (!value.action) { return } target.innerHTML = value.action can.page.Select(can, target, html.INPUT_BUTTON, function(target) { var style = can.Conf("_style."+target.name)||can.page.buttonStyle(can, target.name); style && can.onappend.style(can, style, target) - target.onclick = function(event) { can.onkeymap.prevent(event), can.Update(can.request(event, value, {_toast: can.user.trans(can, target.name)}), [ctx.ACTION, target.name]) } + target.onclick = function(event) { + if (can.page.ClassList.has(can, can._fields, "_process")) { return } can.onappend.style(can, "_process") + can.onkeymap.prevent(event), can.Update(can.request(event, value, {_toast: can.user.trans(can, target.name)}), [ctx.ACTION, target.name]) + } }) }, parseAction: function(can, value) { var action = [] diff --git a/plugin/input/date.js b/plugin/input/date.js index 94a35c43..419a3b53 100644 --- a/plugin/input/date.js +++ b/plugin/input/date.js @@ -17,9 +17,10 @@ Volcanos(chat.ONFIGURE, {date: { can.onappend._action(can, [cli.CLOSE, [HOUR].concat(can.core.List(24)), [MINUTE].concat(can.core.List(0, 60, 5)), [SECOND].concat(can.core.List(0, 60, 5)), TODAY], ui.time, meta) can.onappend._action(can, [mdb.PREV, [YEAR].concat(can.core.List(now.getFullYear() - 10, now.getFullYear() + 10)), [MONTH].concat(can.core.List(1, 13)), mdb.NEXT], ui.date, meta) can._table = can.page.Appends(can, can._output, [{view: [chat.CONTENT, html.TABLE], list: [{type: html.TBODY}]}]).tbody + can.page.Append(can, can._output, [{text: "请先选择时间,再选择日期"}]) target.value == "" && (now.setMinutes(now.getMinutes()>30? 30: 0), now.setSeconds(0)) function show(now) { can.Action(YEAR, now.getFullYear()), can.Action(MONTH, now.getMonth()+1) - can.Action(HOUR, now.getHours()), can.Action(MINUTE, parseInt(now.getMinutes()/5)*5), can.Action(SECOND, parseInt(now.getSeconds()/5)*5) + can.Action(HOUR, now.getHours()), can.Action(MINUTE, parseInt(now.getMinutes()/30)*30), can.Action(SECOND, 0) can.page.Appends(can, can._table, can.date.List(can, function(event, day) { day.setHours(now.getHours()), day.setMinutes(now.getMinutes()), day.getSeconds(now.getSeconds()), _cb(day), can.close() }, now)) var l = can.date.solar2lunar(now); can.page.Appends(can, can._status, [{view: "today", inner: [l.gzYear, l.Animal+"年", l.cnMonth, l.cnDay, l.lunarFestival||l.festival||l.Term, l.Astro].join(lex.SP)}]) return now diff --git a/plugin/table.js b/plugin/table.js index 781e9aa1..699061c4 100644 --- a/plugin/table.js +++ b/plugin/table.js @@ -470,12 +470,8 @@ Volcanos(chat.ONIMPORT, { msg.Option("_share_title", (value[title]||value.name||value.uid).slice(0, 6)), msg.Option("_share_content", value[content]||value.info) } }, titleAction: function(can, value, filter) { var filter = can.core.List(arguments).slice(2) - return {view: html.ACTION, _init: function(target) { - if (value.Option) { - can.onappend._action(can, value.Option(ice.MSG_ACTION), target) - return - } - if (!can.user.isMobile) { return } + return {view: html.ACTION, _init: function(target) { if (!can.user.isMobile) { return } + if (value.Option) { return can.onappend._action(can, value.Option(ice.MSG_ACTION), target) } can.page.appendAction(can, value, target) can.page.Select(can, target, html.INPUT_BUTTON, function(target) { if (filter.length > 0) { diff --git a/proto.js b/proto.js index effe38ef..174830e0 100644 --- a/proto.js +++ b/proto.js @@ -73,14 +73,11 @@ var Volcanos = shy({iceberg: "", volcano: "", frame: chat.FRAME_JS, _cache: {}, } can.runAction(event, cmds[1], cmds.slice(2), cb, true) }, runActionCommand: function(event, index, args, cb) { - can.request(event)._caller() - // can.runAction(event, ctx.RUN, [index].concat(args), cb, true) + var msg = can.request(event, {_handle: ice.TRUE}); can.request(event)._caller() can.run(event, [ctx.ACTION, ctx.RUN].concat(index, args||[]), cb, true) }, runAction: function(event, action, args, cb, silent) { - var msg = can.request(event, {_handle: ice.TRUE}) - // can.request(can.base.isIn(msg._can, can, can._fields? can.sup: can.sub)? can.Option(): {})._caller() - can.request(event, can.Option())._caller() + var msg = can.request(event, {_handle: ice.TRUE}); can.request(event, can.Option())._caller() can.run(event, [ctx.ACTION].concat(action, args||[]), cb, silent) }, search: function(event, cmds, cb) {