Phase 0: 建立 design token 体系 - tokens.scss 新增 --tk-pri/--tk-pri-l/--tk-pri-d/--tk-shadow-btn/--tk-shadow-tab - .doctor-mode 覆盖为靛蓝色系,.elder-mode 非线性放大字号 - variables.scss 新增医生端色彩 + 阴影变量 Phase 1: 组件库 + 页面全局替换 - 75 个页面 SCSS $pri → var(--tk-pri) 全量替换 - 11 个新 UI 组件(PrimaryButton/TabFilter/FormInput/ProgressRing 等) - 8 个现有组件 SCSS 更新 - 18 个医生端页面 useElderClass → useDoctorClass - PageHeader 匹配原型 NavBar 规格 Phase 2: 登录页重写 - Logo: 方形+ → 圆形渐变 H - 登录方式: 纯微信 → 账号密码 + 微信一键登录 - 新增 credentialLogin API + store action - 字号/间距严格匹配原型 mp-01-login.html
124 lines
2.2 KiB
SCSS
124 lines
2.2 KiB
SCSS
@import '../../../styles/variables.scss';
|
||
@import '../../../styles/mixins.scss';
|
||
|
||
// PageShell 已接管:min-height, background, safe-bottom
|
||
// ContentCard 已接管:order-card 背景/圆角/阴影
|
||
|
||
/* ===== 订单列表 ===== */
|
||
.order-list {
|
||
padding: 0 var(--tk-gap-lg);
|
||
}
|
||
|
||
.order-card {
|
||
margin-bottom: var(--tk-gap-md);
|
||
overflow: hidden;
|
||
}
|
||
|
||
.order-header {
|
||
display: flex;
|
||
justify-content: space-between;
|
||
align-items: center;
|
||
padding: var(--tk-gap-lg) var(--tk-gap-lg) var(--tk-gap-md);
|
||
border-bottom: 1px solid $bd-l;
|
||
}
|
||
|
||
.order-product {
|
||
font-family: 'Georgia', 'Times New Roman', serif;
|
||
font-size: var(--tk-font-body-lg);
|
||
font-weight: bold;
|
||
color: $tx;
|
||
flex: 1;
|
||
overflow: hidden;
|
||
text-overflow: ellipsis;
|
||
white-space: nowrap;
|
||
}
|
||
|
||
.order-status-tag {
|
||
padding: var(--tk-gap-2xs) var(--tk-gap-md);
|
||
border-radius: $r-pill;
|
||
margin-left: var(--tk-gap-sm);
|
||
flex-shrink: 0;
|
||
|
||
&--pending {
|
||
@include tag($wrn-l, $wrn);
|
||
}
|
||
|
||
&--verified {
|
||
@include tag($acc-l, $acc);
|
||
}
|
||
|
||
&--cancelled {
|
||
@include tag($dan-l, $dan);
|
||
}
|
||
|
||
&--expired {
|
||
@include tag($bd-l, $tx3);
|
||
}
|
||
}
|
||
|
||
.order-status-text {
|
||
font-size: var(--tk-font-body);
|
||
font-weight: bold;
|
||
}
|
||
|
||
.order-body {
|
||
padding: var(--tk-gap-md) var(--tk-gap-lg) var(--tk-section-gap);
|
||
}
|
||
|
||
.order-row {
|
||
display: flex;
|
||
justify-content: space-between;
|
||
align-items: center;
|
||
padding: var(--tk-gap-xs) 0;
|
||
}
|
||
|
||
.order-row-label {
|
||
font-size: var(--tk-font-h1);
|
||
color: $tx3;
|
||
}
|
||
|
||
.order-row-value {
|
||
@include serif-number;
|
||
font-size: var(--tk-font-h1);
|
||
color: $tx;
|
||
|
||
&.order-cost {
|
||
color: var(--tk-pri);
|
||
font-weight: bold;
|
||
}
|
||
}
|
||
|
||
/* ===== 核销码 ===== */
|
||
.order-qrcode {
|
||
display: flex;
|
||
align-items: center;
|
||
padding: var(--tk-gap-md);
|
||
margin-top: var(--tk-gap-sm);
|
||
background: var(--tk-pri-l);
|
||
border-radius: $r-sm;
|
||
}
|
||
|
||
.qrcode-label {
|
||
font-size: var(--tk-font-h2);
|
||
color: $tx3;
|
||
margin-right: var(--tk-gap-xs);
|
||
}
|
||
|
||
.qrcode-value {
|
||
@include serif-number;
|
||
font-size: var(--tk-font-h2);
|
||
color: var(--tk-pri-d);
|
||
font-weight: bold;
|
||
flex: 1;
|
||
overflow: hidden;
|
||
text-overflow: ellipsis;
|
||
white-space: nowrap;
|
||
}
|
||
|
||
.qrcode-tap {
|
||
font-size: var(--tk-font-body);
|
||
color: var(--tk-pri);
|
||
margin-left: var(--tk-gap-xs);
|
||
flex-shrink: 0;
|
||
}
|