From 16076f2eb801874c7e0ff6f5e4b9fa8d65d3efcb Mon Sep 17 00:00:00 2001 From: win Date: Fri, 27 Feb 2026 20:57:24 +0800 Subject: [PATCH] =?UTF-8?q?=E6=AC=A1=E5=8D=A1+=E9=81=93=E5=85=B7=E5=8D=A1?= =?UTF-8?q?=20=E9=81=93=E5=85=B7=E5=8D=A1=E4=B8=8D=E7=94=9F=E6=95=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 0 ... Swagger 接口实现 Uni-App Vue3 微信登录页.md | 46 ----- ...户 API 汇总与 Uni-App 微信登录页面实现方案.md | 102 ----------- .../完善首页 UI:通知滚动与轮播图占位.md | 35 ---- App.vue | 0 api/appUser.js | 0 components/BoxReveal.vue | 0 components/ClayButton.vue | 0 components/ClayCard.vue | 0 components/ClayInput.vue | 0 components/ElCard.vue | 0 components/FlipGrid.vue | 0 components/GamePassPurchasePopup.vue | 0 components/GamePassPurchasePopup.vue.backup | 0 components/MatchingGame.vue | 0 components/PaymentPopup.vue | 2 +- components/SplashScreen.vue | 0 components/YifanSelector.vue | 0 components/activity/ActivityHeader.vue | 0 components/activity/ActivityPageLayout.vue | 0 components/activity/ActivityTabs.vue | 0 components/activity/CabinetPreviewPopup.vue | 0 components/activity/DrawLoadingPopup.vue | 0 components/activity/LotteryResultPopup.vue | 0 components/activity/RecordsList.vue | 0 components/activity/RewardsPopup.vue | 0 components/activity/RewardsPreview.vue | 0 components/activity/RulesPopup.vue | 0 components/activity/index.js | 0 components/app-tab-bar-toutiao.vue | 0 components/app-tab-bar.vue | 0 components/clay-components.js | 0 docs/CLAYMORPHISM.md | 0 docs/代码重构分析/ALIGNMENT_代码冗余分析.md | 0 docs/代码重构分析/DESIGN_组件化重构.md | 0 index.html | 0 main.js | 0 manifest.json | 0 pages-activity/activity/duiduipeng/index.vue | 0 pages-activity/activity/list/index.vue | 0 pages-activity/activity/pata/index.vue | 0 pages-activity/activity/wuxianshang/index.vue | 0 pages-activity/activity/yifanshang/index.vue | 0 pages-activity/composables/index.js | 0 pages-activity/composables/useActivity.js | 0 pages-activity/composables/useIssues.js | 0 pages-activity/composables/useRecords.js | 0 pages-activity/composables/useRewards.js | 0 pages-game/game/minesweeper/index.vue | 0 pages-game/game/minesweeper/play.scss | 0 pages-game/game/minesweeper/play.vue | 0 pages-game/game/minesweeper/room-list.vue | 0 pages-game/game/webview.vue | 0 pages-shop/shop/detail.vue | 0 pages-user/address/edit.vue | 0 pages-user/address/index.vue | 0 pages-user/address/submit.vue | 0 pages-user/agreement/purchase.vue | 0 pages-user/agreement/user.vue | 0 pages-user/coupons/index.vue | 0 pages-user/help/index.vue | 0 pages-user/invite/landing.vue | 0 pages-user/invites/index.vue | 0 pages-user/item-cards/index.vue | 0 pages-user/orders/detail.vue | 0 pages-user/orders/index.vue | 0 pages-user/points/index.vue | 0 pages-user/settings/index.vue | 0 pages-user/tasks/index.vue | 171 ++++++++++++++++-- pages.json | 0 pages/cabinet/index.vue | 0 pages/index/index.vue | 0 pages/login/index.vue | 0 pages/mine/index.vue | 0 pages/shop/index.vue | 0 project.config.json | 0 project.private.config.json | 0 static/logo.png | Bin static/share_invite.png | Bin static/tab/box.png | Bin static/tab/box_active.png | Bin static/tab/home.png | Bin static/tab/home_active.png | Bin static/tab/profile.png | Bin static/tab/profile_active.png | Bin static/tab/shop.png | Bin static/tab/shop_active.png | Bin uni.promisify.adaptor.js | 0 uni.scss | 0 utils/activity.js | 0 utils/cache.js | 0 utils/checkPhone.js | 0 utils/format.js | 0 utils/nakama-adapter.js | 0 utils/nakama-js/nakama-js.js | 0 utils/nakamaManager.js | 0 utils/payment.js | 0 utils/request.js | 4 +- utils/subscribe.js | 0 utils/vibrate.js | 0 协议.md | 0 说明文档.md | 0 102 files changed, 154 insertions(+), 206 deletions(-) mode change 100644 => 100755 .gitignore delete mode 100644 .trae/documents/基于 Swagger 接口实现 Uni-App Vue3 微信登录页.md delete mode 100644 .trae/documents/基于 Swagger 的 App 用户 API 汇总与 Uni-App 微信登录页面实现方案.md delete mode 100644 .trae/documents/完善首页 UI:通知滚动与轮播图占位.md mode change 100644 => 100755 App.vue mode change 100644 => 100755 api/appUser.js mode change 100644 => 100755 components/BoxReveal.vue mode change 100644 => 100755 components/ClayButton.vue mode change 100644 => 100755 components/ClayCard.vue mode change 100644 => 100755 components/ClayInput.vue mode change 100644 => 100755 components/ElCard.vue mode change 100644 => 100755 components/FlipGrid.vue mode change 100644 => 100755 components/GamePassPurchasePopup.vue mode change 100644 => 100755 components/GamePassPurchasePopup.vue.backup mode change 100644 => 100755 components/MatchingGame.vue mode change 100644 => 100755 components/PaymentPopup.vue mode change 100644 => 100755 components/SplashScreen.vue mode change 100644 => 100755 components/YifanSelector.vue mode change 100644 => 100755 components/activity/ActivityHeader.vue mode change 100644 => 100755 components/activity/ActivityPageLayout.vue mode change 100644 => 100755 components/activity/ActivityTabs.vue mode change 100644 => 100755 components/activity/CabinetPreviewPopup.vue mode change 100644 => 100755 components/activity/DrawLoadingPopup.vue mode change 100644 => 100755 components/activity/LotteryResultPopup.vue mode change 100644 => 100755 components/activity/RecordsList.vue mode change 100644 => 100755 components/activity/RewardsPopup.vue mode change 100644 => 100755 components/activity/RewardsPreview.vue mode change 100644 => 100755 components/activity/RulesPopup.vue mode change 100644 => 100755 components/activity/index.js mode change 100644 => 100755 components/app-tab-bar-toutiao.vue mode change 100644 => 100755 components/app-tab-bar.vue mode change 100644 => 100755 components/clay-components.js mode change 100644 => 100755 docs/CLAYMORPHISM.md mode change 100644 => 100755 docs/代码重构分析/ALIGNMENT_代码冗余分析.md mode change 100644 => 100755 docs/代码重构分析/DESIGN_组件化重构.md mode change 100644 => 100755 index.html mode change 100644 => 100755 main.js mode change 100644 => 100755 manifest.json mode change 100644 => 100755 pages-activity/activity/duiduipeng/index.vue mode change 100644 => 100755 pages-activity/activity/list/index.vue mode change 100644 => 100755 pages-activity/activity/pata/index.vue mode change 100644 => 100755 pages-activity/activity/wuxianshang/index.vue mode change 100644 => 100755 pages-activity/activity/yifanshang/index.vue mode change 100644 => 100755 pages-activity/composables/index.js mode change 100644 => 100755 pages-activity/composables/useActivity.js mode change 100644 => 100755 pages-activity/composables/useIssues.js mode change 100644 => 100755 pages-activity/composables/useRecords.js mode change 100644 => 100755 pages-activity/composables/useRewards.js mode change 100644 => 100755 pages-game/game/minesweeper/index.vue mode change 100644 => 100755 pages-game/game/minesweeper/play.scss mode change 100644 => 100755 pages-game/game/minesweeper/play.vue mode change 100644 => 100755 pages-game/game/minesweeper/room-list.vue mode change 100644 => 100755 pages-game/game/webview.vue mode change 100644 => 100755 pages-shop/shop/detail.vue mode change 100644 => 100755 pages-user/address/edit.vue mode change 100644 => 100755 pages-user/address/index.vue mode change 100644 => 100755 pages-user/address/submit.vue mode change 100644 => 100755 pages-user/agreement/purchase.vue mode change 100644 => 100755 pages-user/agreement/user.vue mode change 100644 => 100755 pages-user/coupons/index.vue mode change 100644 => 100755 pages-user/help/index.vue mode change 100644 => 100755 pages-user/invite/landing.vue mode change 100644 => 100755 pages-user/invites/index.vue mode change 100644 => 100755 pages-user/item-cards/index.vue mode change 100644 => 100755 pages-user/orders/detail.vue mode change 100644 => 100755 pages-user/orders/index.vue mode change 100644 => 100755 pages-user/points/index.vue mode change 100644 => 100755 pages-user/settings/index.vue mode change 100644 => 100755 pages-user/tasks/index.vue mode change 100644 => 100755 pages.json mode change 100644 => 100755 pages/cabinet/index.vue mode change 100644 => 100755 pages/index/index.vue mode change 100644 => 100755 pages/login/index.vue mode change 100644 => 100755 pages/mine/index.vue mode change 100644 => 100755 pages/shop/index.vue mode change 100644 => 100755 project.config.json mode change 100644 => 100755 project.private.config.json mode change 100644 => 100755 static/logo.png mode change 100644 => 100755 static/share_invite.png mode change 100644 => 100755 static/tab/box.png mode change 100644 => 100755 static/tab/box_active.png mode change 100644 => 100755 static/tab/home.png mode change 100644 => 100755 static/tab/home_active.png mode change 100644 => 100755 static/tab/profile.png mode change 100644 => 100755 static/tab/profile_active.png mode change 100644 => 100755 static/tab/shop.png mode change 100644 => 100755 static/tab/shop_active.png mode change 100644 => 100755 uni.promisify.adaptor.js mode change 100644 => 100755 uni.scss mode change 100644 => 100755 utils/activity.js mode change 100644 => 100755 utils/cache.js mode change 100644 => 100755 utils/checkPhone.js mode change 100644 => 100755 utils/format.js mode change 100644 => 100755 utils/nakama-adapter.js mode change 100644 => 100755 utils/nakama-js/nakama-js.js mode change 100644 => 100755 utils/nakamaManager.js mode change 100644 => 100755 utils/payment.js mode change 100644 => 100755 utils/request.js mode change 100644 => 100755 utils/subscribe.js mode change 100644 => 100755 utils/vibrate.js mode change 100644 => 100755 协议.md mode change 100644 => 100755 说明文档.md diff --git a/.gitignore b/.gitignore old mode 100644 new mode 100755 diff --git a/.trae/documents/基于 Swagger 接口实现 Uni-App Vue3 微信登录页.md b/.trae/documents/基于 Swagger 接口实现 Uni-App Vue3 微信登录页.md deleted file mode 100644 index e18c886..0000000 --- a/.trae/documents/基于 Swagger 接口实现 Uni-App Vue3 微信登录页.md +++ /dev/null @@ -1,46 +0,0 @@ -## 接口梳理(App 用户相关) -- 登录与绑定: - - `POST /api/app/users/weixin/login`,请求含 `code`、`invite_code`;响应含 `token`、`user_id`、`avatar`、`nickname`、`invite_code`(.trae/documents/基于 Swagger 的 App 用户 API 汇总与 Uni-App 微信登录页面实现方案.md:5-10) - - `POST /api/app/users/{user_id}/phone/bind`,请求含微信手机号 `code`;响应为标准成功(.trae/documents/基于 Swagger 的 App 用户 API 汇总与 Uni-App 微信登录页面实现方案.md:11-16) -- 用户资料与地址: - - `PUT /api/app/users/{user_id}`(修改头像/昵称,`avatar`、`nickname`)(:19-22) - - 地址列表/新增/删除/设默认(`:23-27`),新增请求含基本地址字段(`:25-27`) -- 积分与统计: - - `GET /api/app/users/{user_id}/points/balance` 响应 `balance`(`:31-34`) - - `GET /api/app/users/{user_id}/stats` 响应 `coupon_count`、`item_card_count`、`points_balance`(`:35-37`) -- 订单与卡券/道具: - - 订单列表、优惠券、邀请、道具卡与使用记录(`:40-48`) - -## 技术方案 -- 网络层: - - 方案A(推荐)复用 `alova` 客户端与生成器,统一 `Authorization` 与错误处理(`:51`) - - 方案B 以 `uni.request` 封装最小所需接口(登录/绑定/统计),在请求头注入 `Bearer` token(`:71-72`) -- 平台与配置: - - `baseURL` 指向后端 `http://127.0.0.1:9991`;在微信小程序后台配置合法域名与 HTTPS 证书(`:75`) -- 状态与路由: - - `pages.json` 添加 `pages/login/index`;登录成功后 `uni.reLaunch` 到首页;用 `pinia` 管理 `isLogin`、`userInfo`、`points`(`:79`) -- 错误处理: - - 按既有分类提示与重试策略,覆盖网络错误、超时、404/500、参数错误(`:83`) - -## 页面实现(Uni-App Vue3) -- 结构:Logo/说明、`「微信登录」`按钮、`open-type="getPhoneNumber"` 授权按钮、加载与错误提示(`:57-58`) -- 流程: - - 触发 `uni.login({ provider: 'weixin' })` 获取 `code` → 调用 `POST /api/app/users/weixin/login` → 持久化 `token`、`user_id`(`:61-62`) - - 可选手机号绑定:`onGetPhoneNumber` 取 `code` → `POST /api/app/users/{user_id}/phone/bind`(`:63-64`) - - 登录后拉取统计与积分余额更新首页(`:65-66`) - -## 交付内容 -- 新增 `pages/login/index.vue`(Composition API)含完整登录/绑定流程与错误提示(`:91-94`) -- 接入并配置网络层(复用 `alova` 或最小 `uni.request` 封装) -- 路由与 `pinia` 状态的最小接入 - -## 验证方法 -- 在开发者工具/真机验证:`code` 获取、接口返回、`token/user_id` 存储、后续接口成功(`:87-88`) -- 输出必要的调试日志(不含敏感信息),观察错误分支与重试入口 - -## 执行步骤 -1. 接入 Swagger JSON(`http://127.0.0.1:9991/swagger/v1/swagger.json`)同步生成或确认接口(`:99-101`) -2. 选定网络层方案并落地调用 -3. 新增登录页面与交互逻辑 -4. 调整路由与状态管理 -5. 自测与联调,完成交付 \ No newline at end of file diff --git a/.trae/documents/基于 Swagger 的 App 用户 API 汇总与 Uni-App 微信登录页面实现方案.md b/.trae/documents/基于 Swagger 的 App 用户 API 汇总与 Uni-App 微信登录页面实现方案.md deleted file mode 100644 index 78240fd..0000000 --- a/.trae/documents/基于 Swagger 的 App 用户 API 汇总与 Uni-App 微信登录页面实现方案.md +++ /dev/null @@ -1,102 +0,0 @@ -## API 文档汇总(App 用户相关) - -* 登录与绑定: - - * `POST /api/app/users/weixin/login`(miniapp/src/api/apis/apiDefinitions.js:106) - - * 请求: `App_weixin_login_request`(code、invite\_code,可选) - - * 响应: `App_weixin_login_response`(token、user\_id、avatar、nickname、invite\_code)(miniapp/src/api/apis/globals.d.ts:760) - - * `POST /api/app/users/{user_id}/phone/bind`(apiDefinitions.js:123) - - * 请求: `App_bind_phone_request`(code,来源于微信手机号授权)(globals.d.ts:376) - - * 响应: 成功布尔或标准成功结构(项目统一在 `responded` 钩子返回 `response.data` 或 `response.data.data`,miniapp/src/api/apis/index.js:59) - -* 用户资料与地址: - - * `PUT /api/app/users/{user_id}` 修改头像/昵称(apiDefinitions.js:107) - - * 请求: `App_modify_user_request`(avatar、nickname,可选)(globals.d.ts:363) - - * `GET /api/app/users/{user_id}/addresses` 列表(apiDefinitions.js:108)/ `POST` 新增(apiDefinitions.js:109)/ `DELETE` 删除(apiDefinitions.js:110)/ `PUT .../default` 设默认(apiDefinitions.js:114) - - * 新增请求: `App_add_address_request`(姓名、手机号、省市区、详细地址、是否默认)(globals.d.ts:367) - - * 响应: 列表返回数组,新增/删除/设默认返回标准成功结构(项目统一 `responded` 处理) - -* 积分与统计: - - * `GET /api/app/users/{user_id}/points`(apiDefinitions.js:124)/ `GET .../points/balance`(apiDefinitions.js:125) - - * 响应: `App_points_balance_response`(balance)(globals.d.ts:773) - - * `GET /api/app/users/{user_id}/stats`(apiDefinitions.js:126) - - * 响应: `App_user_stats_response`(coupon\_count、item\_card\_count、points\_balance)(globals.d.ts:776) - -* 订单与卡券/道具: - - * `GET /api/app/users/{user_id}/orders`(apiDefinitions.js:122)→ 订单列表(类型包含 `Model_order_items` 等) - - * `GET /api/app/users/{user_id}/coupons`(apiDefinitions.js:118)/ `GET .../invites`(apiDefinitions.js:119) - - * `GET /api/app/users/{user_id}/item_cards`(apiDefinitions.js:120)/ `GET .../item_cards/uses`(apiDefinitions.js:121) - - * 响应: `User_item_card_with_template[]`(globals.d.ts:978) - -## 现有代码要点(可复用) - -* API 客户端:`alova` + 生成器(miniapp/src/api/apis/index.js:35、112;miniapp/alova.config.js:6),已封装 `Authorization`、401 刷新登录(index.js:9-33)。 - -* 登录页(Taro版):`miniapp/src/pages/login/index.vue`,逻辑封装在 `Apis.login.WechatAppLogin`(index.js:122-421)。 - -## 登录页面实现(Uni-App Vue3) - -* 页面结构:Logo/说明文案、按钮`「微信登录」`与`open-type="getPhoneNumber"`的手机号授权按钮,加载与错误提示。 - -* 流程: - - * `uni.login({ provider: 'weixin' })` 获取 `code` → 调用 `POST /api/app/users/weixin/login` → 存储 `token`、`user_id` 到 `uni.setStorageSync`。 - - * 可选:用户点击手机号授权后触发 `onGetPhoneNumber`,拿到 `code` 调用 `POST /api/app/users/{user_id}/phone/bind` 绑定手机号。 - - * 登录完成后拉取 `GET /api/app/users/{user_id}/stats` 与 `.../points/balance` 更新首页状态。 - -* 网络层: - - * 方案A(推荐,复用现有):在 Uni-App 中引入与复用 `alova` 生成的 `Apis`(保持统一的拦截器与基址、响应处理)。 - - * 方案B(轻量):使用 `uni.request` 封装最小调用(登录/绑定/统计),按现有 `Authorization: Bearer ` 规则注入。 - -* 配置与安全: - - * `baseURL` 指向后端地址(如 `http://127.0.0.1:9991`),并在微信小程序后台配置合法域名/证书;避免在日志中输出明文 token/手机号等敏感信息。 - -* 路由与状态: - - * 在 `pages.json` 新增 `pages/login/index`,登录成功后 `uni.reLaunch` 到首页;使用 `pinia` 存储 `isLogin`、`userInfo`、`points` 等(参考 miniapp/src/store/index.js)。 - -* 错误处理: - - * 按当前项目的分类提示(连接被拒绝、超时、域名未配置、SSL 错误、404、500、参数错误)进行用户级文案与重试入口(参考 index.js:221-253)。 - -## 验证与交付 - -* 验证:真机或开发者工具下,观察 `code` 获取、接口返回、`token/user_id` 存储与后续接口成功;埋点或日志控制台输出关键步骤。 - -* 交付: - - * 新增 `pages/login/index.vue`(Uni-App Vue3 Composition API 实现)。 - - * 复用或新增 API 封装(A/B 二选一)。 - - * 配置/路由调整与最小 `pinia` 状态接入。 - -## 后续执行步骤 - -* 接入 Swagger 源:将生成器输入指向 `http://127.0.0.1:9991/swagger/v1/swagger.json`(或项目后端的 Swagger JSON),生成/更新 `Apis` 并对齐 `baseURL`。 - -* 按上述方案完成页面与调用接入,并保持与现有 `alova` 响应处理一致性。 - diff --git a/.trae/documents/完善首页 UI:通知滚动与轮播图占位.md b/.trae/documents/完善首页 UI:通知滚动与轮播图占位.md deleted file mode 100644 index 59103b8..0000000 --- a/.trae/documents/完善首页 UI:通知滚动与轮播图占位.md +++ /dev/null @@ -1,35 +0,0 @@ -## 目标 -- 首页 UI 始终可见:轮播图在无数据时也显示占位滑块;通知始终滚动显示(Marquee)。 -- 接口路径统一为 `/api/app/*`,兼容返回 `{list: [...]}` 与字段 `snake_case`(如 `image_url`)。 - -## 变更范围 -- 文件:`pages/index/index.vue` -- 保留现有登录弹窗,但不阻断首页数据加载;完善数据清洗与空态展示。 - -## 轮播图(无数据也展示) -- 始终渲染 `swiper.banner-swiper`,不再用 `v-if` 隐藏容器。 -- 数据存在:按 `banners` 渲染;字段映射 `id`、`image_url|imageUrl|image`、`link_url|linkUrl|link|url`。 -- 数据为空:渲染 3 个占位滑块(`swiper-item` 内用 `` 纯色/渐变背景 + 文案“敬请期待”),避免依赖静态图片资源。 -- URL 清洗:移除反引号与空格,保证 `image_url` 可用。 - -## 通知滚动(Marquee) -- 始终渲染通知条。 -- 有数据:横向无缝滚动(CSS `@keyframes` + `transform: translateX`),将所有通知拼接为一条长文本,重复一份以实现循环滚动。 -- 无数据:使用默认文案(如“欢迎光临”“最新活动敬请期待”)参与滚动,保证始终有动效。 - -## 活动区 -- 保持当前两列栅格布局;无数据时显示“暂无活动”占位文案;点击仅在 `link` 为内部路径时跳转。 - -## 数据与接口 -- 请求入口统一:`/api/app/notices`、`/api/app/banners`、`/api/app/activities`。 -- 解包:支持 `list|items|data`。 -- 映射:通知 `content|text|title`;轮播图 `image_url|imageUrl|image|img|pic`、`link_url|linkUrl|link|url`;活动 `cover_url|coverUrl|image|img|pic`、`title|name`、`sub_title|subTitle|subtitle|desc|description`。 - -## 交互与空态 -- 未登录/未绑定:弹窗提醒,但首页照常加载并显示占位内容。 -- 点击跳转:内部路径以 `/` 开头才触发 `navigateTo`;避免空链接导致错误。 - -## 验证 -- 模拟后端返回 `{list:[...]}` 含反引号的 `image_url`,确认轮播图正常显示。 -- 清空 `banners` 与 `notices`,确认占位滑块与默认滚动文案显示。 -- 在微信小程序/浏览器预览,验证滚动流畅度与样式适配。 \ No newline at end of file diff --git a/App.vue b/App.vue old mode 100644 new mode 100755 diff --git a/api/appUser.js b/api/appUser.js old mode 100644 new mode 100755 diff --git a/components/BoxReveal.vue b/components/BoxReveal.vue old mode 100644 new mode 100755 diff --git a/components/ClayButton.vue b/components/ClayButton.vue old mode 100644 new mode 100755 diff --git a/components/ClayCard.vue b/components/ClayCard.vue old mode 100644 new mode 100755 diff --git a/components/ClayInput.vue b/components/ClayInput.vue old mode 100644 new mode 100755 diff --git a/components/ElCard.vue b/components/ElCard.vue old mode 100644 new mode 100755 diff --git a/components/FlipGrid.vue b/components/FlipGrid.vue old mode 100644 new mode 100755 diff --git a/components/GamePassPurchasePopup.vue b/components/GamePassPurchasePopup.vue old mode 100644 new mode 100755 diff --git a/components/GamePassPurchasePopup.vue.backup b/components/GamePassPurchasePopup.vue.backup old mode 100644 new mode 100755 diff --git a/components/MatchingGame.vue b/components/MatchingGame.vue old mode 100644 new mode 100755 diff --git a/components/PaymentPopup.vue b/components/PaymentPopup.vue old mode 100644 new mode 100755 index 2d99ab3..feaf19f --- a/components/PaymentPopup.vue +++ b/components/PaymentPopup.vue @@ -304,7 +304,7 @@ function handleClose() { function handleConfirm() { emit('confirm', { coupon: useGamePass.value ? null : selectedCoupon.value, - card: (props.showCards && !useGamePass.value) ? selectedCard.value : null, + card: props.showCards ? selectedCard.value : null, // 次卡使用时也保留道具卡(后端只限制次卡与优惠券互斥,不限制道具卡) useGamePass: useGamePass.value }) } diff --git a/components/SplashScreen.vue b/components/SplashScreen.vue old mode 100644 new mode 100755 diff --git a/components/YifanSelector.vue b/components/YifanSelector.vue old mode 100644 new mode 100755 diff --git a/components/activity/ActivityHeader.vue b/components/activity/ActivityHeader.vue old mode 100644 new mode 100755 diff --git a/components/activity/ActivityPageLayout.vue b/components/activity/ActivityPageLayout.vue old mode 100644 new mode 100755 diff --git a/components/activity/ActivityTabs.vue b/components/activity/ActivityTabs.vue old mode 100644 new mode 100755 diff --git a/components/activity/CabinetPreviewPopup.vue b/components/activity/CabinetPreviewPopup.vue old mode 100644 new mode 100755 diff --git a/components/activity/DrawLoadingPopup.vue b/components/activity/DrawLoadingPopup.vue old mode 100644 new mode 100755 diff --git a/components/activity/LotteryResultPopup.vue b/components/activity/LotteryResultPopup.vue old mode 100644 new mode 100755 diff --git a/components/activity/RecordsList.vue b/components/activity/RecordsList.vue old mode 100644 new mode 100755 diff --git a/components/activity/RewardsPopup.vue b/components/activity/RewardsPopup.vue old mode 100644 new mode 100755 diff --git a/components/activity/RewardsPreview.vue b/components/activity/RewardsPreview.vue old mode 100644 new mode 100755 diff --git a/components/activity/RulesPopup.vue b/components/activity/RulesPopup.vue old mode 100644 new mode 100755 diff --git a/components/activity/index.js b/components/activity/index.js old mode 100644 new mode 100755 diff --git a/components/app-tab-bar-toutiao.vue b/components/app-tab-bar-toutiao.vue old mode 100644 new mode 100755 diff --git a/components/app-tab-bar.vue b/components/app-tab-bar.vue old mode 100644 new mode 100755 diff --git a/components/clay-components.js b/components/clay-components.js old mode 100644 new mode 100755 diff --git a/docs/CLAYMORPHISM.md b/docs/CLAYMORPHISM.md old mode 100644 new mode 100755 diff --git a/docs/代码重构分析/ALIGNMENT_代码冗余分析.md b/docs/代码重构分析/ALIGNMENT_代码冗余分析.md old mode 100644 new mode 100755 diff --git a/docs/代码重构分析/DESIGN_组件化重构.md b/docs/代码重构分析/DESIGN_组件化重构.md old mode 100644 new mode 100755 diff --git a/index.html b/index.html old mode 100644 new mode 100755 diff --git a/main.js b/main.js old mode 100644 new mode 100755 diff --git a/manifest.json b/manifest.json old mode 100644 new mode 100755 diff --git a/pages-activity/activity/duiduipeng/index.vue b/pages-activity/activity/duiduipeng/index.vue old mode 100644 new mode 100755 diff --git a/pages-activity/activity/list/index.vue b/pages-activity/activity/list/index.vue old mode 100644 new mode 100755 diff --git a/pages-activity/activity/pata/index.vue b/pages-activity/activity/pata/index.vue old mode 100644 new mode 100755 diff --git a/pages-activity/activity/wuxianshang/index.vue b/pages-activity/activity/wuxianshang/index.vue old mode 100644 new mode 100755 diff --git a/pages-activity/activity/yifanshang/index.vue b/pages-activity/activity/yifanshang/index.vue old mode 100644 new mode 100755 diff --git a/pages-activity/composables/index.js b/pages-activity/composables/index.js old mode 100644 new mode 100755 diff --git a/pages-activity/composables/useActivity.js b/pages-activity/composables/useActivity.js old mode 100644 new mode 100755 diff --git a/pages-activity/composables/useIssues.js b/pages-activity/composables/useIssues.js old mode 100644 new mode 100755 diff --git a/pages-activity/composables/useRecords.js b/pages-activity/composables/useRecords.js old mode 100644 new mode 100755 diff --git a/pages-activity/composables/useRewards.js b/pages-activity/composables/useRewards.js old mode 100644 new mode 100755 diff --git a/pages-game/game/minesweeper/index.vue b/pages-game/game/minesweeper/index.vue old mode 100644 new mode 100755 diff --git a/pages-game/game/minesweeper/play.scss b/pages-game/game/minesweeper/play.scss old mode 100644 new mode 100755 diff --git a/pages-game/game/minesweeper/play.vue b/pages-game/game/minesweeper/play.vue old mode 100644 new mode 100755 diff --git a/pages-game/game/minesweeper/room-list.vue b/pages-game/game/minesweeper/room-list.vue old mode 100644 new mode 100755 diff --git a/pages-game/game/webview.vue b/pages-game/game/webview.vue old mode 100644 new mode 100755 diff --git a/pages-shop/shop/detail.vue b/pages-shop/shop/detail.vue old mode 100644 new mode 100755 diff --git a/pages-user/address/edit.vue b/pages-user/address/edit.vue old mode 100644 new mode 100755 diff --git a/pages-user/address/index.vue b/pages-user/address/index.vue old mode 100644 new mode 100755 diff --git a/pages-user/address/submit.vue b/pages-user/address/submit.vue old mode 100644 new mode 100755 diff --git a/pages-user/agreement/purchase.vue b/pages-user/agreement/purchase.vue old mode 100644 new mode 100755 diff --git a/pages-user/agreement/user.vue b/pages-user/agreement/user.vue old mode 100644 new mode 100755 diff --git a/pages-user/coupons/index.vue b/pages-user/coupons/index.vue old mode 100644 new mode 100755 diff --git a/pages-user/help/index.vue b/pages-user/help/index.vue old mode 100644 new mode 100755 diff --git a/pages-user/invite/landing.vue b/pages-user/invite/landing.vue old mode 100644 new mode 100755 diff --git a/pages-user/invites/index.vue b/pages-user/invites/index.vue old mode 100644 new mode 100755 diff --git a/pages-user/item-cards/index.vue b/pages-user/item-cards/index.vue old mode 100644 new mode 100755 diff --git a/pages-user/orders/detail.vue b/pages-user/orders/detail.vue old mode 100644 new mode 100755 diff --git a/pages-user/orders/index.vue b/pages-user/orders/index.vue old mode 100644 new mode 100755 diff --git a/pages-user/points/index.vue b/pages-user/points/index.vue old mode 100644 new mode 100755 diff --git a/pages-user/settings/index.vue b/pages-user/settings/index.vue old mode 100644 new mode 100755 diff --git a/pages-user/tasks/index.vue b/pages-user/tasks/index.vue old mode 100644 new mode 100755 index aa9295b..9e1169a --- a/pages-user/tasks/index.vue +++ b/pages-user/tasks/index.vue @@ -74,14 +74,14 @@ - 活动 {{ sub.activity_id }} + {{ getSubProgressLabel(sub) }} - ¥{{ sub.order_amount / 100 }} + {{ getSubProgressValue(sub, task) }} @@ -138,6 +138,10 @@ {{ getTierProgressText(task, tier) }} + + + + 剩余 {{ tier.remaining }} 份 @@ -156,7 +160,7 @@