From 77e5cb95108d1f4ec37f00c065195a702432d497 Mon Sep 17 00:00:00 2001 From: jacobxu666 Date: Wed, 5 Aug 2026 12:48:45 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=85=A8=E7=AB=99=20UI=20=E6=8C=89=20M?= =?UTF-8?q?inimalist=20Modern=20=E9=87=8D=E8=AE=BE=E8=AE=A1=EF=BC=8C?= =?UTF-8?q?=E6=96=B0=E5=A2=9E=E8=BF=94=E5=9B=9E=E6=82=AC=E6=B5=AE=E9=92=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 设计令牌层:mm-* CSS 变量与工具类、uView 换肤、优设标题黑字体 - 九个页面全部重写为新风格(列表/详情/下单/出行人/订单/支付成功/登录) - 补齐 H5 运行时缺失的基础样式(uni-view/scroll-view/toast/swiper 等,App.vue 全局) - 修复:详情头图轮播、预订须知弹层滚动、出行人数量按购买数限制、订单详情去箭头 - 新增 gmy-back-touch 返回悬浮钮,除首页外全页接入,点击返回上一页 Co-Authored-By: Claude Opus 4.8 --- .gitignore | 2 + App.vue | 362 ++++++- back.png | Bin 0 -> 14114 bytes components/gmy-back-touch/gmy-back-touch.vue | 57 ++ .../gmy-float-touch/gmy-float-touch.vue | 42 +- pages/index/authorization.vue | 179 ++-- pages/ticket/orderdetail.vue | 687 ++++++++----- pages/ticket/orderlist.vue | 200 +++- pages/ticket/ordersure.vue | 936 +++++++++++------- pages/ticket/paysuccess.vue | 171 ++-- pages/ticket/person.vue | 78 +- pages/ticket/scenic.vue | 386 ++++---- pages/ticket/scenicdetail.vue | 652 +++++++----- pages/ticket/select.vue | 217 +++- static/back.png | Bin 0 -> 14114 bytes uni.scss | 27 +- unit/font/index.css | 4 +- uview-ui/components/u-calendar/u-calendar.vue | 21 +- uview-ui/components/u-popup/u-popup.vue | 4 +- 19 files changed, 2690 insertions(+), 1335 deletions(-) create mode 100644 back.png create mode 100644 components/gmy-back-touch/gmy-back-touch.vue create mode 100644 static/back.png diff --git a/.gitignore b/.gitignore index c6a900e..6cfa49f 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,4 @@ /unpackage/ .DS_Store +# xuchao: Playwright 验证产物(截图/控制台日志),不入库 +.playwright-mcp/ diff --git a/App.vue b/App.vue index 0f2d17b..be65a46 100644 --- a/App.vue +++ b/App.vue @@ -37,7 +37,362 @@ @import "uview-ui/index.scss"; @import "./unit/font/index.css"; + /* xuchao: Minimalist Modern 设计令牌 —— H5 全局 CSS 变量,页面样式统一用 var(--mm-*) 取值 */ + page { + --mm-bg: #FAFAFA; + --mm-fg: #0F172A; + --mm-muted: #F1F5F9; + --mm-muted-fg: #64748B; + --mm-accent: #0052FF; + --mm-accent-2: #4D7CFF; + --mm-card: #FFFFFF; + --mm-border: #E2E8F0; + --mm-grad: linear-gradient(135deg, #0052FF, #4D7CFF); + --mm-grad-h: linear-gradient(to right, #0052FF, #4D7CFF); + --mm-shadow-sm: 0 2rpx 6rpx rgba(15, 23, 42, 0.06); + --mm-shadow-md: 0 8rpx 16rpx rgba(15, 23, 42, 0.07); + --mm-shadow-lg: 0 20rpx 30rpx rgba(15, 23, 42, 0.08); + --mm-shadow-accent: 0 8rpx 28rpx rgba(0, 82, 255, 0.25); + --mm-radius: 24rpx; + + background: var(--mm-bg); + color: var(--mm-fg); + font-family: -apple-system, BlinkMacSystemFont, "Helvetica Neue", "PingFang SC", + "HarmonyOS Sans SC", "Source Han Sans SC", "Microsoft YaHei", sans-serif; + } + + /* xuchao: 页面根容器 —— 该 H5 运行时 uni-view 默认 inline,根视图必须显式 block, + 否则内边距/最小高度不生效,子级会顶满屏幕 */ + .mm-page { + display: block; + min-height: 100vh; + box-sizing: border-box; + } + + /* xuchao: mm- 前缀全局工具类 —— 各页面共用,禁止页面内再写一次性渐变/阴影 */ + /* 签名渐变背景 */ + .mm-grad { + background: var(--mm-grad); + } + + /* 渐变文字(标题关键词、价格数字) */ + .mm-grad-text { + background: var(--mm-grad-h); + -webkit-background-clip: text; + background-clip: text; + color: transparent; + } + + /* 标准卡片:白底 + 描边 + 圆角 + 柔和投影 */ + .mm-card { + background: var(--mm-card); + border: 2rpx solid var(--mm-border); + border-radius: var(--mm-radius); + box-shadow: var(--mm-shadow-md); + } + + /* 主按钮:渐变底 + 白字 + 蓝色投影,按下有触感反馈 */ + .mm-btn { + display: flex; + align-items: center; + justify-content: center; + height: 96rpx; + border-radius: var(--mm-radius); + background: var(--mm-grad); + color: #fff; + font-size: 30rpx; + font-weight: 500; + letter-spacing: 0.02em; + box-shadow: var(--mm-shadow-accent); + transition: all 0.2s ease-out; + } + + .mm-btn:active { + transform: scale(0.98); + filter: brightness(1.1); + } + + /* 次级按钮:描边幽灵态,用于"返回/取消"类操作 */ + .mm-btn-ghost { + display: flex; + align-items: center; + justify-content: center; + height: 96rpx; + border-radius: var(--mm-radius); + border: 2rpx solid var(--mm-border); + background: transparent; + color: var(--mm-fg); + font-size: 30rpx; + transition: all 0.2s ease-out; + } + + .mm-btn-ghost:active { + background: var(--mm-muted); + } + + /* 区块标签徽章:小圆点 + 宽字距文字(设计系统的 section label 形态) */ + .mm-badge { + display: inline-flex; + align-items: center; + border-radius: 999rpx; + border: 2rpx solid rgba(0, 82, 255, 0.3); + background: rgba(0, 82, 255, 0.05); + padding: 10rpx 24rpx; + } + + .mm-badge__dot { + width: 12rpx; + height: 12rpx; + border-radius: 50%; + background: var(--mm-accent); + margin-right: 12rpx; + animation: mm-pulse 2s ease-in-out infinite; + } + + .mm-badge__text { + font-size: 22rpx; + letter-spacing: 0.15em; + color: var(--mm-accent); + } + + /* 区块标题:左侧签名渐变竖条 + 标题文字,各页内容分区统一用它 */ + .mm-sec-title { + display: flex; + align-items: center; + font-size: 32rpx; + font-weight: 600; + letter-spacing: -0.01em; + color: var(--mm-fg); + } + + .mm-sec-title::before { + content: ''; + width: 8rpx; + height: 32rpx; + border-radius: 4rpx; + background: var(--mm-grad); + margin-right: 16rpx; + } + + /* xuchao: 输入占位符浅灰(设计令牌)—— 配合 placeholder-class="mm-ph" 使用 */ + .mm-ph { + color: #CBD5E1; + } + + .mm-ph::placeholder { + color: #CBD5E1; + opacity: 1; + } + + /* 展示字体(本地 YouShe 优设标题黑),大标题与价格数字用 */ + .mm-display { + font-family: "YouShe", "PingFang SC", sans-serif; + font-weight: 400; + } + + /* 入场动效:上移渐显;配合 .mm-stagger 给子元素逐个延迟 */ + .mm-fade-up { + animation: mm-fade-up 0.7s cubic-bezier(0.16, 1, 0.3, 1) both; + } + + .mm-stagger>*:nth-child(1) { animation-delay: 0.05s; } + .mm-stagger>*:nth-child(2) { animation-delay: 0.12s; } + .mm-stagger>*:nth-child(3) { animation-delay: 0.19s; } + .mm-stagger>*:nth-child(4) { animation-delay: 0.26s; } + .mm-stagger>*:nth-child(5) { animation-delay: 0.33s; } + .mm-stagger>*:nth-child(6) { animation-delay: 0.4s; } + .mm-stagger>*:nth-child(7) { animation-delay: 0.47s; } + .mm-stagger>*:nth-child(n+8) { animation-delay: 0.54s; } + + @keyframes mm-fade-up { + from { + opacity: 0; + transform: translateY(40rpx); + } + + to { + opacity: 1; + transform: translateY(0); + } + } + + /* 脉动圆点:徽章"进行中"指示 */ + @keyframes mm-pulse { + + 0%, + 100% { + transform: scale(1); + opacity: 1; + } + + 50% { + transform: scale(1.3); + opacity: 0.7; + } + } + + /* 底部安全区(iPhone X 系列全面屏) */ + .mm-safe-bottom { + padding-bottom: constant(safe-area-inset-bottom); + padding-bottom: env(safe-area-inset-bottom); + } + + /* 用户偏好减少动效时,关闭所有装饰性动画 */ + @media (prefers-reduced-motion: reduce) { + + .mm-fade-up, + .mm-badge__dot { + animation: none !important; + } + + .mm-btn, + .mm-btn-ghost { + transition: none !important; + } + } + /* #ifdef H5 */ + // xuchao: 该 H5 运行时 uni-view 默认 inline(标准 uni-app 为 block), + // 无 display 声明的样式容器会退化为行内:内边距/外边距/高/文本对齐全部失效。 + // 全局恢复 block,与标准 uni-app H5 行为一致。 + uni-view, + uni-scroll-view { + display: block; + } + + // xuchao: 该 H5 运行时还缺 scroll-view 内置滚动样式 —— 内层 .uni-scroll-view 无 overflow + // 声明且高度被内容撑开,所有 scroll-view 都不能滚(弹窗里滑动会穿透去滚背后页面)。 + // 补齐:外层裁切、内层承担滚动;overscroll-behavior 防止滚到边缘后链式滚动背景页。 + uni-scroll-view { + overflow: hidden; + } + + uni-scroll-view .uni-scroll-view { + height: 100%; + overflow-x: hidden; + overflow-y: auto; + overscroll-behavior: contain; + -webkit-overflow-scrolling: touch; + } + + // xuchao: 横向 scroll-view(带 scroll-x 属性)改为横向滚动、内容不换行 + uni-scroll-view[scroll-x] .uni-scroll-view { + height: auto; + overflow-x: auto; + overflow-y: hidden; + white-space: nowrap; + } + + // xuchao: 该 H5 运行时缺 uni-swiper 内置样式 —— 宿主元素 inline,组件内联写入的 + // height 不生效,整个轮播塌成 0(详情页头图不显示)。按标准 uni-app H5 补齐: + // 宿主 block 定高裁切,wrapper 铺满,slides 绝对定位(其 inset:0 为内联样式)。 + uni-swiper { + display: block; + position: relative; + width: 100%; + height: 150px; + overflow: hidden; + } + + uni-swiper .uni-swiper-wrapper { + position: relative; + width: 100%; + height: 100%; + overflow: hidden; + } + + uni-swiper .uni-swiper-slides { + position: absolute; + } + + // xuchao: 该 H5 运行时缺 uni-toast 内置样式 —— 提示以文档流内联渲染(透明底黑字、 + // 掉到页面底部视口外),等同不可见。恢复标准 uni-app H5 形态:全屏 fixed 居中 + 深色胶囊。 + uni-toast { + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; + pointer-events: none; + } + + .uni-sample-toast { + max-width: 70%; + padding: 20rpx 36rpx; + border-radius: 16rpx; + background: rgba(15, 23, 42, 0.82); + color: #fff; + font-size: 28rpx; + line-height: 1.5; + text-align: center; + word-break: break-all; + } + + // xuchao: 该 H5 运行时缺少 uni-app 内置的 input 基础样式(输入框退化为浏览器默认带框小输入条), + // 按标准 uni-app H5 补齐:wrapper 撑满、真实 input 绝对定位铺满去边框、占位符绝对定位叠在上方。 + uni-input, + uni-textarea { + display: block; + position: relative; + } + + .uni-input-wrapper, + .uni-textarea-wrapper { + position: relative; + width: 100%; + height: 100%; + } + + .uni-input-input, + .uni-textarea-input { + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; + margin: 0; + padding: 0; + border: none; + outline: none; + background: transparent; + border-radius: 0; + font: inherit; + color: inherit; + -webkit-appearance: none; + appearance: none; + } + + .uni-input-placeholder, + .uni-textarea-placeholder { + position: absolute; + left: 0; + top: 0; + right: 0; + pointer-events: none; + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; + /* xuchao: 占位符统一浅灰(设计令牌) */ + color: #CBD5E1; + } + + // xuchao: 模板里的原生 input/textarea 同样剥掉浏览器默认边框 + input, + textarea { + border: none; + outline: none; + background: transparent; + border-radius: 0; + font: inherit; + color: inherit; + -webkit-appearance: none; + appearance: none; + } + // xuchao: 修复 uni-image 内部填充元素宽高为 0 导致图片不显示/溢出 uni-image { display: inline-block; @@ -60,8 +415,9 @@ // xuchao: 宽屏(>768px,框架此时把 rpx 基准锁在 375)下,把页面列居中、两侧露出底色 @media screen and (min-width: 769px) { body { - // xuchao: 页面级 page 背景会染到 body,需 !important 才能露出两侧底色 - background: #dfe4ea !important; + // xuchao: 页面级 page 背景会染到 body,需 !important 才能露出两侧底色; + // 底色取设计系统描边色,与 #FAFAFA 页面形成柔和层次 + background: #E2E8F0 !important; } uni-page-body { @@ -74,7 +430,7 @@ margin: 0 auto !important; min-height: 100vh; overflow-x: hidden; - box-shadow: 0 0 24px rgba(31, 45, 61, 0.14); + box-shadow: 0 0 24px rgba(15, 23, 42, 0.14); } } /* #endif */ diff --git a/back.png b/back.png new file mode 100644 index 0000000000000000000000000000000000000000..da91dc44eb7aa6acdb12e2afc4090aa2524c4b6c GIT binary patch literal 14114 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 + + + + + + + + + diff --git a/components/gmy-float-touch/gmy-float-touch.vue b/components/gmy-float-touch/gmy-float-touch.vue index 2f91518..5e5800d 100644 --- a/components/gmy-float-touch/gmy-float-touch.vue +++ b/components/gmy-float-touch/gmy-float-touch.vue @@ -1,21 +1,17 @@ diff --git a/pages/index/authorization.vue b/pages/index/authorization.vue index f8413cd..908a1b7 100644 --- a/pages/index/authorization.vue +++ b/pages/index/authorization.vue @@ -1,27 +1,38 @@