From 206c44cf6d1d4af253b1fdd725ae2f4ebe0b4f4b Mon Sep 17 00:00:00 2001 From: R524809 Date: Thu, 2 Apr 2026 17:05:55 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=AE=8C=E6=88=90=204=20=E4=B8=AATabBa?= =?UTF-8?q?r=20=E9=A1=B5=E9=9D=A2=E5=88=9D=E7=89=88=E6=A0=B7=E5=BC=8F?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/技术架构设计文档.md | 155 ++-- miniprogram/app.json | 31 +- .../tabBar/{ => 2.0}/icon-age-active.png | Bin .../assets/tabBar/{ => 2.0}/icon-age.png | Bin .../tabBar/{ => 2.0}/icon-edit-active.png | Bin .../assets/tabBar/{ => 2.0}/icon-edit.png | Bin .../tabBar/{ => 2.0}/icon-fav-active.png | Bin .../assets/tabBar/{ => 2.0}/icon-fav.png | Bin .../tabBar/{ => 2.0}/icon-home-active.png | Bin .../assets/tabBar/{ => 2.0}/icon-home.png | Bin .../tabBar/{ => 2.0}/icon-math-active.png | Bin .../assets/tabBar/{ => 2.0}/icon-math.png | Bin .../tabBar/{ => 2.0}/icon-profile-active.png | Bin .../assets/tabBar/{ => 2.0}/icon-profile.png | Bin .../tabBar/{ => 2.0}/icon-shape-active.png | Bin .../assets/tabBar/{ => 2.0}/icon-shape.png | Bin .../tabBar/{ => 2.0}/icon-word-active.png | Bin .../assets/tabBar/{ => 2.0}/icon-word.png | Bin miniprogram/assets/tabBar/age-active.png | Bin 0 -> 4765 bytes miniprogram/assets/tabBar/age.png | Bin 0 -> 4857 bytes .../assets/tabBar/favorites-active.png | Bin 0 -> 7608 bytes miniprogram/assets/tabBar/favorites.png | Bin 0 -> 14096 bytes miniprogram/assets/tabBar/home-active.png | Bin 0 -> 8669 bytes miniprogram/assets/tabBar/home.png | Bin 0 -> 14988 bytes miniprogram/assets/tabBar/profile-active.png | Bin 0 -> 6769 bytes miniprogram/assets/tabBar/profile.png | Bin 0 -> 10880 bytes miniprogram/pages/age/age.json | 6 +- miniprogram/pages/age/age.less | 442 +++++++++-- miniprogram/pages/age/age.ts | 261 +++++- miniprogram/pages/age/age.wxml | 129 ++- miniprogram/pages/category/category.json | 10 - miniprogram/pages/category/category.less | 81 -- miniprogram/pages/category/category.ts | 161 ---- miniprogram/pages/category/category.wxml | 58 -- miniprogram/pages/favorites/favorites.json | 8 +- miniprogram/pages/favorites/favorites.less | 470 +++++++++-- miniprogram/pages/favorites/favorites.ts | 159 +++- miniprogram/pages/favorites/favorites.wxml | 242 +++++- miniprogram/pages/home/home.data.ts | 748 ++++++++++++++++++ miniprogram/pages/home/home.less | 202 ++++- miniprogram/pages/home/home.ts | 264 ++++--- miniprogram/pages/home/home.wxml | 110 +-- miniprogram/pages/profile/profile.json | 8 +- miniprogram/pages/profile/profile.less | 392 +++++++-- miniprogram/pages/profile/profile.ts | 45 +- miniprogram/pages/profile/profile.wxml | 191 +++-- miniprogram/style/theme3.less | 62 +- miniprogram/utils/downloadPrint.ts | 4 +- miniprogram/utils/navMetrics.ts | 2 + project.private.config.json | 13 +- stitch-ui/age-recommend/code.html | 371 +++++++++ stitch-ui/age-recommend/screen.png | Bin 0 -> 25419 bytes stitch-ui/age/DESIGN.md | 54 ++ stitch-ui/age/code.html | 371 +++++++++ stitch-ui/age/screen.png | Bin 0 -> 152323 bytes .../favorites/code-download-history.html | 209 +++++ stitch-ui/favorites/code-favorites-list.html | 231 ++++++ .../favorites/screen-download-history.png | Bin 0 -> 36400 bytes stitch-ui/favorites/screen-favorites-list.png | Bin 0 -> 37938 bytes stitch-ui/profile/code.html | 176 +++++ stitch-ui/profile/profile-screen-stitch.png | Bin 0 -> 23527 bytes 61 files changed, 4670 insertions(+), 996 deletions(-) rename miniprogram/assets/tabBar/{ => 2.0}/icon-age-active.png (100%) rename miniprogram/assets/tabBar/{ => 2.0}/icon-age.png (100%) rename miniprogram/assets/tabBar/{ => 2.0}/icon-edit-active.png (100%) rename miniprogram/assets/tabBar/{ => 2.0}/icon-edit.png (100%) rename miniprogram/assets/tabBar/{ => 2.0}/icon-fav-active.png (100%) rename miniprogram/assets/tabBar/{ => 2.0}/icon-fav.png (100%) rename miniprogram/assets/tabBar/{ => 2.0}/icon-home-active.png (100%) rename miniprogram/assets/tabBar/{ => 2.0}/icon-home.png (100%) rename miniprogram/assets/tabBar/{ => 2.0}/icon-math-active.png (100%) rename miniprogram/assets/tabBar/{ => 2.0}/icon-math.png (100%) rename miniprogram/assets/tabBar/{ => 2.0}/icon-profile-active.png (100%) rename miniprogram/assets/tabBar/{ => 2.0}/icon-profile.png (100%) rename miniprogram/assets/tabBar/{ => 2.0}/icon-shape-active.png (100%) rename miniprogram/assets/tabBar/{ => 2.0}/icon-shape.png (100%) rename miniprogram/assets/tabBar/{ => 2.0}/icon-word-active.png (100%) rename miniprogram/assets/tabBar/{ => 2.0}/icon-word.png (100%) create mode 100644 miniprogram/assets/tabBar/age-active.png create mode 100644 miniprogram/assets/tabBar/age.png create mode 100644 miniprogram/assets/tabBar/favorites-active.png create mode 100644 miniprogram/assets/tabBar/favorites.png create mode 100644 miniprogram/assets/tabBar/home-active.png create mode 100644 miniprogram/assets/tabBar/home.png create mode 100644 miniprogram/assets/tabBar/profile-active.png create mode 100644 miniprogram/assets/tabBar/profile.png delete mode 100644 miniprogram/pages/category/category.json delete mode 100644 miniprogram/pages/category/category.less delete mode 100644 miniprogram/pages/category/category.ts delete mode 100644 miniprogram/pages/category/category.wxml create mode 100644 miniprogram/pages/home/home.data.ts create mode 100644 miniprogram/utils/navMetrics.ts create mode 100644 stitch-ui/age-recommend/code.html create mode 100644 stitch-ui/age-recommend/screen.png create mode 100644 stitch-ui/age/DESIGN.md create mode 100644 stitch-ui/age/code.html create mode 100644 stitch-ui/age/screen.png create mode 100644 stitch-ui/favorites/code-download-history.html create mode 100644 stitch-ui/favorites/code-favorites-list.html create mode 100644 stitch-ui/favorites/screen-download-history.png create mode 100644 stitch-ui/favorites/screen-favorites-list.png create mode 100644 stitch-ui/profile/code.html create mode 100644 stitch-ui/profile/profile-screen-stitch.png diff --git a/docs/技术架构设计文档.md b/docs/技术架构设计文档.md index f362009..b5c1bc5 100644 --- a/docs/技术架构设计文档.md +++ b/docs/技术架构设计文档.md @@ -12,12 +12,14 @@ ### 1.1 核心原则 -| 原则 | 说明 | -| ------------ | ------------------------------------------------------------------------------------------------- | -| **成本优先** | 现阶段用云开发免费额度控制成本;**2026-09-15** 前复盘是否续用或迁移自建;核心逻辑仍保持前端执行 | -| **渐进增强** | 先小程序跑通,后续再扩展 PC Web,不为未来过度设计 | -| **前端为主** | Canvas 渲染、随机生成、PNG 导出等核心逻辑保持前端执行,零服务器成本;后端仅做必要的数据存储和服务 | -| **可迁移** | 核心绘制逻辑与平台 API 解耦,为将来迁移 Web 做准备 | + +| 原则 | 说明 | +| -------- | ------------------------------------------------------- | +| **成本优先** | 现阶段用云开发免费额度控制成本;**2026-09-15** 前复盘是否续用或迁移自建;核心逻辑仍保持前端执行 | +| **渐进增强** | 先小程序跑通,后续再扩展 PC Web,不为未来过度设计 | +| **前端为主** | Canvas 渲染、随机生成、PNG 导出等核心逻辑保持前端执行,零服务器成本;后端仅做必要的数据存储和服务 | +| **可迁移** | 核心绘制逻辑与平台 API 解耦,为将来迁移 Web 做准备 | + ### 1.2 后端方案决策 @@ -51,15 +53,17 @@ #### 方案对比与选择 -| 维度 | 微信云开发 | 自有云服务器(NestJS) | 现阶段决策(至 2026-09-15) | -| ----------- | ----------------------------- | --------------------------- | --------------------------- | -| 接入成本 | ⭐ 极低(原生集成) | ⭐⭐ 需搭建部署(~3-5天) | **云开发 ✅** | -| 运维成本 | ⭐ 免运维 | ⭐⭐ 需简单维护(PM2 守护) | **云开发 ✅** | -| 费用 | 免费额度内 ¥0;超出按套餐计费 | 已有服务器可零增量 | **云开发(阶段内)✅** | -| 小程序集成 | ⭐ 鉴权零成本 | ⭐⭐ 需对接微信登录+JWT | **云开发 ✅** | -| PC Web 支持 | ⭐⭐ 需通过 HTTP API 桥接 | ⭐ RESTful API 天然支持 | 远期再评估 NestJS | -| 灵活性 | ⭐⭐ 受限于云开发 SDK | ⭐ 完全自由 | 到期后按需评估 | -| 数据迁移 | ⭐⭐ 可导出 | ⭐ 标准 MySQL | 到期后按需评估 | + +| 维度 | 微信云开发 | 自有云服务器(NestJS) | 现阶段决策(至 2026-09-15) | +| --------- | ------------------ | ------------------ | ------------------- | +| 接入成本 | ⭐ 极低(原生集成) | ⭐⭐ 需搭建部署(~3-5天) | **云开发 ✅** | +| 运维成本 | ⭐ 免运维 | ⭐⭐ 需简单维护(PM2 守护) | **云开发 ✅** | +| 费用 | 免费额度内 ¥0;超出按套餐计费 | 已有服务器可零增量 | **云开发(阶段内)✅** | +| 小程序集成 | ⭐ 鉴权零成本 | ⭐⭐ 需对接微信登录+JWT | **云开发 ✅** | +| PC Web 支持 | ⭐⭐ 需通过 HTTP API 桥接 | ⭐ RESTful API 天然支持 | 远期再评估 NestJS | +| 灵活性 | ⭐⭐ 受限于云开发 SDK | ⭐ 完全自由 | 到期后按需评估 | +| 数据迁移 | ⭐⭐ 可导出 | ⭐ 标准 MySQL | 到期后按需评估 | + **最终决策(分阶段)** @@ -162,14 +166,16 @@ miniprogram/ **问题分析:** -| 问题 | 详情 | -| -------------- | ------------------------------------------------------------------- | -| Mixin 模式笨重 | `pageMixin` 通过对象展开合并,无类型安全,难以追踪数据流 | -| Draw 服务分散 | 每个分包下各有 `shared/service/`,大量重复的绘制工具方法 | -| 平台耦合严重 | Draw 服务直接使用 `wx.createImage`、`canvas.createImage` 等 API | + +| 问题 | 详情 | +| ---------- | ------------------------------------------------------------- | +| Mixin 模式笨重 | `pageMixin` 通过对象展开合并,无类型安全,难以追踪数据流 | +| Draw 服务分散 | 每个分包下各有 `shared/service/`,大量重复的绘制工具方法 | +| 平台耦合严重 | Draw 服务直接使用 `wx.createImage`、`canvas.createImage` 等 API | | 模板重复 | `mathPages` 和 `focusPages` 的 `canvas-page-template.wxml` 内容相同 | -| 无共享核心 | 数据模型、生成算法与 UI 逻辑混在一起,无法跨平台复用 | -| 状态管理原始 | 纯 `setData`,无统一的状态管理方案 | +| 无共享核心 | 数据模型、生成算法与 UI 逻辑混在一起,无法跨平台复用 | +| 状态管理原始 | 纯 `setData`,无统一的状态管理方案 | + ### 3.2 目标架构 @@ -958,21 +964,25 @@ createPage({ ### 6.1 现阶段:微信云开发(摘要) -| 组件 | 技术 | 说明 | -| ---------- | ---------------------------- | -------------------------------------- | -| 数据 | 云数据库(文档型) | worksheets / categories / users 等集合 | -| 文件 | 云存储(COS) | 预览图、涂色线稿、字体等 | -| 逻辑 | 云函数(Node.js) | 统一入口路由、业务 action | -| 小程序接入 | `wx.cloud` + `cloud-adapter` | 与业务服务层解耦,便于日后替换为 HTTP | + +| 组件 | 技术 | 说明 | +| ----- | ---------------------------- | ----------------------------------- | +| 数据 | 云数据库(文档型) | worksheets / categories / users 等集合 | +| 文件 | 云存储(COS) | 预览图、涂色线稿、字体等 | +| 逻辑 | 云函数(Node.js) | 统一入口路由、业务 action | +| 小程序接入 | `wx.cloud` + `cloud-adapter` | 与业务服务层解耦,便于日后替换为 HTTP | + ### 6.2 远期可选:自建 NestJS(摘要) -| 组件 | 技术 | 说明 | -| ---- | ----------------------- | --------------------------- | -| 应用 | NestJS + TypeScript | RESTful API,多端统一 | -| 数据 | MySQL 8.0 + Prisma | 关系型存储与迁移 | -| 文件 | 本地磁盘 + Nginx | 静态素材 URL 由自有域名提供 | -| 鉴权 | 微信 code2Session + JWT | 小程序与 Web 可共用逻辑 | + +| 组件 | 技术 | 说明 | +| --- | --------------------- | ---------------- | +| 应用 | NestJS + TypeScript | RESTful API,多端统一 | +| 数据 | MySQL 8.0 + Prisma | 关系型存储与迁移 | +| 文件 | 本地磁盘 + Nginx | 静态素材 URL 由自有域名提供 | +| 鉴权 | 微信 code2Session + JWT | 小程序与 Web 可共用逻辑 | + (接口路径、表结构、部署步骤等以 [后端部署方案](./后端部署方案.md) 为准,此处不重复。) @@ -1180,46 +1190,53 @@ PDF 导出方案(远期增值功能,会员专属): ## 十一、技术风险与应对 -| 风险 | 影响 | 应对方案 | -| -------------------------- | ------------------ | ------------------------------------------------------------------------------------------------------------- | -| 云开发免费额度不足 | 功能受限或需付费 | ① 优化查询与缓存 ② 控制云函数调用 ③ **2026-09-15 前**复盘是否升级套餐或迁移 [后端部署方案](./后端部署方案.md) | -| 服务器宕机(迁移自建后) | 后端不可用 | ① PM2 自动重启 ② 前端兜底数据 ③ 定期备份数据库 | -| Canvas 兼容性 | 低端机渲染异常 | ① 使用 Canvas 2D(已采用)② 控制单次绘制复杂度 ③ 降级方案 | -| 小程序包体积 | 超 2MB 限制 | ① 素材用云存储 / CDN ② 合理分包 ③ 图片压缩 | -| 素材制作瓶颈 | 涂色卡等需设计资源 | ① 使用开源 SVG 素材 ② AI 生成线稿 ③ 社区投稿 | -| 跨平台迁移成本 | Web 端重复开发 | ① core/ 层保持平台无关 ② 适配器隔离差异(详见 [PC-Web端技术预案](./PC-Web端技术预案.md)) | -| 带宽与加载(迁移自建远期) | 素材加载慢 | ① 图片压缩 ② 长缓存 ③ 可接入 CDN | + +| 风险 | 影响 | 应对方案 | +| ------------- | --------- | ----------------------------------------------------------------------- | +| 云开发免费额度不足 | 功能受限或需付费 | ① 优化查询与缓存 ② 控制云函数调用 ③ **2026-09-15 前**复盘是否升级套餐或迁移 [后端部署方案](./后端部署方案.md) | +| 服务器宕机(迁移自建后) | 后端不可用 | ① PM2 自动重启 ② 前端兜底数据 ③ 定期备份数据库 | +| Canvas 兼容性 | 低端机渲染异常 | ① 使用 Canvas 2D(已采用)② 控制单次绘制复杂度 ③ 降级方案 | +| 小程序包体积 | 超 2MB 限制 | ① 素材用云存储 / CDN ② 合理分包 ③ 图片压缩 | +| 素材制作瓶颈 | 涂色卡等需设计资源 | ① 使用开源 SVG 素材 ② AI 生成线稿 ③ 社区投稿 | +| 跨平台迁移成本 | Web 端重复开发 | ① core/ 层保持平台无关 ② 适配器隔离差异(详见 [PC-Web端技术预案](./PC-Web端技术预案.md)) | +| 带宽与加载(迁移自建远期) | 素材加载慢 | ① 图片压缩 ② 长缓存 ③ 可接入 CDN | + --- ## 附录 A:现有代码与目标架构映射 -| 现有文件 | 目标位置 | 迁移动作 | -| -------------------------------- | -------------------------------------- | ------------------------------------------------ | -| `constants/mathFunctions.ts` | `core/data/worksheets.ts` | 合并,增加字段 | -| `constants/focusFunctions.ts` | `core/data/worksheets.ts` | 合并,增加字段 | -| `constants/words.ts` | `core/data/words.ts` | 移动 | -| `constants/colors.ts` | `core/data/colors.ts` | 移动 | -| `constants/shapes.ts` | `core/data/shapes.ts` | 移动 | -| `service/baseDraw.ts` | `core/draw/base-draw.ts` | 重构,去除 wx.\* 依赖 | -| `service/wordDrawService.ts` | `core/draw/chinese-draw/word-draw.ts` | 移动,去除 wx.\* | -| `service/drawServiceFactory.ts` | `core/draw/draw-factory.ts` | 扩展 | -| `mathPages/shared/service/*.ts` | `core/draw/legacy/math-draw/*.ts` | 移入 legacy,去除 wx.\*,逐步迁移到模板引擎 | -| `focusPages/shared/service/*.ts` | `core/draw/legacy/focus-draw/*.ts` | 移入 legacy,去除 wx.\*,逐步迁移到模板引擎 | -| `base/pageMixin.ts` | `services/print-service.ts` + 页面代码 | 拆分职责 | -| `base/callCloud.ts` | `platform/cloud-adapter.ts` | 封装 wx.cloud;迁移 NestJS 后再考虑 http-adapter | -| `utils/saveImage.ts` | `platform/canvas-adapter.ts` | 合并到适配器 | -| `utils/downloadPrint.ts` | `services/print-service.ts` | 整合 | -| `utils/tracker.ts` | `services/stats-service.ts` | 整合 | -| `config/config.ts` | `core/models/print-config.ts` | 类型化 | + +| 现有文件 | 目标位置 | 迁移动作 | +| -------------------------------- | ------------------------------------- | --------------------------------------- | +| `constants/mathFunctions.ts` | `core/data/worksheets.ts` | 合并,增加字段 | +| `constants/focusFunctions.ts` | `core/data/worksheets.ts` | 合并,增加字段 | +| `constants/words.ts` | `core/data/words.ts` | 移动 | +| `constants/colors.ts` | `core/data/colors.ts` | 移动 | +| `constants/shapes.ts` | `core/data/shapes.ts` | 移动 | +| `service/baseDraw.ts` | `core/draw/base-draw.ts` | 重构,去除 wx. 依赖 | +| `service/wordDrawService.ts` | `core/draw/chinese-draw/word-draw.ts` | 移动,去除 wx. | +| `service/drawServiceFactory.ts` | `core/draw/draw-factory.ts` | 扩展 | +| `mathPages/shared/service/*.ts` | `core/draw/legacy/math-draw/*.ts` | 移入 legacy,去除 wx.,逐步迁移到模板引擎 | +| `focusPages/shared/service/*.ts` | `core/draw/legacy/focus-draw/*.ts` | 移入 legacy,去除 wx.,逐步迁移到模板引擎 | +| `base/pageMixin.ts` | `services/print-service.ts` + 页面代码 | 拆分职责 | +| `base/callCloud.ts` | `platform/cloud-adapter.ts` | 封装 wx.cloud;迁移 NestJS 后再考虑 http-adapter | +| `utils/saveImage.ts` | `platform/canvas-adapter.ts` | 合并到适配器 | +| `utils/downloadPrint.ts` | `services/print-service.ts` | 整合 | +| `utils/tracker.ts` | `services/stats-service.ts` | 整合 | +| `config/config.ts` | `core/models/print-config.ts` | 类型化 | + ## 附录 B:技术选型决策记录 -| 决策点 | 选项 | 决策 | 理由 | -| --------- | ---------------------------- | --------------------------------- | -------------------------------------------------------------------------------------------------------------------------- | -| 跨端框架 | Taro / uni-app / 原生 | **原生** | 项目已用原生开发,迁移成本高;Taro 等框架对 Canvas 2D 支持有限;core/ 层抽取足以实现代码复用 | -| 状态管理 | MobX / 自定义 / 原生 setData | **轻量自定义** | 小程序场景简单,不需要 Redux 级方案;页面级 setData + 全局 Store 够用 | -| UI 组件库 | Vant / 自研 | **Vant + 自定义组件** | 已用 Vant,保持;业务组件自研 | -| 后端方案 | 云开发 / 自有云服务器 | **现阶段云开发(至 2026-09-15)** | 详见 [小程序云开发方案](./小程序云开发方案.md);到期后可选迁移 [后端部署方案](./后端部署方案.md)(NestJS) | -| 导出方案 | PNG 保存相册 / PDF | **PNG 为主,PDF 为增值** | PNG 保存到相册是手机端最短路径(用户教育成本低、零服务器开销);PDF 作为远期会员增值功能,服务端 pdfkit 合并,Web 用 jsPDF | -| Monorepo | pnpm workspace / Turborepo | **暂不采用** | 当前只有小程序,过早引入增加复杂度;core/ 作为目录组织,未来再拆包 | + +| 决策点 | 选项 | 决策 | 理由 | +| -------- | -------------------------- | ------------------------ | -------------------------------------------------------------------------- | +| 跨端框架 | Taro / uni-app / 原生 | **原生** | 项目已用原生开发,迁移成本高;Taro 等框架对 Canvas 2D 支持有限;core/ 层抽取足以实现代码复用 | +| 状态管理 | MobX / 自定义 / 原生 setData | **轻量自定义** | 小程序场景简单,不需要 Redux 级方案;页面级 setData + 全局 Store 够用 | +| UI 组件库 | Vant / 自研 | **Vant + 自定义组件** | 已用 Vant,保持;业务组件自研 | +| 后端方案 | 云开发 / 自有云服务器 | **现阶段云开发(至 2026-09-15)** | 详见 [小程序云开发方案](./小程序云开发方案.md);到期后可选迁移 [后端部署方案](./后端部署方案.md)(NestJS) | +| 导出方案 | PNG 保存相册 / PDF | **PNG 为主,PDF 为增值** | PNG 保存到相册是手机端最短路径(用户教育成本低、零服务器开销);PDF 作为远期会员增值功能,服务端 pdfkit 合并,Web 用 jsPDF | +| Monorepo | pnpm workspace / Turborepo | **暂不采用** | 当前只有小程序,过早引入增加复杂度;core/ 作为目录组织,未来再拆包 | + + diff --git a/miniprogram/app.json b/miniprogram/app.json index 12f1834..dca1fff 100644 --- a/miniprogram/app.json +++ b/miniprogram/app.json @@ -4,13 +4,8 @@ "pages/age/age", "pages/favorites/favorites", "pages/profile/profile", - "pages/category/category", "pages/guide/guide", - "pages/index/index", - "pages/copyBook/copyBook", - "pages/mathIndex/mathIndex", - "pages/focusIndex/focusIndex", - "pages/debug/debug" + "pages/index/index" ], "subPackages": [ { @@ -59,10 +54,6 @@ "pages/home/home": { "network": "all", "packages": ["mathPages", "focusPages"] - }, - "pages/category/category": { - "network": "all", - "packages": ["mathPages", "focusPages"] } }, "window": {}, @@ -85,33 +76,33 @@ } }, "tabBar": { - "color": "#999999", - "selectedColor": "#FFD709", + "color": "#322e25", + "selectedColor": "#322e25", "backgroundColor": "#F8F0E0", "borderStyle": "white", "list": [ { "pagePath": "pages/home/home", - "iconPath": "assets/tabBar/icon-home.png", - "selectedIconPath": "assets/tabBar/icon-home-active.png", + "iconPath": "assets/tabBar/home.png", + "selectedIconPath": "assets/tabBar/home-active.png", "text": "发现" }, { "pagePath": "pages/age/age", - "iconPath": "assets/tabBar/icon-age.png", - "selectedIconPath": "assets/tabBar/icon-age-active.png", + "iconPath": "assets/tabBar/age.png", + "selectedIconPath": "assets/tabBar/age-active.png", "text": "分龄" }, { "pagePath": "pages/favorites/favorites", - "iconPath": "assets/tabBar/icon-fav.png", - "selectedIconPath": "assets/tabBar/icon-fav-active.png", + "iconPath": "assets/tabBar/favorites.png", + "selectedIconPath": "assets/tabBar/favorites-active.png", "text": "收藏" }, { "pagePath": "pages/profile/profile", - "iconPath": "assets/tabBar/icon-profile.png", - "selectedIconPath": "assets/tabBar/icon-profile-active.png", + "iconPath": "assets/tabBar/profile.png", + "selectedIconPath": "assets/tabBar/profile-active.png", "text": "我的" } ] diff --git a/miniprogram/assets/tabBar/icon-age-active.png b/miniprogram/assets/tabBar/2.0/icon-age-active.png similarity index 100% rename from miniprogram/assets/tabBar/icon-age-active.png rename to miniprogram/assets/tabBar/2.0/icon-age-active.png diff --git a/miniprogram/assets/tabBar/icon-age.png b/miniprogram/assets/tabBar/2.0/icon-age.png similarity index 100% rename from miniprogram/assets/tabBar/icon-age.png rename to miniprogram/assets/tabBar/2.0/icon-age.png diff --git a/miniprogram/assets/tabBar/icon-edit-active.png b/miniprogram/assets/tabBar/2.0/icon-edit-active.png similarity index 100% rename from miniprogram/assets/tabBar/icon-edit-active.png rename to miniprogram/assets/tabBar/2.0/icon-edit-active.png diff --git a/miniprogram/assets/tabBar/icon-edit.png b/miniprogram/assets/tabBar/2.0/icon-edit.png similarity index 100% rename from miniprogram/assets/tabBar/icon-edit.png rename to miniprogram/assets/tabBar/2.0/icon-edit.png diff --git a/miniprogram/assets/tabBar/icon-fav-active.png b/miniprogram/assets/tabBar/2.0/icon-fav-active.png similarity index 100% rename from miniprogram/assets/tabBar/icon-fav-active.png rename to miniprogram/assets/tabBar/2.0/icon-fav-active.png diff --git a/miniprogram/assets/tabBar/icon-fav.png b/miniprogram/assets/tabBar/2.0/icon-fav.png similarity index 100% rename from miniprogram/assets/tabBar/icon-fav.png rename to miniprogram/assets/tabBar/2.0/icon-fav.png diff --git a/miniprogram/assets/tabBar/icon-home-active.png b/miniprogram/assets/tabBar/2.0/icon-home-active.png similarity index 100% rename from miniprogram/assets/tabBar/icon-home-active.png rename to miniprogram/assets/tabBar/2.0/icon-home-active.png diff --git a/miniprogram/assets/tabBar/icon-home.png b/miniprogram/assets/tabBar/2.0/icon-home.png similarity index 100% rename from miniprogram/assets/tabBar/icon-home.png rename to miniprogram/assets/tabBar/2.0/icon-home.png diff --git a/miniprogram/assets/tabBar/icon-math-active.png b/miniprogram/assets/tabBar/2.0/icon-math-active.png similarity index 100% rename from miniprogram/assets/tabBar/icon-math-active.png rename to miniprogram/assets/tabBar/2.0/icon-math-active.png diff --git a/miniprogram/assets/tabBar/icon-math.png b/miniprogram/assets/tabBar/2.0/icon-math.png similarity index 100% rename from miniprogram/assets/tabBar/icon-math.png rename to miniprogram/assets/tabBar/2.0/icon-math.png diff --git a/miniprogram/assets/tabBar/icon-profile-active.png b/miniprogram/assets/tabBar/2.0/icon-profile-active.png similarity index 100% rename from miniprogram/assets/tabBar/icon-profile-active.png rename to miniprogram/assets/tabBar/2.0/icon-profile-active.png diff --git a/miniprogram/assets/tabBar/icon-profile.png b/miniprogram/assets/tabBar/2.0/icon-profile.png similarity index 100% rename from miniprogram/assets/tabBar/icon-profile.png rename to miniprogram/assets/tabBar/2.0/icon-profile.png diff --git a/miniprogram/assets/tabBar/icon-shape-active.png b/miniprogram/assets/tabBar/2.0/icon-shape-active.png similarity index 100% rename from miniprogram/assets/tabBar/icon-shape-active.png rename to miniprogram/assets/tabBar/2.0/icon-shape-active.png diff --git a/miniprogram/assets/tabBar/icon-shape.png b/miniprogram/assets/tabBar/2.0/icon-shape.png similarity index 100% rename from miniprogram/assets/tabBar/icon-shape.png rename to miniprogram/assets/tabBar/2.0/icon-shape.png diff --git a/miniprogram/assets/tabBar/icon-word-active.png b/miniprogram/assets/tabBar/2.0/icon-word-active.png similarity index 100% rename from miniprogram/assets/tabBar/icon-word-active.png rename to miniprogram/assets/tabBar/2.0/icon-word-active.png diff --git a/miniprogram/assets/tabBar/icon-word.png b/miniprogram/assets/tabBar/2.0/icon-word.png similarity index 100% rename from miniprogram/assets/tabBar/icon-word.png rename to miniprogram/assets/tabBar/2.0/icon-word.png diff --git a/miniprogram/assets/tabBar/age-active.png b/miniprogram/assets/tabBar/age-active.png new file mode 100644 index 0000000000000000000000000000000000000000..e77de5622ce03e41fe408f2809940aaad740cb93 GIT binary patch literal 4765 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 B3iJQ~ literal 0 HcmV?d00001 diff --git a/miniprogram/assets/tabBar/age.png b/miniprogram/assets/tabBar/age.png new file mode 100644 index 0000000000000000000000000000000000000000..13182d91fb30626bffbf190213674cdaa391b590 GIT binary patch literal 4857 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 Uz-fK2_5ajOjLcz`1`nS94_s2K?*IS* literal 0 HcmV?d00001 diff --git a/miniprogram/assets/tabBar/favorites-active.png b/miniprogram/assets/tabBar/favorites-active.png new file mode 100644 index 0000000000000000000000000000000000000000..4f6500814e359c598d1984aa32256f7b9105bca5 GIT binary patch literal 7608 zcmch6c|27A_dlk_7Lu|ILk205HOtr;W@If}cGD%S;s~yF0a{gB<_uo8s`-SKE^f1xdYk6VvRmRRWExV*Z))d`LD}yJlhNf}wWE?>pYS{4 znkFWe80`PyRVSRxo_@G5cgXvP%>MefE2(nJvgDXtVd@OZ&$CXZZ0AR3=$Az&BA}Z7Pzv z#b|c}bKpPMys!#hWl>|?&wUWHJ9NY{G^-1^R0DyEV@(7xyMKEFiQ{ z5&05~zi?<1Z;n&^TOL;`th(hhBWAhljI4pn7v)fwXz}&X^fCXj6^VH1SJ^8Ew1w}| zpTkI#8=TT#%A=Ks^0&_Wi_C?BLWwgE#G7$aimq@%DagApw?CUZ|6hje+<(=qS1l_?+J299$MmTk zvLc-YOnZgzj+yq<)?YXh_i58CQ_7tuX@`|!3P4UHdy!2Up$pM!n{ku^ZW`Bk=<^pE zWa^7XP571M$Sp;&;kON-0Qv&HneQ%!GAB3G9mq8^UDk;1pIP8=?#Q}Ej&*TRz~$dO z$~Frj(9H+y754t!XzJU^fWqA6i`)!C?Gw^X;-D+-H##z06NU~wYm;!pC^_WY9 zmmNEd0rG-$n%Qo%4ZhC1A|%<0pN79SzK)Ejwwo{%@XTZycvvqShe=uoq?z=vvZ0}o zgcCEA=Gj&LnG7z=IkgL|ZlF<3{ceR!vgJcT^~iIJP~|6-g2-wg*^`v4G9~?Nw|sCo zYh>dlM|+#|Cs>nM=@psQfw~hX{xWr5=y#OH^d7?nlh11}V`nJ^_Hu13O(yS$_h(4g zY)UY*XN1j4jh^5Ceo^XQE!C3`WZ&TK3Z=@djTB7@3@BdTv?S7G175g%_Rms+y z<>>p<|D0BLtgnRZDCOgJ*6Dln+R4ZUbhTz|OLuS9OT7f&Z^&fiLi7zE@=X($>Gm_- zQ{)eOnOb(k??G!KPn77%Zi)e;SB;&?!fP>YY!w2@<(uU7YUsZY!LdquA>YDrEf?!?q(z`d zv}pIYRGy#kw#U6_90tppcIJkJ1vKgn{Xk;e}CzP0s$I*8?XS zQ`08xyBfC2O}CwhNE!}AlWu{@bmwVYxIrZ?Ock5IcVdEAw?X^j2d_L zH|^Wfaona~zOxc(4;vnx+1rk6ydQ){)z&SkdkNi$zOX%{ABr;1Gk$ycIj6P5cP10E z>@qthUYX_|{UYl>C+whCT|GbLL1}qykt*SB>yY~B;-9E<0c-rwOEHgWKDp2U+RcegK{L{A#AgX1RX{PxK%A2L?4c|#Q;8Ek+v@nT&L@@(YO=oiPjhSFu**C zWC=KPBWXR|>hJc|QIqNEcYV_iQ_JB7Wet z<=u9kitn(2ET@h3DP+^4qMG#*`YkI>i9Y12h7ieWBs%$wd;~5_Vwqw8{=6=)-)aUyle#RQkC6_D8;p|)$*i&`%qnX<_-8?PRHx%5tN|4)*1>}t z5^6ZXX1k5z%P{%s426lQ_^xbZLO-IiU}5vS0cBn%wHDh?G~E1bOo%=wA4CtXK!EXF zSV0~a^mdi~IfZ1JDV-xHm;w%u&G*4E@(|GX_qguLlFGb`d|3* zj3-;AAQOBIsHVgyu9t|#>#)>afpDvs>u?tzxu`fQsnsEnUwf}WkFeDhXy^PWE1_6d zQG80AGBS8Nd4R;RvRoumFIp?^CA3E7H{B5Zk_yX+FgGd@oAOyWrlcG9tTV%nHB-B6 z5HH^4`m5fAy9CRr#KP5+QLOINi}?dwb)}`R0=e;Hl-E;o2MFXZed5NoRUM_i*h&gF z=L)YSWwx{Tolq+Kgc;R@=TOdl z-*=L*Y0nsQxFz||%|Y0Op9j;{Y6@@{-3bUqG|UhkhegZm8Tpxc_y_JUbOalOrI-IB zp2wTWX`7O3SD)ZC`JfCo5Zz_vnh_CL{+sNc#NuL+f{YUFNC$K*mdX3@kn*_HZGk%h z#~s@BkHd|CM8GG{jJ0KE3EDuR8L3?8ULA!&SO!~*OhIC)N{uX$xhm1*Jg3c&6j$y= z4Pq-+aC#57exCDyRa3c%PELl{|A)p{s0r6axPeq@3x2mqoLiv$D>?fHVz9r~uS+?S zOt3;;GqdOM*X3f|(K-~Z=FGWOu8GUA8b0Y%cC5O#^g5ZVn0FEw@Rr^b+YU`ShlNr` zzQpJxVtvQlAWgU5gYx&2b*rRdHDU(;dt5sg@92bZGo0?lXXB!iM2=K+Iq_0VGjFOf zR3K0UABK$V>LGs1%n9ykXa|Z@3KB8ZKFQdT(w8Mqmh~Of{0o~OMvs30rrf;LU>OKn zgLrZF&@YDF&Q24cRJVC^;+s^O5e{(wLQsrEBDP6xL3O14540x%34Nmz! zd1Ht?&X74weStvK-*{ggGle@6dj+;d)C{$NOo=d9m~($}6Z)rC74s)xc~oA{8$+K$ zJw*L=-*>Q=kJxE%MPYX||9r(z6B|!$lJtKE6RM4nTb+c#cI_@bnE%$jTEKKF`Cmu9 z#O4{lQ`<0&6)bAn&484kb|G9-&`)*BrF%cPIp12(S#`3Zdtd&~oVMzUBsJ|5;s3Gv z+gOnl$$p3nJe_9#8>&nk-1u^8bd{hT_k)#crGZfKdv!AGluS#6Xl@?M((g!lwS~X; z#J%M2RF~ZT!NWOG_Lx@G6}Gmdd$2J6CmHK|o1%Y~qt3ffPqcYjUqo6cDy~(XdI*Er zIY0KdSk=k})RXH!sweg#9R=EvNw~NT-Wg$74PMjk<6-%?*z1vAz7*4|oOt6}yJFTF z8KRONBNnUX5blcBKGF)Es4C_{APTN%g9fObC-kq2iB}mfFh9&#>s+@LFXFf zn}9G?U$mOavPJ9fYgGlGCdD_W@tdTx={XqcyJA)ZVoY9v_(!U0hKZX>`UQji;gdXw z7URO5c(@b-h^DaI z^5A7G>)#!xt{I8J&&Z+U>d)dTU;|yLVVo;>tv%fHgmpn|S__&Gj{tiF6b&kx|EwafpL^n7irQ$Ox}I5mfEwUW%rRv z=50#?l&{|*D_ZpJw7P{C(r^A`J=Hw^!bv2$W6bTZY;)?t{dw+`>{GE*jXk}i*?{)O zKxL;(j8TJYBPOxSuI53qM5{6f4tq`@D*Waz@R$FSgBJ;Y>-&O2dmCKkkdon@8S0sWliDYd->tbPs<-2Eiwk z|L#8&+Mp#UI1XI>YHNx2Wip_#fZT~iK^I?8NE~=mZzugCH+}P|%N)mL`Xr@mKsiY_ zauV(H3+a8aH=TvjP8S5y%w~ZF%0xP=N_+MYKXd~2XY95)zrfIv^?3|JjO7iE#I}cWrziCy&;YR(+rN9s%(PB8F{m1q;a$ zw+Idm^qqiLy*X>eQQzBYKTm>4*HT9u#l70WV<|3F46qyCVlkf0sq%I6%!k(i6v%lW z4R}c*XX>ot-7p`tzI@#bb9jsGhAM`9x}oM$ois8(lyu!M0@ww7N2_vMJ0%S;104MN zzT-XJQM)4Z7bQ`q#MrENO7x|tcAG~Q<#+Q<9-RS>i?X(j0?KNDX^>w*w?==wm?sGj zjEn&ukPcjJN(LJG$q^q0x%*clet=HywX&S6FSTS zl_k>EdoC%7h6DlX_CJXt_GV2LN!pgIZDfp=LYKZ$Qmp z@sF+D4Gq*wj6CzFL2y}2ib*07573q-rBSQ8Kz`SVg=7HcBCQcC;}~!?rdOpgN)-qo z#m~y!U`cY)Aa*41G*I%xQZ8108P^2tA8RgH8r7Ye4?eqGR1Bn*htcrpzwn(~y7=EnCZ?vc@ zWR*8{+sUg?$+@K0UHK(YpH@(VJywEkSKuOs=ww$e0B&pSYXUohKDQ_!X*osByzOBq zPBFe_IeQjJjd)bTK3}NyuJ%waAlYL-1KQwTM)lcj0TABgc))mNc5TOSTSswVV6@XzI6+ELV@IxsbmWw{czk2#HSEQ!98QiN^X>Q{~kzl$>q&qbU@PJAsLuUWX0XNY{5;g)p`=1E`lARRogaN{rIfOb!H)_;9Px|2`9O_*|v1F2`NU|t{u zyrt}(Oueet60#meK`7u_%w*M;n=nP`$FOi7%l{q8Lz_Jc5ru<$OqThQ+`)+ zFR#EmdPj2set2+`f$y6jzQHYuc}Gc<@d7nmGSxu{I$WthGSNu%a78j$|r0b@CdOlqGL*mQV2SEX6Nyq*9E+#6J65|+}Y+`E!f`0A&Am6URH6vW( z9$l7I=9E-Pu?TM_IcrSr8BA;N&j|lTNB^FD^cX?X@{Hx!%a5N}27>3fL$j4?m4_IX zN;_Bmd2%`M#0{OmL^pU1vg}J_hU=m;o;`%CcqW43t_s5!kc)XYA(V5&D8oPAd9^4| z{%wunP?qr=;GoK>(L_CKk#S1iCUqp--(jHl=4RCJ0u0bg`1abnP<{}}vH@z1KejP& zRT*!tus`rXV|@#biOaFl5(TJ*leFV716RWHwlB9noM74UQs0I4^EUCV4RQIn0*CC6 zIahWYCe79&NWwJ_AQXWuQtRS<8awgQ3{2&x(fp^0(^IYq{?My1xQmA;O>9XMvrgge z;q<(qJO+N3jVML^Qy{AROirp2+Y+K{AxUMh-b8WRh8?}2oX_E7Lz^7jKlyw&{F)io zA8%yG=778#w#q{imJ0@CZR-K;5m8MLS+Pm4=9{4S?ib%Tz%eme z&L&Z;s^+vwB`g;a?k2f>8la+#3_vLml|TOKws#C!KKjnwWW4XSL051j@X#Nf{Ma_> zK-j8GDw!Ss@sxDe+eLO?Qf3|JkH4yzG9h_$a7|a7qPUpMIwZEV+^&UAu1lYoK?8Em zx=I$C69Un3{_=`u|3til=*HDaQp0j>ui9u@slhaoR)a7<#EIR3k)Z+EfcidT6gqEN z-&fXMq)XURAo}$J=e?4#i1S^>z$($MUBWiUdjR$&nc#mB)hUY0p(In&tqYrvitPxP zJi{Do^)aBOoDUl)#;nt|K6ZS~%CmSq#UCHPFIe*1Zs2(uJN_3CMeNS3&*$cU^WVP# z&{X6GUs82I)^A5YDss)6? zzAW-DLF>?br|ZPV{L7jbf4My;6c(sJjN=$03*{d3RU4y|>BcifS2z{TXqM>2uftlb zbghm1ZK#jn$OOtW_C3#xpXd2`+a%$L1@A(4btia?>6OwdP{E~{;aAV_uM@_JUxz8@ zd%$dUN0*!?n^iM=V(6Ro8_?X%jLT;H&B~RmVebv|&W8&&0jl;?)Vsu3|&c2z1;t;~EDm_4px8rqxNx zGexTFaIcTTV2uh~yN~+-7EY0{j}7)k8`=eGW(NVVhd{cP;Q;ZPkO;k?&+2q`R%m8e z@W?{)#~`*cef7JR;S5k~7o8!`CUU!09RU9c0q=uC%rm|%pvm>Q4fDtNna3M&NJ^F@ z&?iAfdlkBOMFs{6znyh^8(q(0iUUf4G@zH00#Qy!g^9xJnr)2>rF=$+v8D_ZF)nio_Ed@tR;=r~qx{$0w?FSNTw5a;{r;C1X z4!=;&dz-EuG9u+V5?H$#cwG9E{k^M42|c$J6^^$7q7%f+8}2j`bKc<4+&LO;_~N> zsiVq<@4O02+{-QO;vZ}z1RJ9Ju1})^hUgU)TGikPcmmkgwij%rsZ(+oBhxI=R1zI> zcKaRU)G5q!faU9fq@+A)X7lsCcxQ5|{{)=I-Y3cG$5TcU8xGqs)M2iro|Wp9js@Nx z?wJ=vQ@EoIBW{!BQICcN2Q zO&}%Nv9%G#YF~EQ)S$$@dagU^3ypT@@gi?7GuZ3AI=m94mgSZO@Egc~Oj=Nx6IY~4 zPALI6Moz?U^~WV|ftiJLBY6=3(9X=IhJVIBis|Uh3iZho`vYXw^d|n8>#{lrrC=%h zdE8H^mEh24!+t#lVurkiy_&$b5JM;5v8f~>q>jxpXy=OY@Craujdq%kk?+jnRUJFf z410XT(KW(idtb41_%oWrHmIBWW>&{~uMgw?;OIxT>_iKo_+J!A>Z2Rz9Wv*ZBY3*? z$;l)D3Z-jXte5x9?Fq%+g<=i9Ra=+tp3p0sp1AofF9Ub=KlYPi6*xKR?|T;DxNlJL zaaFWGu+U$6p@~=~AMz17fz@dj=(?^SE;algeq{Xri1Ph>!l(`gsgH$ZY5`wg=?wHt K5S2R4asLlD_|&)n literal 0 HcmV?d00001 diff --git a/miniprogram/assets/tabBar/favorites.png b/miniprogram/assets/tabBar/favorites.png new file mode 100644 index 0000000000000000000000000000000000000000..bcafb1e716ff67cbb155402fafb3492fcb3fc8fd GIT binary patch literal 14096 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 z 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 literal 0 HcmV?d00001 diff --git a/miniprogram/assets/tabBar/home-active.png b/miniprogram/assets/tabBar/home-active.png new file mode 100644 index 0000000000000000000000000000000000000000..f01ead4890279bc1e89a7d24697abf5206d8d107 GIT binary patch literal 8669 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 bo?KLuBUA7p>(#(38X#>A1NBN(oACbw-O_ia literal 0 HcmV?d00001 diff --git a/miniprogram/assets/tabBar/home.png b/miniprogram/assets/tabBar/home.png new file mode 100644 index 0000000000000000000000000000000000000000..4b9d345e42d1854a03c097fa931d96e3680f1e51 GIT binary patch literal 14988 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 literal 0 HcmV?d00001 diff --git a/miniprogram/assets/tabBar/profile.png b/miniprogram/assets/tabBar/profile.png new file mode 100644 index 0000000000000000000000000000000000000000..7620083342b0c9599374d10bcd52692fa590cc53 GIT binary patch literal 10880 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 literal 0 HcmV?d00001 diff --git a/miniprogram/pages/age/age.json b/miniprogram/pages/age/age.json index a7351f1..37e2fd0 100644 --- a/miniprogram/pages/age/age.json +++ b/miniprogram/pages/age/age.json @@ -1,8 +1,8 @@ { - "navigationBarTitleText": "分龄推荐", + "navigationStyle": "custom", "navigationBarTextStyle": "black", - "navigationBarBackgroundColor": "#ffffff", - "backgroundColor": "#F5F5F5", + "navigationBarBackgroundColor": "#FEF6E7", + "backgroundColor": "#FEF6E7", "enablePullDownRefresh": false, "usingComponents": {} } diff --git a/miniprogram/pages/age/age.less b/miniprogram/pages/age/age.less index 3fc56f4..59200f2 100644 --- a/miniprogram/pages/age/age.less +++ b/miniprogram/pages/age/age.less @@ -1,108 +1,412 @@ +@import '../../style/theme3.less'; + +@age-tab-gap: 32rpx; +@age-tab-w: 226rpx; +@age-tab-h: 156rpx; +@age-badge-current: #005e17; +/* 选中态 box-shadow + scale 外溢;内层留白 + 外层负 margin 抵消,整体上下不占更多间距 */ +@age-tab-shadow-bleed-t: 36rpx; +@age-tab-shadow-bleed-b: 52rpx; + .age-page { min-height: 100vh; - background: #f5f5f5; - padding-bottom: 48rpx; + background: @bg-page; + padding-bottom: calc(48rpx + env(safe-area-inset-bottom)); box-sizing: border-box; } -.age-hero { - background: #fff; - padding: 40rpx 32rpx 36rpx; - margin-bottom: 24rpx; +.age-nav { + position: fixed; + top: 0; + left: 0; + right: 0; + z-index: 100; + background: fade(@bg-header, 85%); + backdrop-filter: blur(40rpx); + -webkit-backdrop-filter: blur(40rpx); + box-shadow: 0 2rpx 12rpx rgba(50, 46, 37, 0.05); } -.age-hero__title { - display: block; - font-size: 44rpx; - font-weight: 700; - color: rgba(0, 0, 0, 0.88); - margin-bottom: 12rpx; -} - -.age-hero__subtitle { - display: block; - font-size: 26rpx; - line-height: 1.5; - color: #999; -} - -.age-grid { +.age-nav__inner { + height: @nav-inner-height; display: flex; flex-direction: row; - flex-wrap: wrap; - gap: 24rpx; - padding: 0 24rpx; + align-items: center; + justify-content: flex-start; + padding: 0 @page-padding-x; box-sizing: border-box; } -.age-card { - width: calc((100% - 24rpx) / 2); - background: #fff; - border-radius: 32rpx; +.age-nav__title { + font-size: @fs-nav-title; + font-weight: @fw-nav-title; + color: @color-nav-title; + letter-spacing: @ls-nav-title; +} + +.age-body { + width: 100%; + box-sizing: border-box; +} + +/* 横向年龄 Tab — Stitch 为你推荐版 */ +.age-tab-scroll { + width: 100%; + white-space: nowrap; + padding: @section-gap-sm 0 @section-gap-xs; + box-sizing: border-box; + margin-top: -@age-tab-shadow-bleed-t; + margin-bottom: -@age-tab-shadow-bleed-b; +} + +.age-tab-scroll__inner { + padding: @age-tab-shadow-bleed-t 0 @age-tab-shadow-bleed-b; + box-sizing: border-box; +} + +.age-tab-row { + display: inline-flex; + flex-direction: row; + align-items: center; + gap: @age-tab-gap; + padding: 0 @page-padding-x; +} + +.age-tab { + position: relative; + width: @age-tab-w; + height: @age-tab-h; + flex-shrink: 0; + padding: 24rpx 16rpx; + border-radius: @radius-lg; + background: @bg-muted; + box-sizing: border-box; + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + gap: 8rpx; + border: 2rpx solid transparent; +} + +.age-tab--active { + background: @brand; + border-color: @bg-white; + box-shadow: 0 16rpx 48rpx rgba(255, 215, 9, 0.38); + transform: scale(1.05); + z-index: 1; +} + +.age-tab__current { + position: absolute; + top: -8rpx; + right: -8rpx; + padding: 4rpx 14rpx; + border-radius: 999rpx; + font-size: 18rpx; + font-weight: 700; + color: @text-white; + background: @age-badge-current; + line-height: 1.2; +} + +.age-tab__range { + font-size: 36rpx; + font-weight: 800; + color: @text-title; + line-height: 1.2; +} + +.age-tab--active .age-tab__range { + color: @text-selected-btn; +} + +.age-tab__sub { + font-size: 22rpx; + color: @text-light; + line-height: 1.3; + font-weight: 600; +} + +.age-tab--active .age-tab__sub { + color: fade(@text-selected-btn, 85%); +} + +.age-panel { + margin: 0 @page-padding-x; + background: @bg-white; + border-radius: @radius-lg; + border: 1rpx solid fade(@bg-gray, 90%); + box-shadow: @shadow; overflow: hidden; - box-shadow: 0 8rpx 32rpx rgba(0, 0, 0, 0.06); +} + +.age-goal-panel { + padding: 36rpx @page-padding-x 40rpx; box-sizing: border-box; } -.age-card__art { - height: 160rpx; +.age-goal-head { + display: flex; + flex-direction: row; + align-items: center; + gap: 12rpx; + margin-bottom: @section-gap-sm; +} + +.age-goal-head__icon-wrap { + width: 56rpx; + height: 56rpx; + border-radius: 50%; + background: @brand-light; display: flex; align-items: center; justify-content: center; } -.age-card__emoji { - font-size: 72rpx; +.age-goal-head__icon { + font-size: 28rpx; line-height: 1; } -.age-card__body { - padding: 24rpx 24rpx 28rpx; +.age-goal-head__title { + font-size: @fs-section-head-title; + font-weight: 800; + color: @text-selected-btn; + letter-spacing: -0.02em; } -.age-card__label { - display: block; - font-size: 32rpx; - font-weight: 700; - color: rgba(0, 0, 0, 0.88); - margin-bottom: 8rpx; +.age-goal-list { + display: flex; + flex-direction: column; + gap: 24rpx; } -.age-card__desc { - display: block; - font-size: 24rpx; - color: #999; - margin-bottom: 12rpx; +.age-goal-item { + display: flex; + flex-direction: column; + align-items: flex-start; + gap: 12rpx; + padding: 28rpx @page-padding-inner-x; + border-radius: @radius; + background: @bg-header; + box-sizing: border-box; + border: 1rpx solid rgba(229, 220, 201, 0.55); } -.age-card__count { - display: block; - font-size: 22rpx; - color: #ccc; -} - -.age-tip { - margin: 40rpx 24rpx 0; - background: #fff; - border-radius: 24rpx; - padding: 28rpx 24rpx; +.age-goal-item__top { display: flex; flex-direction: row; - align-items: flex-start; - gap: 20rpx; - box-shadow: 0 4rpx 24rpx rgba(0, 0, 0, 0.04); - box-sizing: border-box; + align-items: center; + gap: 12rpx; } -.age-tip__duck { - font-size: 64rpx; +.age-goal-item__emoji { + font-size: 40rpx; line-height: 1; flex-shrink: 0; } -.age-tip__text { - flex: 1; - font-size: 26rpx; - line-height: 1.55; - color: rgba(0, 0, 0, 0.65); +.age-goal-item__title { + font-size: 28rpx; + font-weight: 700; + color: @text-selected-btn; + line-height: 1.2; } + +.age-goal-item__desc { + font-size: 24rpx; + line-height: 1.5; + color: @text-secondary; +} + +.age-path-head { + margin: @section-gap-lg @page-padding-x @section-gap-xs; + display: flex; + flex-direction: row; + align-items: center; + justify-content: space-between; + gap: 16rpx; +} + +.age-path-head__left { + display: flex; + flex-direction: row; + align-items: center; + gap: 20rpx; + min-width: 0; +} + +.age-path-head__bar { + width: 16rpx; + height: 64rpx; + border-radius: 999rpx; + background: @text-selected-btn; + flex-shrink: 0; +} + +.age-path-head__title { + font-size: 40rpx; + font-weight: 800; + color: @text-title; + letter-spacing: -0.03em; + line-height: 1.2; +} + +.age-path-head__badge { + flex-shrink: 0; + font-size: 20rpx; + font-weight: 700; + color: @text-secondary; + background: @bg-header; + padding: 10rpx 20rpx; + border-radius: 999rpx; + border: @border; +} + +.age-week-list { + padding: 0 @page-padding-x; + display: flex; + flex-direction: column; + gap: @section-gap-lg; +} + +.age-week-card { + background: @bg-white; + border-radius: @radius-lg; + overflow: hidden; + border: 1rpx solid rgba(50, 46, 37, 0.08); + box-shadow: @shadow; +} + +.age-week-card__head { + padding: 28rpx @page-padding-x; + background: @bg-week-head; + display: flex; + flex-direction: row; + align-items: baseline; + gap: 16rpx; +} + +.age-week-card__week { + font-size: @fs-section-head-title; + font-weight: 800; + color: @text-title; +} + +.age-week-card__theme { + font-size: 26rpx; + font-weight: 600; + color: @text-gray; +} + +.age-week-card__body { + padding: 0 @page-padding-x 8rpx; +} + +.age-week-row { + display: flex; + flex-direction: row; + align-items: center; + justify-content: space-between; + gap: 20rpx; + padding: 32rpx 0; + border-bottom: 1rpx solid #f2f2f2; +} + +.age-week-row:last-child { + border-bottom: none; +} + +.age-week-row__title { + flex: 1; + min-width: 0; + font-size: 28rpx; + font-weight: 700; + color: @text-title; +} + +.age-week-row__btn { + flex-shrink: 0; + display: flex; + flex-direction: row; + align-items: center; + gap: 6rpx; + padding: 14rpx 28rpx; + border-radius: 999rpx; + background: @brand; + font-size: 24rpx; + font-weight: 700; + color: @text-selected-btn; + box-shadow: 0 4rpx 12rpx rgba(255, 215, 9, 0.35); +} + +.age-week-row__btn-arrow { + font-size: 22rpx; + font-weight: 700; +} + +/* [为你推荐] — Stitch 栅格 */ +.age-rec { + margin-top: @section-gap-lg; + padding: 0 @page-padding-x @section-gap-xs; + box-sizing: border-box; +} + +.age-rec__head { + display: flex; + flex-direction: row; + align-items: flex-end; + justify-content: space-between; + margin-bottom: @section-gap-xs; +} + +.age-rec__title { + font-size: @fs-section-head-title; + font-weight: 800; + color: @text-title; + letter-spacing: -0.02em; +} + +.age-rec__more { + font-size: 26rpx; + font-weight: 700; + color: @text-selected-btn; + padding: 8rpx 0 8rpx 24rpx; +} + +.age-rec__grid { + display: flex; + flex-direction: row; + flex-wrap: wrap; + justify-content: space-between; + row-gap: 32rpx; +} + +.age-rec__card { + width: calc(50% - 16rpx); + background: @bg-white; + border-radius: @radius-lg; + overflow: hidden; + border: 1rpx solid rgba(50, 46, 37, 0.08); + box-shadow: @shadow; + box-sizing: border-box; +} + +.age-rec__img { + width: 100%; + height: 200rpx; + display: block; + background: fade(@brand, 15%); +} + +.age-rec__body { + padding: 20rpx 20rpx 24rpx; +} + +.age-rec__card-title { + font-size: 26rpx; + font-weight: 700; + color: @text-title; + line-height: 1.35; +} \ No newline at end of file diff --git a/miniprogram/pages/age/age.ts b/miniprogram/pages/age/age.ts index fe4973c..d8f14e7 100644 --- a/miniprogram/pages/age/age.ts +++ b/miniprogram/pages/age/age.ts @@ -1,44 +1,243 @@ -import { ALL_WORKSHEETS, getWorksheetsByAge } from '../../core/data/worksheets'; +import { AGE_BANDS, AgeBandKey } from '../../core/data/difficulty'; +import { NAV_INNER_PX } from '../../utils/navMetrics'; -interface AgeGroup { - label: string; +type AbilityItem = { + icon: string; + title: string; desc: string; - emoji: string; - minAge: number; - maxAge: number; - count: number; - gradient: string; -} +}; + +type WeekExercise = { + title: string; +}; + +type WeekPlan = { + week: number; + theme: string; + exercises: WeekExercise[]; +}; + +const AGE_TAB_SUB: Record = { + '3-4': '启蒙认知', + '4-5': '基础练习', + '5-6': '能力提升', + '6-7': '幼小衔接', + '7-8': '知识拓展', +}; + +/** Stitch「为你推荐」占位图(需在小程序后台配置 download 合法域名含 lh3.googleusercontent.com) */ +const RECOMMENDED_FROM_STITCH: { title: string; image: string }[] = [ + { + title: '10以内加减法', + image: 'https://lh3.googleusercontent.com/aida-public/AB6AXuD-3lADhclTGODN9WtNh5v8bQPLysbllbKNkH40bAmVyE5d54PwfTBOiX9nER1hpE4rzHAfsmM_JhVnsE4EbdA914rYIb3S3e4r9QKFjUqYmj2XpE4MlYr_vLkG4oeMnvnHOqGC96nLGrPSOq-fpIddV7RSlYLDeNccBs0G2oUOy-6jIMujzTuEGk4nnxme5rpxs7rYjwcvVsqM5dlkpJthY42e4B3lSPH7ezx187WRSk--m4ZiWmAI52mMOiygzTSWoNormlvfvdM', + }, + { + title: '拼音描红', + image: 'https://lh3.googleusercontent.com/aida-public/AB6AXuBYS4O7PyflR5q8M6oXKwj_8QHzex3OL3YvdHBncutm7a_bjlZj83-8UBpGUQvJO20V0BnAdU3iKEoLlUqwpS60CiPhVyxYaHEAqv52P5YUhJdjf0hpLir1Li4rdI_-eqGkPTasYl-5kD2r8-RjUokKg_HiW5_TF72UbxFXHQh4BefYJZfl0Oc9-aTQvkbFL0C3tagi9Qv1jRsgQldMFU4M7cHt8KkxhO1QDF7-R85ZFORJM0RiqV2l-jn0c-UscKtuWtroiX6UUKk', + }, + { + title: '趣味找不同', + image: 'https://lh3.googleusercontent.com/aida-public/AB6AXuBSafbTyucs8JLpTgibRWwAJsHukrklTAuEnaAzax_Kr1RNCwHjqpQjta0Q-h47ClufzEmaHPgCIOlm_a2lL4gNlgBDyraCwzRU7aWCf_Fj_dM1cLGzROJmtqrdHKjQzTbCp0_Da8BvXi4a4H2X4RAYVPnLbZVmbgPXrTvpKgEI605kIMmr3n0--WojJQRsF4B_xCho80gABbIaMTHJHrs9xdEY6fZKg8ArQx7lRbJ6_EsLLB_C5a5crZ_begwruXKr3pmdU6KneC8', + }, + { + title: '走迷宫大挑战', + image: 'https://lh3.googleusercontent.com/aida-public/AB6AXuAOZHI1Dz6ax4iFUb3QYL-EWp2euA_3kyUeCcu6V57BBCzarMwKnFzcpJxJn4X4woklWFB08Ii1w6zsk0H5eDaPdgUYmsvY0NFqvAhKN_IbZGZjZnclZlBHkLRcX64Nl767L2pg01FQu9Tp6nq2p3lAuYeEQ2fiIdXh4j-QHyikbmx4_aDlx5X5fC0fqMMxWykhwLNkDzl2Rs3ucXj7zYnUP-dNNY-aj_JvqkY4pqoXQDt9ZJcfSeL0dWes7nvD5U2C_JFhrk1bVkw', + }, + { + title: '数字点连线', + image: 'https://lh3.googleusercontent.com/aida-public/AB6AXuD-3lADhclTGODN9WtNh5v8bQPLysbllbKNkH40bAmVyE5d54PwfTBOiX9nER1hpE4rzHAfsmM_JhVnsE4EbdA914rYIb3S3e4r9QKFjUqYmj2XpE4MlYr_vLkG4oeMnvnHOqGC96nLGrPSOq-fpIddV7RSlYLDeNccBs0G2oUOy-6jIMujzTuEGk4nnxme5rpxs7rYjwcvVsqM5dlkpJthY42e4B3lSPH7ezx187WRSk--m4ZiWmAI52mMOiygzTSWoNormlvfvdM', + }, + { + title: '方格推理高手', + image: 'https://lh3.googleusercontent.com/aida-public/AB6AXuBYS4O7PyflR5q8M6oXKwj_8QHzex3OL3YvdHBncutm7a_bjlZj83-8UBpGUQvJO20V0BnAdU3iKEoLlUqwpS60CiPhVyxYaHEAqv52P5YUhJdjf0hpLir1Li4rdI_-eqGkPTasYl-5kD2r8-RjUokKg_HiW5_TF72UbxFXHQh4BefYJZfl0Oc9-aTQvkbFL0C3tagi9Qv1jRsgQldMFU4M7cHt8KkxhO1QDF7-R85ZFORJM0RiqV2l-jn0c-UscKtuWtroiX6UUKk', + }, +]; + +/** 各年龄段能力目标(Mock) */ +const MOCK_ABILITY: Record = { + '3-4': [ + { + icon: '🔢', + title: '数感', + desc: '认读 1-5、点数对应', + }, + { + icon: '✏️', + title: '书写', + desc: '涂鸦线条、简单描红', + }, + { + icon: '🧩', + title: '思维', + desc: '找相同、简单配对', + }, + ], + '4-5': [ + { + icon: '🔢', + title: '数感', + desc: '10 以内数数、比大小', + }, + { + icon: '✏️', + title: '书写', + desc: '笔画模仿、图形描边', + }, + { + icon: '🧩', + title: '思维', + desc: '规律排序、图形分类', + }, + ], + '5-6': [ + { + icon: '🔢', + title: '数感', + desc: '10以内加减法、凑十法', + }, + { + icon: '✏️', + title: '书写', + desc: '练字帖、拼音入门', + }, + { + icon: '🧩', + title: '思维', + desc: '方格推理、格子仿画 5×5', + }, + ], + '6-7': [ + { + icon: '🔢', + title: '数感', + desc: '20 以内运算、应用题启蒙', + }, + { + icon: '✏️', + title: '书写', + desc: '常用字书写、词语积累', + }, + { + icon: '🧩', + title: '思维', + desc: '逻辑填空、空间想象', + }, + ], + '7-8': [ + { + icon: '🔢', + title: '数感', + desc: '乘除启蒙、巧算练习', + }, + { + icon: '✏️', + title: '书写', + desc: '段落抄写、古诗诵读', + }, + { + icon: '🧩', + title: '思维', + desc: '数独入门、综合推理', + }, + ], +}; + +/** 4 周路线(各年龄段共用结构,内容 Mock) */ +const MOCK_WEEKS: WeekPlan[] = [ + { + week: 1, + theme: '数感启蒙', + exercises: [ + { title: '找数字涂一涂' }, + { title: '5 以内加法' }, + { title: '数数连一连' }, + ], + }, + { + week: 2, + theme: '形状与连线', + exercises: [ + { title: '识别形状' }, + { title: '线条识别' }, + { title: '数字点连线' }, + ], + }, + { + week: 3, + theme: '趣味专注', + exercises: [ + { title: '颜色找规律' }, + { title: '方格推理' }, + { title: '格子仿画' }, + ], + }, + { + week: 4, + theme: '综合练习', + exercises: [ + { title: '10以内加减法' }, + { title: '识字卡' }, + { title: '连连看' }, + ], + }, +]; + +const DEFAULT_AGE: AgeBandKey = '5-6'; Page({ data: { - ageGroups: [] as AgeGroup[], + statusBarHeight: 0, + navBlockHeight: 0, + ageTabs: AGE_BANDS.map((b) => ({ + key: b.key, + rangeText: b.label.replace(/\s*岁\s*$/, ''), + subLabel: AGE_TAB_SUB[b.key], + })), + activeAgeKey: DEFAULT_AGE, + goalTitle: '', + abilityItems: [] as AbilityItem[], + weekPlans: MOCK_WEEKS, + recommendedItems: RECOMMENDED_FROM_STITCH, }, onLoad() { - const groups = [ - { label: '3-4 岁', desc: '启蒙认知', emoji: '👶', minAge: 3, maxAge: 4, gradient: 'linear-gradient(135deg, #fff9c4, #fff176)' }, - { label: '4-5 岁', desc: '基础练习', emoji: '🧒', minAge: 4, maxAge: 5, gradient: 'linear-gradient(135deg, #c8e6c9, #81c784)' }, - { label: '5-6 岁', desc: '能力提升', emoji: '👦', minAge: 5, maxAge: 6, gradient: 'linear-gradient(135deg, #bbdefb, #64b5f6)' }, - { label: '6-7 岁', desc: '幼小衔接', emoji: '👧', minAge: 6, maxAge: 7, gradient: 'linear-gradient(135deg, #e1bee7, #ba68c8)' }, - { label: '7-8 岁', desc: '巩固挑战', emoji: '🎒', minAge: 7, maxAge: 8, gradient: 'linear-gradient(135deg, #ffccbc, #ff8a65)' }, - ]; - - const ageGroups = groups.map((g) => ({ - ...g, - count: getWorksheetsByAge(ALL_WORKSHEETS, g.minAge).length, - })); - - this.setData({ ageGroups }); + const win = wx.getWindowInfo(); + this.setData({ + statusBarHeight: win.statusBarHeight, + navBlockHeight: win.statusBarHeight + NAV_INNER_PX, + }); + this.applyAge(DEFAULT_AGE); }, - onAgeCardTap(e: WechatMiniprogram.TouchEvent) { - const minAge = Number(e.currentTarget.dataset.minAge); - const maxAge = Number(e.currentTarget.dataset.maxAge); - if (Number.isNaN(minAge) || Number.isNaN(maxAge)) return; - const title = `${minAge}-${maxAge}岁推荐`; - wx.navigateTo({ - url: `/pages/category/category?minAge=${minAge}&maxAge=${maxAge}&title=${encodeURIComponent(title)}`, + applyAge(key: AgeBandKey) { + const band = AGE_BANDS.find((b) => b.key === key); + const goalTitle = band ? `${band.label}能力目标` : '能力目标'; + this.setData({ + activeAgeKey: key, + goalTitle, + abilityItems: MOCK_ABILITY[key], }); }, + + onAgeTabTap(e: WechatMiniprogram.TouchEvent) { + const key = e.currentTarget.dataset.key as AgeBandKey | undefined; + if (!key) return; + this.applyAge(key); + }, + + onPracticeTap(e: WechatMiniprogram.TouchEvent) { + const title = e.currentTarget.dataset.title as string | undefined; + if (!title) return; + wx.showToast({ title: `即将前往:${title}`, icon: 'none' }); + }, + + onRecommendMore() { + wx.switchTab({ url: '/pages/home/home' }); + }, + + onRecommendTap(e: WechatMiniprogram.TouchEvent) { + const title = e.currentTarget.dataset.title as string | undefined; + if (!title) return; + wx.showToast({ title: `去看看:${title}`, icon: 'none' }); + }, }); diff --git a/miniprogram/pages/age/age.wxml b/miniprogram/pages/age/age.wxml index c6dcfb5..f3f36c5 100644 --- a/miniprogram/pages/age/age.wxml +++ b/miniprogram/pages/age/age.wxml @@ -1,31 +1,110 @@ - - 分龄推荐 - 按年龄段挑选适合的练习单,循序渐进更省心 - - - - - - {{item.emoji}} - - - {{item.label}} - {{item.desc}} - {{item.count}} 个练习 - + + + 按年龄学 - - 🦆 - 建议家长根据孩子当前能力微调难度,不必严格按年龄划分哦~ + + + + + + {{item.rangeText}} + {{item.subLabel}} + + + + + + + + + + + {{goalTitle}} + + + + + {{item.icon}} + {{item.title}} + + {{item.desc}} + + + + + + + + 4 周推荐学习路线 + + 4 周 · 每周 3 练 + + + + + + 第 {{item.week}} 周 + {{item.theme}} + + + + {{ex.title}} + + 去练习 + + + + + + + + + + 为你推荐 + 更多 + + + + + + {{item.title}} + + + + diff --git a/miniprogram/pages/category/category.json b/miniprogram/pages/category/category.json deleted file mode 100644 index 2f4c910..0000000 --- a/miniprogram/pages/category/category.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "navigationBarTitleText": "分类", - "navigationBarTextStyle": "black", - "navigationBarBackgroundColor": "#ffffff", - "backgroundColor": "#F6F6F6", - "usingComponents": { - "worksheet-card": "../../components3.0/worksheet-card/worksheet-card", - "detail-card": "../../components3.0/detail-card/detail-card" - } -} diff --git a/miniprogram/pages/category/category.less b/miniprogram/pages/category/category.less deleted file mode 100644 index 968968a..0000000 --- a/miniprogram/pages/category/category.less +++ /dev/null @@ -1,81 +0,0 @@ -.category-page { - min-height: 100vh; - background: #f6f6f6; - padding-bottom: 48rpx; -} - -.category-page__header { - padding: 24rpx 32rpx 16rpx; - background: #fff; -} - -.category-page__header-title { - font-size: 34rpx; - font-weight: 600; - color: #333; -} - -.category-page__filters { - background: #fff; - padding: 24rpx; - margin-bottom: 16rpx; -} - -.category-page__filter-row { - display: flex; - flex-direction: row; - align-items: flex-start; - margin-bottom: 20rpx; -} - -.category-page__filter-row:last-child { - margin-bottom: 0; -} - -.category-page__filter-label { - flex-shrink: 0; - width: 72rpx; - font-size: 26rpx; - color: #999; - line-height: 56rpx; -} - -.category-page__pills { - flex: 1; - display: flex; - flex-direction: row; - flex-wrap: wrap; - gap: 16rpx; -} - -.category-page__pill { - font-size: 24rpx; - padding: 8rpx 20rpx; - border-radius: 24rpx; - background: #f5f5f5; - color: #333; -} - -.category-page__pill--active { - background: #f7ee47; - color: #333; -} - -.category-page__list { - display: flex; - flex-direction: column; -} - -.category-page__card-wrap { - margin: 0 24rpx 24rpx; -} - -.category-page__empty { - padding: 120rpx 48rpx; - text-align: center; -} - -.category-page__empty-text { - font-size: 28rpx; - color: #999; -} diff --git a/miniprogram/pages/category/category.ts b/miniprogram/pages/category/category.ts deleted file mode 100644 index a604814..0000000 --- a/miniprogram/pages/category/category.ts +++ /dev/null @@ -1,161 +0,0 @@ -import type { - WorksheetDefinition, - WorksheetType, -} from '../../core/models/worksheet'; -import { - getWorksheetPath, - getWorksheetsByAge, - getWorksheetsByCategory, -} from '../../core/data/worksheets'; - -type AgeFilterKey = 'all' | '3-4' | '4-5' | '5-6' | '6-7' | '7-8'; -type DiffFilterKey = 'all' | 'beginner' | 'basic' | 'intermediate'; - -const AGE_BAND: Record, [number, number]> = { - '3-4': [3, 4], - '4-5': [4, 5], - '5-6': [5, 6], - '6-7': [6, 7], - '7-8': [7, 8], -}; - -const DIFF_LABEL: Record = { - beginner: '入门', - basic: '基础', - intermediate: '进阶', - advanced: '进阶+', -}; - -type DisplayItem = WorksheetType & { - ageRangeLabel: string; - difficultyLabel: string; -}; - -function filterByAgeBand( - list: WorksheetType[], - band: AgeFilterKey, -): WorksheetType[] { - if (band === 'all') return list; - const [lo, hi] = AGE_BAND[band]; - const map = new Map(); - for (let age = lo; age <= hi; age += 1) { - getWorksheetsByAge(list, age).forEach((w) => map.set(w.id, w)); - } - return Array.from(map.values()); -} - -function filterByDifficulty( - list: WorksheetType[], - diff: DiffFilterKey, -): WorksheetType[] { - if (diff === 'all') return list; - return list.filter((w) => w.difficulty === diff); -} - -function toDisplayList(list: WorksheetType[]): DisplayItem[] { - return list.map((w) => ({ - ...w, - ageRangeLabel: - w.ageRange && w.ageRange.length === 2 - ? `${w.ageRange[0]}-${w.ageRange[1]}岁` - : '', - difficultyLabel: w.difficulty ? DIFF_LABEL[w.difficulty] || '' : '', - })); -} - -Page({ - data: { - title: '分类', - sourceItems: [] as WorksheetDefinition[], - items: [] as DisplayItem[], - ageFilters: [ - { key: 'all', label: '全部' }, - { key: '3-4', label: '3-4岁' }, - { key: '4-5', label: '4-5岁' }, - { key: '5-6', label: '5-6岁' }, - { key: '6-7', label: '6-7岁' }, - { key: '7-8', label: '7-8岁' }, - ], - diffFilters: [ - { key: 'all', label: '全部' }, - { key: 'beginner', label: '⭐ 入门' }, - { key: 'basic', label: '⭐⭐ 基础' }, - { key: 'intermediate', label: '⭐⭐⭐ 进阶' }, - ], - activeAge: 'all' as AgeFilterKey, - activeDiff: 'all' as DiffFilterKey, - }, - - onLoad(options: { - category?: string; - minAge?: string; - maxAge?: string; - title?: string; - }) { - const category = options.category || 'all'; - let base = getWorksheetsByCategory(category); - - const minAge = options.minAge != null ? Number(options.minAge) : NaN; - const maxAge = options.maxAge != null ? Number(options.maxAge) : NaN; - if (!Number.isNaN(minAge) && !Number.isNaN(maxAge)) { - const map = new Map(); - const lo = Math.min(minAge, maxAge); - const hi = Math.max(minAge, maxAge); - for (let age = lo; age <= hi; age += 1) { - getWorksheetsByAge(base, age).forEach((w) => map.set(w.id, w)); - } - base = Array.from(map.values()); - } - - const title = options.title - ? decodeURIComponent(options.title) - : '分类'; - - this.setData({ - title, - sourceItems: base, - }); - wx.setNavigationBarTitle({ title }); - this.applyFilters(); - }, - - applyFilters() { - const { sourceItems, activeAge, activeDiff } = this.data; - let next = filterByAgeBand(sourceItems, activeAge); - next = filterByDifficulty(next, activeDiff); - this.setData({ items: toDisplayList(next) }); - }, - - onAgeFilter(e: WechatMiniprogram.TouchEvent) { - const key = e.currentTarget.dataset.key as AgeFilterKey; - if (!key) return; - this.setData({ activeAge: key }, () => this.applyFilters()); - }, - - onDiffFilter(e: WechatMiniprogram.TouchEvent) { - const key = e.currentTarget.dataset.key as DiffFilterKey; - if (!key) return; - this.setData({ activeDiff: key }, () => this.applyFilters()); - }, - - buildWorksheetUrl(w: WorksheetType): string { - let url = getWorksheetPath(w); - if (!url) return ''; - if (w.mode) { - url += url.includes('?') ? `&mode=${w.mode}` : `?mode=${w.mode}`; - } - return url; - }, - - onCardTap(e: WechatMiniprogram.TouchEvent) { - const id = e.currentTarget.dataset.id as string; - const w = this.data.items.find((item) => item.id === id); - if (!w) return; - const url = this.buildWorksheetUrl(w); - if (!url) { - wx.showToast({ title: '暂无法打开', icon: 'none' }); - return; - } - wx.navigateTo({ url }); - }, -}); diff --git a/miniprogram/pages/category/category.wxml b/miniprogram/pages/category/category.wxml deleted file mode 100644 index 75f5793..0000000 --- a/miniprogram/pages/category/category.wxml +++ /dev/null @@ -1,58 +0,0 @@ - - - {{title}} - - - - - 年龄 - - - {{item.label}} - - - - - 难度 - - - {{item.label}} - - - - - - - - - - - - - 暂无符合条件的练习纸 - - diff --git a/miniprogram/pages/favorites/favorites.json b/miniprogram/pages/favorites/favorites.json index e0adf8d..b6ffb39 100644 --- a/miniprogram/pages/favorites/favorites.json +++ b/miniprogram/pages/favorites/favorites.json @@ -1,6 +1,10 @@ { + "navigationStyle": "custom", "navigationBarTitleText": "我的收藏", "navigationBarTextStyle": "black", - "navigationBarBackgroundColor": "#ffffff", - "backgroundColor": "#F6F6F6" + "navigationBarBackgroundColor": "#F8F0E0", + "backgroundColor": "#FEF6E7", + "usingComponents": { + "van-icon": "@vant/weapp/icon/index" + } } diff --git a/miniprogram/pages/favorites/favorites.less b/miniprogram/pages/favorites/favorites.less index 0a686bc..ce5dc07 100644 --- a/miniprogram/pages/favorites/favorites.less +++ b/miniprogram/pages/favorites/favorites.less @@ -1,88 +1,452 @@ -.favorites-page { +@import '../../style/theme3.less'; + +@fav-seg-track: #f0e7d6; +@fav-thumb-placeholder: #e5dcc9; +@fav-secondary-cta-bg: #ffc697; +@fav-secondary-cta-text: #6d3b00; +@fav-heart: #b02500; + +.fav-page { min-height: 100vh; - background: #f6f6f6; + background: @bg-page; + box-sizing: border-box; } -.favorites-page__title { - padding: 32rpx 32rpx 24rpx; - font-size: 40rpx; - font-weight: 600; - color: #333; - background: #fff; +.fav-nav { + position: fixed; + top: 0; + left: 0; + right: 0; + z-index: 100; + flex-shrink: 0; + background: fade(@bg-header, 82%); + backdrop-filter: blur(40rpx); + -webkit-backdrop-filter: blur(40rpx); + box-shadow: 0 2rpx 12rpx rgba(50, 46, 37, 0.05); } -.favorites-page__tabs { +.fav-nav__inner { + height: @nav-inner-height; display: flex; flex-direction: row; - background: #fff; - border-bottom: 1rpx solid #eee; + align-items: center; + justify-content: flex-start; + padding: 0 @page-padding-x; + box-sizing: border-box; } -.favorites-page__tab { - flex: 1; - text-align: center; - padding: 24rpx 0; - font-size: 30rpx; - color: #666; - position: relative; +.fav-nav__title { + font-size: @fs-nav-title; + font-weight: @fw-nav-title; + color: @color-nav-title; + letter-spacing: @ls-nav-title; } -.favorites-page__tab--active { - color: #333; +.fav-nav__actions { + display: flex; + flex-direction: row; + align-items: center; + justify-content: flex-end; + min-width: 120rpx; +} + +.fav-nav__icon-btn { + display: flex; + align-items: center; + justify-content: center; + padding: 8rpx; + border-radius: 50%; +} + +.fav-nav__clear { + font-size: 26rpx; font-weight: 600; + color: fade(@text-selected-btn, 65%); + padding: 12rpx 20rpx; + border-radius: 999rpx; } -.favorites-page__tab--active::after { - content: ''; +.fav-scroll { + box-sizing: border-box; + width: 100%; +} + +.fav-body { + padding: @section-gap-xs @page-padding-x; + padding-bottom: calc(48rpx + env(safe-area-inset-bottom) + 120rpx); + box-sizing: border-box; +} + +/* Segmented(Stitch 胶囊) */ +.fav-seg { + display: flex; + flex-direction: row; + align-items: stretch; + padding: 12rpx; + margin-bottom: @section-gap-sm; + border-radius: 999rpx; + background: @fav-seg-track; + box-shadow: @shadow; + box-sizing: border-box; +} + +.fav-seg__pill { + flex: 1; + display: flex; + align-items: center; + justify-content: center; + padding: 22rpx 16rpx; + border-radius: 999rpx; + box-sizing: border-box; +} + +.fav-seg__pill--active { + background: @brand; + box-shadow: @shadow; +} + +.fav-seg__text { + font-size: 26rpx; + font-weight: 700; + color: @text-secondary; +} + +.fav-seg__pill--active .fav-seg__text { + color: @text-selected-btn; +} + +/* 收藏列表卡片 */ +.fav-list { + display: flex; + flex-direction: column; + gap: 32rpx; +} + +.fav-card { + border-radius: @radius-lg; + box-sizing: border-box; +} + +.fav-card--row { + display: flex; + flex-direction: row; + align-items: center; + gap: 32rpx; + padding: 32rpx; + background: @bg-header; + box-shadow: @shadow; +} + +.fav-card__thumb { + width: 160rpx; + height: 160rpx; + border-radius: @radius; + flex-shrink: 0; + background: @fav-thumb-placeholder; +} + +.fav-card__main { + flex: 1; + min-width: 0; + display: flex; + flex-direction: column; + align-items: flex-start; + gap: 8rpx; +} + +.fav-card__title { + font-size: 32rpx; + font-weight: 700; + color: @text-title; + line-height: 1.25; +} + +.fav-card__meta { + display: flex; + flex-direction: row; + align-items: center; + flex-wrap: wrap; + gap: 4rpx; +} + +.fav-card__meta-text { + font-size: 22rpx; + color: @text-secondary; +} + +.fav-card__stars { + display: flex; + flex-direction: row; + align-items: center; + gap: 2rpx; +} + +.fav-card__badge { + margin-top: 4rpx; + font-size: 18rpx; + font-weight: 600; + color: @text-gray; + letter-spacing: 0.06em; + text-transform: uppercase; + padding: 6rpx 16rpx; + border-radius: 999rpx; + background: @fav-seg-track; +} + +.fav-card__heart { + flex-shrink: 0; + width: 80rpx; + height: 80rpx; + display: flex; + align-items: center; + justify-content: center; + border-radius: 50%; +} + +/* Bento 大卡 */ +.fav-card--bento { + position: relative; + overflow: hidden; + padding: 48rpx 140rpx 48rpx 40rpx; + background: @fav-seg-track; + box-shadow: @shadow; +} + +.fav-bento__content { + position: relative; + z-index: 1; +} + +.fav-bento__title { + font-size: 36rpx; +} + +.fav-bento__meta { + font-size: 26rpx; + color: @text-secondary; + margin-top: 8rpx; + margin-bottom: 28rpx; + line-height: 1.4; +} + +.fav-bento__tags { + display: flex; + flex-direction: row; + flex-wrap: wrap; + gap: 16rpx; +} + +.fav-bento__tag { + padding: 8rpx 22rpx; + border-radius: 999rpx; + font-size: 20rpx; + font-weight: 700; + color: @fav-secondary-cta-text; + background: rgba(255, 255, 255, 0.55); +} + +.fav-bento__deco { position: absolute; - left: 50%; - bottom: 0; - transform: translateX(-50%); - width: 48rpx; - height: 6rpx; - background: #f7ee47; - border-radius: 3rpx; + right: -40rpx; + bottom: -48rpx; + z-index: 0; + pointer-events: none; } -.favorites-page__empty { +.fav-bento__heart { + position: absolute; + top: 40rpx; + right: 32rpx; + z-index: 2; + width: 80rpx; + height: 80rpx; + display: flex; + align-items: center; + justify-content: center; + border-radius: 50%; +} + +/* 底部去发现 */ +.fav-cta { + margin-top: @section-gap; + padding: 48rpx 0 24rpx; display: flex; flex-direction: column; align-items: center; - justify-content: center; - padding: 120rpx 48rpx 0; } -.favorites-page__emoji { - font-size: 96rpx; - line-height: 1.2; +.fav-cta__hint { + font-size: 26rpx; + font-weight: 600; + color: @text-gray; +} + +.fav-cta__btn { + margin-top: 32rpx; + padding: 22rpx 64rpx; + border-radius: 999rpx; + font-size: 26rpx; + font-weight: 700; + background: @fav-secondary-cta-bg !important; + color: @fav-secondary-cta-text !important; + border: none !important; + box-shadow: @shadow; +} + +.fav-cta__btn::after { + border: none; +} + +/* 下载历史 */ +.fav-dl { + display: flex; + flex-direction: column; + gap: 16rpx; +} + +.fav-dl__section-label { + display: block; + font-size: 22rpx; + font-weight: 700; + color: @text-gray; + letter-spacing: 0.2em; + text-transform: uppercase; + padding: 8rpx 16rpx 16rpx; +} + +.fav-dl__items { + display: flex; + flex-direction: column; + gap: 32rpx; margin-bottom: 32rpx; } -.favorites-page__empty-msg { - margin-bottom: 48rpx; +.fav-dl-row { + display: flex; + flex-direction: row; + align-items: center; + gap: 32rpx; + padding: 32rpx; + background: @bg-header; + border-radius: @radius-lg; + box-shadow: @shadow; + box-sizing: border-box; } -.favorites-page__empty-line { - display: block; - font-size: 28rpx; - color: #666; - text-align: center; - line-height: 1.6; - margin-bottom: 8rpx; +.fav-dl-row--muted { + opacity: 0.92; } -.favorites-page__btn { - width: 280rpx; - height: 80rpx; - line-height: 80rpx; - background: #f7ee47; - color: #333; +.fav-dl-row__thumb { + width: 160rpx; + height: 160rpx; + border-radius: @radius; + flex-shrink: 0; + background: @fav-thumb-placeholder; +} + +.fav-dl-row__thumb--ph { + display: flex; + align-items: center; + justify-content: center; + background: linear-gradient(145deg, @fav-secondary-cta-bg 0%, fade(@brand, 35%) 100%); +} + +.fav-dl-row__main { + flex: 1; + min-width: 0; +} + +.fav-dl-row__title { + font-size: 32rpx; + font-weight: 700; + color: @text-title; + line-height: 1.25; + margin-bottom: 12rpx; +} + +.fav-dl-row__meta { + display: flex; + flex-direction: row; + align-items: center; + flex-wrap: wrap; + gap: 12rpx; + font-size: 26rpx; + color: fade(@text-secondary, 88%); +} + +.fav-dl-row__time { + color: fade(@text-secondary, 88%); +} + +.fav-dl-row__dot { + width: 8rpx; + height: 8rpx; + border-radius: 50%; + background: @text-gray; + opacity: 0.45; +} + +.fav-dl-row__status { + color: fade(@text-secondary, 65%); +} + +.fav-dl-row__status--hi { + color: #006b1b; + font-weight: 600; +} + +.fav-dl-row__more { + flex-shrink: 0; + width: 72rpx; + height: 72rpx; + display: flex; + align-items: center; + justify-content: center; + border-radius: 50%; +} + +/* 空状态 */ +.fav-empty { + display: flex; + flex-direction: column; + align-items: center; + padding: 120rpx 32rpx 64rpx; +} + +.fav-empty__emoji { + font-size: 100rpx; + margin-bottom: 24rpx; +} + +.fav-empty__icon { + margin-bottom: 24rpx; +} + +.fav-empty__msg { font-size: 30rpx; font-weight: 600; - border-radius: 40rpx; + color: @text-title; + margin-bottom: 12rpx; +} + +.fav-empty__sub { + font-size: 26rpx; + color: @text-secondary; + margin-bottom: 40rpx; + text-align: center; +} + +.fav-empty__btn { + padding: 20rpx 56rpx; + border-radius: 999rpx; + font-size: 28rpx; + font-weight: 700; + background: @brand; + color: @text-selected-btn; border: none; } -.favorites-page__btn::after { +.fav-empty__btn::after { border: none; -} +} \ No newline at end of file diff --git a/miniprogram/pages/favorites/favorites.ts b/miniprogram/pages/favorites/favorites.ts index 78f8855..6ebcc71 100644 --- a/miniprogram/pages/favorites/favorites.ts +++ b/miniprogram/pages/favorites/favorites.ts @@ -1,10 +1,136 @@ +import { NAV_INNER_PX } from '../../utils/navMetrics'; + type FavoritesTab = 'favorites' | 'downloads'; +type FavoriteItem = + | { + id: string; + variant: 'standard'; + title: string; + metaLine: string; + stars: number; + timeBadge: string; + thumb: string; + } + | { + id: string; + variant: 'featured'; + title: string; + metaLine: string; + tags: string[]; + }; + +type DownloadRow = { + id: string; + title: string; + time: string; + status: string; + statusHighlight: boolean; + thumb?: string; + placeholder?: 'draw'; +}; + +type DownloadSection = { + key: string; + label: string; + items: DownloadRow[]; +}; + +const MOCK_FAVORITES: FavoriteItem[] = [ + { + id: '1', + variant: 'standard', + title: '10以内加法', + metaLine: '数学启蒙 · 4-6岁 · ', + stars: 2, + timeBadge: '收藏于 3 天前', + thumb: 'https://lh3.googleusercontent.com/aida-public/AB6AXuD7khp0rJABfa9yFrMt9ZgIhAPyN44XmJ2pXNBgCzbgBvwA5ptFZVty013JedVzbE9_VvCQnToN7QETLDKjtiX22igzK-a5h4E8wjKrembFW4eVuk1RsJIbHjx3_cCz0hJ7_t76hF8t-Qdod_5R9sNMor1ZEjf6dGNp6UI_eIBjsN9b22iCTJ2VB-IEh0Rmil6_iC4Og-4I03IcQDV2rTHYIXcZxjiay1IiYGXw3wJ3bfo2SF2N7ZFT00akTgYU-9JyF7xJ6n15Yzc', + }, + { + id: '2', + variant: 'standard', + title: '图形连连看', + metaLine: '逻辑思维 · 3-5岁 · ', + stars: 1, + timeBadge: '收藏于 5 天前', + thumb: 'https://lh3.googleusercontent.com/aida-public/AB6AXuBY_0Rr153ZBT4IHcMyFtrcgl-y2ZRyVnOuGecnn7f4PZKoAx2lOuCorsMmfRa72s0JmbXrt4XT3QU1x7cIbZUyhv_EXwCfMaNxtkHc-ymIBIQ5jqm5oiQebrEWH4kjv14JdkCiziT4xzac4TdVN5yqpk7Wlg80QBl_ldDmAQqIgcUeN2PvlVvhmpOYmFeWE2HS3I_e4vV1J8s_cfV9_4g7y8SbxlSfnTmgQNeXrVbcdwaNEAGQWp92Iif0d2pVIqdfuUHO1pTw8oQ', + }, + { + id: '3', + variant: 'standard', + title: '拼音字母认读', + metaLine: '语文基础 · 5-7岁 · ', + stars: 3, + timeBadge: '收藏于 1 周前', + thumb: 'https://lh3.googleusercontent.com/aida-public/AB6AXuC54mXQ8620XwIsWmUHBHJGdmpF8uE4cSYxwR2NLJTsa6gYdTCHz2tqrKbGOye-y0CGgCPPWwJXzEuB2ZYrQ3CWWPlamvbjhTUDYf8yoA9Lyapll1t2w17AqzSHrbBPNFrq931IUCis64b51kslQZoq3c0KslZsBQiky-YSnuE7xUuNsgiF4hOak_ReFFufWE53h1sPkjHFeRM-H34b-e1MCNxGObGPhI0mNlJ_qz0c8aCuS-jdnDocSvIYda-iVcJLWcIT-mO6klw', + }, + { + id: '4', + variant: 'featured', + title: '趣味英语单词卡', + metaLine: '语言学习 · 4-8岁 · ⭐⭐⭐', + tags: ['畅销经典', '全彩打印'], + }, +]; + +const MOCK_DOWNLOADS: DownloadSection[] = [ + { + key: 'today', + label: '今天', + items: [ + { + id: 'd1', + title: '拼音描红 · 声母表', + time: '14:32', + status: '已保存相册', + statusHighlight: true, + thumb: 'https://lh3.googleusercontent.com/aida-public/AB6AXuBCm6X4rhibw2_WxP-U0dDyOsiYol3y12OnEXHRkPONZYMQBUcr3Grqo1IbwH3sdWPg5jIUeIbr_AEwv_hFwUOMMz9jTIIMc6Pke1bzSvlQcgdDq-zMEIU4A--IQFX59ac-8BscCajXZcd4v8rE6JEZFf1-aztKclPTkE_Rrgj-nbVCy5V6bOE6yDOB67VdTbcqiOdaFN18ju_MgWVo3FQZLwIUZOBahkPl0vDIKA0mkiaGK9eiFpfnERYxkYG3eWJZ40umTYp46Jo', + }, + { + id: 'd2', + title: '趣味口算题卡', + time: '09:15', + status: '已下载 PDF', + statusHighlight: false, + thumb: 'https://lh3.googleusercontent.com/aida-public/AB6AXuBxNORxN_vftYMLaMjZVscL-o9bZnBrfUi7IAqOrFATIztGV12_0ggwgae-fmk0cORWtysZWJJDcAzj0NEyniFxbREoGDuq9U4kytprJkA70_k0MCzPgStmq0bRwu1Gx1j4peglFam8PH6IlPvOMbiHQ7-fMFfYTSBtA1p7Dp06NDOzS2VrMlF8VxjEgihVmhHUrHePVvXlktUkXBKNzrXEXrogO3iOyouTUKyvJh0TeChKUv3KohMoD5ol7C3fjBhdHf7QD4StOQ4', + }, + ], + }, + { + key: 'yesterday', + label: '昨天', + items: [ + { + id: 'd3', + title: '汉字笔画基础训练', + time: '16:40', + status: '已发送邮件', + statusHighlight: false, + placeholder: 'draw', + }, + ], + }, +]; + Page({ data: { + statusBarHeight: 0, + navBlockHeight: 0, + /** 纵向 scroll-view 可视高度(窗口高 − 顶栏占位,避免内容滚入导航下) */ + favScrollHeight: 0, activeTab: 'favorites' as FavoritesTab, - favoriteList: [] as unknown[], - downloadList: [] as unknown[], + favoriteList: MOCK_FAVORITES as FavoriteItem[], + downloadSections: MOCK_DOWNLOADS as DownloadSection[], + }, + + onLoad() { + const win = wx.getWindowInfo(); + const navBlockHeight = win.statusBarHeight + NAV_INNER_PX; + this.setData({ + statusBarHeight: win.statusBarHeight, + navBlockHeight, + favScrollHeight: win.windowHeight - navBlockHeight, + }); }, onShow() { @@ -24,4 +150,33 @@ Page({ onDiscoverTap() { wx.switchTab({ url: '/pages/home/home' }); }, + + onSearchTap() { + wx.showToast({ title: '搜索功能开发中', icon: 'none' }); + }, + + onRemoveFavorite(e: WechatMiniprogram.TouchEvent) { + const id = e.currentTarget.dataset.id as string | undefined; + if (!id) return; + const list = (this.data.favoriteList as FavoriteItem[]).filter((item) => item.id !== id); + this.setData({ favoriteList: list }); + wx.showToast({ title: '已取消收藏', icon: 'none' }); + }, + + onClearHistory() { + wx.showModal({ + title: '清空下载历史', + content: '确定清空本地展示的历史记录吗?', + success: (res) => { + if (!res.confirm) return; + this.setData({ downloadSections: [] }); + wx.showToast({ title: '已清空', icon: 'none' }); + }, + }); + }, + + onDownloadMore(e: WechatMiniprogram.TouchEvent) { + const id = e.currentTarget.dataset.id as string | undefined; + wx.showToast({ title: id ? `更多操作:${id}` : '更多', icon: 'none' }); + }, }); diff --git a/miniprogram/pages/favorites/favorites.wxml b/miniprogram/pages/favorites/favorites.wxml index 0b37144..53925aa 100644 --- a/miniprogram/pages/favorites/favorites.wxml +++ b/miniprogram/pages/favorites/favorites.wxml @@ -1,38 +1,216 @@ - - 我的收藏 - - - - 收藏的题型 - - - 下载历史 + + + + 我的收藏 - - 🦆 - - 鸭丫还没找到收藏呢 - 去发现好玩的练习纸吧~ - - - + + + + + 收藏的题型 + + + 下载历史 + + - - 🦆 - - 还没有下载记录哦 - 快去生成练习纸吧~ + + + + 🦆 + 鸭丫还没找到收藏呢 + 去发现好玩的练习纸吧~ + + + + + + + + {{item.title}} + + {{item.metaLine}} + + + + + + + {{item.timeBadge}} + + + + + + + + {{item.title}} + {{item.metaLine}} + + # {{tag}} + + + + + + + + + + + 发现更多有趣的内容? + + + + + + + + + 暂无下载记录 + + + + + + + + + + + + + {{row.title}} + + + {{row.time}} + + {{row.status}} + + + + + + + + + + - - + diff --git a/miniprogram/pages/home/home.data.ts b/miniprogram/pages/home/home.data.ts new file mode 100644 index 0000000..f0b070f --- /dev/null +++ b/miniprogram/pages/home/home.data.ts @@ -0,0 +1,748 @@ +import { AGE_BANDS } from '../../core/data/difficulty'; + +export type HomeDisplayItem = { + id: string; + title: string; + subtitle: string; + description?: string; + category: 'math' | 'chinese' | 'english' | 'puzzle' | 'craft'; + ageBand: string; + difficulty: '入门' | '基础' | '进阶' | '挑战'; + icon: string; + badge?: string; + path: string; + available: boolean; + source?: string; +}; + +export type HomeDisplaySection = { + id: string; + title: string; + subtitle: string; + morePath?: string; + items: HomeDisplayItem[]; +}; + +export type HomeDisplayDataset = { + searchPlaceholder: string; + categoryTabs: Array<{ + id: string; + name: string; + path?: string; + }>; + ageBands: Array<{ + key: string; + label: string; + desc: string; + path: string; + }>; + featured: HomeDisplayItem[]; + hot: HomeDisplayItem[]; + sections: HomeDisplaySection[]; +}; + +const HOME_CATEGORY_TABS = [ + { id: 'all', name: '全部' }, + { id: 'math', name: '数感启蒙' }, + { id: 'puzzle', name: '益智游戏' }, + { id: 'chinese', name: '趣味识字' }, + { id: 'english', name: '英语启蒙' }, + { id: 'craft', name: '创意手工' }, +] as const; + +const HOME_AGE_BANDS = AGE_BANDS.map((item, index) => ({ + key: item.key, + label: item.label, + desc: ['启蒙认知', '基础练习', '能力提升', '幼小衔接', '知识拓展'][index], + path: '/pages/age/age', +})); + +export const HOME_PRODUCT_TARGET_DATA: HomeDisplayDataset = { + searchPlaceholder: '搜索你喜欢的练习册...', + categoryTabs: [...HOME_CATEGORY_TABS], + ageBands: HOME_AGE_BANDS, + featured: [ + { + id: 'target-featured-1', + title: '圣诞主题涂色卡', + subtitle: '节日限定创意内容', + description: '首页推荐位示例,强调季节热点与真实打印效果。', + category: 'craft', + ageBand: '3-8岁', + difficulty: '入门', + icon: '🎄', + badge: 'NEW', + path: '', + available: false, + source: '产品设计文档 5.1 今日推荐', + }, + { + id: 'target-featured-2', + title: '走迷宫大挑战', + subtitle: '热门趣味训练', + description: '产品规划中的高趣味内容,用于首页焦点推荐。', + category: 'puzzle', + ageBand: '4-7岁', + difficulty: '进阶', + icon: '🌀', + badge: 'HOT', + path: '', + available: false, + source: '产品设计文档 P2-22', + }, + { + id: 'target-featured-3', + title: '拼音描红', + subtitle: '幼小衔接高频内容', + description: '语文模块重点新增内容,适合推荐位曝光。', + category: 'chinese', + ageBand: '5-7岁', + difficulty: '基础', + icon: '🔤', + badge: '推荐', + path: '', + available: false, + source: '产品设计文档 P1-12', + }, + ], + hot: [ + { + id: 'target-hot-1', + title: '迷宫', + subtitle: '高趣味路径探索', + category: 'puzzle', + ageBand: '4-7岁', + difficulty: '进阶', + icon: '🧭', + badge: '热门', + path: '', + available: false, + source: '产品设计文档 5.1 热门下载', + }, + { + id: 'target-hot-2', + title: '涂色卡', + subtitle: '动物与节日主题', + category: 'craft', + ageBand: '3-6岁', + difficulty: '入门', + icon: '🎨', + badge: '热门', + path: '', + available: false, + source: '产品设计文档 P3-29', + }, + { + id: 'target-hot-3', + title: '加减法', + subtitle: '家长高频打印内容', + category: 'math', + ageBand: '5-7岁', + difficulty: '基础', + icon: '➕', + badge: '热门', + path: '/mathPages/addition/addition', + available: true, + source: '现有加减法页面可承接', + }, + ], + sections: [ + { + id: 'math', + title: '数学启蒙', + subtitle: '数字认知、计数练习、加减运算、时钟与形状', + morePath: '/pages/mathIndex/mathIndex', + items: [ + { + id: 'target-math-1', + title: '数字认知', + subtitle: '认识数字 1-10', + category: 'math', + ageBand: '3-4岁', + difficulty: '入门', + icon: '🔢', + path: '/mathPages/numberFind/numberFind', + available: true, + source: '现有 找数字/写数字 能力', + }, + { + id: 'target-math-2', + title: '计数练习', + subtitle: '数一数、连一连、选一选', + category: 'math', + ageBand: '4-5岁', + difficulty: '基础', + icon: '🧮', + path: '/mathPages/countMatch/countMatch', + available: true, + source: '现有 countMatch/countingSelect', + }, + { + id: 'target-math-3', + title: '加减运算', + subtitle: '从 5 以内到 100 以内', + category: 'math', + ageBand: '5-7岁', + difficulty: '基础', + icon: '➕', + path: '/mathPages/addition/addition', + available: true, + source: '现有 addition/calculationPractice', + }, + { + id: 'target-math-4', + title: '时钟练习', + subtitle: '认识钟表与时间', + category: 'math', + ageBand: '5-7岁', + difficulty: '进阶', + icon: '🕒', + path: '', + available: false, + source: '产品设计文档 P1-7', + }, + { + id: 'target-math-5', + title: '形状认知', + subtitle: '图形分类与空间感', + category: 'math', + ageBand: '3-5岁', + difficulty: '入门', + icon: '📐', + path: '', + available: false, + source: '产品设计文档 3.1 信息架构', + }, + ], + }, + { + id: 'chinese', + title: '语文启蒙', + subtitle: '识字、练字、拼音、表达训练', + morePath: '/pages/index/index', + items: [ + { + id: 'target-chinese-1', + title: '识字卡', + subtitle: '自定义汉字卡片', + category: 'chinese', + ageBand: '3-6岁', + difficulty: '入门', + icon: '📖', + path: '/pages/index/index', + available: true, + source: '现有识字页', + }, + { + id: 'target-chinese-2', + title: '练字帖', + subtitle: '田字格笔顺练习', + category: 'chinese', + ageBand: '4-7岁', + difficulty: '基础', + icon: '✏️', + path: '/pages/copyBook/copyBook', + available: true, + source: '现有练字页', + }, + { + id: 'target-chinese-3', + title: '拼音练习', + subtitle: '声母韵母描红', + category: 'chinese', + ageBand: '5-7岁', + difficulty: '基础', + icon: '🔤', + path: '', + available: false, + source: '产品设计文档 P1-12', + }, + { + id: 'target-chinese-4', + title: '看图说话', + subtitle: '图片引导表达', + category: 'chinese', + ageBand: '5-7岁', + difficulty: '进阶', + icon: '🗣️', + path: '', + available: false, + source: '产品设计文档 P1-15', + }, + ], + }, + { + id: 'english', + title: '英语启蒙', + subtitle: '字母学习、闪卡、描红与自然拼读', + items: [ + { + id: 'target-english-1', + title: '字母描红', + subtitle: 'A-Z 大小写练习', + category: 'english', + ageBand: '4-6岁', + difficulty: '入门', + icon: '🔠', + path: '', + available: false, + source: '产品设计文档 P1-17', + }, + { + id: 'target-english-2', + title: '字母闪卡', + subtitle: '字母与单词联想', + category: 'english', + ageBand: '3-6岁', + difficulty: '入门', + icon: '🪪', + path: '', + available: false, + source: '产品设计文档 P1-18', + }, + { + id: 'target-english-3', + title: '自然拼读练习纸', + subtitle: 'CVC 单词启蒙', + category: 'english', + ageBand: '5-7岁', + difficulty: '进阶', + icon: '🔡', + path: '', + available: false, + source: '产品设计文档 P1-21', + }, + ], + }, + { + id: 'puzzle', + title: '益智游戏', + subtitle: '迷宫、找不同、连线、数独与控笔', + morePath: '/pages/focusIndex/focusIndex', + items: [ + { + id: 'target-puzzle-1', + title: '迷宫', + subtitle: '不同难度路径挑战', + category: 'puzzle', + ageBand: '4-7岁', + difficulty: '进阶', + icon: '🌀', + path: '', + available: false, + source: '产品设计文档 P2-22', + }, + { + id: 'target-puzzle-2', + title: '找不同', + subtitle: '观察力与专注力训练', + category: 'puzzle', + ageBand: '4-7岁', + difficulty: '进阶', + icon: '🔍', + path: '', + available: false, + source: '产品设计文档 P2-23', + }, + { + id: 'target-puzzle-3', + title: '连线题', + subtitle: '数字点连线与物品连线', + category: 'puzzle', + ageBand: '4-6岁', + difficulty: '基础', + icon: '🧵', + path: '/focusPages/dotConnect/dotConnect', + available: true, + source: '现有 dotConnect/matchConnect', + }, + { + id: 'target-puzzle-4', + title: '数独入门', + subtitle: '4x4 / 6x6 逻辑启蒙', + category: 'puzzle', + ageBand: '6-8岁', + difficulty: '挑战', + icon: '🧠', + path: '', + available: false, + source: '产品设计文档 P2-24', + }, + ], + }, + { + id: 'craft', + title: '创意手工', + subtitle: '涂色卡、折纸、贴纸和主题手工', + items: [ + { + id: 'target-craft-1', + title: '涂色卡', + subtitle: '动物、交通、节日主题', + category: 'craft', + ageBand: '3-6岁', + difficulty: '入门', + icon: '🎨', + path: '', + available: false, + source: '产品设计文档 P3-29', + }, + { + id: 'target-craft-2', + title: '折纸模板', + subtitle: '打印后即可折叠', + category: 'craft', + ageBand: '4-7岁', + difficulty: '基础', + icon: '🪭', + path: '', + available: false, + source: '产品设计文档 P3-30', + }, + { + id: 'target-craft-3', + title: '贴纸打印', + subtitle: '奖励贴纸与装饰贴纸', + category: 'craft', + ageBand: '3-8岁', + difficulty: '入门', + icon: '⭐', + path: '', + available: false, + source: '产品设计文档 P3-33', + }, + ], + }, + ], +}; + +export const HOME_CURRENT_CAPABILITY_DATA: HomeDisplayDataset = { + searchPlaceholder: '搜索你喜欢的练习册...', + categoryTabs: [...HOME_CATEGORY_TABS], + ageBands: HOME_AGE_BANDS, + featured: [ + { + id: 'current-featured-1', + title: '10以内加减法', + subtitle: '最适合首页推荐的高频内容', + description: '现有数学能力中最接近产品文档“热门下载”的内容。', + category: 'math', + ageBand: '5-6岁', + difficulty: '基础', + icon: '➕', + badge: 'HOT', + path: '/mathPages/addition/addition', + available: true, + source: '现有功能清单 addition', + }, + { + id: 'current-featured-2', + title: '涂色识字卡', + subtitle: '兼顾识字与趣味涂色', + description: '当前最接近创意内容的主包能力,可承接语文与创意入口。', + category: 'chinese', + ageBand: '3-6岁', + difficulty: '入门', + icon: '📚', + badge: '推荐', + path: '/pages/index/index', + available: true, + source: '现有识字页', + }, + { + id: 'current-featured-3', + title: '数字点连线', + subtitle: '用连点成图提升专注力', + description: '能承担产品文档中“益智游戏”内容氛围。', + category: 'puzzle', + ageBand: '4-6岁', + difficulty: '基础', + icon: '🔗', + badge: '热门', + path: '/focusPages/dotConnect/dotConnect', + available: true, + source: '现有功能清单 dot-connect', + }, + ], + hot: [ + { + id: 'current-hot-1', + title: '找数字,涂一涂', + subtitle: '低龄启蒙高频内容', + category: 'math', + ageBand: '3-4岁', + difficulty: '入门', + icon: '🔢', + badge: '热门', + path: '/mathPages/numberFind/numberFind', + available: true, + source: 'number-find', + }, + { + id: 'current-hot-2', + title: '数一数,连一连', + subtitle: '点数和数字对应', + category: 'math', + ageBand: '4-5岁', + difficulty: '基础', + icon: '🧮', + badge: '热门', + path: '/mathPages/countMatch/countMatch', + available: true, + source: 'counting-matching', + }, + { + id: 'current-hot-3', + title: '格子仿画 5×5', + subtitle: '图形观察与耐心训练', + category: 'puzzle', + ageBand: '5-7岁', + difficulty: '进阶', + icon: '🟨', + badge: '热门', + path: '/focusPages/gridDrawing/gridDrawing', + available: true, + source: 'grid-drawing-5x5', + }, + ], + sections: [ + { + id: 'math', + title: '数感启蒙', + subtitle: '优先展示现有高价值、高覆盖的数感与运算内容', + morePath: '/pages/mathIndex/mathIndex', + items: [ + { + id: 'current-math-1', + title: '数字认知', + subtitle: '找数字、写数字', + category: 'math', + ageBand: '3-4岁', + difficulty: '入门', + icon: '🔢', + path: '/mathPages/numberFind/numberFind', + available: true, + source: 'number-find / number-write', + }, + { + id: 'current-math-2', + title: '计数练习', + subtitle: '数一数、连一连、选一选', + category: 'math', + ageBand: '4-5岁', + difficulty: '基础', + icon: '🧮', + path: '/mathPages/countMatch/countMatch', + available: true, + source: 'countMatch / countingSelect', + }, + { + id: 'current-math-3', + title: '数字序列', + subtitle: '数字排序与缺失填空', + category: 'math', + ageBand: '4-5岁', + difficulty: '基础', + icon: '📈', + path: '/mathPages/numberSort/numberSort', + available: true, + source: 'numberSort / missingNumber', + }, + { + id: 'current-math-4', + title: '加减运算', + subtitle: '5以内到100以内逐步进阶', + category: 'math', + ageBand: '5-7岁', + difficulty: '基础', + icon: '➕', + path: '/mathPages/addition/addition', + available: true, + source: 'addition / calculationPractice', + }, + { + id: 'current-math-5', + title: '乘法口诀', + subtitle: '九九乘法表启蒙', + category: 'math', + ageBand: '7-8岁', + difficulty: '挑战', + icon: '✖️', + path: '/mathPages/multiplicationTable/multiplicationTable', + available: true, + source: 'multiplicationTable', + }, + ], + }, + { + id: 'chinese', + title: '趣味识字', + subtitle: '用现有识字与练字能力先覆盖核心语文场景', + morePath: '/pages/index/index', + items: [ + { + id: 'current-chinese-1', + title: '识字卡', + subtitle: '最多 6 个汉字,自定义颜色', + category: 'chinese', + ageBand: '3-6岁', + difficulty: '入门', + icon: '📖', + path: '/pages/index/index', + available: true, + source: 'pages/index/index', + }, + { + id: 'current-chinese-2', + title: '找一找识字', + subtitle: '识字 find 模板,更接近游戏化练习', + category: 'chinese', + ageBand: '4-6岁', + difficulty: '基础', + icon: '🔍', + path: '/pages/index/index', + available: true, + source: '识字页 find 模板', + }, + { + id: 'current-chinese-3', + title: '笔顺练字帖', + subtitle: '田字格与笔顺描红', + category: 'chinese', + ageBand: '4-7岁', + difficulty: '基础', + icon: '✏️', + path: '/pages/copyBook/copyBook', + available: true, + source: 'pages/copyBook/copyBook', + }, + ], + }, + { + id: 'puzzle', + title: '益智游戏', + subtitle: '从现有专注力模块中抽取最符合产品重设计的内容', + morePath: '/pages/focusIndex/focusIndex', + items: [ + { + id: 'current-puzzle-1', + title: '数字点连线', + subtitle: '按顺序连点成图', + category: 'puzzle', + ageBand: '4-6岁', + difficulty: '基础', + icon: '🔗', + path: '/focusPages/dotConnect/dotConnect', + available: true, + source: 'dot-connect', + }, + { + id: 'current-puzzle-2', + title: '连连看', + subtitle: '物品配对与关系匹配', + category: 'puzzle', + ageBand: '4-6岁', + difficulty: '基础', + icon: '🧵', + path: '/focusPages/matchConnect/matchConnect', + available: true, + source: 'match-connect', + }, + { + id: 'current-puzzle-3', + title: '颜色找规律', + subtitle: '模式识别与推理', + category: 'puzzle', + ageBand: '4-6岁', + difficulty: '基础', + icon: '🌈', + path: '/focusPages/colorPattern/colorPattern', + available: true, + source: 'color-pattern', + }, + { + id: 'current-puzzle-4', + title: '方格推理', + subtitle: '逻辑关系与观察力', + category: 'puzzle', + ageBand: '5-7岁', + difficulty: '进阶', + icon: '🧠', + path: '/focusPages/gridReasoning/gridReasoning', + available: true, + source: 'grid-reasoning', + }, + { + id: 'current-puzzle-5', + title: '格子仿画', + subtitle: '3×3 / 5×5 / 7×7 逐级挑战', + category: 'puzzle', + ageBand: '4-7岁', + difficulty: '进阶', + icon: '🟨', + path: '/focusPages/gridDrawing/gridDrawing', + available: true, + source: 'grid-drawing', + }, + ], + }, + { + id: 'craft', + title: '创意手工', + subtitle: '暂用最接近创意表达的现有能力承接展示位', + morePath: '/pages/index/index', + items: [ + { + id: 'current-craft-1', + title: '涂色识字卡', + subtitle: '在识字场景里提供涂色表达', + category: 'craft', + ageBand: '3-6岁', + difficulty: '入门', + icon: '🎨', + path: '/pages/index/index', + available: true, + source: '现有识字卡着色能力', + }, + { + id: 'current-craft-2', + title: '字帖打印', + subtitle: '打印后可反复练习', + category: 'craft', + ageBand: '4-7岁', + difficulty: '基础', + icon: '🖌️', + path: '/pages/copyBook/copyBook', + available: true, + source: '练字页打印能力', + }, + ], + }, + { + id: 'english', + title: '英语启蒙', + subtitle: + '当前暂无真实英语页面,先保留结构占位,便于首页保持完整信息架构', + items: [ + { + id: 'current-english-1', + title: '英语启蒙即将上线', + subtitle: '字母描红、闪卡、自然拼读', + category: 'english', + ageBand: '4-7岁', + difficulty: '入门', + icon: '🔤', + badge: 'Soon', + path: '', + available: false, + source: '产品目标结构保留位', + }, + ], + }, + ], +}; + +export const HOME_DISPLAY_DATA = { + productTarget: HOME_PRODUCT_TARGET_DATA, + currentCapability: HOME_CURRENT_CAPABILITY_DATA, +} as const; diff --git a/miniprogram/pages/home/home.less b/miniprogram/pages/home/home.less index 32b4d36..3b9562e 100644 --- a/miniprogram/pages/home/home.less +++ b/miniprogram/pages/home/home.less @@ -1,7 +1,5 @@ @import '../../style/theme3.less'; -@home-padding: 28rpx; -@home-section-mt: 48rpx; @home-track-gap: 16rpx; .home-page { @@ -10,16 +8,23 @@ padding-bottom: 48rpx; box-sizing: border-box; color: @text-secondary; - // padding: 0 24rpx 48rpx; } .home-nav { - background: @bg-header; + position: fixed; + top: 0; + left: 0; + right: 0; + z-index: 100; + background: fade(@bg-header, 85%); + backdrop-filter: blur(40rpx); + -webkit-backdrop-filter: blur(40rpx); + box-shadow: 0 2rpx 12rpx rgba(50, 46, 37, 0.05); box-sizing: content-box; } .home-nav__inner { - height: 44px; + height: @nav-inner-height; display: flex; flex-direction: row; align-items: center; @@ -35,15 +40,21 @@ } .home-nav__name { - font-size: 17px; - font-weight: 700; - color: @text-title; + font-size: @fs-nav-title; + font-weight: @fw-nav-title; + color: @color-nav-title; + letter-spacing: @ls-nav-title; line-height: 1; } +.home-body { + width: 100%; + box-sizing: border-box; +} + .home-search-wrap { - margin-top: 28rpx; - padding: 0 @home-padding; + margin-top: @section-gap-xs; + padding: 0 @page-padding-x; box-sizing: border-box; } @@ -70,26 +81,117 @@ } .home-tabs-wrap { - margin-top: 48rpx; + margin-top: @section-gap; } .home-hero-placeholder { - // margin: 8rpx auto 0; - margin: 48rpx 24rpx 0; - // width: 684rpx; + margin: @section-gap @page-padding-x 0; height: 480rpx; border-radius: 40rpx; background: rgba(50, 46, 37, 0.04); } -.home-section-panel { - margin-top: @home-section-mt; - padding: 0 @home-padding; - box-sizing: border-box; +.home-track-row--hero { + padding-left: @page-padding-x; + padding-top: 24rpx; + padding-bottom: 24rpx; } -.home-section-panel--hot { - margin-top: @home-section-mt; +.home-hero-card { + width: 560rpx; + flex-shrink: 0; + border-radius: 32rpx; + /* 让阴影不被自身 overflow: hidden 裁切 */ + overflow: visible; + background: #ffffff; + box-shadow: 0 10rpx 28rpx rgba(50, 46, 37, 0.08); +} + +.home-hero-card__top { + height: 260rpx; + position: relative; + display: flex; + align-items: center; + justify-content: center; + /* 顶部背景用自身圆角裁切,替代 card 的 overflow: hidden */ + border-top-left-radius: 32rpx; + border-top-right-radius: 32rpx; + overflow: hidden; +} + +.home-hero-card__icon { + font-size: 96rpx; + line-height: 1; +} + +.home-hero-card__badge { + position: absolute; + top: 24rpx; + right: 24rpx; + padding: 8rpx 18rpx; + border-radius: 999rpx; + background: rgba(50, 46, 37, 0.12); + font-size: 22rpx; + color: @text-title; + font-weight: 600; +} + +.home-hero-card__body { + padding: 28rpx @page-padding-inner-x 30rpx; +} + +.home-hero-card__title-row { + display: flex; + flex-direction: row; + align-items: baseline; + justify-content: space-between; + gap: 16rpx; + /* 允许 flex 子项在文本过长时正确截断 */ + min-width: 0; +} + +.home-hero-card__title { + font-size: 34rpx; + line-height: 1.35; + color: @text-title; + font-weight: 700; + margin: 0; + flex: 1; + min-width: 0; + /* 标题与 meta 同行:超出后省略号(避免高度抖动) */ + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; +} + +.home-hero-card__sub { + margin-top: 10rpx; + font-size: 24rpx; + line-height: 1.4; + color: @text-secondary; + /* 第二行:超出后省略号 */ + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; +} + + +.home-hero-card__meta { + margin: 0; + font-size: 22rpx; + color: @text-gray; + /* meta 也做单行截断,防止极端长文本把布局挤爆 */ + flex: 0 1 auto; + min-width: 0; + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; +} + +.home-section-panel { + margin-top: @section-gap; + padding: 0 @page-padding-x; + box-sizing: border-box; } .home-section-head { @@ -99,7 +201,7 @@ } .home-section-head__title { - font-size: 32rpx; + font-size: @fs-section-head-title; font-weight: 700; color: @text-title; } @@ -110,26 +212,27 @@ } .home-section-head__title--module { - font-size: 28rpx; + font-size: @fs-section-head-title; font-weight: 700; } .home-track-scroll { - margin-top: 24rpx; + margin-top: @section-gap-sm; width: 100%; white-space: nowrap; + padding: 16rpx 0 20rpx; + box-sizing: border-box; } .home-track-row { display: inline-flex; flex-direction: row; - gap: @home-track-gap; - padding-right: @home-padding; + gap: @section-gap-sm; + padding-right: @page-padding-x; } -/* 可视约 2.2 张:2*w + 2*gap + 0.2*w ≈ 屏宽减左右 padding */ .home-track-card { - width: calc((750rpx - 2 * @home-padding - 2 * @home-track-gap) / 2.2); + width: calc((750rpx - 2 * @page-padding-x - 2 * @home-track-gap) / 2.2); flex-shrink: 0; border-radius: 24rpx; overflow: hidden; @@ -150,7 +253,7 @@ } .home-track-card__body { - padding: 20rpx 18rpx 22rpx; + padding: 20rpx @page-padding-inner-x 22rpx; background: #ffffff; } @@ -177,7 +280,7 @@ } .home-age-scroll { - margin-top: 32rpx; + margin-top: @section-gap-sm; width: 100%; white-space: nowrap; } @@ -186,12 +289,11 @@ display: inline-flex; flex-direction: row; gap: 12rpx; - padding-right: @home-padding; + padding-right: @page-padding-x; } .home-age-item { - /* 目标:首屏露出 3.5 个(第 4 个露出约 50%) */ - width: calc((750rpx - 48rpx - 36rpx) / 3.5); + width: calc((750rpx - 2 * @page-padding-x - 36rpx) / 3.5); display: flex; flex-direction: column; align-items: center; @@ -225,17 +327,24 @@ white-space: nowrap; } +.home-age-item__desc { + margin-top: 8rpx; + font-size: 22rpx; + color: @text-gray; + white-space: nowrap; +} + .home-hot-list { - margin-top: 36rpx; + margin-top: @section-gap-sm; display: flex; flex-direction: column; - gap: 28rpx; + gap: @section-gap-stack; } .home-hot-card { background: #ffffff; border-radius: 24rpx; - padding: 24rpx; + padding: 24rpx @page-padding-inner-x; display: flex; align-items: center; gap: 20rpx; @@ -246,7 +355,6 @@ width: 144rpx; height: 144rpx; border-radius: 24rpx; - background: linear-gradient(140deg, #ad060f 0%, #d93b0d 40%, #a20606 100%); display: flex; align-items: center; justify-content: center; @@ -289,7 +397,7 @@ .home-hot-card__tag { font-size: 22rpx; color: @text-selected-btn; - background: #ffd709; + background: @brand; border-radius: 999rpx; padding: 4rpx 16rpx; } @@ -303,7 +411,7 @@ width: 56rpx; height: 56rpx; border-radius: 50%; - background: #ffd709; + background: @brand; color: #2b2b2b; font-size: 36rpx; line-height: 56rpx; @@ -311,6 +419,22 @@ flex-shrink: 0; } +.home-section-panel__sub { + margin-top: 10rpx; + font-size: 24rpx; + line-height: 1.5; + color: @text-gray; + display: block; +} + +.home-track-card__meta { + margin-top: 12rpx; + font-size: 22rpx; + color: @text-gray; + line-height: 1.3; + display: block; +} + .home-page .category-tabs { background: @bg-page; } @@ -321,7 +445,7 @@ } .home-page .category-tabs__pill--active { - background: #ffd709; + background: @brand; color: @text-selected-btn; font-weight: 600; } \ No newline at end of file diff --git a/miniprogram/pages/home/home.ts b/miniprogram/pages/home/home.ts index 006cc9b..f626fa1 100644 --- a/miniprogram/pages/home/home.ts +++ b/miniprogram/pages/home/home.ts @@ -1,169 +1,185 @@ -import { CATEGORIES } from '../../core/data/categories'; -import { AGE_BANDS, AgeBandKey } from '../../core/data/difficulty'; +import { NAV_INNER_PX } from '../../utils/navMetrics'; +import { + HOME_CURRENT_CAPABILITY_DATA, + type HomeDisplayItem, + type HomeDisplaySection, +} from './home.data'; -const CATEGORY_TABS = [ - { id: 'all', name: '全部' }, - ...CATEGORIES.map((c) => ({ id: c.id, name: c.name })), -]; +type AgeBandKey = string; -const AGE_BAND_ICONS = ['🌱', '🚀', '🎓', '🧠', '🏆'] as const; - -type HomeTrackCard = { +type HomeTab = { id: string; - title: string; - subtitle: string; + name: string; +}; + +type HomeAgeBandView = { + key: string; + label: string; + desc: string; + path: string; icon: string; +}; + +type HomeDisplayItemView = HomeDisplayItem & { topBg: string; }; -const MOCK_MATH_TRACK: HomeTrackCard[] = [ - { - id: 'm1', - title: '认识数字1-10', - subtitle: '启蒙第一课', - icon: '🔢', - topBg: '#fff3c4', - }, - { - id: 'm2', - title: '形状对对碰', - subtitle: '空间感训练', - icon: '📐', - topBg: '#f5e6dc', - }, - { - id: 'm3', - title: '数量比一比', - subtitle: '数感小游戏', - icon: '⚖️', - topBg: '#d8f0d0', - }, - { - id: 'm4', - title: '规律找一找', - subtitle: '逻辑思维', - icon: '🔍', - topBg: '#e8f4ff', - }, - { - id: 'm5', - title: '简单加减', - subtitle: '动手练一练', - icon: '➕', - topBg: '#fce4ec', - }, -]; +type HomeDisplaySectionView = HomeDisplaySection & { + anchorId: string; + items: HomeDisplayItemView[]; +}; -const MOCK_CHINESE_TRACK: HomeTrackCard[] = [ - { - id: 'c1', - title: '基础笔画连连看', - subtitle: '书法初体验', - icon: '🖌', - topBg: '#f5e6dc', - }, - { - id: 'c2', - title: '看图识汉字', - subtitle: '字形联想', - icon: '📖', - topBg: '#d8f0d0', - }, - { - id: 'c3', - title: '拼音小闯关', - subtitle: '声母韵母', - icon: '🔤', - topBg: '#fff3c4', - }, - { - id: 'c4', - title: '词语搭配', - subtitle: '词汇积累', - icon: '✏️', - topBg: '#e8f4ff', - }, - { - id: 'c5', - title: '古诗诵读', - subtitle: '语感培养', - icon: '🎵', - topBg: '#fce4ec', - }, -]; +const AGE_BAND_ICONS = ['🌱', '🚀', '🎓', '🧠', '🏆'] as const; -const MOCK_HOT_RECOMMENDS = [ - { - id: 'hot-1', - title: '100以内的加减法', - desc: '让算术变得像游戏一样简单', - tag: '数学', - score: '4.8', - emoji: '🍊', - }, - { - id: 'hot-2', - title: '创意涂鸦大作战', - desc: '释放孩子的艺术想象力', - tag: '艺术', - score: '4.9', - emoji: '🎨', - }, -] as const; +const CATEGORY_TOP_BG: Record = { + math: '#fff3c4', + chinese: '#d8f0d0', + english: '#e8f4ff', + puzzle: '#f5e6dc', + craft: '#fce4ec', +}; -const { statusBarHeight } = wx.getWindowInfo(); +const SECTION_ANCHOR_PREFIX = 'section-'; +const TAB_BAR_PATHS = new Set([ + '/pages/home/home', + '/pages/age/age', + '/pages/favorites/favorites', + '/pages/profile/profile', +]); + +function toItemView(item: HomeDisplayItem): HomeDisplayItemView { + return { + ...item, + topBg: CATEGORY_TOP_BG[item.category], + }; +} + +function sortSectionsByTabs( + tabs: readonly { id: string }[], + sections: HomeDisplaySection[], +): HomeDisplaySectionView[] { + const orderMap = tabs.reduce>((acc, tab, index) => { + acc[tab.id] = index; + return acc; + }, {}); + + return [...sections] + .sort((a, b) => { + const aOrder = orderMap[a.id]; + const bOrder = orderMap[b.id]; + // 注意:0 需要保留(不能用 || 进行兜底) + return (aOrder ?? 999) - (bOrder ?? 999); + }) + .map((section) => ({ + ...section, + anchorId: `${SECTION_ANCHOR_PREFIX}${section.id}`, + items: section.items.map(toItemView), + })); +} + +function navigateByPath(path?: string, fallbackTitle?: string) { + if (!path) { + wx.showToast({ + title: fallbackTitle ? `${fallbackTitle} 即将上线` : '即将上线', + icon: 'none', + }); + return; + } + + if (TAB_BAR_PATHS.has(path)) { + wx.switchTab({ url: path }); + return; + } + + wx.navigateTo({ url: path }); +} + +const win = wx.getWindowInfo(); +const HOME_DATA = HOME_CURRENT_CAPABILITY_DATA; +const HOME_TABS: HomeTab[] = HOME_DATA.categoryTabs.map((item) => ({ + id: item.id, + name: item.name, +})); +const HOME_SECTIONS = sortSectionsByTabs(HOME_TABS, HOME_DATA.sections); +console.log('HOME_DATA', HOME_DATA); +console.log('HOME_SECTIONS', HOME_SECTIONS); Page({ data: { - statusBarHeight, - tabs: CATEGORY_TABS, + statusBarHeight: win.statusBarHeight, + navBlockHeight: win.statusBarHeight + NAV_INNER_PX, + searchPlaceholder: HOME_DATA.searchPlaceholder, + tabs: HOME_TABS, activeTab: 'all', - ageBands: AGE_BANDS.map((item, idx) => ({ + ageBands: HOME_DATA.ageBands.map((item, idx) => ({ ...item, icon: AGE_BAND_ICONS[idx] || '🌟', - })), - activeAgeBand: AGE_BANDS[0].key as AgeBandKey, - hotRecommends: [...MOCK_HOT_RECOMMENDS], - mathTrackCards: MOCK_MATH_TRACK, - chineseTrackCards: MOCK_CHINESE_TRACK, + })) as HomeAgeBandView[], + activeAgeBand: HOME_DATA.ageBands[0]?.key || ('3-4' as AgeBandKey), + featuredItems: HOME_DATA.featured.map(toItemView), + hotRecommends: HOME_DATA.hot.map(toItemView), + sections: HOME_SECTIONS, }, onTabChange(e: WechatMiniprogram.CustomEvent) { - this.setData({ activeTab: e.detail.id }); + const id = e.detail.id as string | undefined; + if (!id) return; + + this.setData({ activeTab: id }); + + if (id === 'all') { + wx.pageScrollTo({ + scrollTop: 0, + duration: 400, + }); + return; + } + + wx.pageScrollTo({ + selector: `#${SECTION_ANCHOR_PREFIX}${id}`, + duration: 400, + offsetTop: -(win.statusBarHeight + NAV_INNER_PX + 24), + }); }, onTapAgeBand(e: WechatMiniprogram.TouchEvent) { const key = e.currentTarget.dataset.key as AgeBandKey | undefined; + const path = e.currentTarget.dataset.path as string | undefined; if (!key) return; this.setData({ activeAgeBand: key }); + navigateByPath(path, '分龄内容'); + }, + + onTapFeatured(e: WechatMiniprogram.TouchEvent) { + const path = e.currentTarget.dataset.path as string | undefined; + const title = e.currentTarget.dataset.title as string | undefined; + navigateByPath(path, title); }, onTapHotRecommend(e: WechatMiniprogram.TouchEvent) { + const path = e.currentTarget.dataset.path as string | undefined; const title = e.currentTarget.dataset.title as string | undefined; - if (!title) return; - wx.showToast({ title: `已选择:${title}`, icon: 'none' }); + navigateByPath(path, title); }, onTapAgeMore() { - wx.showToast({ title: '分龄全部 即将上线', icon: 'none' }); + wx.switchTab({ url: '/pages/age/age' }); }, onTapHotMore() { - wx.showToast({ title: '热门推荐 即将上线', icon: 'none' }); + wx.showToast({ title: '热门内容整理中', icon: 'none' }); }, onTapTrackMore(e: WechatMiniprogram.TouchEvent) { - const category = e.currentTarget.dataset.category as string | undefined; - if (!category) return; - wx.navigateTo({ - url: `/pages/category/category?category=${category}`, - }); + const path = e.currentTarget.dataset.path as string | undefined; + const title = e.currentTarget.dataset.title as string | undefined; + navigateByPath(path, title); }, onTapTrackCard(e: WechatMiniprogram.TouchEvent) { + const path = e.currentTarget.dataset.path as string | undefined; const title = e.currentTarget.dataset.title as string | undefined; - if (!title) return; - wx.showToast({ title, icon: 'none' }); + navigateByPath(path, title); }, onShareAppMessage() { diff --git a/miniprogram/pages/home/home.wxml b/miniprogram/pages/home/home.wxml index 6f3cd9e..acc72ba 100644 --- a/miniprogram/pages/home/home.wxml +++ b/miniprogram/pages/home/home.wxml @@ -9,6 +9,7 @@ + - 搜索你喜欢的练习册... + {{searchPlaceholder}} @@ -27,10 +28,35 @@ bind:change="onTabChange" /> - + + + + + {{item.icon}} + {{item.badge}} + + + + {{item.title}} + {{item.ageBand}} · {{item.difficulty}} + + {{item.subtitle}} + + + + @@ -46,12 +72,14 @@ wx:key="key" class="home-age-item" data-key="{{item.key}}" + data-path="{{item.path}}" bindtap="onTapAgeBand"> {{item.icon}} {{item.label}} + {{item.desc}} @@ -70,47 +98,58 @@ wx:key="id" class="home-hot-card" data-title="{{item.title}}" + data-path="{{item.path}}" bindtap="onTapHotRecommend"> - + {{item.emoji}}{{item.icon}} {{item.title}} - {{item.desc}} + {{item.subtitle}} - {{item.tag}} + {{item.ageBand}} {{item.score}} ★{{item.difficulty}} - + + - + 数感启蒙{{item.title}} 更多 + {{item.subtitle}} {{item.subtitle}} + {{item.ageBand}} · {{item.difficulty}} - - - - 趣味中文 - 更多 - - - - - - {{item.icon}} - - - {{item.title}} - {{item.subtitle}} - - - - diff --git a/miniprogram/pages/profile/profile.json b/miniprogram/pages/profile/profile.json index 6eaa5bd..e05eddf 100644 --- a/miniprogram/pages/profile/profile.json +++ b/miniprogram/pages/profile/profile.json @@ -1,6 +1,10 @@ { + "navigationStyle": "custom", "navigationBarTitleText": "我的", "navigationBarTextStyle": "black", - "navigationBarBackgroundColor": "#ffffff", - "backgroundColor": "#F6F6F6" + "navigationBarBackgroundColor": "#F8F0E0", + "backgroundColor": "#F8F0E0", + "usingComponents": { + "van-icon": "@vant/weapp/icon/index" + } } diff --git a/miniprogram/pages/profile/profile.less b/miniprogram/pages/profile/profile.less index c04679a..2170ca9 100644 --- a/miniprogram/pages/profile/profile.less +++ b/miniprogram/pages/profile/profile.less @@ -1,115 +1,357 @@ +@import '../../style/theme3.less'; + +@profile-premium-bg: #2d2a26; + +/* 整页滚动:避免 scroll-view 在真机因未给出明确高度而高度为 0 */ +page { + min-height: 100%; + background: @bg-header; +} + .profile-page { min-height: 100vh; - background: #f6f6f6; - padding-bottom: 48rpx; + background: @bg-header; + box-sizing: border-box; } -.profile-page__header { +/* 顶栏:固定于顶部,正文区独立滚动 */ +.profile-nav { + position: fixed; + top: 0; + left: 0; + right: 0; + z-index: 100; + flex-shrink: 0; + background: fade(@bg-header, 85%); + backdrop-filter: blur(40rpx); + -webkit-backdrop-filter: blur(40rpx); + box-shadow: 0 2rpx 12rpx rgba(50, 46, 37, 0.05); +} + +.profile-nav__inner { + height: @nav-inner-height; display: flex; flex-direction: row; align-items: center; - background: #f7ee47; - padding: 48rpx 32rpx; + justify-content: flex-start; + padding: 0 @page-padding-x; + box-sizing: border-box; } -.profile-page__avatar { - width: 112rpx; - height: 112rpx; - border-radius: 50%; - background: #fff; - display: flex; - align-items: center; - justify-content: center; - font-size: 56rpx; - flex-shrink: 0; +.profile-nav__title { + font-size: @fs-nav-title; + font-weight: @fw-nav-title; + color: @color-nav-title; + letter-spacing: @ls-nav-title; } -.profile-page__header-info { - margin-left: 28rpx; +.profile-nav__brand { + font-size: 40rpx; + font-weight: 800; + color: @brand; + letter-spacing: -0.04em; +} + +.profile-body { + width: 100%; + box-sizing: border-box; +} + +.profile-main { + padding: @section-gap-xs @page-padding-x; + padding-bottom: calc(32rpx + env(safe-area-inset-bottom) + 120rpx); + box-sizing: border-box; +} + +/* 用户主卡 */ +.profile-hero { + position: relative; display: flex; flex-direction: column; - justify-content: center; -} - -.profile-page__name { - font-size: 36rpx; - font-weight: 700; - color: #333; - margin-bottom: 12rpx; -} - -.profile-page__stat { - font-size: 26rpx; - color: #555; -} - -.profile-page__group { - background: #fff; - border-radius: 32rpx; - margin: 24rpx 24rpx 0; - box-shadow: 0 4rpx 24rpx rgba(0, 0, 0, 0.06); - overflow: hidden; -} - -.profile-page__item { - display: flex; - flex-direction: row; align-items: center; - padding: 28rpx 32rpx; - border-bottom: 1rpx solid #f0f0f0; + padding: 80rpx @page-padding-inner-x 64rpx; + background: @bg-white; + border-radius: @radius-xl; + border: 1rpx solid rgba(124, 118, 106, 0.12); + box-shadow: @shadow; + overflow: hidden; + margin-bottom: @section-gap-xs; } -.profile-page__item--last { - border-bottom: none; +.profile-hero__tint { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 192rpx; + background: @brand; + opacity: 0.1; + pointer-events: none; } -.profile-page__icon { - font-size: 36rpx; - margin-right: 20rpx; - width: 44rpx; +.profile-hero__avatar-wrap { + position: relative; + margin-top: 16rpx; +} + +.profile-hero__avatar { + width: 256rpx; + height: 256rpx; + border-radius: 50%; + border: 8rpx solid @bg-white; + background: @bg-gray; + box-shadow: @shadow; + overflow: hidden; + display: flex; + align-items: center; + justify-content: center; + box-sizing: border-box; +} + +.profile-hero__avatar-emoji { + font-size: 112rpx; + line-height: 1; +} + +.profile-hero__avatar-img { + width: 100%; + height: 100%; +} + +.profile-hero__edit-badge { + position: absolute; + right: 8rpx; + bottom: 8rpx; + width: 56rpx; + height: 56rpx; + border-radius: 50%; + background: @brand; + border: 8rpx solid @bg-white; + display: flex; + align-items: center; + justify-content: center; + box-shadow: @shadow; + box-sizing: border-box; +} + +.profile-hero__name { + margin-top: 32rpx; + font-size: 40rpx; + font-weight: 700; + color: @text-title; text-align: center; } -.profile-page__label { +.profile-hero__stats { + display: flex; + flex-direction: row; + width: 100%; + margin-top: 64rpx; + padding: 0 @page-padding-inner-x; + box-sizing: border-box; +} + +.profile-hero__stat { flex: 1; - font-size: 30rpx; - color: #333; + background: @bg-header; + border-radius: @radius; + border: 1rpx solid rgba(124, 118, 106, 0.12); + padding: 32rpx 24rpx; + text-align: center; + box-sizing: border-box; } -.profile-page__badge { - font-size: 20rpx; - color: #fff; - background: #ff4757; - padding: 4rpx 12rpx; - border-radius: 8rpx; - margin-right: 12rpx; +.profile-hero__stat+.profile-hero__stat { + margin-left: 32rpx; } -.profile-page__arrow { +.profile-hero__stat-num { + display: block; font-size: 36rpx; - color: #ccc; - font-weight: 300; + font-weight: 800; + color: @text-title; + line-height: 1.2; } -.profile-page__footer { +.profile-hero__stat-label { + display: block; + margin-top: 8rpx; + font-size: 20rpx; + font-weight: 600; + color: @text-secondary; + letter-spacing: 0.08em; + text-transform: uppercase; +} + +/* 双格 */ +.profile-grid { + display: flex; + flex-direction: row; + margin-bottom: @section-gap-xs; +} + +.profile-grid__cell { + flex: 1; display: flex; flex-direction: column; align-items: center; - padding: 64rpx 32rpx 32rpx; + padding: 48rpx 24rpx; + background: @bg-white; + border-radius: @radius-xl; + border: 1rpx solid rgba(124, 118, 106, 0.12); + box-sizing: border-box; } -.profile-page__footer-emoji { - font-size: 72rpx; - margin-bottom: 16rpx; +.profile-grid__cell+.profile-grid__cell { + margin-left: 32rpx; } -.profile-page__footer-slogan { - font-size: 26rpx; - color: #999; - margin-bottom: 12rpx; +.profile-grid__icon-wrap { + width: 96rpx; + height: 96rpx; + border-radius: 50%; + background: @brand; + display: flex; + align-items: center; + justify-content: center; + margin-bottom: 32rpx; + box-shadow: @shadow; } -.profile-page__footer-version { +.profile-grid__title { + font-size: 30rpx; + font-weight: 700; + color: @text-title; +} + +.profile-grid__sub { + margin-top: 8rpx; font-size: 22rpx; - color: #ccc; + color: @text-secondary; + text-align: center; + line-height: 1.35; } + +/* 圆角列表 */ +.profile-rows { + display: flex; + flex-direction: column; + margin-bottom: @section-gap-xs; +} + +.profile-row { + display: flex; + flex-direction: row; + align-items: center; + justify-content: space-between; + padding: 40rpx 40rpx; + background: @bg-white; + border-radius: 999rpx; + border: 1rpx solid rgba(124, 118, 106, 0.12); + box-sizing: border-box; + margin-bottom: 32rpx; +} + +.profile-row--last { + margin-bottom: 0; +} + +.profile-row__left { + display: flex; + flex-direction: row; + align-items: center; + min-width: 0; +} + +.profile-row__icon-bg { + width: 80rpx; + height: 80rpx; + border-radius: 50%; + background: fade(@brand, 18%); + display: flex; + align-items: center; + justify-content: center; + margin-right: 32rpx; + flex-shrink: 0; +} + +.profile-row__label { + font-size: 30rpx; + font-weight: 600; + color: @text-title; +} + +.profile-row__chevron { + font-size: 40rpx; + color: @text-gray; + font-weight: 300; + flex-shrink: 0; + margin-left: 16rpx; +} + +/* 专业版卡 */ +.profile-upsell { + position: relative; + overflow: hidden; + background: @profile-premium-bg; + border-radius: @radius-xl; + padding: 64rpx 48rpx; + box-shadow: @shadow-lg; + margin-bottom: @section-gap-sm; +} + +.profile-upsell__deco { + position: absolute; + top: -24rpx; + right: -32rpx; + pointer-events: none; + opacity: 0.35; +} + +.profile-upsell__body { + position: relative; + z-index: 1; +} + +.profile-upsell__title { + display: block; + font-size: 36rpx; + font-weight: 800; + color: @text-white; +} + +.profile-upsell__desc { + display: block; + margin-top: 16rpx; + font-size: 26rpx; + line-height: 1.45; + color: rgba(255, 255, 255, 0.7); + max-width: 400rpx; +} + +.profile-upsell__btn { + display: inline-flex; + align-items: center; + justify-content: center; + margin-top: 48rpx; + padding: 24rpx 64rpx; + border-radius: 999rpx; + background: @brand; + color: @text-selected-btn; + font-size: 28rpx; + font-weight: 700; + box-shadow: @shadow-lg; +} + +.profile-version { + text-align: center; + padding: 24rpx 0 0; +} + +.profile-version__text { + font-size: 20rpx; + font-weight: 600; + color: @text-secondary; + letter-spacing: 0.2em; + text-transform: uppercase; +} \ No newline at end of file diff --git a/miniprogram/pages/profile/profile.ts b/miniprogram/pages/profile/profile.ts index f3f3df3..22c9680 100644 --- a/miniprogram/pages/profile/profile.ts +++ b/miniprogram/pages/profile/profile.ts @@ -1,13 +1,38 @@ +import { getTodayDownloadCount } from '../../utils/downloadPrint'; +import { NAV_INNER_PX } from '../../utils/navMetrics'; + Page({ data: { - generateCount: 0, + statusBarHeight: 0, + /** 状态栏 + 导航条高度,用于固定顶栏占位 */ + navBlockHeight: 0, + userName: '微信用户', + avatarUrl: '', + printCount: 0, + favoriteCount: 0, version: '', }, onLoad() { + const win = wx.getWindowInfo(); const info = wx.getAccountInfoSync(); const version = info.miniProgram.version || '开发版'; - this.setData({ version }); + this.setData({ + statusBarHeight: win.statusBarHeight, + navBlockHeight: win.statusBarHeight + NAV_INNER_PX, + version, + }); + }, + + onShow() { + this.refreshStats(); + }, + + refreshStats() { + const printCount = getTodayDownloadCount(); + // 收藏数待与收藏页数据源打通后接入 + const favoriteCount = 0; + this.setData({ printCount, favoriteCount }); }, onGoToDownloads() { @@ -20,14 +45,6 @@ Page({ wx.switchTab({ url: '/pages/favorites/favorites' }); }, - onGoToPrintPlan() { - wx.showToast({ title: '功能开发中', icon: 'none' }); - }, - - onGoToStats() { - wx.showToast({ title: '功能开发中', icon: 'none' }); - }, - onGoToGuide() { wx.navigateTo({ url: '/pages/guide/guide' }); }, @@ -36,6 +53,10 @@ Page({ wx.showToast({ title: '功能开发中', icon: 'none' }); }, + onGoToSettings() { + wx.showToast({ title: '功能开发中', icon: 'none' }); + }, + onGoToFeedback() { wx.showToast({ title: '功能开发中', icon: 'none' }); }, @@ -43,4 +64,8 @@ Page({ onGoToAbout() { wx.showToast({ title: '涂鸦丫练习纸', icon: 'none' }); }, + + onGoToPremium() { + wx.showToast({ title: '功能开发中', icon: 'none' }); + }, }); diff --git a/miniprogram/pages/profile/profile.wxml b/miniprogram/pages/profile/profile.wxml index 0ffb4da..32885a4 100644 --- a/miniprogram/pages/profile/profile.wxml +++ b/miniprogram/pages/profile/profile.wxml @@ -1,62 +1,145 @@ - - 🦆 - - 微信用户 - 已生成 {{generateCount}} 张练习纸 + + + 个人中心 - - - 📥 - 下载历史 - - - - ❤️ - 我的收藏 - - - - 📋 - 每日打印计划 - 即将上线 - - - - 📊 - 学习统计 - - - + + + + + + + + 🦆 + + + + + + + {{userName}} + + + {{printCount}} + 打印 + + + {{favoriteCount}} + 收藏 + + + - - - 🖨️ - 打印指南 - - - - ⚙️ - 打印设置 - - - - 💬 - 意见反馈 - - - - ℹ️ - 关于涂鸦丫 - - - + + + + + + + 我的收藏 + 已保存的练习题 + + + + + + 下载历史 + 查看历史文件 + + - - 🦆 - 陪孩子一起,把学习变成游戏 - v{{version}} + + + + + + + + 打印指南 + + + + + + + + + 提交反馈 + + + + + + + + + 设置 + + + + + + + + + 关于涂鸦丫 + + + + + + + + + + 升级专业版 + 解锁 500+ 精选教育模板并获得优先体验。 + 立即升级 + + + + + Doodle Mini v{{version}} + + diff --git a/miniprogram/style/theme3.less b/miniprogram/style/theme3.less index a55c84b..9177aa3 100644 --- a/miniprogram/style/theme3.less +++ b/miniprogram/style/theme3.less @@ -1,53 +1,79 @@ -// v3.0 主题色体系(theme3) -// 主题色 #FFD709 · 页背景 #FEF6E7 · Header #F8F0E0 · 主标题字 #322E25 · 选中按钮字 #6C5A00 +/** + * v3.0 主题令牌(Less 变量) + * + * 使用:在页面/组件 less 顶部 @import '../../style/theme3.less',再用 @brand、@page-padding-x、@fs-nav-title 等 + * + * 色谱速览:主题 #FFD709 · 页背景 #FEF6E7 · Header #F8F0E0 + * · 主标题 #322E25 · 选中/强调字 #6C5A00 + */ -// 品牌 / 主题色 +// ========== 品牌 / 主题色 ========== @brand: #ffd709; -@brand-dark: #e5c200; -@brand-light: #fff4c4; +@brand-dark: #e5c200; // 按下、加深态 +@brand-light: #fff4c4; // 浅底、高亮背景 // 与 theme.less 对齐的别名 @primary-color: @brand; @select-color: @brand; -// 页面结构背景 +// ========== 页面结构背景 ========== @bg-page: #fef6e7; @bg-header: #f8f0e0; @bg-default: @bg-page; @bg-white: #ffffff; @bg-gray: #f5edd8; +@bg-muted: #f5f5f5; // 分龄 Tab 未选中等弱对比底(Stitch) +@bg-week-head: #fafafa; // 分龄周卡头部(Stitch stone-50) -// 文本:标题 / title +// ========== 文本色 ========== @text-title: #322e25; @text-primary: @text-title; @text-default: @text-title; - -// 选中态按钮上的文字 -@text-selected-btn: #6c5a00; - -// 辅助文本(正文可读色,可与标题区分) +@text-selected-btn: #6c5a00; // 黄底按钮上的字、强调整示 @text-secondary: #605b50; @text-light: rgba(50, 46, 37, 0.45); @text-gray: #8a8478; @text-white: #ffffff; @text-disable: rgba(50, 46, 37, 0.35); -// 链接与外链(沿用可读蓝绿,可按需覆盖) +// ========== 链接与外链 ========== @link-color: #2794f4; @wechat-color: #1fe000; -// 边框(适配暖色底) +// ========== 边框 ========== @border: 1rpx solid rgba(50, 46, 37, 0.08); @border-color: rgba(255, 215, 9, 0.35); -// 圆角 +// ========== 页面水平内边距 ========== +// 主内容区与屏幕左右对齐;卡片内略小,避免双重视觉边距 +@page-padding-x: 40rpx; +@page-padding-inner-x: 26rpx; + +// ========== 区块纵向间距 ========== +@section-gap: 60rpx; // 主区块之间(按年龄挑选 ↔ 热门推荐 等) +@section-gap-lg: 48rpx; // 主区块之间(按年龄挑选 ↔ 热门推荐 等) +@section-gap-sm: 32rpx; // 区块内:标题与下方列表 / 横向列表顶距 +@section-gap-stack: 28rpx; // 同级卡片堆叠(周卡、热门列表卡片等) +@section-gap-xs: 24rpx; // 更小块间(搜索区顶、Tab 区等) + + +// ========== 圆角 ========== @radius-sm: 16rpx; @radius: 24rpx; @radius-lg: 32rpx; +@radius-xl: 48rpx; // 大卡片(如个人中心主卡,对齐 Stitch 1.5rem) -// 阴影 +// ========== 阴影 ========== @shadow: 0 4rpx 16rpx rgba(50, 46, 37, 0.06); @shadow-lg: 0 8rpx 32rpx rgba(50, 46, 37, 0.1); -// icon -@font-size-icon: 40rpx; \ No newline at end of file +// ========== 字号 ========== +@font-size-icon: 40rpx; +@fs-section-head-title: 36rpx; // 板块主标题(如首页区块头、分龄路径头等) + +// ========== 顶栏(Tab 页固定导航标题)========== +@nav-inner-height: 44px; +@fs-nav-title: 34rpx; +@fw-nav-title: 700; +@color-nav-title: @text-title; +@ls-nav-title: -0.02em; \ No newline at end of file diff --git a/miniprogram/utils/downloadPrint.ts b/miniprogram/utils/downloadPrint.ts index 08f652f..2193ea2 100644 --- a/miniprogram/utils/downloadPrint.ts +++ b/miniprogram/utils/downloadPrint.ts @@ -29,9 +29,9 @@ function getTodayDateString(): string { } /** - * 获取今日下载次数 + * 获取今日下载次数(供个人中心等展示;与内部计数逻辑一致) */ -function getTodayDownloadCount(): number { +export function getTodayDownloadCount(): number { const today = getTodayDateString(); const downloadDate = wx.getStorageSync(STORAGE_KEY_DOWNLOAD_DATE); diff --git a/miniprogram/utils/navMetrics.ts b/miniprogram/utils/navMetrics.ts new file mode 100644 index 0000000..630085c --- /dev/null +++ b/miniprogram/utils/navMetrics.ts @@ -0,0 +1,2 @@ +/** 与 style/theme3.less 中 @nav-inner-height 对齐(px) */ +export const NAV_INNER_PX = 44; diff --git a/project.private.config.json b/project.private.config.json index 65b9ab5..fe951a0 100644 --- a/project.private.config.json +++ b/project.private.config.json @@ -2,7 +2,7 @@ "description": "项目私有配置文件。此文件中的内容将覆盖 project.config.json 中的相同字段。项目的改动优先同步到此文件中。详见文档:https://developers.weixin.qq.com/miniprogram/dev/devtools/projectconfig.html", "projectname": "doodle-mini", "setting": { - "compileHotReLoad": false, + "compileHotReLoad": true, "urlCheck": true, "coverView": false, "lazyloadPlaceholderEnable": false, @@ -24,12 +24,19 @@ "miniprogram": { "list": [ { - "name": "pages/copyBook/copyBook", - "pathName": "pages/copyBook/copyBook", + "name": "pages/age/age", + "pathName": "pages/age/age", "query": "", "scene": null, "launchMode": "default" }, + { + "name": "pages/copyBook/copyBook", + "pathName": "pages/copyBook/copyBook", + "query": "", + "launchMode": "default", + "scene": null + }, { "name": "mathPages/multiplicationTable/multiplicationTable", "pathName": "mathPages/multiplicationTable/multiplicationTable", diff --git a/stitch-ui/age-recommend/code.html b/stitch-ui/age-recommend/code.html new file mode 100644 index 0000000..abcf77d --- /dev/null +++ b/stitch-ui/age-recommend/code.html @@ -0,0 +1,371 @@ + + + + + + + + + + + + + +
+
+
+arrow_back +
+Duck icon +
+
+

