1
0
mirror of https://shylinux.com/x/volcanos synced 2025-04-25 08:48:06 +08:00
This commit is contained in:
IT 老营长 @云轩领航-创始人 2024-01-16 22:09:38 +08:00
parent 636ae5a7d9
commit 154f8d6006
3 changed files with 17 additions and 25 deletions

View File

@ -59,7 +59,7 @@ body { background-color:var(--body-bg-color); color:var(--body-fg-color); }
body.windows { --code-font-family:"Courier New"; }
body.mobile { --qrcode-height:284px; }
body.cmd { background-color:var(--plugin-bg-color); }
body.cmd { --plug-width:1200px; --plug-height:640px; }
// body.cmd { --plug-width:1200px; --plug-height:480px; }
body.width1 { /* 320-640 手机竖屏 */
--svg-font-size:13px;
--river-width:280px;; --project-width:120px; --input-width:80px;

View File

@ -24,7 +24,7 @@ Volcanos(chat.ONIMPORT, {_init: function(can, msg) { var river = can.Conf(chat.R
var tabs = [{view: [html.ITEM, "", can.user.trans(can, meta.name, meta.help)], title: meta.help, onclick: function(event) { can._current = sub
can.onmotion.select(can, can._output, html.FIELDSET_PLUGIN, sub._target), can.onmotion.select(can, can._action, html.DIV_ITEM, sub._tabs), can.onmotion.select(can, can._header_tabs, html.DIV_ITEM, sub._header_tabs)
var layout = can.onexport.layout(can); layout == FREE || (can._output.scrollTop = sub._target.offsetTop-10)
can.misc.SearchHash(can, can.Conf(chat.RIVER), can.Conf(chat.STORM), sub.Conf("_command")||meta.index, layout)
can.isCmdMode() || can.misc.SearchHash(can, can.Conf(chat.RIVER), can.Conf(chat.STORM), sub.Conf("_command")||meta.index, layout)
sub.onimport.size(sub, can.ConfHeight()-can.Conf(html.MARGIN_Y), can.ConfWidth()-can.Conf(html.MARGIN_X), can.onexport.isauto(can))
}, oncontextmenu: sub._legend.onclick}]; sub._header_tabs = can.page.Append(can, can._header_tabs, tabs)._target, sub._tabs = can.page.Append(can, can._action, tabs)._target
},
@ -38,7 +38,8 @@ Volcanos(chat.ONACTION, {_init: function(can, target) {
can.Conf(html.MARGIN_X, 2*html.PLUGIN_PADDING+2*html.PLUGIN_MARGIN)
can.core.List(["ontouchstart", "ontouchmove", "ontouchend"], function(item) {
can.onengine.listen(can, item, function(event, msg) { can.onaction[item](event, can), can.onengine.signal(can, chat.ONACTION_TOUCH, msg) }, target)
}), can.onaction.layout(can)
})
// can.onaction.layout(can)
},
onsize: function(can, msg, height, width) { can.Conf({height: can.base.Min(height, 240), width: width}) },
onlogin: function(can, msg) {
@ -97,7 +98,7 @@ Volcanos(chat.ONACTION, {_init: function(can, target) {
portal: function(can) { can.user.opens(can.misc.MergePodCmd(can, {cmd: web.PORTAL})) },
desktop: function(can) { can.user.opens(can.misc.MergePodCmd(can, {cmd: web.DESKTOP})) },
layout: function(can, button, skip) { var before = can._layout||can.onlayout._storage(can); button = button||before||(can.user.isMobile? ALL: TABVIEW)
var list = can.misc.SearchHash(can); list.length > 2 && (list[3] = button); can.misc.SearchHash(can, list[0], list[1], list[2], list[3])
var list = can.misc.SearchHash(can); list.length > 2 && (list[3] = button); can.isCmdMode() || can.misc.SearchHash(can, list[0], list[1], list[2], list[3])
can.page.ClassList.del(can, can._target, before), can._header_tabs && can.onmotion.hidden(can, can._header_tabs)
button = (can.onlayout._storage(can, can._layout = button))||can.misc.SearchOrConf(can, html.LAYOUT), can.page.ClassList.add(can, can._target, button)
can.onengine.signal(can, chat.ONLAYOUT, can.request({}, {layout: button, before: before}))

View File

@ -44,10 +44,8 @@ Volcanos(chat.ONIMPORT, {_init: function(can, msg, target) {
}) },
theme: function(can, theme) { theme && can.runAction({}, chat.THEME, [theme])
theme && can.misc.localStorage(can, "can.theme", can._theme = theme == ice.AUTO? "": theme) && can.onengine.signal(can, chat.ONTHEMECHANGE, can.request(event, {theme: theme}))
theme = can.onexport.theme(can)
var change = can.page.ClassList.has(can, document.body, theme)
can.user.theme(can, theme); var list = [html.LIGHT, html.WHITE]
change || can.onimport._const(can)
theme = can.onexport.theme(can); var list = [html.LIGHT, html.WHITE]
var change = can.page.ClassList.has(can, document.body, theme); can.user.theme(can, theme), change || can.onimport._const(can)
can.page.Select(can, can._output, "div.item.theme>i:first-child", function(target) {
if (list.indexOf(theme) == -1 && list.indexOf(theme[0]) == -1) { target.className = icon.MOON } else { target.className = icon.SUN }
})
@ -93,21 +91,17 @@ Volcanos(chat.ONACTION, {_init: function(can) {},
msg.Option(mdb.PLUGIN) && can.onappend.plugin(can, {index: msg.Option(mdb.PLUGIN)}, function(sub) { can.onmotion.hidden(can, sub._target) }, document.body)
msg.Option(nfs.SCRIPT) && can.require(can.base.Obj(msg.Option(nfs.SCRIPT)), function(can) { can.onaction.source(can, msg) })
var tool = can._root.Action._conf.tool
if (can.Conf(aaa.USERNICK, (msg.Option(aaa.USERNICK)||msg.Option(ice.MSG_USERNICK)||msg.Option(ice.MSG_USERNAME)).slice(0, 8)) || can.misc.Search(can, web.SHARE) || tool && can.base.isIn(tool[0].index, aaa.OFFER)) {
return show(msg)
} can.user.login(can, function() { can.onengine.signal(can, chat.ONMAIN, msg) }, msg)
if (can.Conf(aaa.USERNICK, (msg.Option(aaa.USERNICK)||msg.Option(ice.MSG_USERNICK)||msg.Option(ice.MSG_USERNAME)).slice(0, 8)) || can.misc.Search(can, web.SHARE)
|| tool && can.base.isIn(tool[0]._command, web.PORTAL, aaa.OFFER)) { return show(msg) }
can.user.login(can, function() { can.onengine.signal(can, chat.ONMAIN, msg) }, msg)
})
})
},
onstorm_select: function(can, river, storm) { can.Conf(chat.RIVER, river), can.Conf(chat.STORM, storm) },
onaction_cmd: function(can) { can.onappend.style(can, html.HIDE), can.onmotion.delay(can, function() { can.onimport._const(can) }) },
onsearch_focus: function(can) { can._search && can._search.focus() },
onlayout: function(can, layout, before) { if (can.user.isMobile) { return }
can.page.ClassList.del(can, can._target, before), can.page.ClassList.add(can, can._target, layout)
},
onshare: function(can, msg, args) {
can.user.share(can, msg, [ctx.ACTION, chat.SHARE].concat(args||[]))
},
onlayout: function(can, layout, before) { can.user.isMobile || can.page.ClassList.del(can, can._target, before), can.page.ClassList.add(can, can._target, layout) },
onshare: function(can, msg, args) { can.user.share(can, msg, [ctx.ACTION, chat.SHARE].concat(args||[])) },
onwebpack: function(can, msg) { can.user.input(msg._event, can, [{name: mdb.NAME, value: can.user.title()}], function(data) {
can.core.Item(Volcanos.meta.pack, function(key, msg) { can.core.List(["_event", "_can", "_xhr", ""], function(key) { delete(msg[key]) }) })
can.runAction(can.request({}, {args: "name,river,storm,title,theme,layout", _toast: "打包中...", content: JSON.stringify(Volcanos.meta.pack),
@ -125,12 +119,10 @@ Volcanos(chat.ONACTION, {_init: function(can) {},
theme: function(event, can) { can.page.Select(can, can._output, "div.item.theme>i:first-child", function(target) {
can.onimport.theme(can, can.onimport._theme(can, target.className == icon.SUN? html.DARK: html.LIGHT))
}) },
qrcode: function(event, can) {
can.runAction(event, cli.QRCODE, [], function(msg) {
var ui = can.user.toast(can, {title: msg.Append(web.LINK), duration: -1, content: msg.Result(), action: [cli.CLOSE, cli.OPEN], resize: html.IMG})
can.page.style(can, ui._target, html.TOP, (can.page.height() - 360)/2)
})
},
qrcode: function(event, can) { can.runAction(event, cli.QRCODE, [], function(msg) {
var ui = can.user.toast(can, {title: msg.Append(web.LINK), duration: -1, content: msg.Result(), action: [cli.CLOSE, cli.OPEN], resize: html.IMG})
can.page.style(can, ui._target, html.TOP, (can.page.height() - 360)/2)
}) },
language: function(event, can) { can.onimport.language(can, can.user.info.language.indexOf("zh") == 0? "en-us": "zh-cn") },
email: function(event, can) { can.user.input(can.request(event, {to: can.user.info.email, subject: can.user.title()}), can, [{name: "to", _trans: "收件人", need: "must"}, "subject","content"], function(args) {
can.runAction(event, aaa.EMAIL, args, function() { can.user.toastSuccess(can) })
@ -147,8 +139,7 @@ Volcanos(chat.ONACTION, {_init: function(can) {},
_params: [log.DEBUG, chat.TITLE],
_menus: [
cli.QRCODE,
"shareuser",
cli.QRCODE, "shareuser",
[chat.THEME], [aaa.LANGUAGE],
// [nfs.SAVE, aaa.EMAIL, web.TOIMAGE, code.WEBPACK],
[aaa.USER, "setnick", web.CLEAR, aaa.LOGOUT],