diff --git a/base/web/html/html.go b/base/web/html/html.go index cede309d..cd8a8d7a 100644 --- a/base/web/html/html.go +++ b/base/web/html/html.go @@ -61,6 +61,8 @@ const ( IMAGE = "image" SUBMIT = "submit" CHROME = "chrome" + NEED = "need" + MUST = "must" STYLE = "style" FLOAT = "float" diff --git a/base/web/render.go b/base/web/render.go index 3defeaa4..b0c0b009 100644 --- a/base/web/render.go +++ b/base/web/render.go @@ -217,6 +217,9 @@ const ( WIKI_WORD = "web.wiki.word" WIKI_PORTAL = "web.wiki.portal" CHAT_OAUTH_CLIENT = "web.chat.oauth.client" + CHAT_WX_ACCESS = "web.chat.wx.access" + CHAT_WX_TEMPLATE = "web.chat.wx.template" + CHAT_WX_OCR = "web.chat.wx.ocr" CHAT_MESSAGE = "web.chat.message" CHAT_HEADER = "web.chat.header" CHAT_IFRAME = "web.chat.iframe" diff --git a/conf.go b/conf.go index 77892451..f8900ad3 100644 --- a/conf.go +++ b/conf.go @@ -256,6 +256,7 @@ const ( // MSG LOG_TRACEID = "log.id" MSG_NODETYPE = "node.type" + MSG_NODENAME = "node.name" MSG_FILES = "file.system" FROM_SPACE = "from.space" FROM_DAEMON = "from.daemon" diff --git a/core/chat/header.go b/core/chat/header.go index 1419ac11..0e02b8da 100644 --- a/core/chat/header.go +++ b/core/chat/header.go @@ -143,13 +143,15 @@ func init() { if ice.Info.NodeType == web.WORKER { return } - m.Option(ice.MSG_NODETYPE, ice.Info.NodeType) kit.If(m.Option(ice.MSG_USERPOD), func(p string) { m.Option(ice.MSG_NODETYPE, m.Cmdx(web.SPACE, p, cli.RUNTIME, ice.MSG_NODETYPE)) + m.Option(ice.MSG_NODENAME, m.Cmdx(web.SPACE, p, cli.RUNTIME, ice.MSG_NODENAME)) m.Option("favicon", m.Cmd(web.SPACE, m.Option(ice.MSG_USERPOD), web.SPACE, ice.INFO).Append(mdb.ICONS)) }, func() { - // m.Option("titles", ice.Info.Title()) + m.Option(ice.MSG_NODETYPE, ice.Info.NodeType) + m.Option(ice.MSG_NODENAME, ice.Info.NodeName) m.Option("favicon", ice.Info.NodeIcon) + m.Option("titles", ice.Info.Titles) }) m.Option(aaa.LANGUAGE, strings.ReplaceAll(strings.ToLower(kit.Select("", kit.Split(kit.GetValid( func() string { return kit.Select("", "zh-cn", strings.Contains(m.Option(ice.MSG_USERUA), "zh_CN")) }, diff --git a/meta.go b/meta.go index 55c52647..af29b968 100644 --- a/meta.go +++ b/meta.go @@ -94,9 +94,9 @@ func (m *Message) Push(key string, value Any, arg ...Any) *Message { if v = kit.Value(value, k); v != nil { break } - if v = kit.Value(value, kit.Keys(EXTRA, k)); v != nil { - break - } + // if v = kit.Value(value, kit.Keys(EXTRA, k)); v != nil { + // break + // } if v = val[k]; v != nil { break } diff --git a/misc/wx/agent.js b/misc/wx/agent.js index 85aa51b1..dfa18bcd 100644 --- a/misc/wx/agent.js +++ b/misc/wx/agent.js @@ -5,10 +5,8 @@ Volcanos(chat.ONIMPORT, { } msg.Option(ice.MSG_ACTION, ""), can.require([msg.Option(nfs.SCRIPT)], function(can) { var debug = msg.isDebug() && can.user.info.userrole == aaa.TECH; debug && can.onmotion.toggle(can, can._fields, true) - // debug = false - can.onmotion.hidden(can, can._fields) + debug = false, can.onmotion.hidden(can, can._fields) wx.config({debug: debug, signature: msg.Option("signature"), timestamp: msg.Option("timestamp"), nonceStr: msg.Option("noncestr"), appId: msg.Option("appid"), - openTagList: ["wx-open-subscribe"], jsApiList: can.core.Item({ getLocation: function(can, cb) { wx.getLocation({type: "gcj02", success: function (res) { can.base.isFunc(cb) && cb({type: "gcj02", name: "当前位置", text: "当前位置", latitude: parseInt(res.latitude*100000), longitude: parseInt(res.longitude*100000) }) @@ -17,23 +15,33 @@ Volcanos(chat.ONIMPORT, { name: msg.Option(mdb.NAME), address: msg.Option(mdb.TEXT), infoUrl: msg.Option(web.LINK), longitude: parseFloat(msg.Option(aaa.LONGITUDE)), latitude: parseFloat(msg.Option(aaa.LATITUDE)), scale: msg.Option("scale")||14, }) }, - scanQRCode: function(can, cb) { wx.scanQRCode({needResult: cb? 1: 0, scanType: ["qrCode", "barCode"], success: function (res) { - can.base.isFunc(cb) && cb(can.base.ParseJSON(res.resultStr)) - } }) }, chooseImage: function(can, cb, count) { wx.chooseImage({count: count||9, sourceType: ["camera", "album"], sizeType: ["original", "compressed"], success: function (res) { can.base.isFunc(cb) && cb(res.localIds) } }) }, uploadImage: function(can, id, cb) { wx.uploadImage({ localId: id, isShowProgressTips: 1, success: function (res) { can.base.isFunc(cb) && cb(res.serverId) } }) }, + previewImage: function(can, url, list) { + wx.previewImage({current: url, urls: list||[url]}) + }, + scanQRCode: function(can, cb) { wx.scanQRCode({needResult: cb? 1: 0, scanType: ["qrCode", "barCode"], success: function (res) { + can.base.isFunc(cb) && cb(can.base.ParseJSON(res.resultStr)) + } }) }, }, function(key, value) { return can.user.agent[key] = value, key }).concat([ "updateAppMessageShareData", "updateTimelineShareData", - ]), + ]), openTagList: ["wx-open-subscribe"], }) wx.ready(function () { + function share(title, icons) { + wx.updateAppMessageShareData({title: title, desc: can.user.info.titles, link: location.href, imgUrl: icons}) + wx.updateTimelineShareData({title: title, link: location.href, imgUrl: icons}) + } var p = can.misc.Resource(can, can.user.info.favicon); can.base.beginWith(p, "/") && (p = location.origin + p) - wx.updateAppMessageShareData({title: can.user.info.titles, desc: "车管所业务代办", link: location.href, imgUrl: p}) - wx.updateTimelineShareData({title: can.user.info.titles, link: location.href, imgUrl: p}) + share(document.title, p) + can.user.agent.init = function(can) { if (!can) { return } + p = can.misc.Resource(can, can.Conf(mdb.ICONS))||p; can.base.beginWith(p, "/") && (p = location.origin + p) + share(document.title, p) + }, can.user.agent.init(can.user.agent.cmd) }) }) }, @@ -42,8 +50,6 @@ Volcanos(chat.ONACTION, { list: [ "getLocation", "openLocation", "openAddress", "scanQRCode", "scanQRCode1", - "chooseImage", "uploadImage", "previewImage", - "updateAppMessageShareData", "updateTimelineShareData", ], getLocation: function(event, can, button) { wx.getLocation({type: "gcj02", success: function (res) { @@ -76,39 +82,4 @@ Volcanos(chat.ONACTION, { can._output.innerHTML = res.resultStr } }) }, - uploadImage: function(event, can, button) { - wx.chooseImage({success: function (res) { can.core.List(res.localIds, function(item) { - wx.uploadImage({localId: item, isShowProgressTips: 1, success: function (res) { - var serverId = res.serverId; - can._output.innerHTML = serverId - } }) - }) }}) - }, - chooseImage: function(event, can, button) { - wx.chooseImage({count: 9, sourceType: ["camera", "album"], sizeType: ["original", "compressed"], success: function (res) { - can.page.Append(can, can._output, can.core.List(res.localIds, function(item) { - return {img: item, style: {"max-width": can.ConfWidth()}} - })) - } }) - }, - previewImage: function(event, can, button) { - wx.previewImage({urls: [ - "https://2021.shylinux.com/share/local/usr/icons/timg.png", - "https://2021.shylinux.com/share/local/usr/icons/mall.png", - ]}) - }, - updateAppMessageShareData: function(event, can, button) { - wx.updateAppMessageShareData({ - title: document.title, desc: "工具系统", link: location.href, - imgUrl: "https://2021.shylinux.com/share/local/usr/icons/timg.png", - success: function (res) { can._output.innerHTML = JSON.stringify(res) }, - }) - }, - updateTimelineShareData: function(event, can, button) { - wx.updateTimelineShareData({ - title: document.title, desc: "工具系统", link: location.href, - imgUrl: "https://2021.shylinux.com/share/local/usr/icons/timg.png", - success: function (res) { can._output.innerHTML = JSON.stringify(res) }, - }) - }, })