From e9a63583a48a16b480e83783530bc425cc754dec Mon Sep 17 00:00:00 2001 From: shy Date: Tue, 9 Jan 2024 20:01:58 +0800 Subject: [PATCH] add some --- frame.js | 2 +- lib/misc.js | 6 ++++-- panel/footer.js | 3 +-- panel/header.js | 13 ++++++------- publish/client/mp/utils/frame-wx.js | 4 ++++ publish/client/mp/utils/lib/user-wx.js | 7 +++++-- 6 files changed, 21 insertions(+), 14 deletions(-) diff --git a/frame.js b/frame.js index 7bfd0cbe..c7e81157 100644 --- a/frame.js +++ b/frame.js @@ -228,7 +228,7 @@ Volcanos(chat.ONAPPEND, {_init: function(can, meta, list, cb, target, field) { if (item.type == html.BUTTON && can.page.isIconInput(can, item.name)) { can.onappend.icons(can, target, item.name) } }), item), "", action) }) - // if (list.length == 0) { return meta } + if (list.length == 0 && can.Conf("inputs").length == 0) { return meta } var _can = can._fields? can.sup: can can.user.isMobile || can.isCmdMode() || can.base.beginWith(can.ConfIndex(), "can.") || can.page.tagis(can._fields||can._target, html.FIELDSET_PANEL, html.FIELDSET_PLUG) || action == can._action && can.page.Append(can, action, can.core.Item({full: "切换全屏", open: "打开链接"}, function(key, value) { diff --git a/lib/misc.js b/lib/misc.js index 36d21712..d8088290 100644 --- a/lib/misc.js +++ b/lib/misc.js @@ -210,9 +210,10 @@ Volcanos("misc", { var _location = location; if (can.user.isExtension) { var _location = new URL(Volcanos.meta.iceberg) } return can.base.MergeURL(_location.origin+(args.length > 0? nfs.PS+args.join(nfs.PS): path)+(clear? "": _location.search), obj)+(hash? "#"+hash: "") }, - ParseURL: function(can, url) { url = url||location.href; var args = can.base.ParseURL(url), _location = new URL(url) + ParseURL: function(can, url) { url = url||location.href; var args = can.base.ParseURL(url) delete(args.link), delete(args.origin), delete(args._origin) - var ls = can.core.Split(_location.pathname, nfs.PS); + var raw = new RegExp("(https?://[^/]+)([^?#]*)([^#]*)(.*)").exec(url) + var ls = can.core.Split(raw[2], nfs.PS); if (ls[0] == chat.SHARE) { args[chat.SHARE] = ls[1] } if (ls[0] == "s") { args[ice.POD] = ls[1]; if (ls[2] == "c") { args[ice.CMD] = ls[3] } } if (ls[0] == "c") { args[ice.CMD] = ls[1] } @@ -231,6 +232,7 @@ Volcanos("misc", { if (dir.indexOf(nfs.SRC) == 0 || dir.indexOf(nfs.USR) == 0) { dir = "/require/"+dir } return dir+file+(ext? nfs.PT+ext: "") }, + isDebug: function(can) { return can.misc.Search(can, log.DEBUG) == ice.TRUE }, Search: function(can, key, value) { var args = this.ParseURL(can, location.href) if (can.base.isUndefined(key)) { return args } else if (can.base.isObject(key)) { can.core.Item(key, function(k, v) { v === ""? delete(args[k]): (args[k] = v) }) diff --git a/panel/footer.js b/panel/footer.js index ad72f3dc..d7f65a57 100644 --- a/panel/footer.js +++ b/panel/footer.js @@ -4,7 +4,7 @@ Volcanos(chat.ONIMPORT, {_init: function(can, msg, target) { can.ConfHeight(can.page.height()), can.ConfWidth(can.page.width()) can.Conf(NKEY, can.core.Item(can.misc.localStorage(can)).length) can.onimport._title(can, msg, target), can.onimport._command(can, msg, target), can.onimport._storm(can, msg, target) - can.onimport._state(can, msg, target), can.onimport._toast(can, msg, target) + can.misc.isDebug(can) && can.onimport._state(can, msg, target), can.onimport._toast(can, msg, target) can._wss = can.ondaemon._init(can) }, _title: function(can, msg, target) { can.user.isMobile || can.core.List(can.Conf(chat.TITLE)||msg.result, function(item) { @@ -70,7 +70,6 @@ Volcanos(chat.ONEXPORT, {list: [NTIP, NLOG, NCMD, NKEY, html.WIDTH, html.HEIGHT, nkey: function(can) { can.onexport._float(can, NKEY, "can.localStorage") }, version: function(can) { can.onexport._float(can, NKEY, "can.runtime") }, _float: function(can, name, index, args, cb) { can.ui[name]? can.ui[name].onaction.close(): can.onappend._float(can, index, args||[], function(sub) { can.ui[name] = sub - // can.page.style(can, sub._target, {left: html.RIVER_WIDTH, top: "", right: 0, bottom: html.ACTION_HEIGHT}), can.base.isFunc(cb) && cb(sub) can.page.style(can, sub._target, {top: "", right: 0, bottom: html.ACTION_HEIGHT}), can.base.isFunc(cb) && cb(sub) can.onmotion.delay(can, function() { sub.onaction.close = function() { can.page.Remove(can, sub._target), delete(can.ui[name]) } }) }) }, diff --git a/panel/header.js b/panel/header.js index d96be88d..ba269b78 100644 --- a/panel/header.js +++ b/panel/header.js @@ -83,16 +83,15 @@ Volcanos(chat.ONACTION, {_init: function(can) {}, can.run(can.request({}, {_method: http.GET}), [], function(msg) { lang(msg), can.page.requireModules(can, [msg.Option("icon.lib")]) can.ui.diy = can.base.Obj(msg.Option("diy"))||{}, can.__theme = can.onimport._theme(can, can.onexport.theme(can)), can.onimport.theme(can) can.page.theme(function(theme) { can.onengine.signal(can, chat.ONTHEMECHANGE, can.request(event, {theme: can.__theme = can.ui.diy&&can.ui.diy[theme]||theme})) }) - can.onaction._menus[2] = [aaa.LANGUAGE, ice.AUTO].concat(can.core.List(msg["language.list"], function(item) { return can.base.trimSuffix(item, nfs._JS) })) - can.onaction._menus[1] = [chat.THEME, ice.AUTO].concat(can.core.List(msg["theme.list"], function(item) { return can.base.trimSuffix(item, nfs._CSS) })) + can.onaction._menus[3] = [aaa.LANGUAGE, ice.AUTO].concat(can.core.List(msg["language.list"], function(item) { return can.base.trimSuffix(item, nfs._JS) })) + can.onaction._menus[2] = [chat.THEME, ice.AUTO].concat(can.core.List(msg["theme.list"], function(item) { return can.base.trimSuffix(item, nfs._CSS) })) can.require(can.core.List(msg["theme.list"], function(item) { return nfs.SRC_TEMPLATE+web.CHAT_HEADER+"/theme/"+item }), function() { if (can.base.beginWith(location.pathname, nfs.WIKI_PORTAL, web.CHAT_CMD+web.WIKI_PORTAL, web.CHAT_CMD+web.CHAT_OAUTH_CLIENT)) { return show(msg) } if (location.pathname == nfs.PS && can.base.beginWith(msg.Option(ice.MAIN)||"", nfs.WIKI_PORTAL, web.CHAT_CMD+web.WIKI_PORTAL)) { return show(msg) } 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 (tool && tool[0]._role == ice.OK && tool[0].index != web.CHAT_GRANT || can.misc.Search(can, web.SHARE)) { return show(msg) } if (!can.Conf(aaa.USERNICK, (msg.Option(aaa.USERNICK)||msg.Option(ice.MSG_USERNICK)||msg.Option(ice.MSG_USERNAME)).slice(0, 8))) { + var tool = can._root.Action._conf.tool; if (tool && tool[0]._role == ice.OK && tool[0].index != web.CHAT_GRANT || can.misc.Search(can, web.SHARE)) { return show(msg) } return can.user.login(can, function() { can.onengine.signal(can, chat.ONMAIN, msg) }, msg) } show(msg) }) @@ -139,12 +138,12 @@ Volcanos(chat.ONACTION, {_init: function(can) {}, carte: function(event, can, list, cb, trans) { return can.user.carte(event, can, can.onaction, list, cb, null, trans) }, _params: [log.DEBUG, chat.TITLE], - _menus: ["shareuser", [chat.THEME], [aaa.LANGUAGE], + _menus: ["shareuser", cli.QRCODE, [chat.THEME], [aaa.LANGUAGE], [nfs.SAVE, aaa.EMAIL, web.TOIMAGE, code.WEBPACK], [aaa.USER, "setnick", web.CLEAR, aaa.LOGOUT], ], - _trans: kit.Dict( - "shareuser", "共享用户", chat.THEME, "界面主题", aaa.LANGUAGE, "语言地区", + _trans: kit.Dict("shareuser", "共享用户", cli.QRCODE, "生成链接", + chat.THEME, "界面主题", aaa.LANGUAGE, "语言地区", nfs.SAVE, "保存网页", aaa.EMAIL, "发送邮件", web.TOIMAGE, "生成图片", code.WEBPACK, "打包页面", aaa.USER, "用户信息", "setnick", "设置昵称", aaa.PASSWORD, "修改密码", web.CLEAR, "清除背景", aaa.LOGOUT, "退出登录", diff --git a/publish/client/mp/utils/frame-wx.js b/publish/client/mp/utils/frame-wx.js index 11ad4bb8..536177a7 100644 --- a/publish/client/mp/utils/frame-wx.js +++ b/publish/client/mp/utils/frame-wx.js @@ -93,6 +93,10 @@ Volcanos(chat.ONACTION, { can.onAction(event, can, input.name, {order: order, name: input.name}) } else { can.run(event, [field.id||field.index, ctx.ACTION, input.name], function(msg) { + switch (msg.Option(ice.MSG_PROCESS)) { + case "_location": + can.user.parse(can, msg.Option("_arg")) + } can.onaction._refresh(event, can, order) }) } return diff --git a/publish/client/mp/utils/lib/user-wx.js b/publish/client/mp/utils/lib/user-wx.js index 798a889e..707ab972 100644 --- a/publish/client/mp/utils/lib/user-wx.js +++ b/publish/client/mp/utils/lib/user-wx.js @@ -59,10 +59,13 @@ Volcanos("user", { if (cb && cb(data)) { return } if (data.type == web.LINK && data._origin) { delete(data.type), delete(data.name), delete(data.text) var ls = new RegExp("(https?://[^/]+)([^?#]*)([^#]*)(.*)").exec(data._origin); delete(data._origin) - data.serve = ls[1]; if (ls[2].indexOf("/pages/") == 0) { data.pages = ls[2] } + if (ls[1] != "https://servicewechat.com") { data.serve = ls[1] } + if (ls[2].indexOf("/pages/") == 0) { data.pages = ls[2] } } can.misc.Info("app parse", data) - if (data.cmd||data.index||data.share) { + if (data.cmd == "web.chat.portal") { + can.user.jumps(can.base.MergeURL(data.pages||chat.PAGES_RIVER, data)) + } if (data.cmd||data.index||data.share) { can.user.jumps(can.base.MergeURL(data.pages||chat.PAGES_ACTION, data)) } else if (data.pod||data.space||data.serve) { can.user.jumps(can.base.MergeURL(data.pages||chat.PAGES_RIVER, data))