From 7081420384907e5dae64214c9dcbdd41952ef43d Mon Sep 17 00:00:00 2001 From: zoujing Date: Thu, 30 Jul 2026 17:49:55 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E9=A1=B5=E9=9D=A2=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../22655-1785395892/state/server.pid | 1 + .../content/client-architecture.html | 72 +++++ .../content/client-scope.html | 67 +++++ .../content/waiting-data-design.html | 3 + .../waiting-implementation-structure.html | 3 + .../22705-1785395917/state/server-stopped | 1 + .../22705-1785395917/state/server.pid | 1 + src/components/TopNavBar/index.vue | 32 +- src/components/TopNavBar/styles/index.scss | 1 - src/pages-service/tickets/booking.vue | 72 +++++ .../tickets/components/BookingFlow.vue | 13 +- .../tickets/components/CredentialsView.vue | 49 +-- .../tickets/components/OrderDetail.vue | 100 +++--- .../tickets/components/OrderList.vue | 58 ++-- .../tickets/components/PaymentResult.vue | 8 +- .../tickets/components/ProductDetail.vue | 18 +- .../tickets/components/RefundFlow.vue | 51 ++-- .../tickets/components/TicketHome.vue | 98 +++++- .../tickets/components/TravelerManager.vue | 13 +- src/pages-service/tickets/credentials.vue | 32 ++ src/pages-service/tickets/index.vue | 284 ++---------------- src/pages-service/tickets/order-detail.vue | 37 +++ src/pages-service/tickets/orders.vue | 30 ++ src/pages-service/tickets/refund.vue | 46 +++ src/pages-service/tickets/store.js | 131 ++++++++ src/pages-service/tickets/travelers.vue | 38 +++ .../tickets/view-contract.test.mjs | 80 +++++ src/pages.json | 36 +++ src/pages/ChatMain/ChatQuickAccess/index.vue | 3 +- 29 files changed, 946 insertions(+), 432 deletions(-) create mode 100644 .superpowers/brainstorm/22655-1785395892/state/server.pid create mode 100644 .superpowers/brainstorm/22705-1785395917/content/client-architecture.html create mode 100644 .superpowers/brainstorm/22705-1785395917/content/client-scope.html create mode 100644 .superpowers/brainstorm/22705-1785395917/content/waiting-data-design.html create mode 100644 .superpowers/brainstorm/22705-1785395917/content/waiting-implementation-structure.html create mode 100644 .superpowers/brainstorm/22705-1785395917/state/server-stopped create mode 100644 .superpowers/brainstorm/22705-1785395917/state/server.pid create mode 100644 src/pages-service/tickets/booking.vue create mode 100644 src/pages-service/tickets/credentials.vue create mode 100644 src/pages-service/tickets/order-detail.vue create mode 100644 src/pages-service/tickets/orders.vue create mode 100644 src/pages-service/tickets/refund.vue create mode 100644 src/pages-service/tickets/store.js create mode 100644 src/pages-service/tickets/travelers.vue create mode 100644 src/pages-service/tickets/view-contract.test.mjs diff --git a/.superpowers/brainstorm/22655-1785395892/state/server.pid b/.superpowers/brainstorm/22655-1785395892/state/server.pid new file mode 100644 index 0000000..f68aa0b --- /dev/null +++ b/.superpowers/brainstorm/22655-1785395892/state/server.pid @@ -0,0 +1 @@ +22655 diff --git a/.superpowers/brainstorm/22705-1785395917/content/client-architecture.html b/.superpowers/brainstorm/22705-1785395917/content/client-architecture.html new file mode 100644 index 0000000..413c61f --- /dev/null +++ b/.superpowers/brainstorm/22705-1785395917/content/client-architecture.html @@ -0,0 +1,72 @@ +

设计第一部分:页面流与组件边界

+

一个 uni-app 路由承载完整游客端,以页面状态切换保持连续体验;每个复杂页面拆成同目录子组件。

+ +
+
src/pages-service/tickets/index.vue · 页面壳层
+
+
+
+
浏览与购买主链路
+
+
首页
分类联动列表
+ +
商品详情
+ +
预订选择
+ +
填写游客
+ +
支付成功
+
+ +
订单与售后支线
+
+
我的订单
+ +
订单详情
+ +
我的凭证
+ +
申请退款 → 结果
+
+
+ +
+
同目录模块
+
+
components/ 各页面视图与商品卡片
+
data.js 商品、分组、游客、订单默认结构
+
model.mjs 页面跳转、价格、订单与退款纯逻辑
+
index.vue 状态编排、返回规则和共享数据
+
+
+
+
+
+ +
+

交互约定

+ +
+ +
+
+
+
+

确认此结构

+

按上面的页面流、组件边界和返回规则继续。

+
+
+
+
+
+

需要调整

+

选中后在终端告诉我希望修改的页面或交互。

+
+
+
diff --git a/.superpowers/brainstorm/22705-1785395917/content/client-scope.html b/.superpowers/brainstorm/22705-1785395917/content/client-scope.html new file mode 100644 index 0000000..42ad0d0 --- /dev/null +++ b/.superpowers/brainstorm/22705-1785395917/content/client-scope.html @@ -0,0 +1,67 @@ +