按年龄学

+account_circle +
+
+
+ +
+
+
+
3-4 岁
+
启蒙认知
+
+ +
+
4-5 岁
+
基础练习
+
+ +
+
5-6 岁
+
能力提升
+
当前
+
+ +
+
6-7 岁
+
幼小衔接
+
+ +
+
7-8 岁
+
知识拓展
+
+
+ +
+

+stars + 5-6 岁能力目标 +

+
+
+
+🔢 +数感 +
+

10以内加减法、凑十法

+
+
+
+✏️ +书写 +
+

练字帖、拼音入门

+
+
+
+🧩 +思维 +
+

方格推理、格子仿画 5x5

+
+
+
+ +
+
+

+ + 4 周推荐学习路线 +

+
+4 周 • 每周 3 练 +
+
+
+ +
+
+第 1 周 +数感启蒙 +
+
+
+找数字涂一涂 + +
+
+5 以内加法 + +
+
+数数连一连 + +
+
+
+ +
+
+第 2 周 +形状与连线 +
+
+
+识别形状 + +
+
+线条识别 + +
+
+数字点连线 + +
+
+
+ +
+
+第 3 周 +趣味专注 +
+
+
+颜色找规律 + +
+
+方格推理 + +
+
+格子仿画 + +
+
+
+ +
+
+第 4 周 +综合练习 +
+
+
+10以内加减法 + +
+
+识字卡 + +
+
+连连看 + +
+
+
+
+
+ +
+
+

