From 40d0df3330e32f86418f19a379575d223dfb0328 Mon Sep 17 00:00:00 2001 From: lik Date: Tue, 6 Oct 2026 17:58:18 +0800 Subject: [PATCH] =?UTF-8?q?=E9=87=8D=E6=9E=84=E5=AE=8C=E5=A4=A7=E9=83=A8?= =?UTF-8?q?=E5=88=86=E9=A1=B5=E9=9D=A2=E4=BA=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- doc/DESIGN.md | 17 ++-- doc/PROJECT_GUIDE.md | 4 +- pages/escort/agreement.js | 45 ---------- pages/escort/agreement.wxml | 10 --- pages/escort/agreement.wxss | 163 ++++++++++------------------------ pages/escort/guide.js | 65 +++++++++----- pages/escort/guide.wxml | 16 ++-- pages/escort/guide.wxss | 36 +++----- pages/escort/itemdetail.js | 4 +- pages/escort/itemdetail.wxml | 2 +- pages/escort/itemlist.js | 58 +++++------- pages/escort/itemlist.wxml | 22 ++--- pages/escort/itemlist.wxss | 36 ++++---- pages/escort/recordlist.js | 82 ++++++++++++++++- pages/escort/recordlist.wxml | 24 +++-- pages/escort/recordlist.wxss | 10 ++- pages/health/profilelist.js | 6 +- pages/health/profilelist.json | 2 +- pages/health/profilelist.wxml | 2 +- pages/home/index.js | 17 ++-- pages/home/index.wxss | 22 +++-- pages/mine/about.js | 62 +------------ pages/mine/about.wxml | 70 ++++----------- pages/mine/about.wxss | 162 ++++++++++++++------------------- pages/mine/mine.js | 6 +- project.config.json | 2 +- project.private.config.json | 2 +- utils/api.js | 2 +- 28 files changed, 412 insertions(+), 537 deletions(-) diff --git a/doc/DESIGN.md b/doc/DESIGN.md index 7416484..ec18873 100644 --- a/doc/DESIGN.md +++ b/doc/DESIGN.md @@ -18,7 +18,9 @@ **四处硬编码走不了变量,改色须一并手改**(逐文件见 §7.3):`t-icon` 的 `color`、`app.json` 的 `tabBar.selectedColor`、首页 base64 线图标的 `stroke`、着色的位图(`images/home-ink.png`)。 -迁移进度:`home/index`、`escort/itemlist` 两页副本已删;`itemdetail`、`attendantlist`、`guide`、`mine/contact` 四页仍各带副本(停在旧值 `#C2410C`),待重构时按同一方式删。 +**`t-icon` 的 `name` 必须命中 tdesign 图标名表**(`miniprogram_npm/tdesign-miniprogram/icon/icon.wxss` 里的 `.t-icon-{name}`),写错不报错、只是渲染为空:`list` 并不存在(只有 `list-numbered`、`list-bug` 等),`info-circle`、`error-circle`、`user-business`、`chart-bar` 等均存在。 + +迁移进度:`home/index`、`escort/itemlist`、`escort/guide` 三页副本已删;`itemdetail`、`attendantlist`、`mine/contact` 三页仍各带副本(停在旧值 `#C2410C`),待重构时按同一方式删。 ### 2.1 第一色:暖橙色阶 @@ -67,8 +69,9 @@ - 线是切分工具,不表意,不上主色或状态色。浅橙底上必须用 `--sep`(`--brand-line` 落 `--brand-soft` 上仅 1.16:1,肉眼看不出)。 - `--paper` 与 `--brand-soft` 明度差仅约 1.03:1,浅橙块落纸面须靠 **2rpx `--brand-line` 描边**托形,不加阴影。 - **白卡一律走中性阴影** `--shadow-card: 0 2rpx 10rpx rgba(63, 43, 25, 0.07)`,圆角 28rpx。彩色(暖橙)阴影不得用在 `--white` 面上;它只允许用于实心 CTA、品牌印记等小体量元素(`--shadow-cta: 0 2rpx 8rpx rgba(184, 82, 10, 0.16)`)。 -- 例外(已登记):`escort/itemlist` 三个服务分组做成**通栏白底块**——`--white` + 上下各 2rpx `--line` + `--shadow-card`,**圆角 0**;做法 `margin: 36rpx -32rpx 0` + `padding: 28rpx 32rpx`,行宽仍为 686rpx(若内缩,最长名称「VIP 5次 半天陪诊」会折行)。圆角必须为 0,否则满宽块的圆角会切在屏幕边上。页首 `.notice` 仍是内缩 28rpx 圆角白卡。 +- 例外(已登记):`escort/itemlist` 两个服务分组做成**通栏白底块**——`--white` + 上下各 2rpx `--line` + `--shadow-card`,**圆角 0**;做法 `margin: 36rpx -32rpx 0` + `padding: 28rpx 32rpx`,行宽仍为 686rpx(若内缩,卡的左右内距会白吃 48rpx 行宽,长名称 + 右区更易挤出)。圆角必须为 0,否则满宽块的圆角会切在屏幕边上。页首 `.notice` 仍是内缩 28rpx 圆角白卡。 - 例外(已登记):`escort/itemlist` 页脚做**浅橙收口卡**(`--brand-soft` + 2rpx `--brand-line` + 28rpx 圆角 + 去阴影),与首页 `.quick-item-full` 同源,补回该页"暖色只剩线、没有面"的那一档。 +- 例外(已登记):`mine/about` 的「联系我们」做成**浅橙入口卡**(`--brand-soft` + 2rpx `--brand-line` + 28rpx 圆角 + 去阴影,同首页 `.quick-item-full` 配方),是该页尾部唯一的暖色面。卡内**不再平铺联系方式**——热线/微信/邮箱/工作时间四项与 `mine/contact` 页逐项重合,平铺即"同一意图两个入口";只留「联系我们」+ 一行摘要(「人工客服」,与首页同卡同文案)+ muted chevron,整卡可点跳 `mine/contact`。另注:该页品牌印记(`home-w.png` 白色线稿)必须落 `--brand-strong` 实心底,不能用 `--brand-soft`,白色线稿在浅橙底上看不见。 - 例外(已登记):`mine/mine` 的菜单与「退出登录」做成**通栏白底块**(`--white` + 上下各 2rpx `--line` + `--shadow-card`,圆角 0)。其中「退出登录」是**动作而非导航**,与菜单行不同族:单独一块、一行居中、**无图标无 chevron**、字色 `--muted`。状态色不得用于按钮(§三),退出因此不走红/橙,区分只靠结构与位置。 --- @@ -116,17 +119,19 @@ | 范围 | 现状 | 替换为 | |---|---|---| -| `mine/about.wxss` | `#D4A853`、`#FF8500`、`#22A45D` | `--brand-strong` / `--brand-ink` | | `mine/addressedit.wxml`(`switch` 属性) | 旧金色 | `#B8520A`(属性值需硬编码) | | `health/profilelist.js`(`confirmColor`) | 旧金色 | `#B8520A` | | `health/profilelist.wxss`、`profileedit.wxss` | `#D4A853` 系 | 暖橙令牌 | -| `escort/agreement.wxss` | 底 `#FAF6F1`、`#D4A853` 系 | `--paper` / `--brand-soft` / 暖橙令牌 | | `hospital/contact.wxss`、`hospital/ranking.wxss` | 底 `#F5F7F6`、字 `#1F2937`、绿灰系 | 整体并入暖橙体系 | -已完成(2026-10-04):`mine/mine.wxss`、`pages/ai/aichat.wxss` 已按本节并入暖橙体系。 +已完成(2026-10-06):`escort/guide` 已按本节并入暖橙体系——`.wxss` 里的 page 级令牌副本(停在旧值 `#C2410C` / `#9A3412`)整块删除,改用 `app.wxss` 唯一来源;`.wxml` 四处 `t-icon` 硬编码随之改值(三个卡片头图标 `#FFFFFF`→`#9B4508`、底部客服 `call` `#9A3412`→`#9B4508`)。同页三处收口:卡片头标识由「实心橙方块 + 白图标」改「`--brand-soft` + 2rpx `--brand-line` 描边 + 暖橙图标」,实心块只留底部 CTA 一处(§2.1);CTA 阴影由 `0 6rpx 16rpx rgba(194,65,12,.22)` 收为 `--shadow-cta`;三处 `font-weight: 600` 改 `700`(中文系统字体只有 400/700 两档)。内容同步:服务流程与 `services.js` 各服务的 flow 对齐(预约 → 沟通信息 → 支付费用 → 准备资料 → 全程陪诊 → 服务完成),删去不在任何 flow 里的「选择陪诊师」;温馨提示的改期句统一为「如需改期或取消,请至少提前4小时联系客服」。 + +已完成(2026-10-06):`escort/agreement.wxss` 已按本节并入暖橙体系——底 `#FAF6F1` 转 `--paper`,顶部白→暖白渐变去掉(直接落纸面),#`D4A853` 系连三处同色渐变与同色大阴影一并换掉:文件图标衬底转 `--brand-strong` + `--shadow-cta`(白色图标需深底),章节序号转「`--brand-soft` 衬底 + 2rpx `--brand-line` 描边 + `--brand-ink` 字」(全页实心块只留顶部一个),圆点转 `--brand-strong`;冷灰文字 `#1F2937`/`#4B5563`/`#6B7280` 转 `--ink`/`--ink-2`/`--muted`,冷线 `#F0E6D8`/`#E5E7EB` 转 `--line`/`--sep`(浅橙底上用 `--sep`);正文块改通栏白底块(上下 2rpx `--line` + 圆角 0 + `--shadow-card`)。违约金表表头不再铺色(`--brand-line` 只作描边)。另删 7 条死规则 `flow-steps`/`flow-step`/`step-badge`/`step-info`/`step-title`/`step-desc`/`step-line`——WXML 无任何引用。 已完成(2026-10-04):`escort/recordlist`、`escort/recorddetail` 已按本节并入暖橙体系——两页删去旧金色副本与全部渐变,状态一律走 §三 四档;`recorddetail` 另在 `page{ }` 登记 `--shadow-bar`(底栏上向阴影,不在全局色板内)。两页 `json` 原本 `usingComponents` 为空却已用 `t-icon`/`t-loading`,一并补注册。 +已完成(2026-10-06):`mine/about.wxss` 已按本节并入暖橙体系——灰金 `#D4A853`、亮橙 `#FF8500`、冷灰底 `#F5F5F5`、品牌区与印记的两处渐变、6×28rpx 的渐变竖条全部换掉:底色转 `--paper`,印记转 `--brand-strong` + `--shadow-cta`(白色线稿需深底),竖条转 8×34rpx 实色 `--brand-strong`。同页两处违规一并修正:`.icp` 由 22rpx 提到 24rpx(硬约束 1 最小字号),元信息与标签统一 `--muted`、正文统一 `--ink-2`。死代码 `.version`(页面已无版本号展示)删除。白卡按 §2.3 补 2rpx `--line` 发丝边 + `--shadow-card` + 28rpx 圆角。同页「联系我们」由平铺的四项联系方式收成一张入口卡(配方见 §2.3 例外)——那四项与 `mine/contact` 逐项重合,平铺属"同一意图两个入口",且该页每行还少一个「拨打/复制」动作词。 + ### 5.2 系统级(不在页面里,最易漏) | 位置 | 现状 | 应改为 | @@ -195,6 +200,6 @@ | 10 | `images/ai-ink.png` | 整图纯色(AI客服选中态位图) | `#9B4508` | `#8A4B08`(位图需重上色,不能按文本替换) | | 11 | `images/home-ink.png` | 整图纯色(「我的」默认头像位图,由灰色 `home.png` 重上色) | `#9B4508` | `#8A4B08`(同上) | -**无需回滚**:其余页面从未迁移。仍定义旧值 `#C2410C` / `#9A3412` 的是 `itemdetail`、`attendantlist`、`guide`、`mine/contact` 四页八文件(各含 `.wxss` 令牌与 `.wxml` 里 `t-icon` 硬编码),本就是回滚后的目标态;`agreement`、`recordlist`、`recorddetail`、`mine/*` 等页走更早的金色体系(`#D4A853`),见 §5.1。 +**无需回滚**:其余页面从未迁移。仍定义旧值 `#C2410C` / `#9A3412` 的是 `itemdetail`、`attendantlist`、`mine/contact` 三页六文件(各含 `.wxss` 令牌与 `.wxml` 里 `t-icon` 硬编码),本就是回滚后的目标态(`guide` 已于 2026-10-06 迁移,见 §5.1);`agreement`、`recordlist`、`recorddetail`、`mine/*` 等页走更早的金色体系(`#D4A853`),见 §5.1。 注:`custom-tab-bar` 未选中灰硬编码 `#7A7068` 是独立历史遗留项(应改 `#6F655C`,见 §5.2),与本次主色调整无关。 \ No newline at end of file diff --git a/doc/PROJECT_GUIDE.md b/doc/PROJECT_GUIDE.md index c01916e..38abd53 100644 --- a/doc/PROJECT_GUIDE.md +++ b/doc/PROJECT_GUIDE.md @@ -43,8 +43,8 @@ doc/ | `pages/escort/recorddetail` | 订单详情 | | `pages/escort/agreement` | 用户协议 | | `pages/escort/guide` | 服务指南 | -| `pages/health/profilelist` | 健康档案列表 | -| `pages/health/profileedit` | 档案编辑 | +| `pages/health/profilelist` | 就诊人列表 | +| `pages/health/profileedit` | 就诊人编辑 | | `pages/mine/mine` | 我的 | | `pages/mine/about` | 关于 | | `pages/mine/contact` | 联系我们 | diff --git a/pages/escort/agreement.js b/pages/escort/agreement.js index 6032fe1..a93d593 100644 --- a/pages/escort/agreement.js +++ b/pages/escort/agreement.js @@ -75,50 +75,5 @@ Page({ title: '暖橙陪诊服务协议', path: '/pages/escort/agreement' } - }, - - // 复制客服邮箱 - onCopyEmail() { - wx.setClipboardData({ - data: 'service@huashengtec.com', - success: () => { - wx.showToast({ - title: '邮箱已复制', - icon: 'success', - duration: 1500 - }) - }, - fail: () => { - wx.showToast({ - title: '复制失败', - icon: 'none', - duration: 1500 - }) - } - }) - }, - - // 拨打客服电话 - onCallPhone() { - wx.makePhoneCall({ - phoneNumber: '18618162956', - fail: () => { - wx.showToast({ - title: '拨号失败', - icon: 'none', - duration: 1500 - }) - } - }) - }, - - // 处理联系人行点击 - onContactTap(e) { - const action = e.currentTarget.dataset.action - if (action === 'copyEmail') { - this.onCopyEmail() - } else if (action === 'callPhone') { - this.onCallPhone() - } } }) diff --git a/pages/escort/agreement.wxml b/pages/escort/agreement.wxml index 5126b7a..24db2bf 100644 --- a/pages/escort/agreement.wxml +++ b/pages/escort/agreement.wxml @@ -41,16 +41,6 @@ {{item.content}} - - - - - - - {{contact.text}} - - - diff --git a/pages/escort/agreement.wxss b/pages/escort/agreement.wxss index f3e6119..91eb320 100644 --- a/pages/escort/agreement.wxss +++ b/pages/escort/agreement.wxss @@ -1,6 +1,12 @@ -/* pages/escort/agreement.wxss */ +/* pages/escort/agreement.wxss + 配色走 app.wxss 的暖橙令牌(DESIGN.md §二)。 + 原 #FAF6F1 底、#D4A853 系(含三处同色渐变与同色大阴影)、 + #1F2937/#4B5563/#6B7280/#9CA3AF/#E5E7EB 冷灰文字、#F0E6D8 冷线, + 已按 §5.1 与 §四(禁渐变、禁灰金亮橙)收口。 + 另删除死规则 .flow-steps/.flow-step/.step-badge/.step-info/.step-title/ + .step-desc/.step-line——WXML 里没有任何元素引用(本页无流程步骤) */ page { - background-color: #FAF6F1; + background-color: var(--paper); } .container { @@ -8,24 +14,25 @@ page { padding-bottom: 48rpx; } -/* 顶部标题区 */ +/* 顶部标题区:不铺卡面、直接落纸面(同首页 hero),去掉原白→暖白渐变 */ .header-section { - background: linear-gradient(180deg, #FFFFFF 0%, #FFF8F0 100%); display: flex; flex-direction: column; align-items: center; padding: 48rpx 32rpx 40rpx; } +/* 文件图标是全页唯一实心块:白色图标需要深底才看得见, + 故走 --brand-strong(同首页品牌印记的白色线稿),阴影用 --shadow-cta */ .header-icon-wrap { width: 96rpx; height: 96rpx; - background: linear-gradient(135deg, #D4A853 0%, #D4A853 100%); + background: var(--brand-strong); border-radius: 50%; display: flex; align-items: center; justify-content: center; - box-shadow: 0 8rpx 24rpx rgba(212, 168, 83, 0.25); + box-shadow: var(--shadow-cta); } .header-icon { @@ -35,23 +42,26 @@ page { .header-title { font-size: 40rpx; font-weight: 700; - color: #1F2937; + color: var(--ink); margin-top: 24rpx; } .header-subtitle { font-size: 26rpx; - color: #9CA3AF; + color: var(--muted); margin-top: 12rpx; } -/* 协议内容卡片 */ +/* 协议正文:通栏白底块(上下各 2rpx 发丝线 + 圆角 0), + 与陪诊服务列表页的分组、我的页菜单组同一语言 */ .agreement-card { - background: #FFFFFF; + background: var(--white); + border-top: 2rpx solid var(--line); + border-bottom: 2rpx solid var(--line); + box-shadow: var(--shadow-card); padding: 32rpx; } -/* 章节 */ .section { margin-bottom: 40rpx; } @@ -64,18 +74,21 @@ page { display: flex; align-items: center; font-size: 32rpx; - font-weight: 600; - color: #1F2937; + font-weight: 700; + color: var(--ink); margin-bottom: 20rpx; } +/* 序号走「浅橙衬底 + 2rpx 描边 + 暖陶土字」,与全站图标衬底同语言; + 不用实心主色——全页实心块只留顶部那一个(DESIGN.md §2.1) */ .section-number { width: 40rpx; height: 40rpx; - background: linear-gradient(135deg, #D4A853 0%, #D4A853 100%); - color: #FFFFFF; + background: var(--brand-soft); + border: 2rpx solid var(--brand-line); + color: var(--brand-ink); font-size: 24rpx; - font-weight: 600; + font-weight: 700; border-radius: 50%; display: flex; align-items: center; @@ -91,11 +104,10 @@ page { .paragraph { display: block; font-size: 28rpx; - color: #4B5563; + color: var(--ink-2); line-height: 1.8; } -/* 列表项 */ .list-item { display: flex; align-items: flex-start; @@ -109,7 +121,7 @@ page { .list-dot { width: 12rpx; height: 12rpx; - background: #D4A853; + background: var(--brand-strong); border-radius: 50%; margin-top: 14rpx; margin-right: 16rpx; @@ -118,128 +130,44 @@ page { .list-text { font-size: 28rpx; - color: #4B5563; + color: var(--ink-2); line-height: 1.7; flex: 1; } -/* 流程步骤 */ -.flow-steps { - display: flex; - flex-direction: column; -} - -.flow-step { - display: flex; - align-items: flex-start; -} - -.step-badge { - width: 44rpx; - height: 44rpx; - background: linear-gradient(135deg, #D4A853 0%, #D4A853 100%); - color: #FFFFFF; - font-size: 24rpx; - font-weight: 600; - border-radius: 50%; - display: flex; - align-items: center; - justify-content: center; - flex-shrink: 0; - margin-right: 20rpx; -} - -.step-info { - flex: 1; - padding-bottom: 8rpx; -} - -.step-title { - display: block; - font-size: 28rpx; - font-weight: 600; - color: #1F2937; - margin-bottom: 4rpx; -} - -.step-desc { - display: block; - font-size: 26rpx; - color: #6B7280; - line-height: 1.5; -} - -.step-line { - width: 2rpx; - height: 40rpx; - background: #E5E7EB; - margin-left: 21rpx; - margin-top: 4rpx; - margin-bottom: 4rpx; -} - -/* 联系信息 */ -.contact-info { - margin-top: 20rpx; - background: #FAF6F1; - border-radius: 16rpx; - padding: 24rpx; -} - -.contact-row { - display: flex; - align-items: center; - margin-bottom: 16rpx; -} - -.contact-row:last-child { - margin-bottom: 0; -} - -.contact-icon { - color: #D4A853; - margin-right: 12rpx; - flex-shrink: 0; -} - -.contact-text { - font-size: 28rpx; - color: #4B5563; -} - -/* 退订违约金表格 */ +/* 违约金表:卡内的浅橙块,靠 2rpx --brand-line 描边托形、不加阴影 */ .refund-table { margin-top: 20rpx; - background: #FAF6F1; - border-radius: 16rpx; + background: var(--brand-soft); + border: 2rpx solid var(--brand-line); + border-radius: 20rpx; + /* 表格行自带内距,容器不再重复给 */ + padding: 0; overflow: hidden; - border: 1rpx solid #F0E6D8; } +/* 浅橙底上的分隔线必须用 --sep(--brand-line 落浅橙底只有 1.16:1,看不见) */ .table-row { display: flex; align-items: center; padding: 20rpx 24rpx; - border-bottom: 1rpx solid #F0E6D8; + border-bottom: 2rpx solid var(--sep); } .table-row:last-child { border-bottom: none; } -.table-row.header { - background: #FFF8F0; -} - +/* 表头不铺色(--brand-line 只作描边,不当填充),靠字重与主色区分 */ .table-row.header .table-cell { - font-weight: 600; - color: #1F2937; + font-weight: 700; + color: var(--brand-ink); } .table-cell { flex: 1; font-size: 26rpx; - color: #4B5563; + color: var(--ink-2); line-height: 1.5; text-align: center; } @@ -248,7 +176,6 @@ page { flex: 1.2; } -/* 底部信息 */ .footer-section { display: flex; flex-direction: column; @@ -259,6 +186,6 @@ page { .footer-text { font-size: 24rpx; - color: #9CA3AF; + color: var(--muted); line-height: 1.6; } diff --git a/pages/escort/guide.js b/pages/escort/guide.js index 8ef3526..e264ffd 100644 --- a/pages/escort/guide.js +++ b/pages/escort/guide.js @@ -1,45 +1,65 @@ // pages/escort/guide.js -// 人工客服电话:与首页、关于我们保持一致 -const SERVICE_PHONE = '18618162956' - Page({ data: { - // 服务流程:与 itemdetail 的「服务流程」同构,这里只描述通用环节 + // 服务流程:与 services.js 各服务的 flow 对齐,步骤名与顺序以「全天陪诊 / 半天陪诊」为准 + // (预约 → 沟通信息 → 支付费用 → 准备资料 → 全程陪诊 → 服务完成)。 + // 原第 3 步「选择陪诊师」不在 services.js 的任何 flow 里,陪诊师安排属服务前事项而非流程环节,已移除 steps: [{ - title: '线上预约', - desc: '选择服务项目,填写就诊医院、科室与时间' + title: '预约', + desc: '选择服务项目,填写就诊医院、科室与时间。线上、电话、微信均可预约' }, { - title: '需求确认', - desc: '客服电话核对就诊信息与特殊需求' + // 服务执行人一律用陪诊师:核对就诊信息属服务前确认,客服只负责订单变更与投诉 + title: '沟通信息', + desc: '陪诊师与您确认就诊信息与特殊需求' }, { - title: '陪诊师接单', - desc: '按需求匹配陪诊师,出发前与您联系' + title: '支付费用', + desc: '通过微信支付服务费用' }, { - title: '全程陪同', - desc: '取号、缴费、检查、取药全程有人陪' + // 与 services.js id 1/2 的第 4 步同名;具体材料清单交给下方「就诊前准备」卡,不在这里重复 + title: '准备资料', + desc: '按就诊项目备齐资料,清单见下方「就诊前准备」' + }, + { + // 全站动作词用「协助」;不得写「代办挂号」(含选科选医,擦 8.2 第4条红线) + title: '全程陪诊', + desc: '陪诊师协助取号、缴费、检查、取药等流程' }, { title: '服务完成', - desc: '确认服务结果,客服回访并处理售后' + desc: '确认本次就诊各项已完成,客服回访并处理售后' } ], - // 就诊前准备:到院前建议提前备齐的材料 + // 就诊前准备:到院前建议提前办妥或备齐的事项 preparations: [ '就诊人身份证、医保卡(或电子医保凭证)', - '既往病历、检查报告与影像资料', - '需要空腹的项目,就诊当天请勿进食进水', - '长期服用的药物清单,方便医生了解用药情况', + // 异地就医未备案,现场可能无法直接结算,故提到资料前面 + '异地就医的,请提前办理医保异地就医备案', + // 挂号含选科选医,属 8.2 第 4 条红线,陪诊师不代挂号,故写清由您自己先办 + // (与 services.js id 4「尚未开单的,请您先挂号」同一口径) + '需要挂号的,请先挂好号;挂号涉及选科选医,陪诊师不代为挂号', + // 材料项按陪诊师发来的模板归纳成一条:原「既往病历、检查报告与影像资料」 + // 与「长期服用的药物清单」都在这条里(历史检查单 / CT 等影像资料 / 用药情况), + // 同一批东西不在清单里出现两次 + '按陪诊师提供的模板准备就医信息、用药情况、历史检查单、CT 等影像资料与就医诉求', + // 原「需要空腹的项目,就诊当天请勿进食进水」是替医院下医嘱; + // 要求来源交回医院,与 id 4「请提前了解…要求」同口径 + '部分检查要求空腹(禁食禁水),请以医院的检查前通知为准', '提前与陪诊师确认医院、院区与集合地点' ], // 温馨提示:通用提醒,不涉及具体退款或收费规则 tips: [ - '建议比预约时间提前 10-15 分钟到达集合点', + '建议比预约时间提前10-15分钟到达集合点', '贵重物品与重要证件请自行随身保管', - '就诊时间或需求有变化,请尽早联系客服调整' + // 9.1.1 收费标准须公示:各服务页都有这条,指南作为总说明反而缺 + '服务费不包含挂号费、检查费、药费等医疗费用,需在医院另行缴纳', + // 8.2 不应签署具有法律效力的医疗文书 + '具有法律效力的医疗文书(手术、麻醉、特殊检查知情同意书等)需您本人或家属签署,陪诊师不代签', + // 全站统一时限,与服务页 notices、协议第 2 节一致(原「请尽早联系客服调整」没给时限,等于缺公示) + '如需改期或取消,请至少提前4小时联系客服' ] }, @@ -50,10 +70,11 @@ Page({ }) }, - // 兜底出口:仍有疑问可直接拨打客服电话 + // 兜底出口:仍有疑问去「联系我们」页,本页不直接拨号 + // (那一页有电话、邮箱与工作时间,并可分别「拨打」「复制」) goToContact() { - wx.makePhoneCall({ - phoneNumber: SERVICE_PHONE + wx.navigateTo({ + url: '/pages/mine/contact' }) }, diff --git a/pages/escort/guide.wxml b/pages/escort/guide.wxml index 55c7efe..e696ccb 100644 --- a/pages/escort/guide.wxml +++ b/pages/escort/guide.wxml @@ -12,8 +12,12 @@ + - + + 服务流程 @@ -28,11 +32,13 @@ - + - + + 就诊前准备 @@ -48,7 +54,7 @@ - + 温馨提示 @@ -66,7 +72,7 @@ - + 还有疑问?联系人工客服 diff --git a/pages/escort/guide.wxss b/pages/escort/guide.wxss index b2cfa5d..d674d93 100644 --- a/pages/escort/guide.wxss +++ b/pages/escort/guide.wxss @@ -1,23 +1,10 @@ /* pages/escort/guide.wxss 内页规范:小色带 + 白底,不用整块主色面板; - 卡片沿用首页「发丝边 + 紧阴影」,与首页保持同一套视觉语言 */ + 卡片沿用首页「发丝边 + 紧阴影」,与首页保持同一套视觉语言。 + 本页原有的 page 级令牌副本(停在旧值 #C2410C / #9A3412)已按 + DESIGN.md §5.1 删掉,改用 app.wxss 的唯一来源(#B8520A / #9B4508), + 与首页、陪诊服务列表页同色 */ page { - --brand-strong: #C2410C; /* 实心块/按钮:白字 4.69:1,过 AA 正文 */ - --brand-soft: #FFF4E8; /* 图标衬底、标签底 */ - --brand-line: #FFE0C2; /* 浅橙衬底描边 */ - --brand-ink: #9A3412; /* 浅橙衬底上的文字/图标:6.8:1,过 AA */ - - --ink: #2B2521; - --ink-2: #4A4038; - --muted: #6F655C; /* 与首页同一档。原 #7A7068 在白卡上 4.8:1 达标, - 但 .header-subtitle 直接落在纸面上只有 4.49:1,不过 AA。 - 改后:纸面 5.36:1 / 白卡 5.69:1 */ - --line: #ECE3D6; /* 米色发丝边:纸面 1.20:1 / 白卡 1.27:1 */ - --paper: #FAF8F5; /* 暖白纸面:R−B 由 10 降到 5,去掉"旧纸"的黄闷感 */ - --white: #FFFFFF; - - --shadow-card: 0 2rpx 10rpx rgba(63, 43, 25, 0.07); - background-color: var(--paper); } @@ -75,11 +62,14 @@ page { margin-bottom: 20rpx; } +/* 卡片头标识:浅橙衬底 + 2rpx 描边托形(同全站「浅橙衬底承载标识」), + 不再用实心橙——全页实心块只留底部 CTA 一处(DESIGN.md §2.1) */ .card-mark { width: 44rpx; height: 44rpx; border-radius: 12rpx; - background: var(--brand-strong); + background: var(--brand-soft); + border: 2rpx solid var(--brand-line); display: flex; align-items: center; justify-content: center; @@ -122,9 +112,10 @@ page { min-width: 0; } +/* 中文系统字体只有 400/700 两档,写 600 真机会随机落回 400 或 700 */ .step-title { font-size: 30rpx; - font-weight: 600; + font-weight: 700; color: var(--ink); } @@ -166,7 +157,8 @@ page { padding: 26rpx; border-radius: 999rpx; background: var(--brand-strong); - box-shadow: 0 6rpx 16rpx rgba(194, 65, 12, 0.22); + /* 全站 CTA 阴影统一为小偏移小模糊的 --shadow-cta(原 0 6rpx 16rpx/22% 是旧色值的大阴影) */ + box-shadow: var(--shadow-cta); transition: transform 0.15s ease; } @@ -176,7 +168,7 @@ page { .guide-cta-text { font-size: 30rpx; - font-weight: 600; + font-weight: 700; color: var(--white); letter-spacing: 2rpx; margin-right: 6rpx; @@ -200,7 +192,7 @@ page { .guide-help-text { margin-left: 12rpx; font-size: 26rpx; - font-weight: 600; + font-weight: 700; color: var(--brand-ink); } diff --git a/pages/escort/itemdetail.js b/pages/escort/itemdetail.js index ea3e39d..629f93d 100644 --- a/pages/escort/itemdetail.js +++ b/pages/escort/itemdetail.js @@ -15,7 +15,7 @@ Page({ }, totalPrice: '0.00', showOrderPopup: false, - profiles: [], // 健康档案里已保存的就诊人 + profiles: [], // 已保存的就诊人 selectedProfileId: '', // 当前选中的就诊人档案 ID,为空表示手动填写 patientName: '', patientPhone: '', @@ -147,7 +147,7 @@ Page({ }) }, - // 跳转到健康档案新增就诊人 + // 跳转到就诊人页新增 goToAddProfile() { wx.navigateTo({ url: '/pages/health/profileedit' diff --git a/pages/escort/itemdetail.wxml b/pages/escort/itemdetail.wxml index fbda65c..4afe154 100644 --- a/pages/escort/itemdetail.wxml +++ b/pages/escort/itemdetail.wxml @@ -91,7 +91,7 @@ - + 选择就诊人 diff --git a/pages/escort/itemlist.js b/pages/escort/itemlist.js index 1283ed1..40e721b 100644 --- a/pages/escort/itemlist.js +++ b/pages/escort/itemlist.js @@ -1,9 +1,10 @@ -// 服务按"要办的事"分三组,而不是照后端返回顺序平铺。 +// 服务按"要办的事"分两组,而不是照后端返回顺序平铺。 // 组内是能直接比较的同质选项,组间是完全不同的决定; -// 标题只回答"这一组是什么"(陪同就医 / 就医代办 / 多次使用,统一 4 字), +// 标题只回答"这一组是什么"(陪同就医 / 就医代办,统一 4 字), // "什么情况该选这一组"整句交给下面的 note——标题与副题各管一头。 -// 前两组刻意走国标口径:GB/T 47801—2026 的标题即《社会化陪同就医服务》, -// 3.1 定义与 3.5「陪同就医服务人员」都用「陪同就医」这个词。 +// 第一组刻意走国标口径:GB/T 47801—2026 的标题即《社会化陪同就医服务》, +// 3.1 定义与 3.5「陪同就医服务人员」都用「陪同就医」这个词; +// 全天 / 半天 / 夜间三项同为按时长的"人陪着"服务,故归在一组。 // 第二组不叫「代办跑腿」——组内第四项的服务名就叫「跑腿服务」(services.js id 6), // 拿成员名当组名,另外三项会读成"剩下的";用「就医代办」则不与任何一项重名, // 也与组内已有的「出入院代办」共用同一个动作词。 @@ -13,31 +14,20 @@ const SERVICE_GROUPS = [{ key: 'accompany', title: '陪同就医', - note: '不熟悉医院流程、上班脱不开身、不便独自就诊的情况都适合,就诊当天有人全程陪着。', - ids: [1, 2] // 全天陪诊 / 半天陪诊 + note: '不熟悉医院流程、上班脱不开身、不便独自就诊、需要夜间陪诊的情况都适合,就诊当天有人全程陪着。', + ids: [1, 2, 7] // 全天陪诊 / 半天陪诊 / 夜间陪诊 }, { key: 'errand', title: '就医代办', - note: '代问诊、预约检查时间、取报告、办手续、开药等跑腿服务都可以代劳,本人不必到场。', - ids: [3, 4, 5, 6] // 代问诊 / 检查预约 / 出入院代办 / 跑腿服务 - }, - { - key: 'pack', - // 这一组本来就是"买法"(一次买多次),不是第三类服务。 - // 前两组的标题是服务类型,这组 4 字里只能承认它是"用法"—— - // 「多次使用」与它们字数、句法齐平,同屏看不出接缝(备选「长期使用」)。 - // 沿革:这里放过「打算长期使用」,因与另外两组的"要办的事"不同轴被改回口语, - // 现在三组标题统一改成 4 字短语,它也就不再是异类 - title: '多次使用', - note: '需要多次复诊或长期治疗时,一次买多次,省去反复下单的麻烦。', - ids: [7, 8] // VIP 5次 半天陪诊 / VIP 5次代买药 - // 注:条目改单行横排后名称不再被半栏宽度挤压,这两个"VIP 5次 XXX"已恢复原名, - // "买多次"由名称自己交代;组标题与副题仍负责讲清"什么情况选这一组" + // 「开药」已改为「取药」:国标 8.1 只列「领取药物」,开药属开具处方的医疗行为, + // 会擦 8.2「提供医疗建议」「代替选择用药方案」;取药是凭已有处方代领,口径与 id 8 一致 + note: '代问诊、预约检查时间、取报告、办手续、取药等跑腿服务都可以代劳,本人不必到场。', + ids: [3, 4, 5, 6, 8] // 代问诊 / 检查预约 / 出入院代办 / 跑腿服务 / 取药快递 } ] -// 规格签:把"这一单买的是什么"从说明句里提出来,八条口径一致—— +// 规格签:把"这一单买的是什么"从说明句里提出来,各行口径一致—— // 按时长计费的服务标出时长,按次计费的标"按次"。id 对应 services.js,取不到就不显示 const UNIT_BY_ID = { 1: '8小时/次', @@ -45,26 +35,16 @@ const UNIT_BY_ID = { 3: '按次', 4: '按次', 5: '按次', - 6: '1小时/次', + 6: '2小时/次', 7: '4小时/次', 8: '按次' } -// 价目表上的价格去掉无意义的 .00(八条都是整元),扫起来更快 +// 价目表上的价格去掉无意义的 .00(各行都是整元),扫起来更快 function formatPrice(value) { return String(value == null ? '' : value).replace(/\.00$/, '') } -// 说明句里与规格签重复的时长要去掉,免得同一格写两遍: -// ① 开头的"X小时服务/次,"(全天陪诊 / 半天陪诊) -// ② 句中的"每次X小时,"(VIP 5次 半天陪诊) -// 规格签只回答"这一单每次买多久",不写"5次装"——"买几次"由名称承担 -function toLedgerDesc(subtitle) { - return String(subtitle || '') - .replace(/^[一二三四五六七八九十\d]+小时[^,]*,/, '') - .replace(/每次[一二三四五六七八九十\d]+小时,/g, '') -} - Page({ data: { groups: [] @@ -95,9 +75,12 @@ Page({ serviceMap[service.id] = service }) - // 取到服务后再加工成列表页要用的字段:desc 去掉与规格签重复的时长前缀, - // unit 补规格签,price 去掉 .00;最后空组不展示, - // 免得留下一个没有服务、只有标题的分组 + // 取到服务后再加工成列表页要用的字段:unit 补规格签,price 去掉 .00。 + // 说明句不再加工,直接用 subtitle 原文——原先按「第一个逗号」剥时长前缀, + // 副标题一旦写成「八小时服务/次(早8点-中午12点,下午1点-晚上5点),…」, + // 括号里的逗号会先被匹配上,行内只剩「下午1点-晚上5点),专业陪诊师全程陪同」, + // 开头半个括号、括号不配对。行内允许折行,不靠截文案来压行数。 + // 最后空组不展示,免得留下一个没有服务、只有标题的分组 const groups = SERVICE_GROUPS .map((group) => ({ key: group.key, @@ -108,7 +91,6 @@ Page({ .filter(Boolean) .map((srv) => ({ ...srv, - desc: toLedgerDesc(srv.subtitle), unit: UNIT_BY_ID[srv.id] || '', price: formatPrice(srv.price) })) diff --git a/pages/escort/itemlist.wxml b/pages/escort/itemlist.wxml index e8a7aec..3663526 100644 --- a/pages/escort/itemlist.wxml +++ b/pages/escort/itemlist.wxml @@ -3,11 +3,11 @@ @@ -17,7 +17,7 @@ - 目前已开通北京、上海、天津。费用仅含人工服务费,不含就医费用。 + 目前已开通北京、天津。费用仅含人工服务费,不含就医费用。 @@ -32,8 +32,8 @@ - @@ -76,14 +78,14 @@ - - {{ srv.desc }} + + {{ srv.subtitle }} - - + + {{item.label}} @@ -21,7 +29,14 @@ - + + + ¥ @@ -76,7 +91,6 @@ class="pay-chip" style="background: {{item.paymentStatusBg}}; color: {{item.paymentStatusColor}}; border-color: {{item.paymentStatusBorder}};" >{{item.paymentStatusText}} - diff --git a/pages/escort/recordlist.wxss b/pages/escort/recordlist.wxss index 4e1bdaf..37728b2 100644 --- a/pages/escort/recordlist.wxss +++ b/pages/escort/recordlist.wxss @@ -9,6 +9,8 @@ - 卡内四段:类型 + 状态 → 时间 → 就诊信息 → 费用 + 支付状态; 长文本(需求、陪诊记录)交给详情页,保证每张卡一眼看完 - 形状锁定:卡 28rpx、状态胶囊 10rpx、筛选胶囊 999rpx + - 左右滑动切换状态页:记录区横向拖动时跟手平移(有阻尼与上限), + 松手弹回;拖动中关过渡保即时响应,松手后由过渡做回弹 - 字号阶梯:费用 34 / 类型 30 / 就诊信息 28 / 时间 · 胶囊 24(rpx), 全页最小 24rpx(12px),达可读下限 */ page { @@ -22,6 +24,13 @@ page { .container { padding: 0 32rpx calc(40rpx + env(safe-area-inset-bottom)); + /* 左右滑动切换的视觉反馈:跟手期间由 .dragging 关闭过渡做到即时响应, + 松手后恢复过渡,内容弹回原位 */ + transition: transform 0.24s cubic-bezier(0.22, 1, 0.36, 1); +} + +.container.dragging { + transition: none; } /* ===== 顶部筛选:吸顶横滑 ===== */ @@ -197,7 +206,6 @@ page { /* 支付状态胶囊:比订单状态轻一档(无底色的中性档只留字与描边) */ .pay-chip { - margin-right: 12rpx; padding: 4rpx 14rpx; border: 2rpx solid transparent; border-radius: 10rpx; diff --git a/pages/health/profilelist.js b/pages/health/profilelist.js index fe5ae03..c726626 100644 --- a/pages/health/profilelist.js +++ b/pages/health/profilelist.js @@ -17,7 +17,7 @@ Page({ }) }, - // 拉取当前登录用户的健康档案(就诊人)列表 + // 拉取当前登录用户的就诊人列表 loadProfiles() { this.setData({ loading: true @@ -41,7 +41,7 @@ Page({ }) }) .catch((err) => { - console.log('获取健康档案失败', err) + console.log('获取就诊人失败', err) wx.showToast({ title: '网络请求失败', icon: 'none' @@ -122,7 +122,7 @@ Page({ this.loadProfiles() }) .catch((err) => { - console.log('删除健康档案失败', err) + console.log('删除就诊人失败', err) wx.showToast({ title: '网络请求失败', icon: 'none' diff --git a/pages/health/profilelist.json b/pages/health/profilelist.json index edf3709..82c83a5 100644 --- a/pages/health/profilelist.json +++ b/pages/health/profilelist.json @@ -1,5 +1,5 @@ { - "navigationBarTitleText": "健康档案", + "navigationBarTitleText": "就诊人", "usingComponents": { "t-icon": "tdesign-miniprogram/icon/icon" }, diff --git a/pages/health/profilelist.wxml b/pages/health/profilelist.wxml index bd63675..ee2331b 100644 --- a/pages/health/profilelist.wxml +++ b/pages/health/profilelist.wxml @@ -43,7 +43,7 @@ - 还没有健康档案 + 还没有就诊人 添加就诊人后,下单时可一键带入信息 diff --git a/pages/home/index.js b/pages/home/index.js index 2da757c..00372b7 100644 --- a/pages/home/index.js +++ b/pages/home/index.js @@ -10,13 +10,14 @@ const SERVICE_UI = { 4: { name: '检查预约' }, 5: { name: '出入院代办' }, 6: { name: '跑腿服务' }, - 7: { name: '陪诊套餐' }, - 8: { name: '买药套餐' } + 7: { name: '夜间陪诊' }, + 8: { name: '取药快递' } } -// 陪诊服务的展示顺序(两行共 8 项)。 +// 陪诊服务的展示顺序(共 8 项,4 列 × 2 行正好排满)。 +// 陪同就医三项(全天 / 半天 / 夜间)连排在前,与列表页的分组顺序一致; // 全天 / 半天是核心营收项,靠排在前两位形成隐性推荐位 -const SERVICE_ORDER = [1, 2, 3, 4, 5, 6, 7, 8] +const SERVICE_ORDER = [1, 2, 7, 3, 4, 5, 8, 6] // 计入"待服务订单"的订单状态:待确认 / 已确认 / 进行中 const PENDING_ORDER_STATUS = ['pending', 'confirmed', 'in_progress'] @@ -26,20 +27,20 @@ const SERVICE_PHONE = '18618162956' Page({ data: { - escortServices: [], // 陪诊服务(来自后端,最多 8 项,宫格展示) + escortServices: [], // 陪诊服务(来自后端,按 SERVICE_ORDER 展示) pendingCount: 0, // 待服务订单数,大于 0 时首页顶部展示状态条 quickEntries: [{ id: 'records', name: '预约记录', // 横排布局后文字区变窄,右侧又补了 chevron(文字区约 179rpx),desc 控制在 7 字内避免折行 desc: '查看进度与历史', - // 日历:与「健康档案」的人形图标形成明显形态差异(原先两个都是"文档+勾",缩小后难分辨) + // 日历:与「就诊人」的人形图标形成明显形态差异(原先两个都是"文档+勾",缩小后难分辨) icon: 'calendar-1', url: '/pages/escort/recordlist' }, { id: 'health', - name: '健康档案', + name: '就诊人', // 原「管理家人就诊信息」8 字 + 右侧箭头会折行,收到 6 字 desc: '管理家人信息', icon: 'user-checked', @@ -174,7 +175,7 @@ Page({ }) }, - // 常用功能:预约记录、健康档案 + // 常用功能:预约记录、就诊人 onQuickEntryTap(e) { const entry = e.currentTarget.dataset.item if (!entry || !entry.url) { diff --git a/pages/home/index.wxss b/pages/home/index.wxss index d5ebad2..78cfd8e 100644 --- a/pages/home/index.wxss +++ b/pages/home/index.wxss @@ -351,19 +351,29 @@ page { background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjQjg1MjBBIiBzdHJva2Utd2lkdGg9IjEuNSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIj48cGF0aCBkPSJNNC41IDIwLjVWNi41YTIgMiAwIDAgMSAyLTJoMTFhMiAyIDAgMCAxIDIgMnYxNCIvPjxwYXRoIGQ9Ik0yLjUgMjAuNWgxOSIvPjxwYXRoIGQ9Ik0xMiA4LjZ2NU05LjUgMTEuMWg1Ii8+PC9zdmc+"); } -/* 6 跑腿服务:包裹箱 */ +/* 6 跑腿服务:单据 + 对勾(**线形描边**,stroke 1.5,与 1~5/7/8 同档,不填充)。 + 语义定位:本项卖的是"**跑腿代办**"——你交代的事我替你办妥,**不是"快"**。 + (副题里的"一小时"是时长规格,不是速度承诺,不能拿它当图形依据) + 母题沿革(均已废弃,勿回退): + ① 奔跑人形——躯干前倾,60rpx 下读成"要摔倒"; + ② 直立人 + 手持文件(粗轮廓 + 部分填充)——填充占比不足 15%,四肢描边仍主导观感,整体还是线稿; + ③ 实心闪电——重量与其余 7 枚线形图标脱节,被否; + ④ 线形闪电——形状本身没问题,但闪电只表"快",与本项"代办"的实际卖点不符,被否。 + 与 4「检查预约」(日历 + 对勾)的区分点:本图是**右上折角**的单据(顶部无挂耳、无横贯分隔线), + 4 是**顶部两个挂耳**的日历。两者不同行不同列,60rpx 下靠"折角 vs 挂耳"一眼分开。 + 备选(同样不撞车、同样线形):运动鞋侧面——直接读"跑腿" */ .assist-icon-6 { - background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjQjg1MjBBIiBzdHJva2Utd2lkdGg9IjEuNSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIj48cGF0aCBkPSJNMjAuNSA4LjJ2Ny42YTEuNiAxLjYgMCAwIDEtLjg0IDEuNDJsLTYuOSAzLjhhMS42IDEuNiAwIDAgMS0xLjUyIDBsLTYuOS0zLjhBMS42IDEuNiAwIDAgMSAzLjUgMTUuOFY4LjJhMS42IDEuNiAwIDAgMSAuODQtMS40Mmw2LjktMy44YTEuNiAxLjYgMCAwIDEgMS41MiAwbDYuOSAzLjhBMS42IDEuNiAwIDAgMSAyMC41IDguMloiLz48cGF0aCBkPSJNMy45IDcuMyAxMiAxMS43bDguMS00LjRNMTIgMTEuN1YyMSIvPjwvc3ZnPg=="); + background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjQjg1MjBBIiBzdHJva2Utd2lkdGg9IjEuNSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIj48cGF0aCBkPSJNMTQgMy41SDZhMiAyIDAgMCAwLTIgMnYxM2EyIDIgMCAwIDAgMiAyaDEyYTIgMiAwIDAgMCAyLTJWOS41WiIvPjxwYXRoIGQ9Ik0xNCAzLjV2Nmg2Ii8+PHBhdGggZD0ibTguOCAxNC40IDIuMiAyLjIgNC40LTQuOCIvPjwvc3ZnPg=="); } -/* 7 陪诊套餐:礼盒 */ +/* 7 夜间陪诊:弯月,与 1/2 的"表盘"区分开,一眼读出"夜间" */ .assist-icon-7 { - background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjQjg1MjBBIiBzdHJva2Utd2lkdGg9IjEuNSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIj48cmVjdCB4PSIzIiB5PSI3LjUiIHdpZHRoPSIxOCIgaGVpZ2h0PSI0LjUiIHJ4PSIxLjIiLz48cGF0aCBkPSJNNC41IDEydjcuNUExLjUgMS41IDAgMCAwIDYgMjFoMTJhMS41IDEuNSAwIDAgMCAxLjUtMS41VjEyIi8+PHBhdGggZD0iTTEyIDcuNVYyMSIvPjxwYXRoIGQ9Ik0xMiA3LjVIOS4yYTIuMyAyLjMgMCAxIDEgMC00LjZDMTAuNyAyLjkgMTIgNy41IDEyIDcuNVoiLz48cGF0aCBkPSJNMTIgNy41aDIuOGEyLjMgMi4zIDAgMSAwIDAtNC42QzEzLjMgMi45IDEyIDcuNSAxMiA3LjVaIi8+PC9zdmc+"); + background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjQjg1MjBBIiBzdHJva2Utd2lkdGg9IjEuNSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIj48cGF0aCBkPSJNMTIgM2E2IDYgMCAwIDAgOSA5IDkgOSAwIDEgMS05LTlaIi8+PC9zdmc+"); } -/* 8 买药套餐:45° 斜置胶囊 + 中缝,避免原横置胶囊被误读为"链接"图标 */ +/* 8 取药快递:送货小车,与 6 的"闪电"(表速度)分工开,一眼读出"寄送" */ .assist-icon-8 { - background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjQjg1MjBBIiBzdHJva2Utd2lkdGg9IjEuNSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIj48cmVjdCB4PSI0LjIiIHk9IjguMiIgd2lkdGg9IjE1LjYiIGhlaWdodD0iNy42IiByeD0iMy44IiB0cmFuc2Zvcm09InJvdGF0ZSgtNDUgMTIgMTIpIi8+PHBhdGggZD0iTTkuMyA5LjNsNS40IDUuNCIvPjwvc3ZnPg=="); + background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjQjg1MjBBIiBzdHJva2Utd2lkdGg9IjEuNSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIj48cGF0aCBkPSJNMTQgMThWNmEyIDIgMCAwIDAtMi0ySDRhMiAyIDAgMCAwLTIgMnYxMWExIDEgMCAwIDAgMSAxaDIiLz48cGF0aCBkPSJNMTUgMThIOSIvPjxwYXRoIGQ9Ik0xOSAxOGgyYTEgMSAwIDAgMCAxLTF2LTMuNjVhMSAxIDAgMCAwLS4yMi0uNjI0bC0zLjQ4LTQuMzVBMSAxIDAgMCAwIDE3LjUyIDhIMTQiLz48Y2lyY2xlIGN4PSIxNyIgY3k9IjE4IiByPSIyIi8+PGNpcmNsZSBjeD0iNyIgY3k9IjE4IiByPSIyIi8+PC9zdmc+"); } /* 宫格项名统一走 28rpx 标题档(与 .quick-name 同级)。 diff --git a/pages/mine/about.js b/pages/mine/about.js index 40440ba..8f4ab15 100644 --- a/pages/mine/about.js +++ b/pages/mine/about.js @@ -77,65 +77,11 @@ Page({ }, - // 复制内容到剪贴板 - onCopy(e) { - const content = e.currentTarget.dataset.content; - wx.setClipboardData({ - data: content, - success: () => { - wx.showToast({ - title: '已复制', - icon: 'success', - duration: 1500 - }); - }, - fail: () => { - wx.showToast({ - title: '复制失败', - icon: 'none', - duration: 1500 - }); - } - }); - }, - - // 拨打电话 - onCallPhone(e) { - const phone = e.currentTarget.dataset.phone; - wx.makePhoneCall({ - phoneNumber: phone, - fail: () => { - wx.showToast({ - title: '拨号失败', - icon: 'none', - duration: 1500 - }); - } - }); - }, - - // 点击用户协议 - onTapAgreement() { + // 跳转「联系我们」页:本页不再平铺联系方式,四项内容与那一页重合, + // 且那一页每行还带「拨打」「复制」动作词,是更完整的一份 + goToContact() { wx.navigateTo({ - url: '/pages/escort/agreement' - }); - }, - - // 点击隐私政策 - onTapPrivacy() { - wx.showToast({ - title: '功能开发中', - icon: 'none', - duration: 1500 - }); - }, - - // 点击更新日志 - onTapUpdateLog() { - wx.showToast({ - title: '功能开发中', - icon: 'none', - duration: 1500 + url: '/pages/mine/contact' }); } }); diff --git a/pages/mine/about.wxml b/pages/mine/about.wxml index 5413639..de53e6b 100644 --- a/pages/mine/about.wxml +++ b/pages/mine/about.wxml @@ -9,63 +9,31 @@ 温暖陪伴,专业守护 - - - - 用户协议 - - - - 隐私政策 - - - - 更新日志 - - - - - + 关于我们 - 暖橙陪诊是北京奕华盛科技旗下专注于医疗健康陪护服务的平台。我们致力于为患者提供专业、温暖、便捷的陪诊服务,让就医不再孤单。 + 暖橙陪诊是由北京奕华盛科技运营的医疗健康陪诊服务平台。我们致力于为您提供专业、温暖、便捷的陪诊服务,让就医不再孤单。 -我们的服务涵盖挂号陪同、就诊引导、检查陪护、取药代办、住院陪护等全流程就医陪伴,由经过专业培训的陪诊师团队为您提供贴心服务。 +我们的服务涵盖协助取号、陪同就诊、检查陪护、代取药品与检查报告、出入院代办等就医陪伴环节,由经过专业培训的陪诊师团队为您提供贴心服务。 - - - 联系我们 - - - 客服邮箱 - - service@huashengtec.com - - - - - 客服热线 - - 18618162956 - - - - - 微信联系 - - 18618162956 - - - - - 工作时间 - - 周一至周日 08:00 - 20:00 - - - + + + + 联系我们 + diff --git a/pages/mine/about.wxss b/pages/mine/about.wxss index fc089b2..6a75d93 100644 --- a/pages/mine/about.wxss +++ b/pages/mine/about.wxss @@ -1,6 +1,9 @@ -/* pages/mine/about.wxss */ +/* pages/mine/about.wxss + 配色全部走 app.wxss 的暖橙令牌(DESIGN.md §二)。 + 原灰金 #D4A853 / 亮橙 #FF8500 / 冷灰底 #F5F5F5 / 两处渐变 / 6×28rpx 的渐变竖条, + 已按 §5.1 与 §四(禁渐变、禁灰金亮橙)收口 */ page { - background-color: #F5F5F5; + background-color: var(--paper); } .container { @@ -8,24 +11,27 @@ page { padding-bottom: 48rpx; } -/* 品牌信息区 */ +/* 品牌信息区:不铺卡面、直接落在纸面上(同首页 hero),去掉原白→暖白渐变。 + 纸面本身已是暖白,再叠一层自近白到近白只是噪音,且渐变属硬约束禁止项 */ .brand-section { - background: linear-gradient(180deg, #FFFFFF 0%, #FFF8F0 100%); display: flex; flex-direction: column; align-items: center; padding: 64rpx 32rpx 48rpx; } +/* 品牌印记:全页唯一实心块。白色线稿(home-w.png)需要深底才看得见, + 故衬底走 --brand-strong 而非 --brand-soft;阴影用 --shadow-cta 这一档 + 暖橙阴影(DESIGN.md §2.3:只给实心 CTA、品牌印记这类小体量元素) */ .logo-wrap { width: 160rpx; height: 160rpx; - background: linear-gradient(135deg, #D4A853 0%, #D4A853 100%); + background: var(--brand-strong); border-radius: 36rpx; display: flex; align-items: center; justify-content: center; - box-shadow: 0 8rpx 24rpx rgba(255, 133, 0, 0.2); + box-shadow: var(--shadow-cta); } .logo { @@ -36,68 +42,34 @@ page { .app-name { font-size: 40rpx; font-weight: 700; - color: #1A1A1A; + color: var(--ink); margin-top: 24rpx; } .app-slogan { font-size: 28rpx; - color: #D4A853; - margin-top: 12rpx; font-weight: 500; + color: var(--brand-ink); + margin-top: 12rpx; } -.version { - font-size: 24rpx; - color: #999999; - margin-top: 16rpx; -} - -/* 功能列表 */ -.menu-list { - margin: 24rpx 22rpx 0; - background: #FFFFFF; - border-radius: 16rpx; - overflow: hidden; -} - -.menu-item { - display: flex; - align-items: center; - justify-content: space-between; - padding: 32rpx; - border-bottom: 1rpx solid #F0F0F0; -} - -.menu-item:last-child { - border-bottom: none; -} - -.menu-item-hover { - background-color: #F9F9F9; -} - -.menu-text { - font-size: 30rpx; - color: #333333; -} - -.menu-arrow { - color: #CCCCCC; -} - -/* 简介区 */ +/* 简介区:白卡走「2rpx --line 发丝边 + 中性阴影 + 28rpx 圆角」(DESIGN.md §2.3) */ .intro-section { margin: 24rpx 22rpx 0; - background: #FFFFFF; - border-radius: 16rpx; + background: var(--white); + border: 2rpx solid var(--line); + border-radius: 28rpx; padding: 32rpx; + box-shadow: var(--shadow-card); } +/* 区块标题:单竖条与全站同一套(8rpx 宽 × 34rpx 高、圆角 4rpx、--brand-strong)。 + 原 6×28rpx 走的是灰金→亮橙渐变,换成实色主色。 + 字重 600 改 700:中文系统字体通常只有 400/700 两档,600 在真机会随机落回一档 */ .section-title { font-size: 32rpx; - font-weight: 600; - color: #1A1A1A; + font-weight: 700; + color: var(--ink); margin-bottom: 20rpx; position: relative; padding-left: 20rpx; @@ -109,69 +81,67 @@ page { left: 0; top: 50%; transform: translateY(-50%); - width: 6rpx; - height: 28rpx; - background: linear-gradient(180deg, #D4A853 0%, #FF8500 100%); + width: 8rpx; + height: 34rpx; + background: var(--brand-strong); border-radius: 4rpx; } .intro-text { font-size: 28rpx; - color: #666666; + color: var(--ink-2); line-height: 1.8; text-align: justify; } -/* 联系方式 */ +/* 联系方式:页面尾部的浅橙收口卡,与首页 .quick-item-full、陪诊服务列表页页脚同源。 + 浅橙块靠 2rpx --brand-line 描边托形,不加阴影(DESIGN.md §2.3)。 + 卡里不再平铺四项——那四项与「联系我们」页完全重合,这里只留一个入口, + 否则同一意图出现两个入口;行内也不再有点击,整块点击行为交给整卡 */ .contact-section { margin: 24rpx 22rpx 0; - background: #FFFFFF; - border-radius: 16rpx; + background: var(--brand-soft); + border: 2rpx solid var(--brand-line); + border-radius: 28rpx; padding: 32rpx; -} - -.contact-list { - display: flex; - flex-direction: column; -} - -.contact-item { - display: flex; - flex-direction: column; - padding: 20rpx 0; - border-bottom: 1rpx solid #F5F5F5; -} - -.contact-item:last-child { - border-bottom: none; -} - -.contact-label { - font-size: 26rpx; - color: #999999; - margin-bottom: 8rpx; -} - -.contact-value-wrap { display: flex; align-items: center; - justify-content: space-between; } -.contact-value { - font-size: 30rpx; - color: #333333; +.contact-section-hover { + background: var(--brand-line); +} + +.contact-main { flex: 1; - word-break: break-all; + min-width: 0; + display: flex; + flex-direction: column; } -.contact-icon { - color: #FF8500; +.contact-name { + font-size: 32rpx; + font-weight: 700; + color: var(--ink); +} + +/* 摘要:文案与首页同一张卡一致(人工客服),单行短句,不摊开具体号码 */ +.contact-desc { + margin-top: 8rpx; + font-size: 26rpx; + color: var(--muted); +} + +/* t-icon 的 color 读不到 CSS 变量,只能硬编码,须与令牌同步(DESIGN.md §2.2); + 此处对应 --muted #6F655C。项目里 chevron 一律 muted,不抢暖橙焦点 */ +.contact-arrow { + color: #6F655C; margin-left: 16rpx; flex-shrink: 0; } -/* 底部版权 */ +/* 底部版权:元信息一律 --muted,它是全站文字对比度底线,不得再浅(§2.2); + .icp 原 22rpx 低于中文最小字号 24rpx,按硬约束 1 提到 24rpx */ .footer-section { margin-top: 48rpx; display: flex; @@ -182,10 +152,10 @@ page { .copyright { font-size: 24rpx; - color: #AAAAAA; + color: var(--muted); } .icp { - font-size: 22rpx; - color: #CCCCCC; + font-size: 24rpx; + color: var(--muted); } diff --git a/pages/mine/mine.js b/pages/mine/mine.js index 3d65e9b..c787491 100644 --- a/pages/mine/mine.js +++ b/pages/mine/mine.js @@ -20,7 +20,7 @@ Page({ }, // 菜单分组:按"用途"而非"是不是陪诊"分,三组才立得住。 // 图标与首页同目的地同图形(同一含义只对应一个表达,从色值延伸到图标): - // 预约记录 calendar-1、健康档案 user-checked、联系我们 call 均与首页一致。 + // 预约记录 calendar-1、就诊人 user-checked、联系我们 call 均与首页一致。 // requiresLogin 的组在未登录时整组隐藏——这些入口都依赖用户身份 menuGroups: [{ groupName: '我的服务', @@ -31,7 +31,7 @@ Page({ icon: 'calendar-1', bindtap: 'onTapEscortRecord' }, { - name: '健康档案', + name: '就诊人', icon: 'user-checked', bindtap: 'onTapHealth' }, { @@ -199,7 +199,7 @@ Page({ onLogout() { wx.showModal({ title: '退出登录', - content: '退出后需要重新授权手机号,才能查看预约记录与健康档案', + content: '退出后需要重新授权手机号,才能查看预约记录与就诊人', confirmText: '退出', // confirmColor 是属性值,读不到 CSS 变量,取值须与令牌同步(DESIGN.md §5.1) confirmColor: '#B8520A', diff --git a/project.config.json b/project.config.json index fbd3e86..fb39fd7 100644 --- a/project.config.json +++ b/project.config.json @@ -19,7 +19,7 @@ "minifyWXSS": true, "localPlugins": false, "disableUseStrict": false, - "condition": false, + "condition": true, "swc": false, "disableSWC": true }, diff --git a/project.private.config.json b/project.private.config.json index 8c69f31..9b4e6be 100644 --- a/project.private.config.json +++ b/project.private.config.json @@ -1,5 +1,5 @@ { - "libVersion": "3.15.2", + "libVersion": "3.16.3", "projectname": "wxapp_escort", "setting": { "urlCheck": false, diff --git a/utils/api.js b/utils/api.js index 7986686..3fd0617 100644 --- a/utils/api.js +++ b/utils/api.js @@ -20,7 +20,7 @@ const API = { getAttendants: (params) => request.get('/health/attendant', params), }, - // 健康档案(就诊人):后端强制以 token 中的用户为准,无需传 userId + // 就诊人:后端强制以 token 中的用户为准,无需传 userId healthProfile: { getMyProfiles: (params) => request.get('/health/health-profile/mine', params), getMyProfileById: (id) => request.get(`/health/health-profile/mine/${id}`),