游客端迁移范围确认

+

原型中的游客端不只有截图首页,还串联了商品、预订、订单、退款和凭证。请选择这次要落地的交互深度。

+ +
+
+
+
+ 景区首页 + + 商品详情 + + 预订选择 + + 填写游客 + + 支付结果 +
+
+
+ 我的订单 + + 订单详情 + + 我的凭证 + + 申请退款 +
+
+
+

A · 完整游客端链路(推荐)

+

迁移所有游客可点击进入的状态页,用本地默认数据模拟下单、支付、订单、退款与凭证。

+
+
+ +
+
+
+
首页
+
详情
+
日期
+
游客
+
支付
+
+
+
+

B · 仅购买链路

+

做到支付完成;不实现我的订单、订单详情、退款和凭证页面。

+
+
+ +
+
+
+ +
+
成人门票+观光车
+
官方 可订明日 随时退
+
¥160
+
+
+
+
+

C · 仅浏览展示

+

只迁移截图首页和商品详情,选购按钮不继续进入预订流程。

+
+
+
diff --git a/.superpowers/brainstorm/22705-1785395917/content/waiting-data-design.html b/.superpowers/brainstorm/22705-1785395917/content/waiting-data-design.html new file mode 100644 index 0000000..09800bb --- /dev/null +++ b/.superpowers/brainstorm/22705-1785395917/content/waiting-data-design.html @@ -0,0 +1,3 @@ +
+

页面结构已确认,继续在终端确认数据、校验与验收设计…

+
diff --git a/.superpowers/brainstorm/22705-1785395917/content/waiting-implementation-structure.html b/.superpowers/brainstorm/22705-1785395917/content/waiting-implementation-structure.html new file mode 100644 index 0000000..c505789 --- /dev/null +++ b/.superpowers/brainstorm/22705-1785395917/content/waiting-implementation-structure.html @@ -0,0 +1,3 @@ +
+

已确认完整游客端链路,继续在终端讨论实现结构…

+
diff --git a/.superpowers/brainstorm/22705-1785395917/state/server-stopped b/.superpowers/brainstorm/22705-1785395917/state/server-stopped new file mode 100644 index 0000000..d69327b --- /dev/null +++ b/.superpowers/brainstorm/22705-1785395917/state/server-stopped @@ -0,0 +1 @@ +{"reason":"idle timeout","timestamp":1785398377405} diff --git a/.superpowers/brainstorm/22705-1785395917/state/server.pid b/.superpowers/brainstorm/22705-1785395917/state/server.pid new file mode 100644 index 0000000..33ac106 --- /dev/null +++ b/.superpowers/brainstorm/22705-1785395917/state/server.pid @@ -0,0 +1 @@ +22705 diff --git a/src/components/TopNavBar/index.vue b/src/components/TopNavBar/index.vue index 77acaf0..3051f98 100644 --- a/src/components/TopNavBar/index.vue +++ b/src/components/TopNavBar/index.vue @@ -12,13 +12,21 @@ - - {{ title }} - + + + {{ title }} + + + {{ subtitle }} + + @@ -40,6 +48,10 @@ const props = defineProps({ type: String, default: "", }, + subtitle: { + type: String, + default: "", + }, // 是否固定在顶部 fixed: { type: Boolean, @@ -60,6 +72,10 @@ const props = defineProps({ type: String, default: "#000", }, + subtitleColor: { + type: String, + default: "#667085", + }, // 返回按钮图标颜色 backIconColor: { type: String, @@ -141,10 +157,16 @@ const navBarStyle = computed(() => { const navContentStyle = computed(() => { return { - height: navBarHeight.value + "px", + height: navBarHeight.value + (props.subtitle ? 12 : 0) + "px", }; }); +const titleContentClass = computed(() => + props.titleAlign === "left" + ? "items-start text-left" + : "items-center text-center" +); + const hasBackListener = computed(() => { const vnodeProps = instance?.vnode?.props || {}; return Boolean(vnodeProps.onBack); diff --git a/src/components/TopNavBar/styles/index.scss b/src/components/TopNavBar/styles/index.scss index bbd7273..9b8ed1d 100644 --- a/src/components/TopNavBar/styles/index.scss +++ b/src/components/TopNavBar/styles/index.scss @@ -20,7 +20,6 @@ .nav-bar-center { flex: 1; - height: 30px; padding: 0 20px; // 为左右按钮留出空间 // 居中对齐(默认) diff --git a/src/pages-service/tickets/booking.vue b/src/pages-service/tickets/booking.vue new file mode 100644 index 0000000..a68fbd7 --- /dev/null +++ b/src/pages-service/tickets/booking.vue @@ -0,0 +1,72 @@ + + + diff --git a/src/pages-service/tickets/components/BookingFlow.vue b/src/pages-service/tickets/components/BookingFlow.vue index 3a7016b..ddc0345 100644 --- a/src/pages-service/tickets/components/BookingFlow.vue +++ b/src/pages-service/tickets/components/BookingFlow.vue @@ -1,12 +1,7 @@