Council
|
f696450bf9
|
refactor(subpackage): 主包精简 Phase A1 — diy 移回主包 + 子包独立化 + manifest 优化
【背景】
ShopXO 原版 6.8 主包 ≈1997 KB,但 VR 扩展接入后膨胀至 2347 KB。
本次为 Phase A1,主包减小约 200~400 KB(视未引用文件而定)。
【变更】
1) manifest.json 优化配置
- 开启 ignoreDevUnusedFiles: true(开发模式剔除未引用文件)
- 开启 ignoreUploadUnusedFiles: true(生产模式剔除未引用文件)
- 风险:低(uni-app 官方推荐生产配置)
2) pages.json 调整
- pages/diy 从 subPackages 移回主包(修复 iOS 微信真机 evaluate 时机问题)
3) 子包独立化
- ticket-qr-popup 从主包 components/ 移到 pages/plugins/vr-ticket-wallet/components/
- wallet_bg.png 从主包 static/images/other/ 移到 vr-ticket-wallet 子包
- pages/user-order-detail 内置独立 ticket-qr-popup 副本(避免跨页面引用)
4) gitignore 补充
- vr-shopxo-uniapp-6.8-origin/(基准对比目录)
- docs/analyse-mp/(HBuilder 编译分析产物,2.3MB)
5) 工作记录
- docs/vr-ticket-uniapp-analysis.md(VR vs 原版差异分析报告)
- docs/main-package-size-optimization-20260701.md(本次精简工作记录)
【验证】
- gitnexus detect_changes:low risk
- iOS 真机 evaluate 白屏已修复(前置 commit e11e2d3a)
- 票夹子包现可独立编译加载
|
2026-07-01 18:12:03 +08:00 |
Council
|
21ba9b7c42
|
fix(vr-ticket-wallet): 修复 iOS 真机 evaluate 白屏 + Swiper 回弹
1. ticket-wallet.vue:移除顶层 getApp() 调用,修复 iOS 独立分包
evaluate 早于 App.vue#onLaunch 导致的 'o.functions' 错误
(与 verify/index.vue、records/index.vue 同病同治)
2. ticket-qr-popup:swiper 改用内部 internalIndex 状态,
避免父组件倒计时 re-render 时 prop 重设导致 iOS 回弹
(订单详情页弹出有此问题,票夹页面无此问题)
|
2026-06-30 18:37:10 +08:00 |
Council
|
c7cac01528
|
docs(iOS修复): 沉淀经验文档 — 综合报告追加+新建方法论总结
双文档策略:
1. ios-weixin-real-device-white-screen-report.md (381→695 行)
- 追加第七节:扫码核销页修复 (0a42be5d + 388a80e0)
· 根因1: 顶层 getApp() evaluation 失败
· 根因2: CSS min-height+flex:1 高度塌陷
· getApp() 修复必要性评估(必要,无负收益)
- 追加第八节:核销记录页+iconfont+header 点击 (4438a840)
· 三个新问题+根因+修复
· backdrop-filter 合成层拦截机制
· iconfont 1em/max-width 误区
- 追加第九节:遗留 & 后续行动项更新
· 旧 TODO 收尾
· 35 个 diy 组件剩余顶层 getApp 清单
· 命名规范/重构建议
- 追加第十节:gitnexus 分析记录
- 追加第十一节:术语表(CSS/backdrop-filter/合成层/pointer-events)
2. ios-weixin-real-device-uniapp-lessons.md (新建 519 行)
- 一、3 个新发现的问题类别(CSS 高度塌陷/合成层/iconfont)
- 二、调试方法论(平台差异矩阵+evaluate 时机表+错误日志识别+SOP)
- 三、避坑指南(5 条铁律 ❌/✅ 对比 + 命名规范 + 重构建议)
- 四、复现 & 验证清单(4 平台验证+gitnexus 检查)
- 五、跨文档索引(commit 表+文件表+搜索命令)
- 六、术语表扩展
- 七、经验法则 One-liners(10 条)
- 八、相关 issue / 任务状态
- 九、给未来 agent 的提示
目标:让未来清空上下文的 agent 也能独立诊断 iOS 真机问题。
gitnexus 跳过:纯文档修改
|
2026-06-30 16:24:28 +08:00 |
Council
|
79ca8385d6
|
fix(iOS微信真机): 修复首页白屏 + 编写诊断报告
根因:b127549e「diy组件分包」将 pages/diy 移入 subPackages 后,
iOS 微信真机的 subpackage evaluate 阶段早于 App.vue#onLaunch,
导致 35 个 diy 组件顶层 getApp().globalData.get_system_info() 失败,
全部抛 undefined is not an object (evaluating 'o.functions'),首页白屏。
修复方案 D:
1. pages.json: 把 pages/diy 从 subPackages 移回 pages 主包
2. activity.vue: 把 getApp() 从模块顶层移到 created() 生命周期(示范)
遗留:扫码核销页 verify/index.vue 有相同顶层 getApp 模式,待修复。
详见 docs/ios-weixin-real-device-white-screen-report.md
|
2026-06-30 15:40:28 +08:00 |
Council
|
7b4db8dae8
|
feat(diy): 自动获取位置 + 反查城市 + 过期重取 + 重新请求首页
实现 DIY 首页左上角位置选择器在用户授权后自动获取坐标、反查最近城市,
并让首页在 5 分钟过期后自动重新请求以匹配新坐标的 DIY 模板。
主要改动:
- App.vue:get_user_location 重写
- 守护条件扩展为 5 条件 OR 判定(5 分钟过期 + name 占位 + status + 无缓存 + is_force)
- 写入 storage 加 updated_at 时间戳
- 成功时 uni.$emit('onLocationReady', address) 通知订阅方
- 新增 fail 回调:写 status:0 占位 + 触发事件,修复权限拒绝后无限重弹的隐藏 bug
- pages/index/index.vue
- onLoad 订阅 onLocationReady 事件
- 收到事件后调 init({is_cache:0, loading:1}) 重新请求首页(让后端按新坐标推荐)
- onUnload 清理订阅
- components/choice-location/choice-location.vue
- mounted 订阅 onLocationReady 事件
- 仅当 name 是占位时才重新反查 /vr_ticket/geo/city
- beforeDestroy 清理订阅
文档:
- 新增 docs/diy-home-location-work-record-20260628.md 完整留档
- 标注 docs/city-based-diy-template-plan.md '前端零改动' 假设已过期
- 修正 docs/troubleshoot/weixin-location-permission.md §七.5 警告的状态
验证:DIY 首页左上角从'当前位置'成功切换为'厦门市'(用户实机验证)
|
2026-06-28 17:43:05 +08:00 |
Council
|
9a272e5f08
|
fix: 修复微信小程序位置权限异常及鸿蒙 UA 适配
## 改动
1. pages/index/index.vue (DIY 分支): propIsModalBusiness 设为 true,挂载 modal-business
- 修复隐私协议弹窗未挂载的问题
2. uni_modules/uni-modules (鸿蒙适配): isPC / IsPC 的 Agents 数组加 HarmonyOS 关键字
- 修复 HBuilderX 编译警告: platform/UA 检测逻辑可能未适配鸿蒙系统
- 涉及文件: uni-swipe-action-item/isPC.js, uni-rate/uni-rate.vue
3. docs/troubleshoot/weixin-location-permission.md (新增):
- 记录 errno 112 排查过程、临时方案、永久方案、上线 checklist
## 已知后续
- 上线前必须确认微信小程序后台 用户隐私保护指引 已勾选位置信息和选择位置
- 体验版/真机调试期间可能仍需临时设置 __usePrivacyCheck__: false
|
2026-06-28 12:37:36 +08:00 |
Council
|
4c2c9a3ed6
|
fix(goods-vr-ticket-order): 修复 H5 刷新页面导致参数丢失的问题
问题原因:
H5 SPA 模式下,带有复杂 JSON 数据的 URL 参数(seats, selection, buyNotices 等)
在刷新时会被浏览器/路由框架错误解析,导致参数截断丢失。
解决方案:
- 参考 buy.vue 的做法,将跳转参数通过 base64 编码打包为单一 data 参数传递
- 在订单确认页 onLoad 中解包 data 参数,并兼容处理单重/双重编码场景
- 新增 safeParseJson 和 safeDecodeURIComponent 辅助方法提高健壮性
修改文件:
- pages/goods-vr-ticket/goods-vr-ticket.vue (goToOrder 跳转逻辑)
- pages/goods-vr-ticket-order/goods-vr-ticket-order.vue (onLoad 数据解析)
|
2026-06-27 17:50:27 +08:00 |
Council
|
6e80f6e9a6
|
fix: 修复票据页面实机滚动卡死问题
问题描述:
- iOS/Android 实机测试时,票据页面下滑后无法上滑
- 必须切换 Tab Bar 才能恢复
根本原因:
- 页面容器未限制高度,Webview 弹性滚动与 scroll-view 手势冲突
- 页面级下拉刷新与 scroll-view 刷新机制并存,增加手势复杂度
修复方案:
- pages.json: 禁用页面级下拉刷新,开启 disableScroll
- ticket-wallet.css: 容器高度改为 100vh + overflow:hidden,滚动区高度简化为 100%
关联文档:
- docs/troubleshoot-ticket-wallet-scroll.md
|
2026-06-26 08:12:54 +08:00 |
Council
|
02adc5f1c5
|
chore: pages.json/manifest.json/App.vue 路由配置 + 应用配置更新
|
2026-06-25 17:12:07 +08:00 |
Council
|
8ce0e5b7d2
|
fix(vr-ticket): 演出详情 content_app 内容渲染修复
- 新增 detailContent data 字段,从 tree API 的 apiData.goods.content_app 提取
- 参考 goods-detail.vue 的嵌套循环模式渲染 content_app(不用 rich-text)
- 新增 detail-content/detail-item/content-items/item 等 CSS 样式
- 新增 docs/vr-ticket-work-record-20260612.md 工作留痕文档
|
2026-06-13 04:02:26 +08:00 |
Council
|
8f2960576c
|
docs: 新增城市筛选API文档 + showstart票务参考 + 测试数据
- docs/api/vr-ticket-city-filter-api.md: 城市筛选完整API文档(参数说明/筛选逻辑/调试示例)
- docs/showstart_ticketing_app.html: showstart票务app界面参考
- docs/test.json: 测试数据
|
2026-06-12 00:56:40 +08:00 |
Council
|
1b4e4a5db8
|
docs: 新增城市DIY模板计划 + 商品规格树API + 地图key配置文档
- city-based-diy-template-plan.md: 城市专属DIY首页模板方案
- city-diy-plan-review.md: 城市DIY计划评审记录
- map-api-key-configuration.md: 腾讯/高德地图key配置指南
- api-of-goods-spec-with-tree.md: 商品规格树数据结构API文档
|
2026-06-11 22:43:34 +08:00 |
Council
|
e014a94441
|
feat: VR ticket order page + wallet plugin pages (goods-vr-ticket-order, vr-ticket-wallet)
- Add goods-vr-ticket-order page (order confirmation flow)
- Add vr-ticket-wallet plugin with ticket-qr-popup, records, verify components
- Update ticket-header/ticket-popup/goods-vr-ticket with enhanced seat selection UI
- Update integration plan docs
- Update pages.json with new page registrations
- Update user.vue to include wallet link
|
2026-06-03 13:32:06 +08:00 |
bigemon
|
abab933b9b
|
docs: add VR ticket UniApp supplement (data structures, API specs, interaction spec)
|
2026-05-14 08:39:10 +08:00 |
bigemon
|
2c13951249
|
feat: VR ticket page integration (goods-vr-ticket) + improved .gitignore
- Add goods-vr-ticket page with ticket-header/venue-card/ticket-popup components
- Integrate VR redirect logic in goods-detail (detects vr_goods_config → redirect)
- Update pages.json to register goods-vr-ticket route
- Add iconfont improvements
- Update .gitignore: add node_modules, .agent, .claude, .vite, .vscode, .gitnexus, references, AGENTS.md, CLAUDE.md
|
2026-05-14 07:59:23 +08:00 |