更新
This commit is contained in:
1 parent
48f3bd997c
commit
184d5b0403
9 files changed
+513
-115
No files matched your search
+36
-7
@@ -1,9 +1,12 @@
|
||||
/**
|
||||
* 菜单 → 页面 的跳转分发
|
||||
*
|
||||
* 聚合平台里绝大多数业务功能(ERP / OA / CRM / CMS)目前只有 Web 端实现,
|
||||
* 端上没有对应页面;少数功能(记事本、日程提醒)已有原生页面。
|
||||
* 这里统一判定:能走原生就走原生,否则丢进 webview 容器打开 Web 端深链。
|
||||
* 小程序端「已开发」的只有少数原生页面(记事本、日程、OA 若干),
|
||||
* 其余菜单在端上都没有对应页面:过去统一丢进 webview 打开 Web 端,
|
||||
* 而 Web 端没登录态会被路由守卫送到统一认证登录页,用户看到的是「登录」而不是功能。
|
||||
*
|
||||
* 现在的判定:命中原生页 → 打开原生页;命中 WEB_RULES(Web 端确已上线、可免登录打开)
|
||||
* → 走 webview;其余一律进入「功能开发中」占位页。
|
||||
*/
|
||||
import { createAppTicket } from '@/api/auth.js'
|
||||
|
||||
@@ -26,6 +29,23 @@ const NATIVE_RULES = [
|
||||
/** Web 端容器页 */
|
||||
const WEBVIEW_PAGE = '/pages/apps/webview'
|
||||
|
||||
/**
|
||||
* 确已在 Web 端上线、可以免登录直接打开的功能(按菜单 title 或 path 关键词匹配)。
|
||||
* 命中 → webview 打开 Web 端;未命中 → 「功能开发中」占位页。
|
||||
* 新功能上线时把对应关键词加进来即可。
|
||||
*/
|
||||
const WEB_RULES = []
|
||||
|
||||
/** 开发中原生占位页 */
|
||||
const DEVELOPING_PAGE = '/pages/common/developing'
|
||||
|
||||
/** 该功能在小程序端尚未开发 */
|
||||
function openDeveloping(name) {
|
||||
uni.navigateTo({
|
||||
url: DEVELOPING_PAGE + '?t=' + encodeURIComponent(name || '功能')
|
||||
})
|
||||
}
|
||||
|
||||
/** 菜单是否命中移动端原生页面 */
|
||||
export function resolveNativeRoute(menu = {}) {
|
||||
const haystack = (menu.title || '') + ' ' + (menu.path || '')
|
||||
@@ -73,13 +93,22 @@ export function openMenu(menu, fallbackTitle = '') {
|
||||
return
|
||||
}
|
||||
|
||||
if (!menu.path) {
|
||||
uni.showToast({ title: name + '暂未开放', icon: 'none' })
|
||||
const target = String(menu.path || '').trim()
|
||||
// 完整外链直接打开,不走开发中判定
|
||||
if (/^https?:\/\//i.test(target)) {
|
||||
openRawUrl(target, name)
|
||||
return
|
||||
}
|
||||
|
||||
// 走 Web 端:先换一次性票据实现免登录,失败则降级为直接打开(用户手动登录一次)
|
||||
openWebPage(menu.path, name)
|
||||
// Web 端确已上线的功能仍走 webview(带一次性票据免登录)
|
||||
const haystack = name + ' ' + target
|
||||
if (target && WEB_RULES.some((kw) => haystack.indexOf(kw) !== -1)) {
|
||||
openWebPage(target, name)
|
||||
return
|
||||
}
|
||||
|
||||
// 端上没有对应页面 = 功能未开发:进占位页,不再跳 Web 的统一认证登录
|
||||
openDeveloping(name)
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in new issue
Block a user