日期:2026-08-10
适用范围:mobile-h5员工登录页协议门禁确认
视觉 Demo:mobile-ui/zkxw-mobile-login-confirm-dialog-demo.html(登录采用 F;A–F 全部保留)
品牌 Token:对齐docs/miniprogram-ui-spec-sanqiang.md§2(非 web-admin Fresh Mint)
关联:docs/superpowers/specs/2026-08-10-miniprogram-login-ui-design.md
uni.showModal,视觉对齐 Demo F(精简系统风)。mobile-ui 中 A–F 六套样例全部保留,作为后续其它场景弹窗选型资产;本次登录仅落地 F。| 项 | 约定 |
|---|---|
| 登录确认样式 | F · 精简系统风 |
| 样例资产 | A–F 均保留在 zkxw-mobile-login-confirm-dialog-demo.html |
| 协议正文链接 | 正文中《用户协议》《隐私政策》为快捷链接(品牌绿色),点击跳转对应协议页;登录页勾选行链接保留 |
| 项 | 约定 |
|---|---|
| 主色确认按钮字色 | #0a9f6d |
| 禁止 | 使用 web-admin #10b981;不引入 Vant Dialog |
| 遮罩 | 半透明深色,无 backdrop-filter 模糊 |
| 触达 | 底栏按钮高度建议 ≥ 44px |
showConfirm() 挂载到 uni);登录页内组件即可权威预览:Demo 卡片 F。
| 元素 | 规格 |
|---|---|
| 遮罩 | rgba(15, 30, 24, 0.32) 全屏;点击关闭(等同取消) |
| 卡片 | 居中;白底;圆角 14px;轻阴影 |
| 标题 | 「请先同意协议」;约 17px;加粗;居中;色 #1f2a26 |
| 正文 | 「登录前需阅读并同意《用户协议》和《隐私政策》。是否同意并继续登录?」;约 13px;色约 #555 / muted;居中;行高 1.5 |
| 协议链接 | 《用户协议》《隐私政策》字色 #0a9f6d;可点击;与登录页勾选行一致跳转 `/pages/protocol/index?type=user |
| 分割线 | 标题区与按钮区之间 1px #e8e8e8 |
| 按钮区 | 左右等分;中间竖分割线 |
| 取消 | 文案「取消」;字色 #666;透明底 |
| 确认 | 文案「同意并登录」;字色 #0a9f6d;字重 600;透明底 |
agreed 设为 true → 关闭弹窗 → 继续原登录流程。agreed 不变 → 中止本次登录。catchtouchmove 或等价处理)。navigateTo 协议页;不关闭确认弹窗(返回登录页后弹窗仍在,可继续同意或取消);点击链接须 @click.stop,避免误触遮罩关闭。| 路径 | 职责 |
|---|---|
mobile-h5/components/ConfirmDialog.vue |
新建:F 样式确认弹窗(props:show / title / content / 按钮文案;默认插槽可自定义正文,用于协议快捷链接;events:confirm / cancel / update:show) |
mobile-h5/styles/components/confirm-dialog.scss |
新建:遮罩与卡片样式(Token 与 Demo F 一致) |
mobile-h5/pages/login/index.vue |
改:ensureAgree 改为控制本地 agreeDialogVisible,去掉 uni.showModal |
mobile-h5/App.vue |
改:引入 confirm-dialog.scss |
mobile-ui/zkxw-mobile-login-confirm-dialog-demo.html |
改:标注「登录页采用 F」;A–F 均保留 |
docs/miniprogram-ui-spec-sanqiang.md |
改(可选短注):确认弹窗 Demo / 登录采用 F 的指向 |
props:
show: Boolean
title: String(默认「请先同意协议」)
content: String(无插槽时的纯文本兜底)
cancelText: String(默认「取消」)
confirmText: String(默认「同意并登录」)
slots:
default — 自定义正文(登录页放入带协议链接的文案)
emits:
update:show
confirm
cancel
登录页用 :show + @update:show(或等价)+ @confirm / @cancel 驱动 ensureAgree 的 Promise;正文用默认插槽渲染协议快捷链接,点击调用既有 openProtocol(type)。
2026-08-10-miniprogram-login-ui-design.md §4 曾写未勾选时 Toast;本规格覆盖该门禁交互:未勾选时改为 F 确认弹窗(与当前代码意图一致,并美化为自定义 F)。
showModal)。其它页面若需确认弹窗,优先对照同一 Demo 选型(A–F),再复用或扩展 ConfirmDialog;不默认改 F 的登录专用文案与布局。