hookehuyr

refactor: 移除专用地图导览页,改用通用WebView承接页面

删除独立地图导览页面及路由配置,更新首页mock数据直接指向外部H5链接,同步更新文档调整相关说明。
......@@ -8,13 +8,13 @@
- 当前底部导航的真实结构是“后台动态菜单 + 固定 `pages/webview-preview/index` 承接页”,不是“每个 tab 都有一个固定业务页”。因此不要因为菜单地址来自后台,就把这条链路改回 `redirectTo`;非 `home` 按钮需要用 `navigateTo` 保留页面栈,这样进入 `webview-preview` 后微信原生左上角返回按钮才会出现。只有小程序冷启动直接进入某个 WebView 场景时,才会因为没有上一页而天然没有原生返回按钮。
- `src/pages/message/` 现在已经切到和导航栏“应用 / 我的”一致的 WebView 容器模式;`src/pages/message-detail/``src/api/message.js` 更适合作为旧版原生资讯列表/详情演示链路参考,不应再默认当作线上资讯主入口继续扩展。
- 支付相关目前有三类页面:`src/pages/pay-test/` 用于手工调试授权和支付参数;`src/pages/pay-confirm/` 是用户确认金额后点击支付的正式按钮页,支付成功后会按 `getTabbarConfigAPI` 返回的 `data.user.link` 进入“我的”对应的 `WebView`,如果接口里连 `user` 字段都没有,则直接回首页;`src/pages/pay-bridge/` 是给 H5/WebView 调起小程序支付用的桥页,负责自动授权、拉起支付、展示结果并返回上一页。
- `src/pages/webview-preview/` 是通用外链承接页,`src/pages/application/``src/pages/mine/`、首页外链入口都会复用这类能力;`src/pages/map-guide/` 是固定地图签到 H5 页`src/pages/auth/` 是统一授权页,不能绕过。
- `src/pages/webview-preview/` 是通用外链承接页,`src/pages/application/``src/pages/mine/`、首页外链入口都会复用这类能力;首页这类固定 H5 入口也优先直接复用这条通用承接链路`src/pages/auth/` 是统一授权页,不能绕过。
- `src/pages/mine-backup/` 目前更适合作为旧版“我的”页视觉与交互备份参考,不应默认当作线上主链路去扩展新业务。
## 项目结构与模块组织
源码位于 `src/`,应用入口为 `src/app.js``src/app.config.js`。当前目录分工建议按下面理解,而不是只把它当成普通 Taro 模板:
- `src/pages/`:页面路由主目录。当前重点页面包括 `index``message``message-detail``application``mine``pay-test``pay-confirm``pay-bridge``webview-preview``map-guide``auth`;其中 `message` / `application` / `mine` 都更偏 WebView 容器,`pay-bridge` 更偏桥接页,`message-detail``mine-backup` 更偏旧链路参考页。
- `src/pages/`:页面路由主目录。当前重点页面包括 `index``message``message-detail``application``mine``pay-test``pay-confirm``pay-bridge``webview-preview``auth`;其中 `message` / `application` / `mine` 都更偏 WebView 容器,`pay-bridge` 更偏桥接页,`message-detail``mine-backup` 更偏旧链路参考页。
- `src/components/`:通用组件目录。当前最关键的是 `AppTabbar.vue``PosterBuilder/`、二维码组件、时间选择器等属于可复用能力模块。
- `src/composables/`:组合式业务逻辑目录。`useWechatMiniPay.js` 是当前支付链路核心,和页面解耦较强;离线预约缓存相关逻辑也集中在这里。
- `src/hooks/`:较轻量的通用 hooks,目前主要是 `useGo.js` 这类导航辅助。
......
export default {
pages: [
'pages/index/index',
'pages/map-guide/index',
'pages/message/index',
'pages/message-detail/index',
'pages/application/index',
......
......@@ -3,6 +3,7 @@ const top_banner_image_02 = 'https://cdn.ipadbiz.cn/jls_weapp/images/banner02@2x
const top_banner_image_03 = 'https://cdn.ipadbiz.cn/jls_weapp/images/banner03@2x.png'
const bottom_banner_image_01 = 'https://cdn.ipadbiz.cn/jls_weapp/images/banner02@2x.png'
const bottom_banner_image_02 = 'https://cdn.ipadbiz.cn/jls_weapp/images/banner03@2x.png'
const map_guide_url = 'https://oa-dev.onwall.cn/f/map/#/checkin/?id=835368&current_lng=121.52609&current_lat=31.25956&openid=oAHBN14FGjUihI-ayF22_rCe0APM&activityId=8353701&_t=00&navMode=jls&activeTab=&jlsTabbarPreview=1&jlsTabbarMock=1'
/**
* @description 首页接口 mock 样本
......@@ -60,7 +61,7 @@ export const getHomeContentFixture = () => ({
{
id: 2770335,
title: '地图导览',
link: '/pages/map-guide/index',
link: map_guide_url,
icon: 'fa-odnoklassniki-square',
},
{
......
export default {
navigationBarTitleText: '地图导览',
}
<!--
* @Date: 2026-04-22 13:14:52
* @LastEditors: hookehuyr hookehuyr@gmail.com
* @LastEditTime: 2026-05-11 11:52:01
* @FilePath: /jls_weapp/src/pages/map-guide/index.vue
* @Description: 文件描述
-->
<template>
<web-view :src="map_guide_url" />
</template>
<script setup>
const map_guide_url = 'https://oa-dev.onwall.cn/f/map/#/checkin/?id=835368&current_lng=121.52609&current_lat=31.25956&openid=oAHBN14FGjUihI-ayF22_rCe0APM&activityId=8353701&_t=00&navMode=jls&activeTab=&jlsTabbarPreview=1&jlsTabbarMock=1'
</script>