[为你推荐]

+更多 +
+
+ +
+
+ +
+
+

10以内加减法

+
+
+ +
+
+ +
+
+

拼音描红

+
+
+ +
+
+ +
+
+

趣味找不同

+
+
+ +
+
+ +
+
+

走迷宫大挑战

+
+
+ +
+
+ +
+
+

数字点连线

+
+
+ +
+
+ +
+
+

方格推理高手

+
+
+
+
+
+ + + \ No newline at end of file diff --git a/stitch-ui/age-recommend/screen.png b/stitch-ui/age-recommend/screen.png new file mode 100644 index 0000000000000000000000000000000000000000..46d759332188ae313614d58f3b686967fe69f8b7 GIT binary patch literal 25419 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�zB@$%QgbG``@$h@(r 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 literal 0 HcmV?d00001 diff --git a/stitch-ui/age/DESIGN.md b/stitch-ui/age/DESIGN.md new file mode 100644 index 0000000..9e50d18 --- /dev/null +++ b/stitch-ui/age/DESIGN.md @@ -0,0 +1,54 @@ +# Design System Strategy: Doodle Mini + +## 1. Overview & Creative North Star: "The Sun-Drenched Studio" +The creative direction for this design system is **"The Sun-Drenched Studio."** We are moving away from the cold, clinical "educational app" look and toward a space that feels like a physical, tactile craft room bathed in morning light. + +Instead of a rigid, boxed-in grid, we embrace **Organic Asymmetry**. Elements should feel like they were placed on a table by hand, not snapped to a pixel-perfect wireframe. We break the "template" look by using exaggerated corner radii, overlapping "paper" layers, and a hierarchy that prioritizes warmth and play over traditional data density. + +## 2. Colors: Tonal Radiance +The palette is anchored by `primary` (#6c5a00) and `primary_container` (#ffd709), creating a "Yaya Yellow" experience that is vibrant yet sophisticated. + +* **The "No-Line" Rule:** Under no circumstances should 1px solid borders be used to separate content. We define boundaries exclusively through background shifts. Use `surface_container_low` (#f8f0e0) for main content areas and `surface` (#fef6e7) for the global backdrop. +* **Surface Hierarchy & Nesting:** Treat the UI as stacked sheets of heavy-weight construction paper. + * **Level 0:** `background` (#fef6e7) – The desk surface. + * **Level 1:** `surface_container` (#f0e7d6) – The worksheet base. + * **Level 2:** `surface_container_lowest` (#ffffff) – Active drawing cards or "Paper" modals. +* **The Glass & Gradient Rule:** For navigation bars or floating tool palettes, use Glassmorphism. Apply `surface_container_low` at 80% opacity with a `20px` backdrop blur. This ensures the "sunny" background bleeds through, maintaining the "Sun-Drenched" atmosphere. +* **Signature Textures:** Main CTAs should not be flat. Apply a subtle linear gradient from `primary_fixed` (#ffd709) to `primary_fixed_dim` (#efc900) at a 145-degree angle to give buttons a "pillowy" 3D volume. + +## 3. Typography: The Friendly Guide +We use **Plus Jakarta Sans** exclusively. Its geometric yet soft terminals provide a modern, legible, and approachable voice. + +* **Display & Headlines:** Use `display-lg` (3.5rem) for "Doodle Mini" brand moments. Headlines (`headline-md`) should use a tighter letter-spacing (-0.02em) to feel "hugged" and friendly. +* **Body & Labels:** Use `body-lg` for all instructional text. In a children's context, readability is paramount; ensure a line height of at least 1.6x the font size. +* **Hierarchy as Personality:** Use `on_secondary_container` (#6d3b00) for sub-headers to provide a warm, "chocolatey" contrast against the yellow, moving away from harsh blacks. + +## 4. Elevation & Depth: Tonal Layering +Depth in this system is a result of light and shadow, not lines and strokes. + +* **The Layering Principle:** To lift a component, place a `surface_container_highest` (#e5dcc9) element inside a `surface_container_low` (#f8f0e0) environment. This creates a "recessed" or "elevated" feel through color value alone. +* **Ambient Shadows:** Use shadows sparingly. When an object "floats" (like a floating action button), use a shadow color derived from `on_surface` (#322e25) at 6% opacity, with a blur of `32px` and a Y-offset of `8px`. It should look like a soft glow, not a drop shadow. +* **The "Ghost Border" Fallback:** If a separator is required for accessibility in input fields, use `outline_variant` (#b3ac9f) at **15% opacity**. It should be felt, not seen. + +## 5. Components: Tactile & Safe +Every component must feel "squishy" and safe to touch. + +* **Buttons:** + * **Primary:** Uses `primary_container` (#ffd709) with a `full` (9999px) radius. + * **States:** On press, scale the button down to 96% size to simulate a physical "click" into the screen. +* **Cards & Lists:** Forbid divider lines. Separate list items using a `spacing-3` (1rem) gap and alternating background colors between `surface_container_low` and `surface_container`. +* **Input Fields:** Use `surface_container_highest` for the input track. Corners must be `xl` (3rem). Labels sit *above* the field in `title-sm` to ensure children can always see the context. +* **Selection Chips:** Use `secondary_container` (#ffc697) for selected states. The roundedness must be `full` to mimic smooth river stones. +* **The "Joy" Progress Bar:** A custom component for Doodle Mini. Use a thick track (`1.5rem` height) in `surface_container_highest` with the progress indicator using a gradient of `tertiary` (#006b1b) to `tertiary_fixed` (#91f78e). + +## 6. Do’s and Don’ts + +### Do: +* **Do** use `xl` and `full` corner radii for almost everything. Sharp corners are "scary." +* **Do** lean into white space. Use `spacing-12` (4rem) between major sections to let the design breathe. +* **Do** use `on_tertiary_container` (dark green) for success states; it feels organic and "earthy" against the yellow. + +### Don’t: +* **Don’t** use pure black (#000000). Use `on_surface` (#322e25) for all dark text to maintain the warm, sunny tone. +* **Don’t** use 1px dividers. If you feel you need one, use a `surface_variant` (#e5dcc9) color block that is `4px` thick with `full` rounded caps. +* **Don’t** crowd the interface. If a screen feels busy, increase the background "paper" size and use a scrollable layout instead of shrinking elements. \ No newline at end of file diff --git a/stitch-ui/age/code.html b/stitch-ui/age/code.html new file mode 100644 index 0000000..abcf77d --- /dev/null +++ b/stitch-ui/age/code.html @@ -0,0 +1,371 @@ + + + + + + + + + + + + + +
+
+
+arrow_back +
+Duck icon +
+
+

按年龄学

+account_circle +
+
+
+ +
+
+
+
3-4 岁
+
启蒙认知
+
+ +
+
4-5 岁
+
基础练习
+
+ +
+
5-6 岁
+
能力提升
+
当前
+
+ +
+
6-7 岁
+
幼小衔接
+
+ +
+
7-8 岁
+
知识拓展
+
+
+ +
+

+stars + 5-6 岁能力目标 +

+
+
+
+🔢 +数感 +
+

10以内加减法、凑十法

+
+
+
+✏️ +书写 +
+

练字帖、拼音入门

+
+
+
+🧩 +思维 +
+

方格推理、格子仿画 5x5

+
+
+
+ +
+
+

+ + 4 周推荐学习路线 +

+
+4 周 • 每周 3 练 +
+
+
+ +
+
+第 1 周 +数感启蒙 +
+
+
+找数字涂一涂 + +
+
+5 以内加法 + +
+
+数数连一连 + +
+
+
+ +
+
+第 2 周 +形状与连线 +
+
+
+识别形状 + +
+
+线条识别 + +
+
+数字点连线 + +
+
+
+ +
+
+第 3 周 +趣味专注 +
+
+
+颜色找规律 + +
+
+方格推理 + +
+
+格子仿画 + +
+
+
+ +
+
+第 4 周 +综合练习 +
+
+
+10以内加减法 + +
+
+识字卡 + +
+
+连连看 + +
+
+
+
+
+ +
+
+

[为你推荐]

+更多 +
+
+ +
+
+ +
+
+

10以内加减法

+
+
+ +
+
+ +
+
+

拼音描红

+
+
+ +
+
+ +
+
+

趣味找不同

+
+
+ +
+
+ +
+
+

走迷宫大挑战

+
+
+ +
+
+ +
+
+

数字点连线

+
+
+ +
+
+ +
+
+

方格推理高手

+
+
+
+
+
+ + + \ No newline at end of file diff --git a/stitch-ui/age/screen.png b/stitch-ui/age/screen.png new file mode 100644 index 0000000000000000000000000000000000000000..58e1e35a1ac489472faef142cbab4acd7a9a8b23 GIT binary patch literal 152323 zcmbSyV{|3a_vMSzvC$nH9oy)nW2RThyW5ILdtHL7g?@em_y(HZl`VXk$1)ZmJmMa0@8!$8;pRT4Q;JIo;7I?{e{B( zxdQ(O6%z$BX^V$A2u)ZD{In~x-T3IUPJ%NCB|di8o^Tpj?rCCb>Z<$gl7nS?0_A8l zz`qX)$@&T$2Zt5#HyW`M?AHkNmS3JBgl+Fkoj-@($x81JMklKsL>zAR8|Xn3K5iHo z01B8gQIK7+zvT`>5TH9?(yE}lz z050I9!DBH#f>H|t5W7PdTwe*=;^=HhZhOytA1`JF*iQNE`o9t0-+nWSwlcsm4*YJe zf$#WxBJcYsy4;3<=@ho``jfw^W1iCa9Q7+OrnoWYiFi<5`NZe2Yp~6>5{wzFu#jwM z*u^;dr-9k(&IM~;G*`%h7+H_~en*vN0^VF5JSr4o<8!QX>-C=ArQljNFG!wXrHSQd z)!W31^Ntw>2CjOUSj@%sOdX7)5t>0`wHsk!zp%Xz0l(2abs&12_$P}gf18brgLp}` zG6vMF@a zQd0o7NQ9<_8(lb*O8MrkJ6mHXBJYF2oUW9G1)0w2GP^`3aqM&qFKa^|Q7U2G6pxG;ahJeSB>z)E?q}chJ3mYvtggwHk#zOBBT(*!*I4t zM`3E>5)pAo{q<)2B4c9_j4&cMADVk&ih0}dPtL?dX|gaBVY1uhqMoGWWR)Xfk-FB_ zAaO+>q221NjxaJ*A@Pk42D-~ZC}Lw0So#w0-S^dbik39))??=n4{d?&kB)|`$w__* zvN8hP>}f7^17>gFVI{t%YPRM-5y&9Z>~8eDOV}c1lrSn(iGUs_W;L$l#I!n}5H54; zy=lt`o{BbPR16%~~z6cpj!ms+M2Q0+}hA%w&m5PwGC?dftmBet}hCXbbkobG;b ztOm;qxE#Lth7RPyi|*feuc+?fu$mbiQ$NK;2_DJu zI;w!$7UFGDH`js148L=<>1ZFgCB1DBSnp&eca@QyP3fWd`&U#KljlaSzu7~)ZR?YX zIKK5HgKON^!+GjBtdAJAvp9vHQc+OWN61K7`fG0mP$?z^OQKK15}#dWH6w?R(8uh<`8l2gO~a`EIzck=9@&+6|mqH)u!TwKsC@ zh{oS>$cm|1Ej{VdcHLYsnNwkq?t0WWHJ_b^7oex5YqdDztJ-hBUhUl5ja#PULfxk6 zL^O4_BRwzqCM-QCw>_bK_gHbwAP#4Psa_D;#}#sdPS}GF$b(cSN<wxWQVt(2su~;EqnSllgje zXVjY4{gG@w&rOeY{1BjZ_uEqj&OXtCf-3u6J}oxGd!}V@CMMWQ=aE`9mYr+0$ut52 zY%Mlcn-+b`1wGZz*Y|=J=IBc<7v959v269Hd9@7oYS8okv_3mFCZ=2(uklbh8=zRr zelyv6T_=O@dQTz&(0MagInI!_ck18BSz2qj-tMO-o#jF(xaECc-88-}xpKRx1Vl`d zf`3IM^qmd?slV@spq!h;pU>xrk=f4%xUyGzIDgI=9{I_eeb2+ZW}a#-SCyFNf)Ss~ z`*ql%^iPOcsj)X2mhoGi$*u30kQ=b>>Xr=(m`{e7q|KIbqvDxVadzRhIn-Ulxz6*6s3~uFq$a(lpq|>yt~zCZOlD z*f-6;<+#&xGRhVFWRdRZ^+(Ors4>9j!~7F-S^H%_;M%1770HhtpQPv0r!E`VcwVyM zvTj||$$eggoujJqs5@`_{!#OIf7I=<$);xUofOh_lL-PZD1Kw36NbP$xk=d&0RXPu z_8$1-^AW!kR&TkzDeh7TR`O0>Q47!HHpA(q(X-?!#~#=~k2yz)Fg>HftInXwxJ zy#J*ejR>Tpn-PYH&65D<^#3G;jiUnV#epR8tDviGNN2&?WSZJ_0?$p9?Ydfn+J28! z3KIC#sB?akjaZ%FBBF)wettfw+y6D9)$KH^)+gj|NTI{x`V`US>5_t3q!hwA`frj$ zrfYv|MD62tKjXUdZP>Ems2kL`;~!|c!A(a&!OcSJxz#y65`{bDzi!jUPEP*lFO~y^ zVkD|nf)o_H=^0b~?7iD~&Va2^c&>s(4C7*(Wq*ywhzL1<<+=MNr^Bi_V>okDdn3+B z_wy&SDNiO+$(T`i zl2Z5ZE>~;lR-#%h#5J8agK`2OuT7PN{(*i1Pluz&Wm$rm8p31VMj6W}a{z^0`w9jM zwBBHCAB0#Ww6fnX6`9XZ0IQ5sM!>G@(CL5DSNC^zMGd6;Ie&EtPtLg0HgA0q%g zW7;biF|<~tl)-b|Cbx)DTqYsrz@G&?(gtqB>+R<20;GE$RRJRjE{)e~X>bIbtUY4|~_q$>BsI~{P4{$^Pv}k)* zvhH)qrbniBknTbRsfEjEhXd&7Uq^aE)*tFA9#rQfasSQeK>DX1W3bX14cYosZb&;9Tt z%aI_fkb*^yCEq@K+fUakHn-1g0o!wqmjb$oHv}B@fq6OD#f_(IzBh2Y@wHxYCG+kN z8m!GV1GY2|%=C%C&^N;oPp0I7iEph&LszVn)_=Sn{VYw6gP<7gkg9I(q-r2>gy6gQ zGVLwu{!CzfOs7o?Y?iB>ESv%Xt)MGS2bPBZ^~R%mUWWrax|~vOMo9BKPJBv1_>|K zZq-Ox1AX{x!E7E)~Pr*Jkvg$bxQxOSt`;6}^GGs7U1TQbvQ~HSs zPCu^gf%NGBybB#|W)t`bLMdMPcn>h?dL^5S;oQ_X4da^!R7kocHj^iyGPV?{#-BhsPsTygH5t#N|;deDWIoS^5 z+C%QKn|j|8W8y<_<9FEZBW zrI1ZU|C(G$O_mVz7Yk1fWhPj!clm0;=aEa(8PZcKuvU$ZK*o370oOZBj8z9-cu z7~p4MW}qQ;J1$>c{z$%-+3 zFTvcg;V=!}0US?UA|W9mAi)K#FBZ5?9}LRu>g(UQU4NsP4+L&z#k&|xl%mRO*bG&} zeI@26+A*Czvq3+Ws&u@_%*hSO>YbPC&}}XS%*X`KZt>W)J2T45<9*i`D|~yN_o(Hz z7p5x+!_f%(9R7;o!#BR7z#Otyw-QwhGR&BYnZ3==iqGd`9hf{|`#{|v_VzxR#pP()N>Wmsv2@(|QUFkjM(Ec<8 zl|V8y;_BlcZySad$s=mKP{JQ&C>Ok^|nsgYskJ6y9L%2sGmFU<59KB4wR2ZKP_-vOl!d zWyy|APFC_#vMqgs1Fy*y$vM?)4J#K7R-C}uFui9?=;N_dlRqFeQ2+D-ErZ-?8);eX zd{khbVW8vQ?m8MWbvY# z08JuzLz&M|T6AQg?){G#TgWlzQtdyp?EZ$zrRgI>IU)um{UH$&5%j0UpBj+=munn2 zj@Xb0a2)_ihUS^xOMh1#Ng6S$8z*9w`R2Y)xW`*2^UV^)KKLGhNHj?KeF4Fg`HnyE z^75|h$I}Jw4hxuKMMD+mnmqRrLOyhuy}v(rBNTm(R4XfFD6+% z(QVKP{d5QmhPS3$XtqQE6li~YA^$YtgixuVITVY1Jmp=f(W(QTTq!|7DD`EpexxkAwWBI`$&6bRzro=`v1KZmO0|k3EFZe33 z6m{HmG0W3dEU)f)O;zE3!nI^BojK|Ef|SeX}(CFz4xbTx_9C#?Vr>EGM-D>Gecp;{!_))nYEe#APNHj2UBJW!#K{1 zOfY;oGzt+R6^x5})Q2>{Gv{?K3>*FekC8q$lHguv1W64?>^d6fIi_U`=L`n3P`G(6 z^hJtED1=>_Wx3k?@dCxk0L*4SI(cyCh7lT|fnntUn@{v#c*J;Dm1|yV*9fj&B2_nx zS20@TkGdKge^Xsbe5I|qjr`w!{!7nOyO9w($G8QOgalyAt$@8e!zn>&KyIehuwr%; z_ep%yf}j82;J}6V*81dmi?vWYBn>vkP*^}Oy_ z^=RL}Yow(r5>uZFO4#4l?vhd!<@nqwyjNf9PJm?R8wUp=Lk758Nj! zVQc^VG)2cF9^AF#yf|Era=h9a=#L(U`ArWi< znZ)^0^~+TTRJ)2zAByCuVGJ({`i~9{edHq3F8F+^&vqyKL+6O-F!dIfCLfm|6cv@4 z3=eO8{X8;>{IBodu6c?a`rRu*XN-Of5|4A zM0}>~@m3Jzl>6`B9`*{eTS0tyqvMm0kM}%M$#hT&5*iQt$oD;;1cH+>c*F<2pWX~T z5B)tR8`U&4hChjja_{m_Q%**AjaDz4SFHd@_>vBsctb;?fYF!eP9UDXhYy##upK9+ zH3_3LO>VL)hA5+fr!YD>1i9p%e}8VZ_@Q-GWl6Yme&39T2T;! zJn?C^)dl2}KU7muO8NO_Iac2Ta56joL4eEQJ^=s_$L*q1%2{`!bNNCFaXK8_JY?8v zKM%NaY_WD74Mx@tgdlIaylLm<R<||3dxaof++HLAF^&%2pu+*r zFB}QC;b+=yJ@#7;6!Q2~O~f<^6{@+pI9Z0XHOFnh`c-)iza{G_jYX^WC%CD$V)Gb& zFHpX2a+B?LUSVP35zzcDuWn2l3mts=JDODvnLouExT_OP6V%`zAxm%fx)c zn5~bH7%)fPhf%|Fk13c=ccP%u^0^Mr7&(C#vy$>~jby|?1odi|}zR*O_9GWB}c4}abhTkxWh`Tk9o8lT@_VF;a~>*0N$ zVZw_`Kwx@g1lV}i%CAd$EL+lGTBD=O@LX=$V&jRn2L_ujNL}Ss6rOL!oVHY{^Ej9w zHw`+2uUHgI9E8&KPIlhFLPOJN@$f(=ktkNL>2`Zbl(OmBuU=SC1_ThDSi>hOPCuzn z^>Mj&Y`W;3)XsvukAm^nTef{hv=yo}b)9C1l90<6Eu1?xkvCkA@mn?>RugHB)#*p4 zeRujouG_Cs7Y4Za&z&pw@l;L4Fc|I00wC-+$qq30R=NJPe^2;LLISS7YS%8Cl+M%` z<~J0c5B~E5U+KDnY5gy?HXRD2KZ?WrgC?Y;=i}9Ul_qer!$l^Q^E7OPFl@VP(uf(t zZpC_8$M>EzhX1qg%@Itb$)>?(bM2Re1b^?}$Md&GLKFgmDIC(E#N=cj&?ZOB$D2Tk zF0;v7Gu`#X2NB=LLH)K`rEbg8$ViFtnxPQN-o9%WR^j z)(I0X9Ca2N9@J}Vsb2+qDLX!RCx?n3wc(XYcRbn}<|IwMS*xElaFyyXl+?Mg9k6O; z5*d}lXnqsB8-xaktSc?0nsOHs(%HVMx^A^6ncpG&K9^_NQBmD(a$g*Uii!$=6neK_ zog4Z5$ay?pcD`Qvcs(zEf13^Ae?7Qgwe4m%IG}2It8DON<0&d4w+6p`svHS-u6K^Ayj7-#uH=$C7@{X$2nHkbDzVIUy^qhn(_x4@h)N7jxfYgx}qapWX>aNwgA z4xKdl!E1D~={n_hU)5%*TJxR5=G`~P>phBNTUJJ9*4pa>USo)nW8pl?;M!+GH`0<) z{{Xf(coQbq0u~9Nti^+x63IPD5E2YP0Q0fqo{nSEkFL~677CWwU3$$*pbEe4dYeL* z-jj6T6e*xqNYwJQ%ZvCxcaSTlSpR1i@Yt@^O778;H9f8@UeBG4Pk6- ztgo-{?%qZ?=?MzP)^)#JOd<5$>j}?aC~zzJB|S)-`|1VT8VIw*W7(A;42n-qUMo{N zmifVffXgkNZ2aMUn3l@q@^BKT)8(P-yP5Qb_1_O8o*#8{*aEM#`8*yLY67XkgM*<^ zQRBk%2d}r-j5k8PIN}qKhlZPL_J5Qy*Y7Q82|=bOVL4WV(WFAt|3V<+*S1T|-@+6R zM?ZDjA%}b+ZD+fK(|0uxC*5Y$og zRwyBH=?xyYn=jt8%d&q^A}|C25jjR4qe*Adnr+RnI>6EoVYlWs=-yd>_`cc#Hf2S<;k_~N8e0N2()#s843P!m<7Z4qC_T{c>zhlhv7 zg?QVo`qnx+^u&d&tyH9ZS&C;)+zs{24|XC#D9zUEl`xbC$H&G-g&kT`@Rm;K#D%#; zpsye|KKaGjO};q3Tz|Po;@rhWWoG6@=Z03we4F*TiA20p+sMc@4K=ldoIsoYM|x%D zM1H=oq`9oDi;Ih@$?vb>p=x3>ZYxv+C;A&pFt1#mO|X<^Y+%G9O~#QZd~a?@;On8T zS95f;o{nw#=6o_rqP*pcU(8 z@(65WW0R|u=An_1WBIwh@8BmIM49)ovGVG1*6bOZCJpP>RT{zeQ@?&`UaqxOIcKo* zxL85h-SqloR83sEaN$24{DOgpyX$Z{N5#TAx+d(!frp3BiX-U$pIU(Fe-jAs$PuBT zKY!AUPEU8l(g*nMn?JwU;>q-F8IchP_xoJ%$>&Leq1=qa`GN0o7 zmO%#@U*!G6`QM8ARlKcrl+RP)NJ?0#;Vp` zu1CZh#Y-nP-!Ks^5=l@fU`(1cj9D#_KEo2TYvLY@OLFI$Tj=Q6=;&0B8F9Pm`FgyL zrLH`MdG4bFuM|{d;>o`L*CJvgR@==gJg6Si+m$%z`Stbbl1D!I5CY~Y zDJkhR+ToAeb8g=+CB)~36%>RjRP`z4it$%+aM0&595KQR#lT{ug2WGm>oaUn4@ zR9rZ8(V|Q5g6ZGpo@!q$*9<$F3#FoLzNOYnmK9+Hk#A545jRp^-|$R%4yk9Wih!f)n#zLa;`S8%^eRgt* zHCwD8Lw}BEa9F$T1=>zd z=H?P2BFfV`-fK+})T7f3^fZzZd`Kv(m(h{o|E9-(a9KpopPmTl&D`#bQImgpr)dp; zR)!S|PL5?zOLpOh$r>0DBp%_tsF%aDAk#Tth(BA@;UmW#|fA+9ktb(hl%n>sfSg<+x6fcK~eFRppCS6Ro1Y6_(*DW<&sr zL$mzCeevmD(3BNbWt5t{^@My=!{S1EakxNrK&V{zP;d4MMvRo${&Z9r4cYXm-L2LhriK%uxeF>spl2^%uNbT2!f@l zBclaB^#E0{`ILv+#Ju_bdz+)dhd$ZZpiGu3|M?I(jyZC!49Y*$YTf}6j(l9srN?o; ze`8+mq&vl&z>ZVu)pQ8yyv~@pB$mZ`n^)rxQKTooBW$l0LadPPZVy zz*^w|jdJMNRqP8ABb`Eg1z2#ws{2xjup*D#Ae=)MId?%mxdaFzJy`$>Pg5_p;^q=Q zkLKk_1ko|C7?|XEM+{;N025Q@*CC6WBNV{vH-}|gd5J7H1xZ}jEQWi(rG2#4!_skE zKPFa~#w{h+q`=a}&G|a`_CM$I>4KTgbuxJQ(Y9-}xX|$q)o*1U^d$BlD(Gmm8)i#Lm2tU97V~-Nn z`n3Sje}j-}A6h!_)c5IA0>Z7qiFwS)8JRXQ;{q7D8_h7?T_|;>hhN%~8W;l-Sr+?~ z?H`q#GKgS$6wMyX>#(g!i3+9I52TYqkfm4#q(OmdW@@&Tr6dNz05ABs8WDbV4=N4U~Y~( zd}kWuj3F$f8Mp!@m1&U1qJS;jqU1l;(C^r6;&_e5I*`g*FyIs@qCvuW_S1_va%rTB z#Kwsns&>%AePuedN7aEr9Vi}bUNNNJ+y_;NO{Io>X0geF;DUZ6D7YTeUgO?lci~6+ zd$+a_#)!gs3i;_fdqkZ@DyMuzdYJlxK{@RhujTB3Szq4yrkOx$YFL;OBCIQZq^i{C zC$SMaDxKi><6Rp(ww!UY1>(<@-t}Ef&|Ns&Jq{W z1CX!Z;e<8?KOm{y-r7C8QWVG%%}f_*lF1z(Gupf?Lk#y@|@XQegB8fW@qF%Oi0YgCaEPta* zj|g+pF(`-LK-rn@Eaof6&8>DDp33P4D_xbdo~YK+85sC4S$a7Qvtg!V|1?`gW}g6#EGK1zJH2K_S7MQ<6Sy$?q|h zHlUwUnP;*cdruwICxDyMCGU*&{QQij=*!Tu#Z6I8(_y^GL3ZSYWUB}8b2MR)X2}py zU|zIszkZd7r3%+n-NjzpLaFO}`33t3Z_Pj}f9O%ouSxDhVDtU82=v6MW(Y%d_GuDz;9hXcPu8!1B9Ez9N0POA#CYZ+HB(LT#H zoZ<=;M>PDB(aFya5-*HNRR>1n&O?rsToo}hma-_{l_gjzz~Eb^(}*v%V~_RbPQk{j z%rC5!)I{(t;b0d2cbmMBfyVxd;S_EjVo!93e_tAkN?KHVyeM3ZG(Gn8~)jD9{F!T=7u5TY;GN{97k3}ZJ(z~`b?h^fr2RHFNFF%OH z=;~Jj-#nhgM%Ugr2<%UT({6r@3Fv){=k@r_Rktn$Yw^wqk;Yuhvy!Izm@x7Q@h_2Z z(yZsRA!?Oj3g|g>HJp9(=6%zfUn~9x4u;E7^q8kBufU#xH?<81;{{w!if>cSy&cc; z$KylmSi)7$Q<%Ger;RT#Ozp2sI~o8p$gKAZMavEH`Z$^R#MZ`KL?VZBXQ_$CdE0sX z5R>!j2JR#-qk{`;5XQ(o->km*WIWzxtaD`Inpii#-Zijo$ul`|Ub(xX?*l@J!fAb< zgJ=)y80yFE?WUtE7f8#6k%nz~+&SwiOZ}7)pdFJj>)RVMzMrsGN4Hr0xoRBX0F;A! zetShqN5PtPnH59n7lQQyzg@1cv1xrAV{!dS|MM0`N1#(KR$5v~^mHR@w++|)Ix=I! z6ptX|O*<)v#EYPrty_=`P0AdCTW#Yv*>d^qqQF0 zMPxC-*1z@f23@=2C?Z3LiGvPBYf=#eKlrOH;dU_0Q zg``WQCX;*P`#-cjkq}@JPB&_#^vnqDE^oSZn=7BM7cxLH=8Fb}_$yl$IQ<%8*as#p zmop!kFp9>@70biv{v|yE)RHQ+ahE*$z#6%0CefqoaU}d7c%XGho=oOEGd_fTL9obF zR^t)AUjzHUgBnk*o*uVf-b#os#TeCgW9<`=D6g_X7wgMgZ@PRHt=SMC!WvQ(_ebRS zWk%m!USt65^sl|UcXqt6cxBIri{oi<0A;@d9PQ!lLJ$t#mI>YQHNU%>#~$Id?b|0o zMT{Ia3S1xDBG?--g7<5(r>VDg&H2Z4k-c+fr=y&mCMW*YI)NAI&wQ`<(Fv}Q3uDoo zE+8S`zeOBt_zVn7!zYbvP~om4>~h1R>Jyc{~vKKC%MFI@lqDek&71I})%LE}!>g-+lVN zJX|(49vM}3OY)2nnhiR z+JRYh+td8vGwAL|n$O;iHTti3^ll7M`MPvy+bPz3tXDBTo4x7~Y+tqHP%dPxYLEc~ zb!`e(vackZvM99Oo!i~NwClf4=AO$OzL7q=c|*v2Z|CpsDtAt6QXp67H-4bj>%nyg zp;qnva7r?PZs1j*mk*A82;*WM_%y&V;bV7p0aNYyw)>;yr-wFcmIJ{O=m{NBsN*xmVP`bE z$`|CR>UJ*fs^5QhY@+Gy-GPjwv;E({D(}f&hca#ez>=t+WZizssD*_$Kg;Z|SwJyy z@ta;mkp((VUO&q{$E3~>5AZwV=b3p{v2Nn0RKU2-5fxoKYw2Q@f8OiyT&^mNt2MNp zl`pR!ZiCNv?$5an({Ahq=n4}7CmNoqmg?6_*&e~1+?5IZarBm|>p9b%=%gNCxB1}7 zcr}kRu}EU(My&UZtL723FqGe#lvHz-`lp`Y%`%Iv>zX8=RIAG>3E0V8M~{zRz=3F0 zKJRZ@2XX%sb|+z=K6(do&Vu1!VXg}VttM|gx~n(qWp${2mN$67_G(VkaZF1M=xKgu z^a-`A+Sl$d+!q=5(j~j&x21gW@FOjSberS+bxv@z=(=o{x0hG8XRWS|$zBCvNp$z# zZrA!&LyDe8@b;;Mxx(jH{GY2;b%cdTG+^9^}&n)`G@aN|HCsm=bT$aa(SB`b|X;7R!R*=)(W>sp=Pm7aT10H zL883Th$;1{dNB@U3lwJ1WdlD~8*ut<`2&A5uV84ThS~VNSfxhxV>x0R>+DBbaZ&ZJ zXR*3$u?Ne|(>ZfjK2~sr{AT zEc&Zlv_|vJKpBwVerx$NM|A(JRSMW=SmR^2UXI+K-=EXYlgT7*!t1SO^=5;P!Liql zOvrVW&H}uHN041@Gdhf*Y-Rv4xlXrdlJUNu1B1fBhkEN0rlq$XcWP%iCwlaUmyC5w zynBYBweDwVlX}pEx1Yz6dM_JG2-YY?`&679YpFIPfNHJi~HKKy0r+cd}njp&Qy+HGFu{akGp zz|LM41&Pg_e7L&`aI4v`b9{WN=s`X#vCIZRtg8(_p4~oJ(w1)qEAAeWk6HR?HyY1Q zwAQI@-p+PGj7XQW7eyO2Pi3qwt4LNij&IhtQkt^TX9_9D)2D`#6eOF&^ zYw%jHM;I8oO+1o_|7H#p_gg)>TMySpeypz{cPv?8f_&a53wS^->vJD|Hr_C6k`cD2 z8{RXb&koyH(R^=?#Y2y{Z6{;YZJxLNgaR+mP^w48t($|vs}i1%E*uJpK50Nnb)ocQ zR29+Y*O$(l4`P78q^J8p%5(@22VQUVdHio=Po=Ed3cxvCZuGP^4Wi(jW0dt}XUdtj zo5$ydVOV1QDR4x`K`iI9;5<%_kBW}Q&D*2Gf4OVhus4?88(JmfulZSek-)W-8f1#|>is-0T zng4yW)cNjw`!u08!9~d zA_d7SFe}in-^Vbi*jx;-Ro8MFPVJ%RlYNK#4EgFV`WC&1o~e@M)}n8&<<1o`FIvY{ z9uG|iOA?mfK-Q%YGaJgiWJKB8aavIgO@}1hyOFNdQsi9NmxmLj_~81#he`8R8Uzwdyr(6!Gcu4kSQ-`9SXx`g_&H^mWHJwR*0+eqNB(ktt0j^iTgutfhOKE zx&t=5OA;(v80UkfQl&Ar$jbIIlij%Rix%|SUC23o+Q{(!WIep_&xBus`83trE1B-) z^_)RRz2VNZVRi1n)O<#SwZvEY+brv(>K~`$puW?WAt@J%G|0Yb62wciDkc-QFwZ%M z@<%FZiuv7No*=So)L8%9v?l`6k>gCh?eH5DcKTm8J_OtGedJsEQ0TA{{(t{pIb-% z#`GBP8Bf>#j#gzdqfehFaI|Zg7loZ=)lr|`@4Ym9EjqxWFvfaLEvF_p<|Sd)P@3HI z*tWm8fs;s-URqh1%Bt=>s z0*{K)F6-!Z)feH$@e)y{++!CnESZM>!XR4^mepBgeyJsDbY~(xv8f!!M(bRo({4`u zwZ|P;I0*RaYk+=biE!z~$w>sP8TN-!ppLs?Qy$kGGxoP90=w(t$8kh_PufXBWeM0Z z`Xb*88k|i>FG?( zpe$^}6Ew{7ItQ5j>{|$!Ay`!95;+xLDemrIgL*Oi8alpTOTk^@aA_%cif_0D52QvtXp~=qtz^ z?9>;3JKLDXi%6DV_v~b5(D}IXJpgwHA2rqJOd|0G5^shwJ^#w4J`9bpK=~60xY#Wv zET<$L9hi_mUhyoP{doO6U)HrB$gur%{jIJ(yUMMFKyQ}5T>}6hrD%S8YOsh5dDeh& z3g=JLUEpSw=Sg-q(GbD_>3m+kx5@Fp_Xm7JgxIb=ACq$EJiMlix4T>e=UCLNRvSrv zc0OwA+E}f#+sywJz;jve&0E&>SnPRwBE&?&poh!fRdpkeYVyf0Zr>!QvcWs;a5erVv?q`V7X!k0#TU~&zI4U2-+&tzDQb0T2?HTx@g^NhGX9otV)6$KDk zq*K7=uU|5zRYsaemL;AUf^iv2qlj!iJ4~_3phF5>zgHZ-d}sZcUY-iE{w=@FCG5P} zN9TUckOVG3YO#Ag7UjZFf`O(Xovh^_n(P6EF(zQpBEDP&pE%L+Q_1_#PCTQH02S4blfAtO zCYLEkJAWzlW>9eE-*Nu8dS5&Jlhka~jbE^Njc30lPq_yCAcasM^O(`6FPo?(4(Wqp zExu?hdC7{+q9-w?QrgL4!~f9I;6<;lLMW^<359oV2>yyfC{98s!u1Xgw5|)m@w)P< zadC&#T9T)`q$A-{k`IspM6lpcMByYwjRq05#^+DZe4e5TU)eks7V4J=ed>oj>}ts0>61r&ZGZgYS6YR;i8l7^+Gp;_t)&HuWE%SR}pGcKZ2 zy4XnK+^?~aZI9zF2#F9fiHXq(kIx~sp69a+hGXA~3hV1`2v0P$c^2kx{$yd>UM;nA z@nhj6;|@YX`l>F``BdSG{OP*!g^3Hw>Z;Nv^I-|69sB5LKzt0UkKK`+`+N9!WWvn` zSKam80(tmHV4b-f-ZKLbPfUkv(6 za;CSN4VNi%d|uYCeN`mWP!zQkOoS5v*2I`0-{cFA1Y`8GGn|a^gpU>rZj4F&oL5_`ug^7td4SMY${so;TJ-1in zdl4-+IyuSX!fOor3>^52s9x`+zTNHZ0X(~XbcI(^oNITwB9kysReg%>gBTdlNRuw! zr#3J6jlh>3?{G7-3jvcLB9v%M&P;M)W%!$_sLS)Q@%0b*`$r7E-060WoU+kDuK$M& z1v=Q*KN2dhwDn7PHZm-7uDHZ{xpKRpQ1G{;uoz#O+iOP;tteppGCDl+xg<(@H!>_) zP||YoaX78GO^U3ndHjG?)0exWnCCClrM{5Wh5IDjbgUm*zL zQRZT>nNxSvVqDLor~?!-*{$aLCcXka{1C70#%U}_v1QBJ-)_d~)1L3+jpNBgMMQ&w zAR#gpJwSY}J~z81p6EbS;h$LdOV&JBogb=_W%H*S_0D3`*_))Kq%BsPO9f&aqN*68 zReL+C{anENd%7vA)fSMRxjC+()#hu|5IK2@G+s_ZMvKR!N5WX5uKZ3d&zx-Gcs;L~ z9*91RhbFvUe?QsB+fytkQO&eEGw>KIZT8Go=fkPV}lBu%MU=_zUm3+F_!5<%=&(PgpY%=pXi(jwN z5)&oM6Q}b>83TWF>eQ)ivl^CQ2}2D?_{%Y7dY_kwXh;4IRR{x0XmoNsCMpd2I4Bk| zgS|$(r|wtC6Fl~Zfh#B1aS#eP$@ra`E`6%ot!ND2mxeJXg{oc{7M7Skg@=_@IRyz2 z3SI;*Xrw+i&42;fw`;dzaS>#BmfWa1( z*G_#*RU{ToaJ^6#7!$L2We2zc0#ih0M@IhPD5gwyyvZ=|8jg6gdlo=XFE#(TC$>N`O0EHUYY7n-FZ{Owi3`%vW#KS1_}FtG3bZcz%0vKHV@M-SNl8P2=Kf^R3eQ5`3sutuneyl>Rr$ z-U6u2E({k86lid0kx;xqi@Q51QfP5^cXxspDHJbKC=@R)L5sTtiWPTvcenliJ9~F_ zcJIvIWikvf;Y+@pb6$O(=e19(qoX6&Y4Bd$D$`y5DHN-sqoQ&*M|uocFR8x~Ii&{G zyp8(vr|Z201O!nOJk7s!S zZrif=Cw9}pY9h9Xx2C0Qho6}q_0?G@vn3e_Q6-esfsntKpDu($n%+E0S&qashzfw6 z109x@Bpm{&SbU$0-WgAzz z7Bo0{<~EF`Bpo(X%~QuIkr#d$?b72RzYgLaM%pRC*=zEWlY2J!S@u*=@O!3cp_pV4 zAuxRoXD)pb_R1GHm$c!Jkoe$ieDR4CG7&eh z@l(Ur+l_@>32auq3kt8dDN>&bC*K!ZIe(pXUBadI(v<#Fv!d<}rA! zTgwgmg-0D^C4Cr_frVxB4d2lCe}}|m)##5m{Bw<2eKGGB!%Ao)oE4g! z89aO+DSSNC&1@}-JmT*$7fX?ev~h8Guj1njJgP63e!`yX@l37ID?&V5mT?0@hFZ8> ztJ_3;wgv|UCI`B+Po7Dn4||9{A;B*-_WdZt0~C@8a=TShL-AKj(n+N|P{mW$IS^## z7CsHbTqpvtlHBp3);!u^#OK+{+hY{t7{s97uhoN?UnQot*1QO6B@gSTG>P!-@3q|X zMd|#?2sIa_{)cv9ztAwE5cVWyHJ7zYs`n9t4y+o!Ca5GC#0Oh%w`-3-`!N3yTN#?b zz-0p~kFGUurRSMS(@AwwGu$NkUarNP@m8HDUC(w$EEx zi|WdHdd+es)rMCu5zZad%5wHN$-l4MqS~A7u)i~hn_A}kCNiO0hgx4g(pc3(xjx1p zgnR_ml%m-EaRGv>p0wCD9(U*YD-qUrnYT{^1!=XEZVWK{fva`&?|4w6>fQFOya7+3 z$(GpsjrHToLq-@VJo6ue7K!XnDaZn9?E7uqsvOcbnr&jw0|IxoEu>ix1VhvnI z?7@twN#igazn4?!SlNj;w=bhJA4o?^CT%WHzQ3lGMG2AbU5l##_duE$YqiB<*H1cB zj*QSJ7(S62@4pStp#PnC%ktJUp0oEC6*!QC{j4+LOEnSgQ{`RqNw~DWx3Ec_7Q1wi z&iP^ux_KVSo9Gx03=q+IlBd}0mvZ7&Rj-qJyGLQD)l1xPw+)oTW0Q%%KN3Y=ba-9# z!`FN{$4H->cl9BzMGTfPn8M2Z3a8eB+Wx3bs zy(TtAYn2l|baONB2<`ageK-bg_*@NQTDtwTp6c8DQd7vd7h2_(1ktRg$ z6UNzjHAgS#V4jVF{QNJQf#{db{I%HLSUsN`3{zk&X0?++c*OPn?_P0DK8!KQ(Da-soeEzejxLN3fn zzr*|L>z2e=kA3phfWLR@8R*0XDC2oS2}}=Cg~?#oqvhaiJRM1U;`6xmdi_GTY){Tw6gT{G_WX%iu=NoF>;-oT{%=9ILjG9#w_KBucS7o;aZ}SidD=oha&4GpoNAGX6-*V^~-+I_n zaFV|OJ_=7inYQXIN8ih0_fDSyPPo~kg)K^++RqjSVeThqa|jahTQBdIe}0MNmZupM zFdNV>WQ3_8rj6QDGU0p+ou}$bg)7EW9DzATp?jw%w+IXj9+}a~Af~JxtqwvZx6&01 zdO-~*R2yvsgeER_Zt>vaSw2~e(V%pzK{*5u;S8p}rQeT!sld?+TfCabLRZfbG*xoq ztt~Q@*4CI(Pm(jQos*N3LzSp!<>@{b9yu>6N=A`*`VLq6Ja%iQ9Z9Upw&?u)23lA; z=ylWQEE~^j_n?~hs>-$8;In)}Ez?P}PMLyWCcr}})+q9NqE!BI>mtVpE&N?m z^Sh=Lcnn&py$!~FQA;GY1uV#FZU)6ydm#_~)?e1ObDdou@S(9d2WbfjJ_k1pgR7VO zd>#ig9rN>%DpNeIxgCq?+YRYWSKRhXA%fjBGOd6W9AqA$r}kJcW0eNa z+Wi6EjW+~qRQWq`Jlm7y!A@bH_xH;^4Ja6d{}q&pkupS+i&+L)r%aeFco=wnKYlBIWFU^JP&4@md!Zd zr;9mO&b{g3{%6BorpqJda&eQgEj@`2re|cN5U@dU4zGGUX`?DG-A z;VdgljD>bR#gZ0=@-j5^>jX9~6DtEcF7~8Vac$VXAx>`MwAad>dYEw{p3hIE!{)A9 z(^w8@k@ao^35D2a^x1c?2VT<16EjTWM3N1MDMAR+`32HD(E0^(%f=f~2r0EbB% z?i_k|tK}&(PG@0UvMrdy&3Y^*@^L+DDU-*?GM*KM3Oc*lpA zVx7(l!;AO82QDHkOvI)Spoi$aEn_QLg7_u$c49%c8i;(2c~#RpSVea-4FjSPtLOy=i?ly_j?tt7h^g(inCqNc^AM)kR=3uF|+5nymW?*8%#3+4DsEuo^ zrle$5JBNk#0^~$y3DC0~7an>FD2Hz>uJSGh+`GC6aBqzBr`8C;Uq;nfPaeMKBIf^C zqhslC+j4H-!=fsu%5;Q9TyFZlcllf&04H%g{QcJ`@4at#qu+JPwoa*I?{01$EFUl> z-=1B>tn)`XkKJylx4}1`ejdkhY~@ei-`^@jhYde^@RMbTE=7Hj%ZuL*IP)D=GjQNc z0ys?qr}Ymc_j~(}@8o^u33`CUY54By{^DW)LIaRP1`AyNedv$7XIByuw21PCd5dz` zIU!;Wn_F61ghl>4X{VRY@SZ<<6rYkvNb zkkigeHccX)ob`IWv`5pU%H1a8ch26K)LK$E!NUeuS+>>_GG~5Yzh~A@AHn?t0RND_ z4|og=SSBKg16lhOd6Ss$GkJ@G3HwQ4z&`}#eJ&X-RG-!Z&ldIdH|*t4Gvzl< z71f@@c61!jyPanoJeB0kxwJW4<7s8%Y0ETprRZ|#i`5u`)c6f{-o&btTDKpEbfQKQ z!N@rX3)FA$a^yS&uR$IPMmV1x;)LazSO>4yN7%01$wko0o`wB334xf#bmi=n>L9Ux zwcUcpNp(UJe%qQ9yY$9v!zAz=xZN3(A~@cKMX#oQhCAnmBV|R5>)p0hQNC?cG43NV zRd*=z%9C@0;@GNPed^}P#a9a9 zKt}l}o3QIb)j%L#w}yiNxf5g@3GY7Cl?%uiiz<_DngPw*rtB7|T0UVvzBd zb@h7h`~D+hT<=ffA9z@dmnF%acKA-I;Z`hA z9(rQrX2&vM(fxP2#-g$FSrd<{oh()$ju{p|^!pOa#UokaI(DdsBwUbR0spiOe-J%< z7Wh@+xUZ;e{_`yaU#$g7fx(L23869J+7zlKe$N=C@@+=0k>SuTmhf^fh0dnw_YeIQr$PTSTRPmI4JRz9V7h<8y3Kik`Jw_ye1*z-OZrsv0oi zNFvx2<8{NL{`*cSIqwRv*&ZLa4svSWh!~yJYjGk4GF87f#`3_BGM_T~pngjo6^ZH6 zD>|0#_iS-1P=JrT9Qf|#bf$jebxm3t@d)P2D+gYZPZc^Xu*Fh|u6K^}H}>gSCs*V? zkvZ|tJv>G7ZOBMakVd7_P}60M;2{eOtz3 zjVFUC+V+BN^M3~B6-C6x`N;67LgFTMp6=lZrfWK%pS|4tuZotFWAMmt2Lk+$l5bVL z%>72CisXHwIOgJR&9mK?&aumPxPv-A^)VyiIHUL;*8Gb+o+udwzpPv;=1!pPtfUcw zoBiquKM{Vf30mj(pT6QbTB>lIrX+sN*F>_?qgm&Fp#f)WT`U=e;mQ8wX?#~}5eplH zH(%_>sf2xplZkPbq+V!Dc}Q%1eqz2)J%(MTd}e!@C%5& zt;&|mBjq?^NgoD*^72B_WnSauzyuHiI2jb@hE1pjDHUZO3Z6pfuV#3Pc*tMNnL=q= zvF57ke*G3&<0Nw~;`J-m_w0x`C%@EPBk9+OWv-Ncu68|)*P^@Yb@sKE9o-TWovXSU z%82#7+HUl$)iFNB<%*$P9Ku8%!G!xitp9ue?&9D%e-i8715T(`;ktizE?ZDh^?FXK zXy{s1dUCmXNb#99ER*wDxMZxxKpIs1j%%L18RISwr;WAQoh@j)~7KY$q6E9`4J zTCJLGbJ>p)^B(l^*0!8_qS{c^{om86F&t1-57U#W-mF8UL1E=d%Y480Mm$PF;Jdce z*7*sxcy>7ljc_t*Kolww9OUH3llCnqgu^20Z3qa@bYit4Q&D)XSbikprn)Ozjj@R5 zSMj>eITO99s7_#9^^S1W|d&y6URS38u`PEApi2%hDQi$ zBFiQUYDRHxlw_cMFZ}0MHmZmyjzNh)_)F6$j(42aUe&BEG`ikCjf=SWOb?NTn~#K8 zS!XWfsC&l$7~X0WGT`b9Uuu;6!@#Ip%^n9_p8o$MllmVfzZMQ$tyeuZ!6a%Eb(>M> z>*l&=Qb0YT+;MK;un5vFa#ij`Sv2V?4|XO?b`up~Yl~a2$FMeu8lj_2N=^g9JH=lr zC2GPW1Jk-?f8yg+V%8%fKSe}D3LMSdz+zsbeA$M@te?0$u<`sCH(^TWeqXOQMJN`P zU#oENl0-R6v7PBlN%cV1gE~7S_VJ+)LxuGvYe}SGYPSZP3C`0KTY^9hSQ;D_7V3X8 zYDpPz!5YS4{uw@w9u$|9^qPXmgge#$ZgZMRdp4>P5hmOVVPasB{nWGo#Bup7^H^vf zk`)dgAN}aQ**&?+TuqjAd~x?USQ@W!HqGr<)6;tx3+TPM@mgl2Vma|0o@@pJY=C?l zu&Ss%E0D9}<#MAW8_yr5`PBMj-78}oNFae5A5OUv$Rqe~kMcb?_zk95vKf5-^tt(8 zlcuMftiQzQ7R$VwpncDih3wmqk3gn|1tJU6gli+5f6>a3&(#&FzRxoG2&Ptr-S*1s zUV4+~)c_GLqlD7hwx>kdEb+$cNB>BC31@vEUF0!i16ipz;)I)cR9}b5tJm{Ct(85erEsLyJTWX zu#Ujg(hQ9q`bB~3^?omLC4n0L;VPwvPE z8cfhWGfvWl#XIaB87bv>+FRX^@w6G+Un&Qqn9_x6;lv~oQb4dM)$J)$whN)AC9RGc zWJ+)JK$Ard`9?1nKT)gu0OX9wFJ1sWzN#v?Kac%gF<~Twxpzye{`^$IlVG*ua|eY; zqccQEveJEE3%nY9k3;(|eYtL1T+OWI$50v(Ve-b-=BTb+@(U33WAaVRx9yRaFHzBM z?qM*P|IO+9{i)K#P_`zNlbd{f3A@|z9BllD{o(u{0axB^x8*O?!IX3%TJ{>^RwG9(*g3gCBV(M+@|Qpw z`^IU<`E!%g&3f=>3ofdeYM+38jUiMCrTD}p^4eX>*U$rxQxluLF{y!M7DJJvJoI>4 z?YM#JzuMd|ZaFOAu|@!5 z*8XEN8!9AOM>DS zEw*9)UHN4U3`O%E2O32vVILBOIDh_)jF9Vue$Xh@N%#({5wwjEXo-vL6W4|~y zjSv!`o3yLM2*M*KO-M_tGak=8)fYr?m$sSR+VHguA35Cs8P|>13#fFi_0aKtP%tt+ za#Hca$aM0y0B8l4fv3{*sTcBG>Cx5x<%LeImBD+em4gP!utlWyHwYdmScJy}0&)t9 zOGr51c>Q714k?}%o8n<7M`{2MDxi7(6_<1&N515z;m9i#q>bN&Q6d7qeT~?QBm zV$(<~i%8E+^oTyz6Jx|MrUgTNlVe)Yt_V>K;L}{a|7B?CfG_$cS^i8MPOB`9DlyaI z8Q`Wy`?1@K+W;VjR{V>*Bz-23a$bJ=;J$aGSwG=(MP47D)KwDl`LxtBH+7y-8_CLa3t4(>Qea4Q6V{yJ~6Veq}82l<9AW=L9il!Fpmrj9FI2@ z`2MA#uNXdkT>vo$RqS2YQd4*EreTA~a1f{K0jOwbRN`%LZOZWqq`ZrrZ>o=X7m)J> z`k3|Mj8DR@yb@OqY?fwUQC{|X?(*+ce#!LXu%DYy{4FP|1u+GbYAr|T`dS`ZE%a~t z$E9wrx<#m2}Ah$SCP=I%$R+cFc`CJ&Q0 zw=^e4KLb`QeI$Y9mrmKckiIYKfbbIm2oKnuvIXOUWH?E3d6PD-uIIkK%}7*COhWwp zeXCCFXbui{wyUB04#8x+&V ziTZ-~wJLEt&&W??5OhbwF!v0;;Y4a0VEBzAKk@Ir_2e@~tGY~*H_~mG&>wB*Q*xoC zFr6X%CsL>47~5OD@xuUhXNex%D$b4NMIV{Ez0IRuJyfY~+*g)E=W!}%|EaDNU=-{^ zOwHHIlt|E4nlXleo(^t=tj5ht@Zwvay_WUv8;&h^Ir0~w90=ryt z&WTa?c9bnL%>scy@$|(POaCLg-tyvEb3d?9$0vAFXP4%HmsoTk9yuK~)(mrnf0Rr5 z9U$;IzHo|brpS-qCjfN}Hl0NKH_>RX?Ui&9Ek}!|zNP2Jg&!2`>YeEwH7=La1v9TA zq~L|n#qSttm0W)l=hNt|Ulz`~6fVog$@R|}q8Av9;)f(rd~U8wA2 z2$;`TrthufAtT2<*VeyKA~jI^N*u9h4Cq{^TijHBI%x5o8P7} z;a91+vJ%<7c%xr!*L0^P5o9uCTmR>u!cbj#Qko|RDY#5jaq^k?NqZqQyq33wU}^)r zgCFs!xSu7m(fFBrgxMzOQK3U?gh1Y%f@#Cgh#Hz|%twq-oNC`&_%nv1moceVFJ3*j ziGZLuwt@Cj+1NzQE3fG3JeUNif3G5O>OvYdRA{Xt5mb57c^LD4Iq}Ut#I$s3?_d*# zQ&O3K%}Bq17B*?cHlk^J!Nb$*7g34sOL*u$3(vnzNlx%w`o;#_hwTK zo`rVHR4fjz)MjZfy2zl$wG#>t+V7y}NY+DQw5e%qdd;yA8G{t4!We-Qw%A*;IO$EP z@NdCg72_EiZdIKYN!uiwHw6ybV_o=$aU_dy61gUzj^C-^5^t6Z6Cms)qbmJ{tXznJ zY?P=Br3<6g!DE-m+u}DUFLqYMUe1j%-+*o>s>p%O6FJbL7!Xf{#hvBq1|4A2m;~GU zh2+GMYs+V6DOt!044~z7k~bXh{ylyc^`^^h>3PTdOFPt2A3v5<2@sJ4#-S{bJcb8tdP@~iZ%tI2Q zMWA3cMygi{U}#}QMIRsiKQ*<3BV(iAHXSzI&a&UO0h4-lJe{T-!OqCcEb4J!cJEQv z+}z9<;6oMjq8E}EzKukKN7oC1g1so{%d8sE*1I9~a+G#Zr1eLiYeWz4+1Xj?Sx+cC zD=X{O)wLx~m@uTIr_;F9WjvT(1TPF5iT$l?2;LQ5;rL)R&aq3c-)io7zJC-RAk(HOEP9p@yJS07!$E^WZN{AnBrP0`w|uzfH41@k8YQS9 zE-vLqi=J`YFo4`Wk*E4n5%)u~!G|9YXODfOxp??US!?5K74v>UCQo%nQ`I9P*dZ2{ z=An{*AkUrSjI}nMH_sE15oYnPKRNt;Q8CMWL7lehL{dfF25=)!4?|pq>@xrVM ztBsvxA5X_vyt&5ne?LuyR9W+p+N(!e&L&*peZ+*HT>h!F$=HIQuE<&og1Y7F#VE~Q^Yr~$;%fzR^%SRi2p5|!%D zQ7sE(Q1$E@`%iz}W@u}RPaSL1b*5gc-DSs%u&YA>5DwyAbxE|sc5(DE4G|sCW5yi) z4d=mcwlnvhkL__8x8U`d26L*X*KzNo&=jx30+=4Vl+=NxVWCKWJlW8%T0c4Ce9QN8 zYeR8RN-8rzpv7;$zI?F}G(r>gB@RH@C2qa5%zNZ9AG=u$DCZ^CXY7|}?U&~z`hB$2 z_y$xnXRDpb0R^3mKO6^W^Am&U^OlExGJziIjixFe)AqfBDZXeFB(SA(dHTE6dm5z& z8V1}E(yJG#gR-XgDJai&vXB;mVC&n46aNP@Fm=<=yU3d>O_!v4c?*+PmATJ9|MD#r z6W?kIk1XD3L%~0X-l=qrRE!@~%3XFHG{`8>@`9a)~C46hMr!K00 z#-b`J@MPa2k4#5`&rdD{-FbO(9K5`=3cHR#fk4z)=#Br18qL#F_2+4kB?6G5(H`7n znttd<6Vq_uMeu-0L|rbn?C2REo1?s?*Z4@7~Qa2udSA1LD>2=F_L&(}u#% zXB%a#OpIX`L#dK7GR|bz#wt)r$rgM?EJCUNf$&~`sawo zgVI5T^hR2}o8=|@{iZ7t8>S&8AFmgLNGp}uiVlk~2ne~Eik_CSvD`57s%0~#Gk9Un zlbrs!+59kGA$`t%rs{f87LN7&pbGRFFXrz5u52bh1>-fw`JN8-XAZ{Eiiay>L|NC& zEo(AQ-AgtL>@N1SJ@!F9L}}Y=fL6-q8E@^6W)78a+r*w4UFNorabR{vZtFOP!#AsW z#2FM%H&k)7(2w)1k6pnF>rEbv^j~9_{95XN|27TtApLWoeYL*;sw+k zas3I7>TIbaVr<7}1Kxr=rw*G~f9nAg1)e{~OM>qoV=sX`iIWpPQKC6*SNSy*Rn?oN zhFXlFmtR1@ePHSk5Ka3*D@%~q5sYTVlS7@y3?-Uj|piehZE zJ$YSUasK`t7H~d;_c>)oz=;(JyRQ#;y-sqkS04*epy40KqSx9XhW&qAQ&NE@=0G)U z*29MT4I7)HGy}r8{?Avct1sfn5!V6mT!JQ+IxnWHoW3xng`I5)>)u%rB{4~kI>J*PspgKl0eNS;a!j!Oy=6jLl zs!IClz#NC)&n--+K($Ei$J&5K$>sesD*&elWlh>(U`Dp4+?73~Gq#@PH1O+}sXUtI z)5*1XdocYKI3|av{mAruxG5SS`AH>ohZVRzUAFu%I5VC9*_*`lsBiSOP3_&L=5lJ2 z(`i)EaoE?d!W=dWotgfy=f!^e`5H1I{{>Gji+n?d#Y*eYurTU!^J(CS(9q=WEXuOQ zdhhiEn;5dNm`U=;%};ISyw1l11?1dDo^{U-#uZB!D|%L)jH2v$Z4=%(1O4<7giOJ7 zKc6#XB=vlmTLk>5|Ee8#elqNmu{`ic%kxO$?N6W$L+gYF_!e3y8#_GN2eJi2!5WT*w4G&f|K7+euRC(Px6j><5cJV^Tvkq769>@;ss}ZqncfG&c z1yiRD1MX`z4K^lh49d`?NwTSAaDl|YD?j8RH_J}NX)Q~W-bR_vE8X&xOwRGMZk>$2F0!`1y$$W?_|nf{ zolQ**ARg@IXpdZ^^JDAyKp9}-|e`~g*O_bhV}$1{Tu~|D^<@c*_wtFo_B+@T$Zoj@P@a} zD%r9RwJcwybh&P`VPQ@vW?pRyQTn2Thh6 z>vA#hfpY)wa5EH7uEEQBg?{J@LAV`O5wzlqd#561Sp6OB*zbH7XG zO6}%3JHNJtExMOy$>ug{y4Yt1JnVLRiY6KUykDG1?tPZ2nvKAWRLB&qbL%NKOfE$V zgtvJ){@wUiIrJvrF4<;;h@pioSM^qY?J5v;Vk*|6clSKW|x*pl%x zLX*aHaB(ssvG@gN(Nl^WZISS;{9mtr$W#4z=`gz#Id_*Av82J z5Y;I49~<)LS;X<-tS1oIi_QLVZcr$>Jip}ef|VOoWf^zvWcq9S-kf}|;>;~IjqG`| zF>rmfC?+h-Ec9L`p0>JYj`ywa^KdO;-kev=e?+4D%+F#Kw&Y;~0zW=6l)YZTjnW?) z!i;o42fXF^T>l5%brVxHZxK9Xu(|oR+u7OaQso5 zED_3N^b?2aX97A2JfMX8PWBb(;($Vtfd{gHWOT4ofSyOFa(;DH430PzK0acFU>yM- zICs*9-dv>7Jv-40f(6bdHuTbn2j=bNYKRF|;DSEBGLGt3s4fUIp7|${hzH72r%XT( z!Z6meJ;m5^^5wZquzi*Y$A9&TC`A>#|ExubuZ~OG3Hd;loZ(@O$jG(*@x0>{4pQn7 z%!#m~`~EgJ_isexYHD3KJslDf($HKladIL^9OyPpQW&&@KaTw~4*s$oUA@g~KXnnT zCsudPn9xS#% zP!FF*&KZdgH$d_V)Sy6GS#kK`2at4u{4);7+bvSFM4g1;{mEsS7+sz@`nPR!^;6-O zShQjKQ;oiCY=yjzdUW@MpsZ7@KT>zP_K~UR>hG2xKyTt)X1RD8x@_qANE3TCSnDh1vi7QO#(T)SATO^ z8V303{e1CiI9kNjNR0I{jkfk zs2vt)cM%J0T=>m)v)kSJmX!8c?k)S)sxe3o@QJ=p523eWZ2GlsUpf$&k_^nu7jxL) zpbtT$b$e)_*o)}cNP85rr;A9q*u4!eDC8>&Qbo|igP_Ev2K-6-6oAMV_b=d?vt@Wv}TY~k{|V|jp~V~L{*q(vfxn;Bf4T^Y8z@q+gL9pYEd zVqrl{U0X9zqmc9B7hBzC|87f*JZ;&sA$aVuLIyKLa%HZ|6AAzu@bBr1G4)y4_ERTh z+{&GdZKjk6`l~)NH=hbc7(TXl!9&O~Vf4&_pvw>uID7;KjDkSDCSK=Vm-4!Qn${^m zA^0HVt2)dOFIEv25n*Nm8a49@Ftuzvm>Sr1{&_W}2WOjuSy_TlNJyZ#l(-N)n+aN+ z;z2C>q)Fg&0+|WC&3Fm(W?dQ^l?3;nV*#*7`H~!31a3fS#HjN|QC)7wvC9K$dN6a~_`5g|VPu_8)v&LCv#O zW4iu^g=40d$BpYONiw>X@-^Pk%a)F7G326s!w$VIqW0K(XKypwex=r1^w{<8WEsDH zOUi9N_V_%ds#K3@qha{Q80TjH{#$x=iIT)BYvHVLtTHl=R4WE9x!e=R{|9pGe^s`0 z8UxCp3{{=>_0RK?$GI^irs2pkBo=jj3PnK0JzP189xVv3$uPAQ7r-9MX61j3=BJUzuKg5AC%0`(Ly*2Yp#BxPa-04zW$+`AGEpJUw-?w`i9D>Lv z9`O95-I+O&&fiFNV+?;WHejmS%NHrnvH;${N~tD5KH2_)r&J2JHb_j})iOaYm*rJN z4Q&FsHmiL|(0fhJCHMW#xI`^)#hWUGUS+!PQ~8$|h8OLOJzN@2qF5CXQ<7FZV;tqm z#rJ=I=vJ;_@E{vYYGZe6`&lL{w@)Smp@S7S(0hCh#e-T@Yv+!tO&}F12xzTN)q2yu zr?t`aDijBEh=XcUBPV%MYgUU1RUD8I&P7E<*l)On-FD*I+JGhwDZr6yhMnVz`LfBr zf)+X~HdZCVGT+@K0j#_kbn4!HEF{Wk*H6CR{Cz9r8u)7 zZWcXEJ;Sr6uZmSB*53hmJ|P=`Q3ZyFJT4NM=Ir31Om=^J-FCZ03fh@0nFiFUB}bJ< z!>J1IF87Jwys@d94|u$sHtzZgw88*#~~Mtf}CzNxNdtHXjK@sj%vM= zbtyub%l>e`J6<3oDe2_}aj>%iCZ3rhVqjOZmLQ{>lU3kn627CJ`D<3<55VAzX^ao* zIWE{{X_Jg#sMM@kgOi4Pa9(XOgn@y<%)rp1KMkVmk&?kZV&ePB zInGvVv;6&4d_n@_p zK4hW$FrX-NeQZ$SMF?t)OHoo$Q*+?t?2W)UL#ONC&X)L`dw+YaQcuYb$j?HzhtqwY zZaEwrj&#a+X=%NV78(FRc5AEXWV8Ms4`Q}_3SqDC?OW;(U+tD#0p0MP?(X)oTrY6D zO|4d$M#grFuWuD6msiHK$J|7Q-~IIwpHiL%pX0bf!8A<>o1t8!{n!LzS}{-MTTbDW z)twk;II$WiYCE)>D}V#U$5*%UTT&v=W5!-UTf1t&n30RI_Xe1Y9XS|=Lr%eE@%j1b z5tvXZbPRYUTe!5Oq>>!nH@)T*6}UmmeAv>4$`-ukYA-=CCM(gx%nWF*TXUz5h~8g> zQTo?MM-5sG(0uqxmo7xQn6;V{>WWbC>awV=wVp--(aJLR4V<5zv+K z9}z`L<*7K6WqNaju9p*zkUn&)3L|uxf4C%!jw6VT2WiZB(k6B6pC;|nhVn=0N8`gH z@8PB)aXluofSUaId73cH#m2@a;hnrjsTK(YVpXZ-aX9CGvht;`uW!Ci$-n>yL_v|U zySodBtpikGV7;wJbMok)^gkU-LrmRi_Q+?dOB9rxY~;>9IVvnwSP-&-GYpnC-+C(*6)Tk-DvG?LZ8Iu|npTB@5<`wiKB7t$v zt^@MDr*K8#$7xwbMK++hOMPvK0NQQ4Ydw*`@vZ?1mn2*kgQ+~Wr)xbx9WEj!X0Fy& z)5>b+(7oMx0XX`gb_9YHw84-YMP^)|WcY8)wF_RDy+Vu>$$Amb8@b$Cm*OCuyg?Y3LOW>f4{75VPOHVO}$Yh zT<&`l|Nbdesx(OTrqF&%X3f*AF{;#hr|7@E9xHZsdOBO@$c8utwL9Mc+u);u!Vh?( z^>IktReIwuMSfe(H*~TOuH)WiONZ@8@7-%va zjR&j%*dyIP`*BWJ7k~32k?_9L8Ym%&H}u!I?pvs8GmKy=W0MjR64V@%0i+TV8tLe( zlMA)q4@%B$`=7Y-HA=X+xB#sGrMHMFK=D8VQE#Lx_O6fI>wfF zG~3{}zyv2GBs!X}W@^=qwM0ZkhDQn4JHi)@;jbYRm9D;e>-pgI(!oK?3`!sBQ@s(< zM||X_#S9-FOpu%RBTaA^Dhk?M=@hoD#wE#(6=L}GeGECiTJin8jB35-QNRNPv{9Tm z{nz_#_c?N2$U>unc9L9_@JMn}5((B<#yW5imF`*u`+4-?iLfGl9>5{tK;X*~t(!3X zPb>fwY#fE2x1&>Jq~MPt@Pj!3Kp(BaT62VA);C%CV-hsiIJP!qR`_EK;9A8i!ZvTj zJR)L_)A!Uc)t!uO0`%`%v%Ux>;=iohtWg+b7R2cqOw#Kt*-R{keU1qo1sW<>}n{spcc z1I+ZBxo2;!B+DA)mmVCpn%9o?d3v}Feu<0R{x^v!AwHf_ML}84)zwv1RTXgCHoR$N z8v9#AX^zd0C#zkQeizC~#HxV4$1i^6(`9@b>AwE;qi|qu*EBrYmGMP85I^wR%{UR` zUY>k7oGo-aBVV3OvwPPyT^sn!fZq9r+!82zU5!Qj=nivXESVNURKxB6ApOtjadigBv=ju zY&ji2KR<@NXi`23p#3>=UZz_IaP>W>%k?csGFp6Z&sKp!DHOstF~Ql11`RGfLqqcM zzoVj}fJ?gV{L5C%6lF{v;19=0UY4*V1L0x@1h=MBGm`~^lt5UTuGur-%IH;JWXJ*) zKS3a}QeR(?3zrcVA&k03gsK9kJz9H40OVaTrU6mv|HN&C)yu;~=_m6mXB}{G;W=6w z|9x%k@82)Dj%Qsy;mlNOaLg#1R}ivnvW^K+=Ja+0qZdUC<#arJlOeZ(L6R#jL@0M% z6<>gfc)?;%Au%lN%akiWZt3Bw8KAFQ*H@+L&Ji)&Luqxk)8!?a@IMZV-jl`Z@~Pb4 z4Jp};#Ldji09TInG+v|DPv&5??H_c_I=Zr;&U&(y?ZuEu)(=m-dq z$SEns%>NR^tlRPGs;Nx?FXw%+vl=A^Wic8_ir#1G5U0n(03(@;o1OP}gqpD@eK?~7 z;|8548+C)i!ARmD6dk@WH2jk}V)iG76P!R-%T<>vv3bd9=-c4?j$ei=-<|-fG;&3T zF>u#>K`IHpX|D=g&P%pnaVle~3k^mS}=IphCnxM1>c9 z#5%y{MwZnbE#pwDggzW zNrfqz=NZlM+0;avQ7hg)-EsS5PYA~fl3iuLM$@IFvC$LEhqz>HI|m0BaEIbye<(@>Bt+8GBa|@gba(078`}wcZv|e1W$N&9%jo^cP0Wbw9zI0f#UPsfg z?_n!_fwvaE3zUAuVu@Fi@&fvrrezB=SbNVzOnCg2QP}?xE?5 zh%J2_B|Ya2zMGy+nI^bn?ud=ipl7nJFR*Ug%e;pjW_;pu}M1VAy&Dv4oe+WCqLps;+jKkdnW1n-Op z7UWcJ?(PsyE5S+QeQ|2ne6mty)*}^3#mp4SO&P(+$Vg!lFUM^?R`HIQ=|_8eS7jum zW<83eWMnX!u?8|TTJPf*(0*utZ%?CCCwFxAMd=#A0&G0I@USqLE;a5l>jmP}?yUEj z4Ftuijs;3WX`;jp4}li{8_`C4cu9MA`6P}VX*>`4>)gH`POGTkt+I>8V%i@=sW_7N z+l@u~M_4iJUw`9AYoaUv3+O8~`pIKXfvsqKxlU_>Ko1JqY2n@(NfIFC$P@9@G`@Oq zG)g1D_!l}8MTLZ5sgfLR&z6sFzJmSW@^=cteDl$a2TZ?WQc6pD;rNrqF)-;G^Bp&{(2HDz*AEO zuJb_vl*PyC@=irW@bVRo;1(j>ok-}`tznA>V3 z9E|5M8V*`Dv9XmvIDlKNtFu$9+4CfX=-wq%2t(*QhuYNT|_9T5x>-R(B^!-re9G)-T< zdSzyYfsQ^k8LXnERiIYLMHz8mW@}p(92|V$MNXcW-CEeG`|+bVv>aM;v}M(ZZ4CXR z+g_=KSEQAA%dQ=L4#oY6;@D>K)(JNRY^Qd+=@N_nfa- zN3d=U8@9PJAW7s7z3EG(+tGe3beHKNNq*wWwNm=A>xwbbmO+XQAXy-__}l7>n(Fak@kRN z!B;oy=mmVx-L3Mzx4hUD_dxohb_>&=(!`+h77hJ9EDS>-qZN2G^8S_NZ(}1LPEjNH;M%0WVD=AD0wDt@3p?}wMS2iyd8-ceEf~bi2o%YYVCRwpXU{Rj-^rY zZ|im8`;Wq2sy+X)bvqKTMzyQIjS>E21K0WXo$UA$m;n757`S z=mnI9>?p3$X`f}bh~sp&UPl+%XN7kMl1W5YuNFtUWsu$^jG}vyl74?p(3l#m+rK>& zDz0q-F^(V1SAS)R!^qHFavA2I-Q7ji`yNx7nGDR;)vt@tCc^v65W`CXApT*hS z0FasUpC8%T92^{>Gf`1d+XFe$1M+f(QBnO(%ylpt&wYR8r$-ny&L*GB&fE~ znj29i9dDg@8H#q}<~5IVPbwT{q0z!u27;nwyQhkZl(Yuo$fsBRN~t`Gsw7iNjta~d z%ZY~n+@JRE!#&f})rCz!kRMkI0L<&`keQhoZXU{r6~LHrzZFw?F7|rZL$e#`K?1BX z7ZNv&wJ{uz$Zzt&(MBqvnRF#*#QE$ZId9uhgT$&cHDCSnIjzNaC!#9*ktI5vy^lme z4M{9u_TwA&{#D#W+~E0Bv)te*MEfQUnZRfm3)}2Z2W-X4hd{Ls2!67nJtjQaFmrjB>v9s;G`WSo{lps_?^79ANb zVzxQ<&_Pm9Z|cjNO}Mw~;Y#)pW(@R%8z79Forf~wXDTmyw<1BNWEfclC3on%cU^sb zH*emw9jnNyslADdo62ROW^BChQ8pHFUAd!EI$&N>`39E9)6;Wdaq$97OP-zx@X5hP z!eGtli_C?)o_|<-ii(FNo&cUSJ#$&V(?AUSkDU5w*+)r0uUtV?OPtZ z8P9`_Vc30jRslOZJ8$vt{Dq_n7=-p&&EjFWj}d@1mNz#yx3=^e6{gA>F+?*zqx=Hs z3)d2R%X!S|Nk~Wt+_lOnTVb9FWgTm=!vlL65a7>8#IZYz++xy~R*4g^6``#WF#Hm&k5tASm|`iIh=L7+QZVe7^GyQgS#-)WpP`HWOT% z`IrH1)6-9dg=gVodinwYG^ouZwV4dEz<_U!luiQpy5{5ZmC~bxPS=`_W>_6{-LEc= zIwGm>5D_^53dvJU1&860fwD|+aFM6{nGmzO4wc}$J6+~Fw8>A#94K@TQBe7-zjHo~ z)nZ%MXze68ZeH{j}>APxlKlJ_M&{swjp$djOH*} zy;k+TzrTNS^15kb3`2yJ$$^2e>yA;bq5ku?i>~d2-d!+@PDa*yx;BBWZl9GTkyX_POL) zoW8Jl>AD#|&*Rz3E3O#Shc7r@9p_cg^Xq)=xf?8~CRStF7(m(s5R^)Z)xPq01_h0@I{L!L<6C{?ESsmWi zEGP8W<^wX)cTvSp%l~Bc@nsO<&XNZERMURrAJ4U5o!Q6KSDLP!U)?(^oN4}FtfSEJ zzakc0uMUdvV82qiPo=Yp31(uQId|4f&!y>V51lnju9Aj(!i$1z_*dL!DjNoGKS!4< zRNNP}KIk`jM1xt&5^`3U2Y)sMm*auP!iE5}hGpp*pqGTnoIhL|_xi{fS zM+N&H9GU1S8e9F+6Ud7&J*dnPB_)1Wtieb{7e1L?Y=Kz; zVhJuz$TXe}M7lQ#J$Uf*)Dzn99=*BE`YtJnVl#GVXy}1%t@`g=!IvuHc+7e#c_E5< z9(sfIlPFw1`N)!Oav#AEQ>^IbEtErcqK5CJPo6xXr>BSE@{oPrdE&U_vE6h8beOiV zTJdm$^Pkg|RJ#nX!*KvrkluNp>@A!82(R>}BqAE9u^NSd%)rDH1)%_>OJGenk`>@O zz5YaIX|B|taKxvRHl_ul)II6QrKKgvXiM}Pc!Y!u@&~E;Un5~5h6+?6OT@#$DboFHyWVl#v}mky z5g3lAwo`Qw1E)dz1xQn?#iso9K>g(5PNj4f2RUP$!R_){4Dtt;LSdLFJND9lHn40^ z2zzyWBTFk*DR3g}9sEmLr!hF0=ucT5O58idbblSlwzz?Bp1xz<;^Ek{H&#vjz<+?Q zpd{`ePF#wQ)0c{>vSroP_Pu}qtbc!e2Y?XnZXgfVS69hNN#C3wJ3ye0j*kBR{W~Pv zKrn%H#wQ?P#gzi=s>}LsGeE$Q(gU&A-PcD0L%0EMii?X!Q9W6J4fW>_H6bBFghcYw zxaT%edU`s5*)JA@c_3{D2L^s`Z|An1;)82zaB#n6*@h)g_fu~oR&d@y*1+8F=jcNc z_=a^22&z5_U$sC(iQt4WCn|CG?B~P?-$1DYA{Am{Vd*!tLpXt-4r#6$C!e~D-!T3u zW&e>aj1ZNgTt#1N`R!UfEp0Si+B2uhT3KTe)hIwr!AcapzP4!srj^DCwsAefbIu>%%2d`NnxkT)I+x^9! z{=@vv)TZM5&zd1W$HHrg6yO6{nSU&6nqH~d*RI>dQglzKRqQ!2Y#+LOtY9B98DKxQ z!1p%5m;K@46dkSgwj_j2qkEYwe{XXUmIkypc$t9TfJ91#J6&E`d3*BnHk=CtFzD{U zNCJCMsl^8O4y+1*p83xA_ey`PfdFPPRx!Ud{>e-m48+hU1NbDtep*4-oz)LMe`i~K zn0p8U0sgJCcVw;of9)D%f?7 z_}LgW#fe0W&&m`$2vZ9^sUdDOz_MxN2t-H?0>!bmW{%KcYJ|T9Hs>teWri7vbOl8Z z;PRK(>s6j7jy^sjMETc2(+g!f=8dnOh zn61#1{`=VA$WjDw#ufIY8>6CEOuPG<$BW7Z&s|FR@1pnhA%d-T`P^<^@ivy^(O{5z zvg&s@ue*4h{rRk~ub;2{;qTH?Tw2;xgUdEhd(A*k0yS7Xe7WB*47{mUrEyR;5|~lX zWuP^^PnIEjfWdYy+dvr$z=ngssKrJm8$%+gO44r1G0n^I@UDQs_1l2-&#=k;4NxT6 z$T+plD_E?lL;TKVIVKi}`L zx89w<7)Yu_gxz$Cu)tYR6V;T@4wY)**vb(%#dD@lm9?agDyM}OH-%Jd%c#Sv)um+hDh ze|UbE*2`hFaiPDI^yBcv0CXMmr$azr{NuCm&=>F7zH)Oj*UMqLOxB_yFpekLnM-0H z;{~Z;s}v#}qaHs0JT1=}jw*i;>;LMEgWFVdwsP;`kB7EnTIWwX99-TFvlt^3zQ?2X z7c;aBGLD4(J8YGHAGd7$-WOHIenc$y%Wz}Eot}VqNn#FeQES~~4j2`R9R$$c`kMwH z>cWi1o`L4>_>b!IgLs>EwX87p#eI%@p}MKhrmVK^ns56K`2{TTEj^FkdmBKyq{VpNhq7@9x(^fCCSvHuM3S+w&lr`zn2eDYGcKCMZE2Dy zqE-?bKl^2cOVy$J*if}dY~OD_sWUV?^*Fp&?X$B>OW1mZ6=N)slgx{CyDm{ z0F@wvoaVdOy5DQh%`_584O4AZ5-d7PLYlyPAHR16gkQ0tXU6%nWO5XAiY`2fTs_9o z{3faX^~?RQ4yYZwL!rrPa-=$pFAE+OL4Q`lui96ItUW)<1>oz-&qx>CyrFEOxgo7F{=2B0c=l7?FFK`Z<~H>`!6p*T*&uy%_mOiMixO7 zqycJ?zM4Uq|*vJgxanf@<)kRe8~tVxOok2~Hwo_)Oam7FtYsSanQ=hZpy zJYS?*!?B1OhUXLMo7gag#GuZ;QZW?<5+WQIf4mWs0V%MA7gsjsFTaHtc-HHg8p+Z9 z;&v9Z)a#3>-Y$w{`l59UY=6zOHS*t6RJw&e4`vYfKbOmiq!2lQ3k2E#P>R8q*M;qO zi`0t%ALua3U=g7|cXU*m_NY4ypFa;dDudhM02d7y5UC#-wOW-&SWeXew-TvSY6+Pw2+-H^27FWC zm(VIk+5j%5a+rm_nU#&5N$0i8VCxx442*`b4|E^Uw20Op5vdXb=it#oO?rC986avX z$FsjctL;NE@{QC>0=ic8rAV|Kcg=bzBQK0mkfFx-*(8#cg>SwhF;WHbS)ROvPCIM~ z0912xbG^=Y!&P$(_K%LrpXDFUwFSKFJ%&mRyUyrWBc-~pDnk&i8ME+>^olq zTu98MbbdH_!lazRMx#Y6#t#k!po_-FtbiB_3JR*MtbF%QwyiBfPBR>t@_=mMF7!iE zlbpw(zxOnq@T-HKvxbI}5>NlW>^p4trVR4HY?J9mZ|cuZo3nit1R1Mce>#I#PqL4m zM9M44g*H*1x#saSL`hNgjT|GKHRskz|Zm&u(7e-{?@M|mX?>NpZDAnOG~TPDb>hT!}gbh zUcNO-xl^xUsLi;b$({gbe$&+n6ZGF*o<2UVBkqX2JRKzP&&-aKGWg=kxOb~#*Tdyc z8mH6gNr(@+C|zLE&z1hX7DKJ*a&~~fY)JTp>|_e0;;&#AU>&sPpnl>yH}?LUR8CeV zouMj8207TFk1b!vwPp7A_k`6uy3MS9pp1Ciz1L_I_o4g4{Vb#$FyqeKGo&=$QiQIb zw9_7&{HSwS+!!SY4G%vD)EQd)F%J6rP)?*ktB95D=Chk3kSvBS;2;9+VISR+R3!}j z_>n ze@8w=5&Sux8@`s574WxOsShFEAS)a!Rmm z#omwT|IniH>7^o^xW^0(-zgUo>|Y!I+O*SavE`z878@)1sb2Byu*UL6qk!{}atj#K zrOR{9j*5mhT57K>c#?0Gbrf@_gmBKMe|ar0t7JLDQLTA}QpJD<h+5&VR-)v62K`nm1|K#N8@qo3QvizT4^_$7DJ|55a-?JsiulD1+zC;$s z&~i8rRAzUA9pwN%_V;;H6|2}98XCYJtSUz;Dde!Q4g8_*rl1w?eu?&{<_qV`xA>bM zyuajgzi!5tm6!iBRQL>(;O2A3GNpX9==5~32K#PpZQZ(K8o0E&dgXNbvAJSyVt6g? z!DhcRa~N1WfBJ6y`2TBpESPB8D)^`e70f25|c64 z%^=6Y#ZBQRAVSYNeh{=vSl~&mo9YgZD79j4L(kpic-BO~m<0oTAVN~$o$}65@EW!H zW=FVXeBgZbw>SBN?Rb?LcvBGQqDb#&&5p}*kSMM!hq zBPgMnnozZmVVFkgvzQpqb5Gsi+6(Wt&ri<|XB#gGWUIh{sh!|d#UUuzw7jF1{tbZCIOMm22|#U54~rbn_y!GVB(*H z=_p)^*q8s!hE_4m&f>8-odw4u1&R6d0DnrX>Q3CF3M&IUskg1ZOXDLqJ>`8pMTedP-p}I&e-F&z- z*z_brz~Nl$Oi3RT&&zgmMUkolE!s@>I-z+$hKuFsgxN(qZNUdM& z+&buW+PrrhQy-`TU7$E4xaqGATp1tJ2CE zG*m-Zi;wMhN3gM?8PPSEFYEej2(68#LqOtnYMxkh->x=eMd%?CL91)h*xREL z7Pe-Aj(sZn5gWb?P1BRILZ#4b^|?@rN`r6ZN1UmsMEd4fR zLAKAC#1rocIe}XQ8wy{m1(l#-U|HC7)XQ&QeBNm`oZ4G+Z9Dj?VPg-)k%xdcWE;|EJxx@&fGi z^z&dWIys!Q>;E9^bFlH;%9{l!&ioJFl&x(6H#nhBh~2eI3ost9?bPwsr+)9#^?VQ& zTP{!Ki-+Z67{K9+g@%b2^6uUEr&m$jD6ZDlP`cH#+M5i+o z5RgL7Mn-c0i2Bn7T!3K!4dqV6kL{MLnbUQ z|G4$#MsYdx7m219-xw+N0G&@Ng7RQ(;G1!!_4Jo`wUm?;9A7neke0!0dTrjh{xOMg zqSFq{JaeJJ&}=OoH?hiM!h)M#_}69=L|gMBpU>@3ye`xoKAOlky1OmuTAvR_7N;1e zR$au5IHtERJb3N}%|2r;_t(_ofQ=v49`oUYFnHjA9EHJl*JgjV z+}s@4cx?Lnv9hWp@p2fgKYxPZ)fP&ITo>LkT?19HdV#>y-rf#y9NT{fR*RO;9%6Em zLLP{T2q?>GgD<(i$8xp3$0tV0`PlQBd+*M$8k@e~clDCVcap-3tq#67kR#S;9rNkq zW5?t?TVI#zkGDJ!SVi~*E_zLohYx<`-A=2ibKduUfgSuU-(indy~=RQ`^~;o z84#*%#&Ab;V%PyhR)2SQ)duvn zP)O&GC(PC;1|k#%UM9JLYuoIsFf;Qy_|cvhs%Ik?oQ->9nUo=adBn(Q2DWOd4n;8b z0gVsd#0c)Tmmsf<0w{v@Y!4&P&&$&&H}C?^>x1W>Y_8!~6C71JZpL{c@0+p~_ReBb zH~S>%xryEHW&Fi@^&n<&caM%CFWc;qhV2hxn>GhJbQKZw#(f+-sib`((%=;Dc7k{Q zVr=L5eM$(wRNR%TP}*1YnLKj0o#`Ey&y>b;(_h8sWh46q_Z42en74v57f>01Dn^B# z{<`1{26voJjU_jjqCuxD_K1iF79SlG^PyJ791xP%G%|QFIXF4Zv@byihiaNHV9y4& z53GwsA`%kcnLc=OfK&^WT)3!r;?WU0UoaShe7M)9z&mm|4Ev>wDcen)&!Ux>LP17O zQtvKD)!asSq2av}# zI&dsU{eth5O@G(DH@_N@E{(v6U~PQ*xP8QY%dgk0@lU&zoH#&JQZQZoeh)`@mb) zv9M)!>^@!YqbNG9Loq>s&EhWQ}WLY}V1#>Nn;uWgIJe*J=FAbT(n85s#4 z85*Dsz{XHI{~eh6!|mCt_52SL?#q!kFqTTZ#3lwAhm}J8*IZ$EgA{%#*)O^U+M&JR z&rGgN-#bJ#>{sqSlvoU7mQfBUKca59s;2Sd-hI7#>-1gEppSy+Fj}0u?n#w|>E?MT z%VXtE<4Ucw>C2}Sx!Fidu9OC4e>KR)Mf7fwCF6|xzoUA#@VTG#&LW}}t^3a^l}M&m zE2-jxFY<|ET>*5<5^r-48QYpHk}2KURn*%)1%Znj}qD%|6!Ib;*e2r ztW2_%!*}g1WTK-_OZS z`}+b)=MSh^M4V4#52;!OP71NMK4a#{Rqs95%=It6aZ<1F3idip|uDyxy$!G<7_j9}heq2nelw*h0}ht>+RrGegXdISdw z&Cn~>#v5Y?BwBj&zAC&87>^+{UZL%7+XZd_I3Wy!xvwg9=gCm191rfVsKx& zz$?XO{j{D$_F0z>usG=sj<14d3ga$GNFbfnCH9h!QU8}$V~>DZmC6;Rmk5=Qo-w<| z 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
+3D8Ueu08tQc@BU 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 jgk1pLqPQ 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 + + + + +我的收藏 - 下载历史 + + + + + + + + + + +
+
+arrow_back +

我的收藏

+
+
+ + +
+
+
+ +
+ + +
+ +
+ +
+

今天

+
+
+
+ +
+
+

拼音描红 · 声母表

+
+schedule +14:32 + +已保存相册 +
+
+ +
+ +
+
+ +
+
+

趣味口算题卡

+
+schedule +09:15 + +已下载 PDF +
+
+ +
+
+ +
+

昨天

+
+
+
+
+draw +
+
+
+

汉字笔画基础训练

+
+schedule +16:40 + +已发送邮件 +
+
+ +
+
+
+ + +
+ + + \ No newline at end of file diff --git a/stitch-ui/favorites/code-favorites-list.html b/stitch-ui/favorites/code-favorites-list.html new file mode 100644 index 0000000..fb8b295 --- /dev/null +++ b/stitch-ui/favorites/code-favorites-list.html @@ -0,0 +1,231 @@ + + + + + + + + + + + + + + + +
+
+ +

我的收藏

+
+ +
+
+ +
+ + +
+ +
+ +
+
+Worksheet Thumbnail +
+
+

10以内加法

+

+ 数学启蒙 · 4-6岁 · + +star +star + +

+收藏于 3 天前 +
+ +
+ +
+
+Worksheet Thumbnail +
+
+

图形连连看

+

+ 逻辑思维 · 3-5岁 · + +star + +

+收藏于 5 天前 +
+ +
+ +
+
+Worksheet Thumbnail +
+
+

拼音字母认读

+

+ 语文基础 · 5-7岁 · + +star +star +star + +

+收藏于 1 周前 +
+ +
+ +
+
+

趣味英语单词卡

+

语言学习 · 4-8岁 · ⭐⭐⭐

+
+# 畅销经典 +# 全彩打印 +
+
+
+abc +
+ +
+
+ +
+

发现更多有趣的内容?

+ +
+
+ +
+ \ No newline at end of file diff --git a/stitch-ui/favorites/screen-download-history.png b/stitch-ui/favorites/screen-download-history.png new file mode 100644 index 0000000000000000000000000000000000000000..ca1708d6274f4b0809d8ac2bf0b88333f6f2951f GIT binary patch literal 36400 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

U>tiQ0@vGB5HJTI>;5K!r? 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

  • 1T&eTfIXU)&kVXEc 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 P00000NkvXXu0mjfU4-n- literal 0 HcmV?d00001 diff --git a/stitch-ui/profile/code.html b/stitch-ui/profile/code.html new file mode 100644 index 0000000..e652a8b --- /dev/null +++ b/stitch-ui/profile/code.html @@ -0,0 +1,176 @@ + + + + + + + + + + + + + +
    +
    + +

    个人中心

    +
    +
    涂鸦丫
    +
    +
    + +
    +
    +
    +
    + +
    +
    +edit +
    +
    +
    +

    Alex Rivera

    +
    +
    +
    +24 +打印 +
    +
    +12 +收藏 +
    +
    +
    + +
    +
    + + + + +
    + +
    + + +
    +
    + +
    +
    +auto_awesome +
    +
    +

    升级专业版

    +

    解锁 500+ 精选教育模板并获得优先体验。

    + +
    +
    + +
    + +
    +

    Doodle Mini v2.4.0

    +
    + \ No newline at end of file diff --git a/stitch-ui/profile/profile-screen-stitch.png b/stitch-ui/profile/profile-screen-stitch.png new file mode 100644 index 0000000000000000000000000000000000000000..8b9e19cb2fabaa8489432b264dfb1c28082ee8df GIT binary patch literal 23527 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
      ;y*<2}hRk$8C2Nf1QzCX4)pxX`a`+ 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 literal 0 HcmV?d00001