feat: 技术支持工单/企微权限/开发版本管理/消息推送等迭代
This commit is contained in:
@@ -1,283 +0,0 @@
|
||||
/* 地址管理 */
|
||||
.address-page {
|
||||
background: var(--color-background);
|
||||
min-height: 100vh;
|
||||
}
|
||||
|
||||
.address-item {
|
||||
background: var(--color-card);
|
||||
border-radius: var(--radius-lg);
|
||||
margin: 12px var(--space-page);
|
||||
padding: 16px;
|
||||
box-shadow: var(--shadow-card);
|
||||
}
|
||||
|
||||
.address-item-head {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
margin-bottom: 8px;
|
||||
}
|
||||
|
||||
.address-item-name {
|
||||
font-size: 15px;
|
||||
font-weight: 700;
|
||||
margin-right: 10px;
|
||||
}
|
||||
|
||||
.address-item-phone {
|
||||
font-size: 14px;
|
||||
color: var(--color-on-surface-variant);
|
||||
}
|
||||
|
||||
.address-default-tag {
|
||||
margin-left: auto;
|
||||
padding: 2px 8px;
|
||||
border-radius: 999px;
|
||||
background: rgba(166, 29, 36, 0.08);
|
||||
color: var(--color-heritage-red);
|
||||
font-size: 11px;
|
||||
}
|
||||
|
||||
.address-item-detail {
|
||||
display: block;
|
||||
font-size: 13px;
|
||||
color: var(--color-on-surface-variant);
|
||||
line-height: 1.5;
|
||||
margin-bottom: 12px;
|
||||
}
|
||||
|
||||
.address-item-actions {
|
||||
display: flex;
|
||||
justify-content: flex-end;
|
||||
}
|
||||
|
||||
.address-action {
|
||||
font-size: 13px;
|
||||
color: var(--color-heritage-red);
|
||||
margin-left: 16px;
|
||||
}
|
||||
|
||||
.address-fab {
|
||||
position: fixed;
|
||||
left: var(--space-page, 16px);
|
||||
right: var(--space-page, 16px);
|
||||
bottom: calc(16px + env(safe-area-inset-bottom, 0px));
|
||||
height: 48px;
|
||||
border-radius: 999px;
|
||||
background: var(--color-heritage-red);
|
||||
color: #fff;
|
||||
font-size: 16px;
|
||||
font-weight: 700;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
box-sizing: border-box;
|
||||
z-index: 50;
|
||||
}
|
||||
|
||||
.address-form-field {
|
||||
margin: 0 var(--space-page) 12px;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
.address-form-label {
|
||||
display: block;
|
||||
font-size: 13px;
|
||||
line-height: 18px;
|
||||
color: var(--color-on-surface-variant);
|
||||
margin-bottom: 6px;
|
||||
}
|
||||
|
||||
.address-form-input {
|
||||
width: 100%;
|
||||
height: 48px;
|
||||
padding: 0 14px;
|
||||
border: none;
|
||||
border-radius: var(--radius-md);
|
||||
background: var(--color-card);
|
||||
box-shadow: var(--shadow-card);
|
||||
font-size: 15px;
|
||||
line-height: 48px;
|
||||
color: var(--color-on-surface);
|
||||
box-sizing: border-box;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
/* Taro H5:样式常落在包装节点,需强制原生控件铺满对齐 */
|
||||
.address-form-input input,
|
||||
.address-form-input .taro-input,
|
||||
.address-form-input .weui-input {
|
||||
width: 100% !important;
|
||||
height: 100% !important;
|
||||
min-height: 0 !important;
|
||||
padding: 0 !important;
|
||||
margin: 0 !important;
|
||||
border: none !important;
|
||||
background: transparent !important;
|
||||
box-sizing: border-box !important;
|
||||
font-size: 15px !important;
|
||||
line-height: normal !important;
|
||||
color: inherit;
|
||||
}
|
||||
|
||||
.address-form-textarea {
|
||||
width: 100%;
|
||||
min-height: 88px;
|
||||
padding: 12px 14px;
|
||||
border: none;
|
||||
outline: none;
|
||||
border-radius: var(--radius-md);
|
||||
background: var(--color-card);
|
||||
box-shadow: var(--shadow-card);
|
||||
font-size: 15px;
|
||||
line-height: 1.5;
|
||||
color: var(--color-on-surface);
|
||||
box-sizing: border-box;
|
||||
display: block;
|
||||
resize: vertical;
|
||||
-webkit-appearance: none;
|
||||
appearance: none;
|
||||
}
|
||||
|
||||
/* H5 原生 textarea:避免 Taro Textarea 受控输入卡死 */
|
||||
.address-form-textarea--native {
|
||||
font-family: inherit;
|
||||
}
|
||||
|
||||
.address-form-textarea textarea,
|
||||
.address-form-textarea .taro-textarea,
|
||||
.address-form-textarea .weui-textarea {
|
||||
width: 100% !important;
|
||||
min-height: 64px !important;
|
||||
padding: 0 !important;
|
||||
margin: 0 !important;
|
||||
border: none !important;
|
||||
outline: none !important;
|
||||
background: transparent !important;
|
||||
box-sizing: border-box !important;
|
||||
font-size: 15px !important;
|
||||
line-height: 1.5 !important;
|
||||
color: inherit;
|
||||
resize: none;
|
||||
}
|
||||
|
||||
.address-form-row {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
margin: 0 var(--space-page) 12px;
|
||||
padding: 12px 14px;
|
||||
min-height: 48px;
|
||||
border-radius: var(--radius-md);
|
||||
background: var(--color-card);
|
||||
box-shadow: var(--shadow-card);
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
.address-form-error {
|
||||
display: block;
|
||||
margin: -6px var(--space-page) 12px;
|
||||
font-size: 12px;
|
||||
color: var(--color-heritage-red);
|
||||
}
|
||||
|
||||
.region-picker-overlay {
|
||||
position: fixed;
|
||||
inset: 0;
|
||||
z-index: 1000;
|
||||
background: rgba(26, 26, 26, 0.45);
|
||||
display: flex;
|
||||
align-items: flex-end;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
.region-picker-sheet {
|
||||
width: 100%;
|
||||
background: #fff;
|
||||
border-radius: 16px 16px 0 0;
|
||||
padding-bottom: calc(env(safe-area-inset-bottom, 0px) + 8px);
|
||||
max-height: 56vh;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
.region-picker-toolbar {
|
||||
display: flex;
|
||||
align-items: stretch;
|
||||
padding: 0 16px;
|
||||
border-bottom: 1px solid rgba(0, 0, 0, 0.08);
|
||||
flex-shrink: 0;
|
||||
}
|
||||
|
||||
.region-picker-tabs {
|
||||
flex: 1;
|
||||
display: flex;
|
||||
align-items: stretch;
|
||||
gap: 28px;
|
||||
min-width: 0;
|
||||
}
|
||||
|
||||
.region-picker-tab {
|
||||
position: relative;
|
||||
padding: 14px 0 12px;
|
||||
font-size: 15px;
|
||||
line-height: 22px;
|
||||
color: var(--color-on-surface-variant);
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.region-picker-tab.active {
|
||||
color: var(--color-on-surface);
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
.region-picker-tab.active::after {
|
||||
content: '';
|
||||
position: absolute;
|
||||
left: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
height: 2px;
|
||||
background: var(--color-heritage-red);
|
||||
border-radius: 1px;
|
||||
}
|
||||
|
||||
.region-picker-tab.disabled {
|
||||
opacity: 0.45;
|
||||
}
|
||||
|
||||
.region-picker-confirm {
|
||||
flex-shrink: 0;
|
||||
padding: 14px 0 12px 12px;
|
||||
font-size: 15px;
|
||||
line-height: 22px;
|
||||
color: var(--color-on-surface-variant);
|
||||
}
|
||||
|
||||
.region-picker-confirm.ready {
|
||||
color: var(--color-heritage-red);
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
.region-picker-list {
|
||||
flex: 1;
|
||||
min-height: 0;
|
||||
max-height: 40vh;
|
||||
padding: 4px 0 8px;
|
||||
}
|
||||
|
||||
.region-picker-option {
|
||||
padding: 14px 20px;
|
||||
font-size: 16px;
|
||||
line-height: 24px;
|
||||
color: var(--color-on-surface);
|
||||
}
|
||||
|
||||
.region-picker-option.selected {
|
||||
color: var(--color-heritage-red);
|
||||
}
|
||||
|
||||
.region-picker-option--all {
|
||||
font-weight: 500;
|
||||
}
|
||||
@@ -1,97 +0,0 @@
|
||||
/* 全局基础类(对齐 shared-ui / h5-user,适配 Taro) */
|
||||
.app-page-title {
|
||||
margin: 0;
|
||||
font-family: var(--font-headline);
|
||||
font-size: 18px;
|
||||
font-weight: 700;
|
||||
line-height: 26px;
|
||||
color: var(--color-heritage-red);
|
||||
text-align: center;
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
|
||||
.full-bleed {
|
||||
width: 100%;
|
||||
margin-left: 0;
|
||||
margin-right: 0;
|
||||
}
|
||||
|
||||
.inset-page {
|
||||
padding-left: var(--space-page);
|
||||
padding-right: var(--space-page);
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
.u-card {
|
||||
background: var(--color-card);
|
||||
border-radius: var(--radius-lg);
|
||||
margin: 12px var(--space-page);
|
||||
padding: 16px;
|
||||
box-shadow: var(--shadow-card);
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
.u-muted {
|
||||
color: var(--color-subtle-gray);
|
||||
font-size: 13px;
|
||||
}
|
||||
|
||||
.u-title {
|
||||
font-family: var(--font-headline);
|
||||
font-size: 18px;
|
||||
font-weight: 600;
|
||||
margin: 0 0 8px;
|
||||
color: var(--color-on-surface);
|
||||
}
|
||||
|
||||
.u-btn {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
border: none;
|
||||
border-radius: var(--radius-md);
|
||||
padding: 12px 18px;
|
||||
font-size: 15px;
|
||||
font-weight: 600;
|
||||
line-height: 1.2;
|
||||
background: var(--color-heritage-red);
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.u-btn--block {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.u-btn--ghost {
|
||||
background: transparent;
|
||||
color: var(--color-heritage-red);
|
||||
border: 1px solid var(--color-heritage-red);
|
||||
}
|
||||
|
||||
.u-btn:active {
|
||||
opacity: 0.85;
|
||||
}
|
||||
|
||||
.u-empty {
|
||||
text-align: center;
|
||||
padding: 48px 24px;
|
||||
color: var(--color-subtle-gray);
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
.u-safe-top {
|
||||
padding-top: env(safe-area-inset-top, 0px);
|
||||
}
|
||||
|
||||
.text-primary {
|
||||
color: var(--color-heritage-red);
|
||||
}
|
||||
|
||||
.amount-lg {
|
||||
font-family: var(--font-headline);
|
||||
font-size: 24px;
|
||||
font-weight: 700;
|
||||
color: var(--color-heritage-red);
|
||||
}
|
||||
@@ -1,263 +0,0 @@
|
||||
/* 好客权益 */
|
||||
.benefit-page {
|
||||
background: var(--color-background);
|
||||
}
|
||||
|
||||
.benefit-header {
|
||||
position: sticky;
|
||||
top: 0;
|
||||
z-index: 50;
|
||||
background: var(--color-background);
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
.benefit-header__content {
|
||||
position: relative;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.benefit-header-title {
|
||||
position: absolute;
|
||||
left: 0;
|
||||
right: 0;
|
||||
top: var(--nav-status-bar-height);
|
||||
height: var(--nav-content-height);
|
||||
line-height: var(--nav-content-height);
|
||||
text-align: center;
|
||||
padding: 0 48px;
|
||||
box-sizing: border-box;
|
||||
font-family: var(--font-headline);
|
||||
font-size: 16px;
|
||||
font-weight: 700;
|
||||
color: var(--color-heritage-red);
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
pointer-events: none;
|
||||
z-index: 1;
|
||||
}
|
||||
|
||||
.benefit-header-city {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
color: var(--color-heritage-red);
|
||||
font-size: 12px;
|
||||
font-weight: 500;
|
||||
max-width: 30vw;
|
||||
position: relative;
|
||||
z-index: 2;
|
||||
}
|
||||
|
||||
.benefit-header__share .page-nav-bar__btn {
|
||||
background: transparent;
|
||||
}
|
||||
|
||||
.benefit-header__share .page-nav-bar__icon {
|
||||
color: var(--color-heritage-red);
|
||||
}
|
||||
|
||||
.benefit-header-city-pin {
|
||||
width: 8px;
|
||||
height: 8px;
|
||||
border-radius: 50%;
|
||||
background: var(--color-heritage-red);
|
||||
margin-right: 4px;
|
||||
flex-shrink: 0;
|
||||
}
|
||||
|
||||
.benefit-main {
|
||||
padding: 16px var(--space-page) 24px;
|
||||
}
|
||||
|
||||
.benefit-hero {
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
padding: 16px;
|
||||
border-radius: var(--radius-lg);
|
||||
background: var(--color-card);
|
||||
border: 1px solid rgba(226, 190, 188, 0.2);
|
||||
box-shadow: 0 4px 20px rgba(166, 29, 36, 0.05);
|
||||
margin-bottom: 16px;
|
||||
}
|
||||
|
||||
.benefit-hero-top {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: flex-start;
|
||||
margin-bottom: 16px;
|
||||
}
|
||||
|
||||
.benefit-hero-label {
|
||||
display: block;
|
||||
font-size: 12px;
|
||||
color: var(--color-on-surface-variant);
|
||||
margin-bottom: 4px;
|
||||
}
|
||||
|
||||
.benefit-hero-amount {
|
||||
display: flex;
|
||||
align-items: baseline;
|
||||
color: var(--color-heritage-red);
|
||||
}
|
||||
|
||||
.benefit-hero-symbol {
|
||||
font-family: var(--font-headline);
|
||||
font-size: 28px;
|
||||
font-weight: 700;
|
||||
}
|
||||
|
||||
.benefit-hero-value {
|
||||
font-family: var(--font-headline);
|
||||
font-size: 40px;
|
||||
font-weight: 700;
|
||||
line-height: 1;
|
||||
}
|
||||
|
||||
.benefit-hero-logo {
|
||||
width: 48px;
|
||||
height: 48px;
|
||||
border-radius: 12px;
|
||||
background: rgba(166, 29, 36, 0.08);
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
color: var(--color-heritage-red);
|
||||
font-weight: 700;
|
||||
font-size: 18px;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.benefit-hero-logo-img {
|
||||
width: 28px;
|
||||
height: 28px;
|
||||
display: block;
|
||||
}
|
||||
|
||||
.benefit-hero-cta {
|
||||
height: 44px;
|
||||
border-radius: var(--radius-full);
|
||||
background: var(--color-heritage-red);
|
||||
color: #fff;
|
||||
font-size: 15px;
|
||||
font-weight: 700;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
.benefit-tabs {
|
||||
display: flex;
|
||||
margin-bottom: 12px;
|
||||
border-bottom: 1px solid var(--color-surface-container);
|
||||
}
|
||||
|
||||
.benefit-tab {
|
||||
margin-right: 24px;
|
||||
padding: 10px 0;
|
||||
font-size: 14px;
|
||||
font-weight: 600;
|
||||
color: var(--color-subtle-gray);
|
||||
border-bottom: 2px solid transparent;
|
||||
}
|
||||
|
||||
.benefit-tab--active {
|
||||
color: var(--color-heritage-red);
|
||||
border-bottom-color: var(--color-heritage-red);
|
||||
}
|
||||
|
||||
.benefit-coupon {
|
||||
position: relative;
|
||||
background: var(--color-card);
|
||||
border-radius: var(--radius-lg);
|
||||
padding: 16px;
|
||||
margin-bottom: 12px;
|
||||
box-shadow: var(--shadow-card);
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.benefit-coupon-notch {
|
||||
position: absolute;
|
||||
left: -8px;
|
||||
top: 50%;
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
margin-top: -8px;
|
||||
border-radius: 50%;
|
||||
background: var(--color-background);
|
||||
}
|
||||
|
||||
.benefit-coupon-notch--right {
|
||||
left: auto;
|
||||
right: -8px;
|
||||
}
|
||||
|
||||
.benefit-coupon-head {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: flex-start;
|
||||
margin-bottom: 8px;
|
||||
}
|
||||
|
||||
.benefit-coupon-name {
|
||||
font-family: var(--font-headline);
|
||||
font-size: 15px;
|
||||
font-weight: 700;
|
||||
color: var(--color-on-surface);
|
||||
flex: 1;
|
||||
margin-right: 8px;
|
||||
}
|
||||
|
||||
.benefit-coupon-balance {
|
||||
font-family: var(--font-headline);
|
||||
font-size: 20px;
|
||||
font-weight: 700;
|
||||
color: var(--color-heritage-red);
|
||||
}
|
||||
|
||||
.benefit-coupon-no {
|
||||
display: block;
|
||||
font-size: 11px;
|
||||
color: var(--color-subtle-gray);
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
.benefit-progress {
|
||||
height: 6px;
|
||||
border-radius: 999px;
|
||||
background: var(--color-surface-container);
|
||||
overflow: hidden;
|
||||
margin-bottom: 12px;
|
||||
}
|
||||
|
||||
.benefit-progress-bar {
|
||||
height: 100%;
|
||||
background: var(--color-heritage-red);
|
||||
border-radius: 999px;
|
||||
}
|
||||
|
||||
.benefit-coupon-footer {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.benefit-coupon-meta {
|
||||
font-size: 12px;
|
||||
color: var(--color-subtle-gray);
|
||||
}
|
||||
|
||||
.benefit-coupon-btn {
|
||||
padding: 6px 14px;
|
||||
border-radius: var(--radius-full);
|
||||
background: var(--color-heritage-red);
|
||||
color: #fff;
|
||||
font-size: 12px;
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
.benefit-login-gate {
|
||||
padding: 48px 24px;
|
||||
text-align: center;
|
||||
}
|
||||
@@ -1,316 +0,0 @@
|
||||
/* 首页(Tab 顶栏样式见 styles/nav-bar.css) */
|
||||
.tab-main-city-pin {
|
||||
width: 14px;
|
||||
height: 14px;
|
||||
border-radius: 50%;
|
||||
background: var(--color-heritage-red);
|
||||
flex-shrink: 0;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.tab-main-city-pin::after {
|
||||
content: '';
|
||||
position: absolute;
|
||||
left: 50%;
|
||||
top: 50%;
|
||||
width: 5px;
|
||||
height: 5px;
|
||||
margin: -2px 0 0 -2px;
|
||||
border-radius: 50%;
|
||||
background: #fff;
|
||||
}
|
||||
|
||||
.tab-main-city-label {
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
max-width: 100px;
|
||||
}
|
||||
|
||||
.home-page {
|
||||
background: var(--color-background);
|
||||
}
|
||||
|
||||
.home-promo-banner {
|
||||
margin: 12px var(--space-page) 0;
|
||||
border-radius: var(--radius-lg);
|
||||
overflow: hidden;
|
||||
background: var(--color-card);
|
||||
box-shadow: var(--shadow-card);
|
||||
aspect-ratio: 15 / 8;
|
||||
}
|
||||
|
||||
.home-promo-banner-swiper {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.home-promo-banner-img {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
display: block;
|
||||
}
|
||||
|
||||
.home-aroma-nav {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
gap: 8px;
|
||||
margin-top: 4px;
|
||||
padding: 6px var(--space-page) 4px;
|
||||
background: transparent;
|
||||
border-bottom: none;
|
||||
position: sticky;
|
||||
top: 0;
|
||||
z-index: 40;
|
||||
background: rgba(250, 249, 247, 0.96);
|
||||
}
|
||||
|
||||
.home-aroma-tabs {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 4px;
|
||||
flex: 1;
|
||||
min-width: 0;
|
||||
}
|
||||
|
||||
.home-aroma-city {
|
||||
flex-shrink: 0;
|
||||
font-size: 11px;
|
||||
color: var(--color-subtle-gray);
|
||||
pointer-events: none;
|
||||
max-width: 72px;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.home-aroma-tab {
|
||||
border: none;
|
||||
background: transparent;
|
||||
padding: 4px 10px;
|
||||
font-family: var(--font-headline);
|
||||
font-size: 14px;
|
||||
font-weight: 600;
|
||||
line-height: 22px;
|
||||
color: var(--color-subtle-gray);
|
||||
border-bottom: 2px solid transparent;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.home-aroma-tab--active {
|
||||
color: var(--color-heritage-red);
|
||||
border-bottom-color: var(--color-heritage-red);
|
||||
}
|
||||
|
||||
.home-fulfillment-filters {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 8px;
|
||||
padding: 4px var(--space-page) 2px;
|
||||
overflow-x: auto;
|
||||
}
|
||||
|
||||
.home-fulfillment-chip {
|
||||
flex-shrink: 0;
|
||||
padding: 4px 12px;
|
||||
font-size: 12px;
|
||||
line-height: 18px;
|
||||
color: var(--color-subtle-gray);
|
||||
background: rgba(0, 0, 0, 0.04);
|
||||
border-radius: 999px;
|
||||
}
|
||||
|
||||
.home-fulfillment-chip--active {
|
||||
color: var(--color-heritage-red);
|
||||
background: rgba(179, 38, 30, 0.1);
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
.home-product-list {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 10px;
|
||||
padding: 8px var(--space-page) 12px;
|
||||
}
|
||||
|
||||
.home-aroma-section {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 10px;
|
||||
scroll-margin-top: 48px;
|
||||
}
|
||||
|
||||
.home-aroma-section + .home-aroma-section {
|
||||
margin-top: 8px;
|
||||
padding-top: 12px;
|
||||
border-top: 1px solid rgba(0, 0, 0, 0.04);
|
||||
}
|
||||
|
||||
.home-aroma-section-title {
|
||||
font-family: var(--font-headline);
|
||||
font-size: 15px;
|
||||
font-weight: 700;
|
||||
line-height: 22px;
|
||||
color: var(--color-on-surface);
|
||||
padding: 2px 2px 0;
|
||||
}
|
||||
|
||||
.home-empty--section {
|
||||
padding: 16px 0 8px;
|
||||
}
|
||||
|
||||
.home-product-card {
|
||||
background: var(--color-card);
|
||||
border-radius: 12px;
|
||||
overflow: hidden;
|
||||
box-shadow: var(--shadow-card);
|
||||
}
|
||||
|
||||
.home-product-card-inner {
|
||||
display: flex;
|
||||
align-items: stretch;
|
||||
gap: 10px;
|
||||
padding: 10px;
|
||||
}
|
||||
|
||||
.home-product-thumb-wrap {
|
||||
flex-shrink: 0;
|
||||
width: 88px;
|
||||
height: 88px;
|
||||
border-radius: 8px;
|
||||
overflow: hidden;
|
||||
background: var(--color-surface-container);
|
||||
}
|
||||
|
||||
.home-product-thumb {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
display: block;
|
||||
}
|
||||
|
||||
.home-product-thumb--empty {
|
||||
background: var(--color-surface-container);
|
||||
}
|
||||
|
||||
.home-product-main {
|
||||
flex: 1;
|
||||
min-width: 0;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 2px;
|
||||
}
|
||||
|
||||
.home-product-row {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: flex-start;
|
||||
gap: 8px;
|
||||
}
|
||||
|
||||
.home-product-name {
|
||||
font-family: var(--font-headline);
|
||||
font-size: 14px;
|
||||
font-weight: 600;
|
||||
line-height: 20px;
|
||||
color: var(--color-on-surface);
|
||||
flex: 1;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.home-product-price {
|
||||
font-size: 15px;
|
||||
font-weight: 700;
|
||||
line-height: 20px;
|
||||
color: var(--color-heritage-red);
|
||||
flex-shrink: 0;
|
||||
}
|
||||
|
||||
.home-product-sub {
|
||||
font-size: 11px;
|
||||
color: var(--color-subtle-gray);
|
||||
line-height: 16px;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.home-product-footer {
|
||||
margin-top: 2px;
|
||||
}
|
||||
|
||||
.home-product-actions {
|
||||
margin-top: auto;
|
||||
padding-top: 4px;
|
||||
display: flex;
|
||||
justify-content: flex-end;
|
||||
gap: 6px;
|
||||
}
|
||||
|
||||
.home-pickup-btn {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
padding: 4px 10px;
|
||||
border-radius: var(--radius-full);
|
||||
background: var(--color-aged-amber);
|
||||
color: #5c4500;
|
||||
font-size: 11px;
|
||||
font-weight: 600;
|
||||
line-height: 16px;
|
||||
border: none;
|
||||
}
|
||||
|
||||
.home-buy-btn {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
padding: 4px 12px;
|
||||
border-radius: var(--radius-full);
|
||||
background: var(--color-heritage-red);
|
||||
color: #fff;
|
||||
font-size: 11px;
|
||||
font-weight: 600;
|
||||
line-height: 16px;
|
||||
border: none;
|
||||
}
|
||||
|
||||
.home-promo-footer {
|
||||
margin: 0 var(--space-page) 8px;
|
||||
border-radius: var(--radius-lg);
|
||||
overflow: hidden;
|
||||
background: var(--color-card);
|
||||
box-shadow: var(--shadow-card);
|
||||
aspect-ratio: 15 / 4;
|
||||
}
|
||||
|
||||
.home-promo-footer-img {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
display: block;
|
||||
object-fit: cover;
|
||||
}
|
||||
|
||||
.home-empty {
|
||||
text-align: center;
|
||||
padding: 32px 24px;
|
||||
color: var(--color-subtle-gray);
|
||||
font-size: 13px;
|
||||
}
|
||||
|
||||
.home-page .coupon-badge {
|
||||
position: relative;
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
background: var(--color-aged-amber);
|
||||
color: var(--color-on-secondary-container);
|
||||
padding: 2px 8px;
|
||||
border-radius: 2px;
|
||||
font-family: var(--font-label);
|
||||
font-size: 11px;
|
||||
font-weight: 700;
|
||||
letter-spacing: 0.02em;
|
||||
line-height: 16px;
|
||||
}
|
||||
@@ -1,44 +0,0 @@
|
||||
.legal-page .legal-body {
|
||||
min-height: calc(100vh - var(--nav-bar-height, 88px));
|
||||
padding-top: 8px;
|
||||
padding-bottom: 40px;
|
||||
box-sizing: border-box;
|
||||
background: var(--color-background, #f7f4ef);
|
||||
}
|
||||
|
||||
.legal-updated {
|
||||
display: block;
|
||||
font-size: 12px;
|
||||
color: #8d706e;
|
||||
margin-bottom: 12px;
|
||||
line-height: 1.5;
|
||||
}
|
||||
|
||||
.legal-intro {
|
||||
display: block;
|
||||
font-size: 14px;
|
||||
line-height: 1.75;
|
||||
color: #1f1a17;
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
|
||||
.legal-section {
|
||||
margin-bottom: 18px;
|
||||
}
|
||||
|
||||
.legal-heading {
|
||||
display: block;
|
||||
font-size: 15px;
|
||||
font-weight: 600;
|
||||
color: #1f1a17;
|
||||
margin-bottom: 8px;
|
||||
line-height: 1.5;
|
||||
}
|
||||
|
||||
.legal-paragraph {
|
||||
display: block;
|
||||
font-size: 13px;
|
||||
line-height: 1.75;
|
||||
color: #3d3530;
|
||||
margin-bottom: 8px;
|
||||
}
|
||||
@@ -1,376 +0,0 @@
|
||||
/* 登录页(对齐 h5-user login-page) */
|
||||
.login-page {
|
||||
min-height: 100vh;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
background: var(--color-background);
|
||||
color: var(--color-on-surface);
|
||||
box-sizing: border-box;
|
||||
padding-top: var(--nav-status-bar-height, 20px);
|
||||
}
|
||||
|
||||
.login-header {
|
||||
padding: 48px var(--space-page) 32px;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.login-logo-wrap {
|
||||
position: relative;
|
||||
width: 200px;
|
||||
height: 72px;
|
||||
margin-bottom: 28px;
|
||||
}
|
||||
|
||||
.login-logo {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
.login-logo-img {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.login-logo-badge {
|
||||
position: absolute;
|
||||
bottom: -8px;
|
||||
right: -8px;
|
||||
background: var(--color-heritage-red);
|
||||
color: #fff;
|
||||
font-size: 10px;
|
||||
font-weight: 700;
|
||||
padding: 2px 8px;
|
||||
border-radius: 999px;
|
||||
line-height: 1.4;
|
||||
}
|
||||
|
||||
.login-welcome {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.login-welcome-title {
|
||||
display: block;
|
||||
font-family: var(--font-headline);
|
||||
font-size: 20px;
|
||||
font-weight: 600;
|
||||
line-height: 28px;
|
||||
color: var(--color-ink-black, #1a1a1a);
|
||||
letter-spacing: -0.01em;
|
||||
}
|
||||
|
||||
.login-welcome-sub {
|
||||
display: block;
|
||||
margin-top: 8px;
|
||||
font-size: 16px;
|
||||
line-height: 24px;
|
||||
color: var(--color-on-surface-variant);
|
||||
opacity: 0.8;
|
||||
}
|
||||
|
||||
.login-main {
|
||||
flex: 1;
|
||||
padding: 0 var(--space-page) 32px;
|
||||
width: 100%;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
.login-card {
|
||||
background: var(--color-card);
|
||||
border-radius: var(--radius-xl);
|
||||
padding: 24px;
|
||||
box-shadow: var(--shadow-card);
|
||||
}
|
||||
|
||||
.login-card-title {
|
||||
display: block;
|
||||
font-family: var(--font-headline);
|
||||
font-size: 18px;
|
||||
font-weight: 600;
|
||||
line-height: 26px;
|
||||
margin-bottom: 16px;
|
||||
color: var(--color-on-surface);
|
||||
}
|
||||
|
||||
.login-field {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
border-bottom: 1px solid var(--color-surface-variant, #e8e4de);
|
||||
padding-bottom: 8px;
|
||||
margin-bottom: 16px;
|
||||
min-height: 40px;
|
||||
}
|
||||
|
||||
.login-field-prefix {
|
||||
font-size: 16px;
|
||||
font-weight: 500;
|
||||
line-height: 32px;
|
||||
color: var(--color-on-surface);
|
||||
margin-right: 12px;
|
||||
flex-shrink: 0;
|
||||
}
|
||||
|
||||
.login-field-input {
|
||||
flex: 1;
|
||||
border: none;
|
||||
background: transparent;
|
||||
padding: 0;
|
||||
height: 32px;
|
||||
font-size: 16px;
|
||||
line-height: 32px;
|
||||
color: var(--color-on-surface);
|
||||
min-width: 0;
|
||||
box-sizing: border-box;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.login-field-input input,
|
||||
.login-field-input .taro-input,
|
||||
.login-field-input .weui-input {
|
||||
width: 100% !important;
|
||||
height: 100% !important;
|
||||
min-height: 0 !important;
|
||||
padding: 0 !important;
|
||||
margin: 0 !important;
|
||||
border: none !important;
|
||||
background: transparent !important;
|
||||
box-sizing: border-box !important;
|
||||
font-size: 16px !important;
|
||||
line-height: normal !important;
|
||||
color: inherit;
|
||||
}
|
||||
|
||||
.login-get-code {
|
||||
flex-shrink: 0;
|
||||
border: none;
|
||||
background: transparent;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
font-size: 14px;
|
||||
font-weight: 500;
|
||||
color: var(--color-heritage-red);
|
||||
line-height: 1.4;
|
||||
}
|
||||
|
||||
.login-get-code--disabled {
|
||||
color: var(--color-subtle-gray);
|
||||
}
|
||||
|
||||
.login-msg {
|
||||
display: block;
|
||||
font-size: 13px;
|
||||
color: var(--color-heritage-red);
|
||||
margin-bottom: 12px;
|
||||
}
|
||||
|
||||
.login-msg--hint {
|
||||
color: var(--color-success, #2d6a4f);
|
||||
}
|
||||
|
||||
.login-sms-btn {
|
||||
width: 100%;
|
||||
height: 48px;
|
||||
margin-top: 8px;
|
||||
border: 1.5px solid var(--color-heritage-red, #a61d24);
|
||||
border-radius: var(--radius-lg);
|
||||
background: #fff;
|
||||
color: var(--color-heritage-red, #a61d24);
|
||||
font-family: var(--font-headline);
|
||||
font-size: 18px;
|
||||
font-weight: 600;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
line-height: 1;
|
||||
padding: 0;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
.login-sms-btn__text {
|
||||
color: var(--color-heritage-red, #a61d24);
|
||||
font-size: 18px;
|
||||
font-weight: 600;
|
||||
line-height: 26px;
|
||||
}
|
||||
|
||||
.login-sms-btn:active {
|
||||
background: rgba(166, 29, 36, 0.06);
|
||||
transform: scale(0.98);
|
||||
}
|
||||
|
||||
.login-sms-btn--disabled {
|
||||
opacity: 0.6;
|
||||
pointer-events: none;
|
||||
}
|
||||
|
||||
.login-divider {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 16px;
|
||||
margin: 32px 0;
|
||||
}
|
||||
|
||||
.login-divider-line {
|
||||
flex: 1;
|
||||
height: 1px;
|
||||
background: linear-gradient(
|
||||
90deg,
|
||||
transparent 0%,
|
||||
var(--color-surface-variant, #e8e4de) 50%,
|
||||
transparent 100%
|
||||
);
|
||||
}
|
||||
|
||||
.login-divider-text {
|
||||
font-size: 12px;
|
||||
font-weight: 500;
|
||||
letter-spacing: 0.05em;
|
||||
color: var(--color-subtle-gray);
|
||||
flex-shrink: 0;
|
||||
}
|
||||
|
||||
.login-wechat-btn,
|
||||
.login-phone-quick-btn {
|
||||
width: 100%;
|
||||
height: 56px;
|
||||
border: none;
|
||||
border-radius: var(--radius-lg);
|
||||
background: var(--color-heritage-red);
|
||||
color: #fff;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
gap: 12px;
|
||||
font-family: var(--font-headline);
|
||||
font-size: 18px;
|
||||
font-weight: 600;
|
||||
line-height: 1;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
box-sizing: border-box;
|
||||
box-shadow: 0 8px 24px rgba(166, 29, 36, 0.1);
|
||||
}
|
||||
|
||||
.login-wechat-btn:active,
|
||||
.login-phone-quick-btn:active {
|
||||
transform: scale(0.98);
|
||||
}
|
||||
|
||||
.login-wechat-btn--disabled,
|
||||
.login-phone-quick-btn--disabled {
|
||||
opacity: 0.7;
|
||||
pointer-events: none;
|
||||
}
|
||||
|
||||
.login-wechat-btn__text,
|
||||
.login-phone-quick-btn__text {
|
||||
color: #fff;
|
||||
font-size: 18px;
|
||||
font-weight: 600;
|
||||
line-height: 26px;
|
||||
}
|
||||
|
||||
/* 重置小程序 Button 默认样式,避免绿边/微信绿 */
|
||||
.login-phone-quick-btn::after {
|
||||
border: none;
|
||||
}
|
||||
|
||||
.login-footer {
|
||||
padding: 0 var(--space-page) calc(env(safe-area-inset-bottom, 0px) + 32px);
|
||||
width: 100%;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
.login-agreement {
|
||||
display: flex;
|
||||
align-items: flex-start;
|
||||
gap: 8px;
|
||||
margin: 12px 0 16px;
|
||||
}
|
||||
|
||||
.login-agreement-check {
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
margin-top: 0;
|
||||
border-radius: 4px;
|
||||
border: 1px solid var(--color-outline, #c8c4be);
|
||||
flex-shrink: 0;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
font-size: 11px;
|
||||
line-height: 1;
|
||||
color: #fff;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
.login-agreement-check--on {
|
||||
background: var(--color-heritage-red);
|
||||
border-color: var(--color-heritage-red);
|
||||
}
|
||||
|
||||
.login-agreement-text {
|
||||
flex: 1;
|
||||
font-size: 12px;
|
||||
font-weight: 500;
|
||||
line-height: 16px;
|
||||
letter-spacing: 0.05em;
|
||||
color: var(--color-on-surface-variant);
|
||||
}
|
||||
|
||||
.login-agreement-link {
|
||||
color: var(--color-heritage-red);
|
||||
}
|
||||
|
||||
.login-nav {
|
||||
min-height: 44px;
|
||||
padding: 8px var(--space-page) 0;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
.login-nav-back {
|
||||
min-width: 72px;
|
||||
min-height: 40px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 4px;
|
||||
color: var(--color-on-surface);
|
||||
font-size: 16px;
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
.login-nav-back-icon {
|
||||
font-size: 30px;
|
||||
line-height: 1;
|
||||
}
|
||||
|
||||
.login-cancel-btn {
|
||||
width: 100%;
|
||||
min-height: 48px;
|
||||
margin-top: 20px;
|
||||
border: 1px solid var(--color-heritage-red);
|
||||
border-radius: var(--radius-lg);
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
box-sizing: border-box;
|
||||
color: var(--color-heritage-red);
|
||||
font-size: 16px;
|
||||
font-weight: 700;
|
||||
background: #fff;
|
||||
}
|
||||
|
||||
.login-cancel-hint {
|
||||
display: block;
|
||||
margin-top: 10px;
|
||||
text-align: center;
|
||||
color: var(--color-on-surface-variant);
|
||||
font-size: 13px;
|
||||
}
|
||||
@@ -1,561 +0,0 @@
|
||||
/* 我的 */
|
||||
.page-shell.mine-page {
|
||||
min-height: auto;
|
||||
padding-bottom: calc(56px + env(safe-area-inset-bottom, 0px));
|
||||
}
|
||||
|
||||
.mine-page {
|
||||
background: var(--color-background);
|
||||
}
|
||||
|
||||
.mine-header {
|
||||
position: relative;
|
||||
z-index: 2;
|
||||
padding: 16px var(--space-page) 44px;
|
||||
background: linear-gradient(135deg, #820012 0%, var(--color-heritage-red) 40%, #d4a373 100%);
|
||||
overflow: visible;
|
||||
}
|
||||
|
||||
.mine-header-texture {
|
||||
position: absolute;
|
||||
inset: 0;
|
||||
opacity: 0.08;
|
||||
background: repeating-linear-gradient(
|
||||
45deg,
|
||||
transparent,
|
||||
transparent 8px,
|
||||
rgba(255, 255, 255, 0.04) 8px,
|
||||
rgba(255, 255, 255, 0.04) 16px
|
||||
);
|
||||
pointer-events: none;
|
||||
}
|
||||
|
||||
.mine-profile {
|
||||
position: relative;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
z-index: 3;
|
||||
}
|
||||
|
||||
.mine-avatar-wrap {
|
||||
position: relative;
|
||||
z-index: 4;
|
||||
flex-shrink: 0;
|
||||
margin-right: 12px;
|
||||
}
|
||||
|
||||
.mine-avatar-wrap--action {
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.mine-profile-meta {
|
||||
min-width: 0;
|
||||
flex: 1;
|
||||
}
|
||||
|
||||
.mine-avatar-status {
|
||||
position: absolute;
|
||||
left: 50%;
|
||||
bottom: -4px;
|
||||
transform: translateX(-50%);
|
||||
padding: 2px 8px;
|
||||
border-radius: 999px;
|
||||
font-size: 9px;
|
||||
font-weight: 600;
|
||||
line-height: 1.3;
|
||||
white-space: nowrap;
|
||||
border: 1px solid rgba(255, 255, 255, 0.85);
|
||||
box-shadow: 0 2px 6px rgba(0, 0, 0, 0.12);
|
||||
}
|
||||
|
||||
.mine-avatar-status--ok {
|
||||
background: #07c160;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.mine-avatar-status--pending {
|
||||
background: #fff;
|
||||
color: var(--color-heritage-red);
|
||||
}
|
||||
|
||||
.mine-avatar-badge {
|
||||
position: absolute;
|
||||
right: -4px;
|
||||
bottom: -2px;
|
||||
background: var(--color-heritage-red);
|
||||
color: #fff;
|
||||
font-size: 9px;
|
||||
padding: 2px 6px;
|
||||
border-radius: 999px;
|
||||
}
|
||||
|
||||
.mine-member-tag--wechat {
|
||||
background: rgba(255, 255, 255, 0.25);
|
||||
}
|
||||
|
||||
.mine-avatar {
|
||||
width: 64px;
|
||||
height: 64px;
|
||||
border-radius: 50%;
|
||||
border: 2px solid rgba(255, 255, 255, 0.35);
|
||||
background: #fff;
|
||||
overflow: hidden;
|
||||
flex-shrink: 0;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
color: var(--color-heritage-red);
|
||||
font-size: 24px;
|
||||
font-weight: 700;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
.mine-avatar--wx-ok {
|
||||
border-color: #07c160;
|
||||
box-shadow: 0 0 0 2px rgba(7, 193, 96, 0.25);
|
||||
}
|
||||
|
||||
.mine-avatar--wx-pending {
|
||||
border-color: rgba(255, 255, 255, 0.9);
|
||||
box-shadow: 0 0 0 2px rgba(255, 255, 255, 0.35);
|
||||
}
|
||||
|
||||
.mine-avatar-wrap .mine-avatar {
|
||||
margin-right: 0;
|
||||
}
|
||||
|
||||
.mine-profile > .mine-avatar {
|
||||
margin-right: 12px;
|
||||
}
|
||||
|
||||
.mine-avatar-img {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.mine-profile-name {
|
||||
display: block;
|
||||
font-family: var(--font-headline);
|
||||
font-size: 18px;
|
||||
font-weight: 600;
|
||||
color: #fff;
|
||||
margin-bottom: 2px;
|
||||
}
|
||||
|
||||
.mine-member-tag {
|
||||
display: inline-block;
|
||||
padding: 2px 8px;
|
||||
border-radius: 999px;
|
||||
background: rgba(255, 255, 255, 0.15);
|
||||
font-size: 10px;
|
||||
color: rgba(255, 255, 255, 0.9);
|
||||
}
|
||||
|
||||
.mine-profile-retry {
|
||||
display: block;
|
||||
margin-top: 6px;
|
||||
font-size: 11px;
|
||||
color: #fff;
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
.mine-main {
|
||||
margin-top: -28px;
|
||||
position: relative;
|
||||
z-index: 1;
|
||||
padding: 0 var(--space-page) 0;
|
||||
}
|
||||
|
||||
.mine-card {
|
||||
background: var(--color-card);
|
||||
border-radius: var(--radius-lg);
|
||||
padding: 12px;
|
||||
box-shadow: var(--shadow-card);
|
||||
margin-bottom: 8px;
|
||||
}
|
||||
|
||||
.mine-card:last-of-type {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
.mine-card-head {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
.mine-card-title {
|
||||
font-family: var(--font-headline);
|
||||
font-size: 15px;
|
||||
font-weight: 700;
|
||||
color: var(--color-on-surface);
|
||||
}
|
||||
|
||||
.mine-card-link {
|
||||
font-size: 12px;
|
||||
color: var(--color-subtle-gray);
|
||||
}
|
||||
|
||||
.mine-asset-panel {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
padding: 12px;
|
||||
border-radius: var(--radius-md);
|
||||
background: linear-gradient(135deg, #fff9e6 0%, #fff0c2 100%);
|
||||
}
|
||||
|
||||
.mine-asset-label {
|
||||
display: block;
|
||||
font-size: 12px;
|
||||
color: rgba(87, 69, 0, 0.8);
|
||||
margin-bottom: 4px;
|
||||
}
|
||||
|
||||
.mine-asset-amount {
|
||||
display: flex;
|
||||
align-items: baseline;
|
||||
color: var(--color-heritage-red);
|
||||
}
|
||||
|
||||
.mine-asset-currency {
|
||||
font-size: 16px;
|
||||
font-weight: 700;
|
||||
margin-right: 2px;
|
||||
}
|
||||
|
||||
.mine-asset-value {
|
||||
font-family: var(--font-headline);
|
||||
font-size: 24px;
|
||||
font-weight: 700;
|
||||
}
|
||||
|
||||
.mine-asset-cta {
|
||||
padding: 6px 14px;
|
||||
border-radius: 999px;
|
||||
background: var(--color-heritage-red);
|
||||
color: #fff;
|
||||
font-size: 12px;
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
.mine-order-grid {
|
||||
display: flex;
|
||||
justify-content: space-around;
|
||||
}
|
||||
|
||||
.mine-order-item {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
padding: 4px;
|
||||
position: relative;
|
||||
width: 33%;
|
||||
}
|
||||
|
||||
.mine-order-icon {
|
||||
width: 36px;
|
||||
height: 36px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
margin-bottom: 4px;
|
||||
}
|
||||
|
||||
.mine-order-icon-img {
|
||||
width: 28px;
|
||||
height: 28px;
|
||||
display: block;
|
||||
}
|
||||
|
||||
.mine-order-badge {
|
||||
position: absolute;
|
||||
top: 2px;
|
||||
right: 18%;
|
||||
min-width: 16px;
|
||||
height: 16px;
|
||||
padding: 0 4px;
|
||||
border-radius: 999px;
|
||||
background: var(--color-heritage-red);
|
||||
color: #fff;
|
||||
font-size: 10px;
|
||||
line-height: 16px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.mine-order-label {
|
||||
font-size: 12px;
|
||||
color: var(--color-on-surface);
|
||||
}
|
||||
|
||||
.mine-service-grid {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
|
||||
.mine-service-item {
|
||||
width: 25%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
padding: 6px 4px;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
.mine-service-icon {
|
||||
width: 36px;
|
||||
height: 36px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
margin-bottom: 4px;
|
||||
}
|
||||
|
||||
.mine-service-icon-img {
|
||||
width: 28px;
|
||||
height: 28px;
|
||||
display: block;
|
||||
}
|
||||
|
||||
.mine-service-label {
|
||||
font-size: 11px;
|
||||
color: var(--color-on-surface);
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.mine-footer {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
padding: 10px 0 0;
|
||||
margin-top: 8px;
|
||||
}
|
||||
|
||||
.mine-version {
|
||||
font-size: 12px;
|
||||
color: var(--color-subtle-gray);
|
||||
}
|
||||
|
||||
.mine-logout {
|
||||
display: inline-flex;
|
||||
padding: 6px 18px;
|
||||
border-radius: var(--radius-full);
|
||||
border: 1px solid rgba(166, 29, 36, 0.3);
|
||||
color: var(--color-heritage-red);
|
||||
font-size: 13px;
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
.mine-login-gate {
|
||||
margin-top: -24px;
|
||||
margin-left: var(--space-page);
|
||||
margin-right: var(--space-page);
|
||||
margin-bottom: 8px;
|
||||
padding: 16px;
|
||||
position: relative;
|
||||
z-index: 2;
|
||||
background: var(--color-card);
|
||||
border-radius: var(--radius-lg);
|
||||
box-shadow: var(--shadow-card);
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
.mine-login-gate-hint {
|
||||
text-align: center;
|
||||
padding: 24px 0 16px;
|
||||
color: var(--color-subtle-gray);
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
.mine-login-btn {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
width: 100%;
|
||||
box-sizing: border-box;
|
||||
padding: 12px 18px;
|
||||
border-radius: var(--radius-md);
|
||||
background: var(--color-heritage-red);
|
||||
color: #fff;
|
||||
font-size: 15px;
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
.mine-profile-sheet-mask {
|
||||
position: fixed;
|
||||
inset: 0;
|
||||
z-index: 1000;
|
||||
background: rgba(20, 16, 14, 0.45);
|
||||
display: flex;
|
||||
align-items: flex-end;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
.mine-profile-sheet {
|
||||
width: 100%;
|
||||
max-width: 480px;
|
||||
box-sizing: border-box;
|
||||
background: #fff;
|
||||
border-radius: 20px 20px 0 0;
|
||||
padding: 20px 20px calc(20px + env(safe-area-inset-bottom, 0px));
|
||||
}
|
||||
|
||||
.mine-profile-sheet-title {
|
||||
display: block;
|
||||
font-size: 17px;
|
||||
font-weight: 700;
|
||||
color: #1f1a17;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.mine-profile-sheet-hint {
|
||||
display: block;
|
||||
margin-top: 8px;
|
||||
font-size: 12px;
|
||||
line-height: 1.5;
|
||||
color: #8d706e;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.mine-profile-avatar-btn {
|
||||
margin: 20px auto 0;
|
||||
padding: 0;
|
||||
width: auto;
|
||||
background: transparent;
|
||||
border: none;
|
||||
line-height: 1.2;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.mine-profile-avatar-btn::after {
|
||||
border: none;
|
||||
}
|
||||
|
||||
.mine-profile-avatar-preview {
|
||||
width: 88px;
|
||||
height: 88px;
|
||||
border-radius: 50%;
|
||||
overflow: hidden;
|
||||
border: 2px solid rgba(166, 29, 36, 0.25);
|
||||
background: #f7f4ef;
|
||||
}
|
||||
|
||||
.mine-profile-avatar-tip {
|
||||
margin-top: 8px;
|
||||
font-size: 12px;
|
||||
color: var(--color-heritage-red);
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
.mine-profile-nickname-wrap {
|
||||
margin-top: 18px;
|
||||
}
|
||||
|
||||
.mine-profile-nickname-label {
|
||||
display: block;
|
||||
font-size: 13px;
|
||||
color: #5c504c;
|
||||
margin-bottom: 8px;
|
||||
}
|
||||
|
||||
.mine-profile-nickname-input {
|
||||
width: 100%;
|
||||
box-sizing: border-box;
|
||||
height: 44px;
|
||||
padding: 0 14px;
|
||||
border-radius: 12px;
|
||||
background: #f7f4ef;
|
||||
font-size: 15px;
|
||||
color: #1f1a17;
|
||||
}
|
||||
|
||||
.mine-profile-sheet-actions {
|
||||
margin-top: 22px;
|
||||
display: flex;
|
||||
gap: 12px;
|
||||
}
|
||||
|
||||
.mine-profile-sheet-cancel,
|
||||
.mine-profile-sheet-save {
|
||||
flex: 1;
|
||||
height: 44px;
|
||||
border-radius: 12px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
font-size: 15px;
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
.mine-profile-sheet-cancel {
|
||||
background: #f0ebe4;
|
||||
color: #5c504c;
|
||||
}
|
||||
|
||||
.mine-profile-sheet-save {
|
||||
background: var(--color-heritage-red);
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.mine-profile-sheet-save.is-disabled {
|
||||
opacity: 0.65;
|
||||
pointer-events: none;
|
||||
}
|
||||
|
||||
.mine-qualification-mask {
|
||||
position: fixed;
|
||||
inset: 0;
|
||||
z-index: 1200;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
background: rgba(0, 0, 0, 0.55);
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
.mine-qualification-scroll {
|
||||
flex: 1;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
max-width: none;
|
||||
max-height: none;
|
||||
border-radius: 0;
|
||||
overflow: hidden;
|
||||
background: transparent;
|
||||
}
|
||||
|
||||
.mine-qualification-body {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
box-sizing: border-box;
|
||||
min-height: 100%;
|
||||
width: 100%;
|
||||
padding: 24px 16px 56px;
|
||||
}
|
||||
|
||||
.mine-qualification-img {
|
||||
display: block;
|
||||
width: 100%;
|
||||
height: auto;
|
||||
pointer-events: none;
|
||||
}
|
||||
|
||||
.mine-qualification-hint {
|
||||
position: absolute;
|
||||
left: 0;
|
||||
right: 0;
|
||||
bottom: calc(12px + env(safe-area-inset-bottom, 0px));
|
||||
z-index: 1;
|
||||
text-align: center;
|
||||
font-size: 12px;
|
||||
color: rgba(255, 255, 255, 0.9);
|
||||
text-shadow: 0 1px 2px rgba(0, 0, 0, 0.45);
|
||||
pointer-events: none;
|
||||
}
|
||||
@@ -1,302 +0,0 @@
|
||||
/* 页面壳 + 三种顶栏(刘海屏 / 胶囊适配) */
|
||||
|
||||
.page-shell {
|
||||
min-height: 100vh;
|
||||
background: var(--color-background);
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
.page-shell--tab {
|
||||
padding-bottom: calc(88px + env(safe-area-inset-bottom, 0px));
|
||||
}
|
||||
|
||||
/* 小程序原生 tabBar 页面窗口已扣除底栏,避免滑到底多余空白 */
|
||||
.page-shell--tab.page-shell--native-tabbar {
|
||||
padding-bottom: 12px;
|
||||
}
|
||||
|
||||
.page-shell--scroll,
|
||||
.page-shell--sub,
|
||||
.page-shell--plain {
|
||||
padding-bottom: calc(24px + env(safe-area-inset-bottom, 0px));
|
||||
}
|
||||
|
||||
.page-shell--fixed-footer {
|
||||
padding-bottom: calc(88px + env(safe-area-inset-bottom, 0px));
|
||||
}
|
||||
|
||||
/* 无自定义 Tab 顶栏:贴顶(标题走小程序/H5 系统导航栏) */
|
||||
.page-shell.no-tab-header,
|
||||
.page-shell.h5-no-tab-header {
|
||||
--nav-bar-height: 0px;
|
||||
--nav-status-bar-height: 0px;
|
||||
--nav-content-height: 0px;
|
||||
}
|
||||
|
||||
.page-shell.no-tab-header .home-aroma-nav,
|
||||
.page-shell.h5-no-tab-header .home-aroma-nav {
|
||||
top: 0;
|
||||
}
|
||||
|
||||
.tab-main-header__content {
|
||||
position: relative;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: flex-end;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.tab-main-header__title {
|
||||
position: absolute;
|
||||
left: 0;
|
||||
right: 0;
|
||||
top: var(--nav-status-bar-height);
|
||||
height: var(--nav-content-height);
|
||||
line-height: var(--nav-content-height);
|
||||
text-align: center;
|
||||
padding: 0 48px;
|
||||
box-sizing: border-box;
|
||||
font-family: var(--font-headline);
|
||||
font-size: 16px;
|
||||
font-weight: 700;
|
||||
color: var(--color-heritage-red);
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
pointer-events: none;
|
||||
z-index: 1;
|
||||
}
|
||||
|
||||
.tab-main-header__extra {
|
||||
position: absolute;
|
||||
right: 0;
|
||||
top: 50%;
|
||||
transform: translateY(-50%);
|
||||
max-width: 40vw;
|
||||
}
|
||||
|
||||
.tab-main-header__extra-inner {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
color: var(--color-heritage-red);
|
||||
font-size: 12px;
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
.tab-main-header__extra-inner .tab-main-city-label {
|
||||
margin-left: 4px;
|
||||
}
|
||||
|
||||
/* ── 滚动透明顶栏(商品/门店详情) ── */
|
||||
.page-nav-bar {
|
||||
position: fixed;
|
||||
top: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
z-index: 50;
|
||||
background: transparent;
|
||||
box-sizing: border-box;
|
||||
transition: background 0.3s, box-shadow 0.3s;
|
||||
}
|
||||
|
||||
.page-nav-bar--solid {
|
||||
background: rgba(255, 255, 255, 0.95);
|
||||
box-shadow: 0 1px 0 rgba(0, 0, 0, 0.05);
|
||||
}
|
||||
|
||||
.page-nav-bar__content {
|
||||
position: relative;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.page-nav-bar__btn {
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
transform: translateY(-50%);
|
||||
width: 40px;
|
||||
height: 40px;
|
||||
border-radius: 999px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
background: rgba(255, 255, 255, 0.8);
|
||||
flex-shrink: 0;
|
||||
z-index: 2;
|
||||
}
|
||||
|
||||
.page-nav-bar__btn--back {
|
||||
left: 0;
|
||||
}
|
||||
|
||||
.page-nav-bar__btn--right {
|
||||
left: auto;
|
||||
right: 0;
|
||||
}
|
||||
|
||||
/* 右侧操作槽:固定贴着内容区右缘(内容区已用 navBarPaddingRight 避让微信菜单) */
|
||||
.page-nav-bar__right-slot {
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
right: 0;
|
||||
transform: translateY(-50%);
|
||||
z-index: 2;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
.page-nav-bar__right-slot .page-nav-bar__btn {
|
||||
position: relative;
|
||||
top: auto;
|
||||
left: auto;
|
||||
right: auto;
|
||||
transform: none;
|
||||
}
|
||||
|
||||
.page-nav-bar--solid .page-nav-bar__btn {
|
||||
background: transparent;
|
||||
}
|
||||
|
||||
.page-nav-bar__btn--placeholder {
|
||||
background: transparent;
|
||||
pointer-events: none;
|
||||
}
|
||||
|
||||
.page-nav-bar__icon {
|
||||
font-size: 32px;
|
||||
line-height: 1;
|
||||
color: var(--color-ink-black);
|
||||
font-weight: 300;
|
||||
margin-top: -2px;
|
||||
}
|
||||
|
||||
.page-nav-bar__icon--share {
|
||||
font-size: 18px;
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
/* 小程序分享 Button 去默认样式,对齐圆形胶囊按钮 */
|
||||
.page-nav-bar__share-btn {
|
||||
padding: 0 !important;
|
||||
margin: 0 !important;
|
||||
border: none !important;
|
||||
line-height: 1 !important;
|
||||
background: rgba(255, 255, 255, 0.8) !important;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
.page-nav-bar__share-btn::after {
|
||||
border: none !important;
|
||||
}
|
||||
|
||||
.page-nav-bar--solid .page-nav-bar__share-btn {
|
||||
background: transparent !important;
|
||||
}
|
||||
|
||||
.page-nav-bar__title {
|
||||
position: absolute;
|
||||
left: 0;
|
||||
right: 0;
|
||||
top: var(--nav-status-bar-height);
|
||||
height: var(--nav-content-height);
|
||||
line-height: var(--nav-content-height);
|
||||
text-align: center;
|
||||
/* 左右等宽留白,避免右侧分享/胶囊导致标题视觉偏左 */
|
||||
padding: 0 max(72px, var(--nav-padding-right, 96px));
|
||||
box-sizing: border-box;
|
||||
opacity: 0;
|
||||
font-family: var(--font-headline);
|
||||
font-size: 15px;
|
||||
font-weight: 600;
|
||||
color: var(--color-ink-black);
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
transition: opacity 0.3s;
|
||||
pointer-events: none;
|
||||
z-index: 1;
|
||||
}
|
||||
|
||||
.page-nav-bar__title--visible {
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
.page-with-nav-bar {
|
||||
padding-top: var(--nav-bar-height, 56px);
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
/* ── 子页面固定实底顶栏 ── */
|
||||
.sub-page-header {
|
||||
position: sticky;
|
||||
top: 0;
|
||||
z-index: 50;
|
||||
background: var(--color-background);
|
||||
box-shadow: var(--shadow-card);
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
.sub-page-header__content {
|
||||
position: relative;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: flex-end;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.sub-page-header__title {
|
||||
position: absolute;
|
||||
left: 0;
|
||||
right: 0;
|
||||
top: var(--nav-status-bar-height);
|
||||
height: var(--nav-content-height);
|
||||
line-height: var(--nav-content-height);
|
||||
text-align: center;
|
||||
padding: 0 48px;
|
||||
box-sizing: border-box;
|
||||
font-family: var(--font-headline);
|
||||
font-size: 16px;
|
||||
font-weight: 700;
|
||||
color: var(--color-heritage-red);
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
pointer-events: none;
|
||||
z-index: 1;
|
||||
}
|
||||
|
||||
.sub-page-header__back {
|
||||
position: absolute;
|
||||
left: 0;
|
||||
top: 50%;
|
||||
transform: translateY(-50%);
|
||||
width: 40px;
|
||||
height: 40px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
z-index: 2;
|
||||
}
|
||||
|
||||
.sub-page-header__back-icon {
|
||||
font-size: 32px;
|
||||
line-height: 1;
|
||||
color: var(--color-heritage-red);
|
||||
font-weight: 300;
|
||||
margin-top: -2px;
|
||||
}
|
||||
|
||||
.sub-page-header__right {
|
||||
position: absolute;
|
||||
right: 0;
|
||||
top: 50%;
|
||||
transform: translateY(-50%);
|
||||
z-index: 2;
|
||||
}
|
||||
|
||||
.sub-page-body {
|
||||
padding-top: 12px;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
@@ -1,490 +0,0 @@
|
||||
/* 订单确认 / 支付 / 订单列表 / 订单详情 */
|
||||
.order-confirm-page,
|
||||
.pay-page,
|
||||
.orders-page,
|
||||
.order-detail-page {
|
||||
background: var(--color-background);
|
||||
min-height: 100vh;
|
||||
}
|
||||
|
||||
.order-detail-page--with-pay .sub-page-body,
|
||||
.order-detail-page--with-actions .sub-page-body {
|
||||
padding-bottom: calc(88px + env(safe-area-inset-bottom, 0px));
|
||||
}
|
||||
|
||||
.order-detail-pay-bar {
|
||||
justify-content: space-between;
|
||||
gap: 12px;
|
||||
}
|
||||
|
||||
.order-detail-actionbar {
|
||||
position: fixed;
|
||||
left: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
z-index: 50;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 10px;
|
||||
padding: 10px var(--space-page) calc(10px + env(safe-area-inset-bottom, 0px));
|
||||
background: var(--color-card, #fff);
|
||||
box-shadow: 0 -4px 16px rgba(0, 0, 0, 0.06);
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
.order-detail-actionbar--with-pay {
|
||||
justify-content: space-between;
|
||||
}
|
||||
|
||||
.order-detail-cs-btn {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
flex-shrink: 0;
|
||||
min-width: 96px;
|
||||
height: 40px;
|
||||
padding: 0 14px;
|
||||
margin: 0;
|
||||
border: 1px solid var(--color-outline, #c8c4be);
|
||||
border-radius: 999px;
|
||||
background: transparent;
|
||||
color: var(--color-on-surface);
|
||||
font-size: 14px;
|
||||
font-weight: 600;
|
||||
line-height: 1.2;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
.order-detail-cs-btn::after {
|
||||
border: none;
|
||||
}
|
||||
|
||||
.order-detail-actionbar .order-confirm-total {
|
||||
flex: 1;
|
||||
min-width: 0;
|
||||
}
|
||||
|
||||
.order-detail-actionbar .order-confirm-submit {
|
||||
flex-shrink: 0;
|
||||
}
|
||||
|
||||
.order-confirm-submit--disabled {
|
||||
opacity: 0.55;
|
||||
pointer-events: none;
|
||||
}
|
||||
|
||||
.order-card {
|
||||
background: var(--color-card);
|
||||
border-radius: var(--radius-lg);
|
||||
margin: 0 var(--space-page) 12px;
|
||||
padding: 16px;
|
||||
box-shadow: var(--shadow-card);
|
||||
}
|
||||
|
||||
.order-card--warn {
|
||||
background: rgba(166, 29, 36, 0.06);
|
||||
box-shadow: none;
|
||||
border: 1px solid rgba(166, 29, 36, 0.15);
|
||||
}
|
||||
|
||||
.order-warn-text {
|
||||
display: block;
|
||||
font-size: 13px;
|
||||
line-height: 1.5;
|
||||
color: var(--color-heritage-red);
|
||||
}
|
||||
|
||||
.order-card-title {
|
||||
display: block;
|
||||
font-family: var(--font-headline);
|
||||
font-size: 15px;
|
||||
font-weight: 700;
|
||||
margin-bottom: 12px;
|
||||
color: var(--color-on-surface);
|
||||
}
|
||||
|
||||
.order-product-row {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.order-product-thumb {
|
||||
width: 72px;
|
||||
height: 72px;
|
||||
border-radius: 12px;
|
||||
background: var(--color-surface-container);
|
||||
margin-right: 12px;
|
||||
flex-shrink: 0;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.order-product-thumb-img {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.order-product-name {
|
||||
display: block;
|
||||
font-size: 15px;
|
||||
font-weight: 600;
|
||||
margin-bottom: 4px;
|
||||
}
|
||||
|
||||
.order-product-price {
|
||||
display: block;
|
||||
color: var(--color-heritage-red);
|
||||
font-weight: 700;
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
.order-qty-row {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
margin-top: 12px;
|
||||
padding-top: 12px;
|
||||
border-top: 1px solid var(--color-surface-container);
|
||||
}
|
||||
|
||||
.order-qty-controls {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.order-qty-btn {
|
||||
width: 32px;
|
||||
height: 32px;
|
||||
border-radius: 8px;
|
||||
background: var(--color-surface-container-low);
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
font-size: 18px;
|
||||
color: var(--color-on-surface);
|
||||
}
|
||||
|
||||
.order-qty-btn--disabled {
|
||||
opacity: 0.4;
|
||||
pointer-events: none;
|
||||
}
|
||||
|
||||
.order-qty-value {
|
||||
margin: 0 14px;
|
||||
font-size: 16px;
|
||||
font-weight: 600;
|
||||
min-width: 24px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.order-qty-hint {
|
||||
display: block;
|
||||
margin-top: 10px;
|
||||
font-size: 13px;
|
||||
color: var(--color-heritage-red);
|
||||
line-height: 1.4;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.order-row {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
padding: 8px 0;
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
.order-row-label {
|
||||
color: var(--color-on-surface-variant);
|
||||
}
|
||||
|
||||
.order-row-value {
|
||||
color: var(--color-on-surface);
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
.order-row--address {
|
||||
align-items: flex-start;
|
||||
}
|
||||
|
||||
.order-row-value--wrap {
|
||||
flex: 1;
|
||||
text-align: right;
|
||||
white-space: normal;
|
||||
word-break: break-all;
|
||||
line-height: 1.5;
|
||||
}
|
||||
|
||||
.order-row-value--price {
|
||||
color: var(--color-heritage-red);
|
||||
font-weight: 700;
|
||||
}
|
||||
|
||||
.order-confirm-bar,
|
||||
.pay-bar {
|
||||
position: fixed;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
z-index: 50;
|
||||
padding: 12px 16px calc(env(safe-area-inset-bottom, 0px) + 12px);
|
||||
display: flex;
|
||||
align-items: center;
|
||||
background: rgba(255, 255, 255, 0.95);
|
||||
border-top: 1px solid rgba(226, 190, 188, 0.1);
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
.order-confirm-total {
|
||||
flex: 1;
|
||||
}
|
||||
|
||||
.order-confirm-total-label {
|
||||
display: block;
|
||||
font-size: 12px;
|
||||
color: var(--color-subtle-gray);
|
||||
}
|
||||
|
||||
.order-confirm-total-value {
|
||||
font-family: var(--font-headline);
|
||||
font-size: 22px;
|
||||
font-weight: 700;
|
||||
color: var(--color-heritage-red);
|
||||
}
|
||||
|
||||
.order-confirm-submit {
|
||||
height: 48px;
|
||||
padding: 0 28px;
|
||||
border-radius: 999px;
|
||||
background: var(--color-heritage-red);
|
||||
color: #fff;
|
||||
font-size: 16px;
|
||||
font-weight: 700;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
.order-confirm-submit--disabled {
|
||||
background: #c9c5c0;
|
||||
color: #fff;
|
||||
opacity: 0.85;
|
||||
pointer-events: none;
|
||||
}
|
||||
|
||||
.order-tabs {
|
||||
display: flex;
|
||||
padding: 0 var(--space-page);
|
||||
border-bottom: 1px solid var(--color-surface-container);
|
||||
background: var(--color-background);
|
||||
position: sticky;
|
||||
top: var(--nav-bar-height, 56px);
|
||||
z-index: 40;
|
||||
}
|
||||
|
||||
.order-tab {
|
||||
flex: 1;
|
||||
text-align: center;
|
||||
padding: 12px 0;
|
||||
font-size: 14px;
|
||||
font-weight: 600;
|
||||
color: var(--color-subtle-gray);
|
||||
border-bottom: 2px solid transparent;
|
||||
}
|
||||
|
||||
.order-tab--active {
|
||||
color: var(--color-heritage-red);
|
||||
border-bottom-color: var(--color-heritage-red);
|
||||
}
|
||||
|
||||
.order-list-item {
|
||||
background: var(--color-card);
|
||||
border-radius: var(--radius-lg);
|
||||
margin: 12px var(--space-page);
|
||||
padding: 16px;
|
||||
box-shadow: var(--shadow-card);
|
||||
}
|
||||
|
||||
.order-list-head {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
margin-bottom: 12px;
|
||||
}
|
||||
|
||||
.order-list-head-left {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 8px;
|
||||
min-width: 0;
|
||||
}
|
||||
|
||||
.order-list-no {
|
||||
font-size: 12px;
|
||||
color: var(--color-subtle-gray);
|
||||
}
|
||||
|
||||
.order-status-row {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 8px;
|
||||
}
|
||||
|
||||
.order-proxy-badge {
|
||||
flex-shrink: 0;
|
||||
font-size: 11px;
|
||||
font-weight: 600;
|
||||
color: var(--color-heritage-red);
|
||||
background: rgba(166, 29, 36, 0.08);
|
||||
padding: 2px 6px;
|
||||
border-radius: 4px;
|
||||
}
|
||||
|
||||
.order-proxy-hint {
|
||||
display: block;
|
||||
font-size: 12px;
|
||||
color: var(--color-subtle-gray);
|
||||
margin: -4px 0 10px;
|
||||
}
|
||||
|
||||
.order-list-status {
|
||||
font-size: 13px;
|
||||
font-weight: 600;
|
||||
color: var(--color-heritage-red);
|
||||
}
|
||||
|
||||
.order-list-body {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.order-list-thumb {
|
||||
width: 64px;
|
||||
height: 64px;
|
||||
border-radius: 10px;
|
||||
background: var(--color-surface-container);
|
||||
margin-right: 12px;
|
||||
flex-shrink: 0;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.order-list-thumb-img {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
display: block;
|
||||
}
|
||||
|
||||
.order-list-name {
|
||||
display: block;
|
||||
font-size: 14px;
|
||||
font-weight: 600;
|
||||
margin-bottom: 4px;
|
||||
}
|
||||
|
||||
.order-list-meta-row {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 12px;
|
||||
}
|
||||
|
||||
.order-list-meta {
|
||||
display: block;
|
||||
font-size: 12px;
|
||||
color: var(--color-subtle-gray);
|
||||
}
|
||||
|
||||
.order-list-footer {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
margin-top: 12px;
|
||||
padding-top: 12px;
|
||||
border-top: 1px solid var(--color-surface-container);
|
||||
gap: 12px;
|
||||
}
|
||||
|
||||
.order-list-pay-amount {
|
||||
display: flex;
|
||||
align-items: baseline;
|
||||
gap: 6px;
|
||||
min-width: 0;
|
||||
}
|
||||
|
||||
.order-list-pay-btn {
|
||||
flex-shrink: 0;
|
||||
height: 32px;
|
||||
padding: 0 16px;
|
||||
border-radius: 999px;
|
||||
background: var(--color-heritage-red);
|
||||
color: #fff;
|
||||
font-size: 13px;
|
||||
font-weight: 600;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
.pay-status {
|
||||
text-align: center;
|
||||
padding: 48px 24px;
|
||||
}
|
||||
|
||||
.pay-status-icon {
|
||||
width: 72px;
|
||||
height: 72px;
|
||||
border-radius: 50%;
|
||||
background: rgba(166, 29, 36, 0.08);
|
||||
color: var(--color-heritage-red);
|
||||
font-size: 36px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
margin: 0 auto 16px;
|
||||
}
|
||||
|
||||
.pay-status-title {
|
||||
display: block;
|
||||
font-family: var(--font-headline);
|
||||
font-size: 20px;
|
||||
font-weight: 700;
|
||||
margin-bottom: 8px;
|
||||
}
|
||||
|
||||
.pay-status-amount {
|
||||
display: block;
|
||||
font-size: 28px;
|
||||
font-weight: 700;
|
||||
color: var(--color-heritage-red);
|
||||
margin-bottom: 24px;
|
||||
}
|
||||
|
||||
.pay-wechat-auth-card {
|
||||
margin: 0 0 16px;
|
||||
padding: 16px;
|
||||
border-radius: 12px;
|
||||
background: #fff;
|
||||
box-shadow: 0 2px 12px rgba(0, 0, 0, 0.06);
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.pay-wechat-auth-title {
|
||||
display: block;
|
||||
font-size: 16px;
|
||||
font-weight: 600;
|
||||
color: var(--color-on-surface);
|
||||
margin-bottom: 8px;
|
||||
}
|
||||
|
||||
.pay-wechat-auth-desc {
|
||||
display: block;
|
||||
font-size: 13px;
|
||||
color: var(--color-muted, #999);
|
||||
margin-bottom: 16px;
|
||||
line-height: 1.5;
|
||||
}
|
||||
|
||||
.pay-wechat-auth-msg {
|
||||
display: block;
|
||||
font-size: 13px;
|
||||
color: var(--color-heritage-red, #a02d30);
|
||||
line-height: 1.5;
|
||||
text-align: center;
|
||||
}
|
||||
@@ -1,345 +0,0 @@
|
||||
/* 商品详情页 — 对齐 h5-user ProductDetailPage */
|
||||
.product-detail-page {
|
||||
background: var(--color-background);
|
||||
}
|
||||
|
||||
.product-detail-main {
|
||||
padding-bottom: 24px;
|
||||
}
|
||||
|
||||
.product-detail-hero {
|
||||
background: var(--color-card);
|
||||
}
|
||||
|
||||
.detail-carousel-wrap {
|
||||
position: relative;
|
||||
width: 100%;
|
||||
aspect-ratio: 1;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.detail-carousel {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.detail-carousel-item,
|
||||
.detail-carousel-image,
|
||||
.detail-carousel-placeholder {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.detail-carousel-placeholder {
|
||||
background: var(--color-surface-container);
|
||||
}
|
||||
|
||||
.detail-carousel-dots {
|
||||
position: absolute;
|
||||
bottom: 16px;
|
||||
left: 0;
|
||||
right: 0;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
gap: 6px;
|
||||
pointer-events: none;
|
||||
}
|
||||
|
||||
.detail-carousel-dot {
|
||||
height: 4px;
|
||||
width: 6px;
|
||||
border-radius: 999px;
|
||||
background: rgba(153, 153, 153, 0.3);
|
||||
}
|
||||
|
||||
.detail-carousel-dot--active {
|
||||
width: 24px;
|
||||
background: var(--color-heritage-red);
|
||||
}
|
||||
|
||||
.product-detail-info {
|
||||
padding: var(--space-md) var(--space-page) var(--space-lg);
|
||||
}
|
||||
|
||||
.product-detail-price {
|
||||
display: flex;
|
||||
align-items: baseline;
|
||||
gap: 2px;
|
||||
margin-bottom: 8px;
|
||||
}
|
||||
|
||||
.product-detail-price-symbol {
|
||||
font-family: var(--font-headline);
|
||||
font-size: 16px;
|
||||
font-weight: 600;
|
||||
color: var(--color-heritage-red);
|
||||
}
|
||||
|
||||
.product-detail-price-value {
|
||||
font-family: var(--font-headline);
|
||||
font-size: 32px;
|
||||
font-weight: 700;
|
||||
line-height: 40px;
|
||||
color: var(--color-heritage-red);
|
||||
}
|
||||
|
||||
.product-detail-name {
|
||||
display: block;
|
||||
font-family: var(--font-headline);
|
||||
font-size: 20px;
|
||||
font-weight: 700;
|
||||
line-height: 28px;
|
||||
color: var(--color-ink-black);
|
||||
margin-bottom: 4px;
|
||||
}
|
||||
|
||||
.product-detail-subtitle {
|
||||
display: block;
|
||||
font-size: 14px;
|
||||
line-height: 20px;
|
||||
color: var(--color-on-surface-variant);
|
||||
margin-bottom: 24px;
|
||||
}
|
||||
|
||||
.product-detail-promo {
|
||||
position: relative;
|
||||
padding: 16px;
|
||||
border-radius: var(--radius-lg);
|
||||
background: linear-gradient(135deg, #fff9e6 0%, #fff0c2 100%);
|
||||
border: 1px solid rgba(255, 191, 0, 0.1);
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.product-detail-promo-glow {
|
||||
position: absolute;
|
||||
top: -16px;
|
||||
right: -16px;
|
||||
width: 80px;
|
||||
height: 80px;
|
||||
border-radius: 50%;
|
||||
background: rgba(166, 29, 36, 0.05);
|
||||
}
|
||||
|
||||
.product-detail-promo-head {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 12px;
|
||||
margin-bottom: 8px;
|
||||
position: relative;
|
||||
z-index: 1;
|
||||
}
|
||||
|
||||
.product-detail-promo-icon {
|
||||
width: 40px;
|
||||
height: 40px;
|
||||
border-radius: 50%;
|
||||
background: var(--color-heritage-red);
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
flex-shrink: 0;
|
||||
}
|
||||
|
||||
.product-detail-promo-icon-text {
|
||||
color: #fff;
|
||||
font-size: 16px;
|
||||
font-weight: 700;
|
||||
}
|
||||
|
||||
.product-detail-promo-title {
|
||||
flex: 1;
|
||||
font-family: var(--font-headline);
|
||||
font-size: 16px;
|
||||
font-weight: 700;
|
||||
line-height: 22px;
|
||||
color: var(--color-on-secondary-container);
|
||||
}
|
||||
|
||||
.product-detail-promo-amount {
|
||||
color: var(--color-heritage-red);
|
||||
}
|
||||
|
||||
.product-detail-promo-desc {
|
||||
display: block;
|
||||
font-size: 14px;
|
||||
line-height: 22px;
|
||||
color: rgba(87, 69, 0, 0.8);
|
||||
padding-left: 52px;
|
||||
position: relative;
|
||||
z-index: 1;
|
||||
}
|
||||
|
||||
.product-detail-content {
|
||||
background: var(--color-card);
|
||||
border-radius: 24px 24px 0 0;
|
||||
padding-top: var(--space-lg);
|
||||
padding-bottom: 24px;
|
||||
}
|
||||
|
||||
.product-detail-section-head {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 8px;
|
||||
padding: 0 var(--space-page);
|
||||
margin-bottom: var(--space-md);
|
||||
}
|
||||
|
||||
.product-detail-section-bar {
|
||||
width: 4px;
|
||||
height: 20px;
|
||||
border-radius: 999px;
|
||||
background: var(--color-heritage-red);
|
||||
}
|
||||
|
||||
.product-detail-section-title {
|
||||
font-family: var(--font-headline);
|
||||
font-size: 18px;
|
||||
font-weight: 600;
|
||||
color: var(--color-ink-black);
|
||||
}
|
||||
|
||||
.product-detail-banner {
|
||||
width: 100%;
|
||||
display: block;
|
||||
}
|
||||
|
||||
.product-detail-copy {
|
||||
padding: var(--space-lg) var(--space-page);
|
||||
}
|
||||
|
||||
.product-detail-story {
|
||||
text-align: center;
|
||||
margin-bottom: 24px;
|
||||
}
|
||||
|
||||
.product-detail-story-title {
|
||||
display: block;
|
||||
font-family: var(--font-headline);
|
||||
font-size: 18px;
|
||||
font-weight: 700;
|
||||
color: var(--color-heritage-red);
|
||||
margin-bottom: 8px;
|
||||
}
|
||||
|
||||
.product-detail-story-text {
|
||||
display: block;
|
||||
font-size: 14px;
|
||||
line-height: 22px;
|
||||
color: var(--color-on-surface-variant);
|
||||
}
|
||||
|
||||
.product-detail-features {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
gap: 16px;
|
||||
}
|
||||
|
||||
.product-detail-feature {
|
||||
width: calc(50% - 8px);
|
||||
background: var(--color-surface-container-low);
|
||||
border: 1px solid rgba(226, 190, 188, 0.3);
|
||||
border-radius: var(--radius-lg);
|
||||
padding: 16px;
|
||||
text-align: center;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
.product-detail-feature-icon {
|
||||
display: block;
|
||||
font-size: 20px;
|
||||
color: var(--color-heritage-red);
|
||||
}
|
||||
|
||||
.product-detail-feature-title {
|
||||
display: block;
|
||||
font-family: var(--font-headline);
|
||||
font-size: 14px;
|
||||
font-weight: 600;
|
||||
color: var(--color-ink-black);
|
||||
margin-top: 8px;
|
||||
}
|
||||
|
||||
.product-detail-feature-desc {
|
||||
display: block;
|
||||
font-size: 12px;
|
||||
color: var(--color-subtle-gray);
|
||||
margin-top: 4px;
|
||||
}
|
||||
|
||||
.product-detail-bar {
|
||||
position: fixed;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
z-index: 50;
|
||||
padding: 12px 16px calc(env(safe-area-inset-bottom, 0px) + 12px);
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 16px;
|
||||
background: rgba(255, 255, 255, 0.95);
|
||||
border-top: 1px solid rgba(226, 190, 188, 0.1);
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
.product-detail-bar-home {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
gap: 4px;
|
||||
padding: 0 8px;
|
||||
}
|
||||
|
||||
.product-detail-bar-home-icon {
|
||||
width: 24px;
|
||||
height: 24px;
|
||||
}
|
||||
|
||||
.product-detail-bar-home-label {
|
||||
font-size: 10px;
|
||||
font-weight: 500;
|
||||
color: var(--color-on-surface-variant);
|
||||
}
|
||||
|
||||
.product-detail-pickup-btn {
|
||||
flex: 1;
|
||||
height: 48px;
|
||||
border-radius: 999px;
|
||||
background: transparent;
|
||||
border: 1px solid var(--color-heritage-red);
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
.product-detail-pickup-btn-text {
|
||||
color: var(--color-heritage-red);
|
||||
font-family: var(--font-headline);
|
||||
font-size: 15px;
|
||||
font-weight: 700;
|
||||
}
|
||||
|
||||
.product-detail-buy-btn {
|
||||
flex: 1;
|
||||
height: 48px;
|
||||
border-radius: 999px;
|
||||
background: var(--color-heritage-red);
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
box-shadow: 0 8px 24px rgba(166, 29, 36, 0.2);
|
||||
}
|
||||
|
||||
.product-detail-buy-btn--disabled {
|
||||
background: #c4c4c4;
|
||||
box-shadow: none;
|
||||
pointer-events: none;
|
||||
}
|
||||
|
||||
.product-detail-buy-btn-text {
|
||||
color: #fff;
|
||||
font-family: var(--font-headline);
|
||||
font-size: 16px;
|
||||
font-weight: 700;
|
||||
}
|
||||
@@ -1,651 +0,0 @@
|
||||
/* 核销 / 核销码 / 成功 / 权益明细 */
|
||||
.redeem-page,
|
||||
.redeem-code-page,
|
||||
.redeem-success-page,
|
||||
.benefit-detail-page,
|
||||
.cs-page {
|
||||
background: var(--color-background);
|
||||
min-height: 100vh;
|
||||
}
|
||||
|
||||
.redeem-hero {
|
||||
margin: 16px var(--space-page);
|
||||
padding: 24px 20px;
|
||||
border-radius: var(--radius-lg);
|
||||
background: linear-gradient(135deg, #fff9e6 0%, #fff0c2 100%);
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.redeem-hero-label {
|
||||
display: block;
|
||||
font-size: 13px;
|
||||
color: rgba(87, 69, 0, 0.8);
|
||||
margin-bottom: 8px;
|
||||
}
|
||||
|
||||
.redeem-hero-amount {
|
||||
font-family: var(--font-headline);
|
||||
font-size: 36px;
|
||||
font-weight: 700;
|
||||
color: var(--color-heritage-red);
|
||||
}
|
||||
|
||||
.redeem-input-wrap {
|
||||
margin: 0 var(--space-page) 16px;
|
||||
background: var(--color-card);
|
||||
border-radius: var(--radius-lg);
|
||||
padding: 16px;
|
||||
box-shadow: var(--shadow-card);
|
||||
}
|
||||
|
||||
.redeem-input {
|
||||
width: 100%;
|
||||
height: 52px;
|
||||
font-size: 24px;
|
||||
font-weight: 700;
|
||||
line-height: 52px;
|
||||
color: var(--color-heritage-red);
|
||||
text-align: center;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
.redeem-input-placeholder {
|
||||
color: var(--color-subtle-gray);
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
/* 小程序原生 input:text-align 需落到组件自身与内部节点 */
|
||||
.redeem-input,
|
||||
.redeem-input input,
|
||||
.redeem-input .taro-input,
|
||||
.redeem-input .weui-input {
|
||||
width: 100% !important;
|
||||
height: 52px !important;
|
||||
min-height: 0 !important;
|
||||
padding: 0 !important;
|
||||
margin: 0 !important;
|
||||
border: none !important;
|
||||
background: transparent !important;
|
||||
box-sizing: border-box !important;
|
||||
font-size: 24px !important;
|
||||
font-weight: 700 !important;
|
||||
line-height: 52px !important;
|
||||
color: var(--color-heritage-red);
|
||||
text-align: center !important;
|
||||
}
|
||||
|
||||
.redeem-tips {
|
||||
display: block;
|
||||
box-sizing: border-box;
|
||||
margin: 8px var(--space-page) 0;
|
||||
padding: 12px 16px;
|
||||
border-radius: var(--radius-md);
|
||||
background: rgba(0, 0, 0, 0.03);
|
||||
}
|
||||
|
||||
.redeem-tips-text {
|
||||
display: block;
|
||||
font-size: 12px;
|
||||
color: var(--color-subtle-gray);
|
||||
line-height: 1.7;
|
||||
word-break: break-word;
|
||||
}
|
||||
|
||||
.redeem-amount-hint {
|
||||
font-size: 12px;
|
||||
color: var(--color-subtle-gray);
|
||||
line-height: 1.4;
|
||||
}
|
||||
|
||||
.redeem-amount-foot {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
margin: 0 var(--space-page) 12px;
|
||||
}
|
||||
|
||||
.redeem-fill-max {
|
||||
font-size: 13px;
|
||||
color: var(--color-heritage-red);
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
.redeem-submit {
|
||||
margin: 24px var(--space-page);
|
||||
height: 48px;
|
||||
border-radius: 999px;
|
||||
background: var(--color-heritage-red);
|
||||
color: #fff;
|
||||
font-size: 16px;
|
||||
font-weight: 700;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
.redeem-submit--disabled {
|
||||
opacity: 0.5;
|
||||
}
|
||||
|
||||
.redeem-cancel-btn {
|
||||
margin: 0 var(--space-page) 24px;
|
||||
height: 48px;
|
||||
border-radius: var(--radius-md);
|
||||
background: transparent;
|
||||
color: var(--color-heritage-red);
|
||||
border: 1px solid var(--color-heritage-red);
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
font-size: 15px;
|
||||
font-weight: 600;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
.redeem-code-panel {
|
||||
margin: 32px var(--space-page);
|
||||
padding: 32px 20px;
|
||||
background: var(--color-card);
|
||||
border-radius: var(--radius-xl);
|
||||
box-shadow: var(--shadow-card);
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.redeem-code-head {
|
||||
display: block;
|
||||
font-size: 14px;
|
||||
color: var(--color-subtle-gray);
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
|
||||
.redeem-qr-wrap {
|
||||
padding: 12px;
|
||||
border: 4px solid rgba(166, 29, 36, 0.1);
|
||||
border-radius: var(--radius-lg);
|
||||
margin: 0 auto 20px;
|
||||
width: 240px;
|
||||
max-width: calc(100% - 40px);
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
.redeem-qr-box {
|
||||
position: relative;
|
||||
width: 100%;
|
||||
height: 0;
|
||||
padding-bottom: 100%;
|
||||
background: #fff;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.redeem-qr-canvas {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
z-index: 1;
|
||||
display: block;
|
||||
}
|
||||
|
||||
.redeem-qr-img {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
z-index: 1;
|
||||
display: block;
|
||||
background-size: 100% 100%;
|
||||
background-repeat: no-repeat;
|
||||
background-position: center;
|
||||
}
|
||||
|
||||
.redeem-qr-placeholder {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
z-index: 0;
|
||||
background: var(--color-surface-container);
|
||||
}
|
||||
|
||||
.redeem-qr-scanline {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
z-index: 3;
|
||||
height: 3px;
|
||||
background: linear-gradient(
|
||||
180deg,
|
||||
rgba(166, 29, 36, 0) 0%,
|
||||
rgba(166, 29, 36, 0.85) 50%,
|
||||
rgba(166, 29, 36, 0) 100%
|
||||
);
|
||||
box-shadow: 0 0 12px rgba(166, 29, 36, 0.55);
|
||||
pointer-events: none;
|
||||
animation: redeem-scan 3s ease-in-out infinite;
|
||||
}
|
||||
|
||||
@keyframes redeem-scan {
|
||||
0%,
|
||||
100% {
|
||||
top: 0;
|
||||
opacity: 0.1;
|
||||
}
|
||||
50% {
|
||||
top: 95%;
|
||||
opacity: 0.8;
|
||||
}
|
||||
}
|
||||
|
||||
.redeem-timer {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
margin-bottom: 16px;
|
||||
border-radius: var(--radius-md);
|
||||
}
|
||||
|
||||
.redeem-timer--active {
|
||||
animation: redeem-pulse 2s infinite;
|
||||
}
|
||||
|
||||
@keyframes redeem-pulse {
|
||||
0% {
|
||||
box-shadow: 0 0 0 0 rgba(166, 29, 36, 0.2);
|
||||
}
|
||||
70% {
|
||||
box-shadow: 0 0 0 10px rgba(166, 29, 36, 0);
|
||||
}
|
||||
100% {
|
||||
box-shadow: 0 0 0 0 rgba(166, 29, 36, 0);
|
||||
}
|
||||
}
|
||||
|
||||
.redeem-timer-value {
|
||||
font-family: var(--font-headline);
|
||||
font-size: 24px;
|
||||
font-weight: 700;
|
||||
color: var(--color-ink-black);
|
||||
}
|
||||
|
||||
.redeem-timer-label {
|
||||
font-size: 10px;
|
||||
letter-spacing: 0.12em;
|
||||
color: var(--color-subtle-gray);
|
||||
margin-top: 4px;
|
||||
}
|
||||
|
||||
.redeem-code-amount {
|
||||
display: block;
|
||||
font-family: var(--font-headline);
|
||||
font-size: 28px;
|
||||
font-weight: 700;
|
||||
color: var(--color-heritage-red);
|
||||
margin: 8px 0 16px;
|
||||
}
|
||||
|
||||
.redeem-code-token-wrap {
|
||||
margin-top: 8px;
|
||||
padding-top: 16px;
|
||||
border-top: 1px solid var(--color-surface-container);
|
||||
}
|
||||
|
||||
.redeem-code-token-label {
|
||||
display: block;
|
||||
font-size: 12px;
|
||||
color: var(--color-subtle-gray);
|
||||
margin-bottom: 4px;
|
||||
}
|
||||
|
||||
.redeem-code-token {
|
||||
display: block;
|
||||
font-family: ui-monospace, monospace;
|
||||
font-size: 11px;
|
||||
color: var(--color-on-surface);
|
||||
line-height: 1.5;
|
||||
max-width: 100%;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.redeem-code-token-hint {
|
||||
display: block;
|
||||
margin-top: 4px;
|
||||
font-size: 11px;
|
||||
color: var(--color-subtle-gray);
|
||||
}
|
||||
|
||||
.redeem-success-icon {
|
||||
width: 80px;
|
||||
height: 80px;
|
||||
border-radius: 50%;
|
||||
background: rgba(45, 106, 79, 0.12);
|
||||
color: var(--color-success-green);
|
||||
font-size: 40px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
margin: 48px auto 16px;
|
||||
}
|
||||
|
||||
.redeem-success-title {
|
||||
display: block;
|
||||
text-align: center;
|
||||
font-family: var(--font-headline);
|
||||
font-size: 22px;
|
||||
font-weight: 700;
|
||||
margin-bottom: 8px;
|
||||
}
|
||||
|
||||
.redeem-success-desc {
|
||||
display: block;
|
||||
text-align: center;
|
||||
font-size: 14px;
|
||||
color: var(--color-subtle-gray);
|
||||
margin-bottom: 24px;
|
||||
}
|
||||
|
||||
.redeem-success-amount {
|
||||
display: block;
|
||||
text-align: center;
|
||||
font-family: var(--font-headline);
|
||||
font-size: 28px;
|
||||
font-weight: 700;
|
||||
color: var(--color-heritage-red);
|
||||
margin-bottom: 8px;
|
||||
}
|
||||
|
||||
.redeem-success-details {
|
||||
margin: 0 var(--space-page) 24px;
|
||||
padding: 16px;
|
||||
background: var(--color-card);
|
||||
border-radius: var(--radius-lg);
|
||||
box-shadow: var(--shadow-card);
|
||||
}
|
||||
|
||||
.redeem-success-detail-row {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: flex-start;
|
||||
gap: 12px;
|
||||
padding: 10px 0;
|
||||
font-size: 13px;
|
||||
border-bottom: 1px solid var(--color-surface-container);
|
||||
}
|
||||
|
||||
.redeem-success-detail-row:last-child {
|
||||
border-bottom: none;
|
||||
}
|
||||
|
||||
.redeem-success-mono {
|
||||
font-family: ui-monospace, monospace;
|
||||
font-size: 12px;
|
||||
text-align: right;
|
||||
word-break: break-all;
|
||||
}
|
||||
|
||||
.redeem-success-rating {
|
||||
margin: 16px var(--space-page) 0;
|
||||
padding: 16px;
|
||||
background: var(--color-card);
|
||||
border-radius: var(--radius-lg);
|
||||
box-shadow: var(--shadow-card);
|
||||
}
|
||||
|
||||
.redeem-success-rating-title {
|
||||
display: block;
|
||||
font-size: 15px;
|
||||
font-weight: 700;
|
||||
color: var(--color-on-surface);
|
||||
margin-bottom: 12px;
|
||||
}
|
||||
|
||||
.redeem-rating-row {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
.redeem-rating-label {
|
||||
font-size: 14px;
|
||||
color: var(--color-on-surface);
|
||||
}
|
||||
|
||||
.redeem-star-row {
|
||||
display: flex;
|
||||
gap: 6px;
|
||||
}
|
||||
|
||||
.redeem-star-btn {
|
||||
font-size: 22px;
|
||||
color: #d0d0d0;
|
||||
line-height: 1;
|
||||
}
|
||||
|
||||
.redeem-star-btn--active {
|
||||
color: #f5a623;
|
||||
}
|
||||
|
||||
.ledger-item {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
padding: 14px 0;
|
||||
border-bottom: 1px solid var(--color-surface-container);
|
||||
}
|
||||
|
||||
.ledger-item:last-child {
|
||||
border-bottom: none;
|
||||
}
|
||||
|
||||
.ledger-title {
|
||||
display: block;
|
||||
font-size: 14px;
|
||||
font-weight: 600;
|
||||
margin-bottom: 4px;
|
||||
}
|
||||
|
||||
.ledger-time {
|
||||
display: block;
|
||||
font-size: 12px;
|
||||
color: var(--color-subtle-gray);
|
||||
}
|
||||
|
||||
.ledger-amount {
|
||||
font-size: 16px;
|
||||
font-weight: 700;
|
||||
}
|
||||
|
||||
.ledger-amount--in {
|
||||
color: var(--color-success-green);
|
||||
}
|
||||
|
||||
.ledger-amount--out {
|
||||
color: var(--color-heritage-red);
|
||||
}
|
||||
|
||||
.region-picker-mask {
|
||||
position: fixed;
|
||||
inset: 0;
|
||||
z-index: 100;
|
||||
background: rgba(0, 0, 0, 0.45);
|
||||
display: flex;
|
||||
align-items: flex-end;
|
||||
}
|
||||
|
||||
.region-picker-sheet {
|
||||
width: 100%;
|
||||
background: var(--color-card);
|
||||
border-radius: 20px 20px 0 0;
|
||||
padding-bottom: calc(16px + env(safe-area-inset-bottom, 0px));
|
||||
}
|
||||
|
||||
.region-picker-head {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
padding: 14px 16px;
|
||||
border-bottom: 1px solid var(--color-surface-container);
|
||||
}
|
||||
|
||||
.region-picker-title {
|
||||
font-size: 16px;
|
||||
font-weight: 700;
|
||||
}
|
||||
|
||||
.region-picker-cancel,
|
||||
.region-picker-ok {
|
||||
font-size: 14px;
|
||||
color: var(--color-heritage-red);
|
||||
padding: 4px 8px;
|
||||
}
|
||||
|
||||
.region-picker-body {
|
||||
padding: 24px 16px;
|
||||
}
|
||||
|
||||
.region-picker-item {
|
||||
display: block;
|
||||
text-align: center;
|
||||
padding: 12px;
|
||||
font-size: 16px;
|
||||
color: var(--color-on-surface);
|
||||
}
|
||||
|
||||
.region-picker-item--active {
|
||||
color: var(--color-heritage-red);
|
||||
font-weight: 700;
|
||||
}
|
||||
|
||||
.cs-bubble {
|
||||
max-width: 78%;
|
||||
padding: 12px 14px;
|
||||
border-radius: 16px;
|
||||
margin-bottom: 12px;
|
||||
font-size: 14px;
|
||||
line-height: 1.5;
|
||||
}
|
||||
|
||||
.cs-bubble--bot {
|
||||
background: var(--color-card);
|
||||
box-shadow: var(--shadow-card);
|
||||
margin-right: auto;
|
||||
}
|
||||
|
||||
.cs-bubble--user {
|
||||
background: var(--color-heritage-red);
|
||||
color: #fff;
|
||||
margin-left: auto;
|
||||
}
|
||||
|
||||
.cs-quick {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
margin: 16px var(--space-page);
|
||||
}
|
||||
|
||||
.cs-quick-item {
|
||||
padding: 8px 12px;
|
||||
margin-right: 8px;
|
||||
margin-bottom: 8px;
|
||||
border-radius: 999px;
|
||||
background: var(--color-card);
|
||||
box-shadow: var(--shadow-card);
|
||||
font-size: 12px;
|
||||
color: var(--color-on-surface);
|
||||
}
|
||||
|
||||
.cs-body {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
padding-top: 48px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.cs-brand {
|
||||
display: block;
|
||||
font-family: var(--font-headline);
|
||||
font-size: 22px;
|
||||
font-weight: 700;
|
||||
color: var(--color-on-surface);
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
.cs-title {
|
||||
font-size: 14px;
|
||||
color: var(--color-subtle-gray);
|
||||
margin-bottom: 12px;
|
||||
}
|
||||
|
||||
.cs-phone,
|
||||
.cs-phone-display {
|
||||
display: block;
|
||||
font-family: var(--font-headline);
|
||||
font-size: 28px;
|
||||
font-weight: 700;
|
||||
color: var(--color-heritage-red);
|
||||
margin-top: 20px;
|
||||
letter-spacing: 1px;
|
||||
}
|
||||
|
||||
.cs-hint {
|
||||
display: block;
|
||||
font-size: 14px;
|
||||
color: var(--color-subtle-gray);
|
||||
line-height: 1.5;
|
||||
margin-bottom: 8px;
|
||||
max-width: 280px;
|
||||
}
|
||||
|
||||
.cs-hours {
|
||||
display: block;
|
||||
font-size: 12px;
|
||||
color: var(--color-subtle-gray);
|
||||
margin-bottom: 32px;
|
||||
}
|
||||
|
||||
.cs-online-btn {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
width: 100%;
|
||||
max-width: 280px;
|
||||
padding: 14px 24px;
|
||||
margin: 0;
|
||||
border: none;
|
||||
border-radius: 999px;
|
||||
background: var(--color-heritage-red);
|
||||
color: #fff;
|
||||
font-size: 15px;
|
||||
font-weight: 600;
|
||||
line-height: 1.4;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
.cs-online-btn::after {
|
||||
border: none;
|
||||
}
|
||||
|
||||
.cs-call-btn {
|
||||
padding: 12px 32px;
|
||||
border-radius: 999px;
|
||||
background: var(--color-heritage-red);
|
||||
color: #fff;
|
||||
font-size: 15px;
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
.cs-phone-link {
|
||||
margin-top: 20px;
|
||||
padding: 8px 12px;
|
||||
font-size: 13px;
|
||||
color: var(--color-subtle-gray);
|
||||
text-decoration: underline;
|
||||
text-underline-offset: 3px;
|
||||
}
|
||||
@@ -1,318 +0,0 @@
|
||||
/* 门店详情 */
|
||||
.store-detail-page {
|
||||
background: var(--color-background);
|
||||
}
|
||||
|
||||
.store-detail-hero {
|
||||
background: var(--color-card);
|
||||
}
|
||||
|
||||
.store-detail-carousel-wrap {
|
||||
position: relative;
|
||||
width: 100%;
|
||||
height: 280px;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.store-detail-carousel {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.store-detail-carousel-item,
|
||||
.store-detail-carousel-image,
|
||||
.store-detail-carousel-placeholder {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.store-detail-carousel-placeholder {
|
||||
background: var(--color-surface-container);
|
||||
}
|
||||
|
||||
.store-detail-carousel-dots {
|
||||
position: absolute;
|
||||
bottom: 16px;
|
||||
left: 0;
|
||||
right: 0;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
.store-detail-carousel-dot {
|
||||
height: 4px;
|
||||
width: 6px;
|
||||
margin: 0 3px;
|
||||
border-radius: 999px;
|
||||
background: rgba(255, 255, 255, 0.45);
|
||||
}
|
||||
|
||||
.store-detail-carousel-dot--active {
|
||||
width: 20px;
|
||||
background: #fff;
|
||||
}
|
||||
|
||||
.store-detail-info-card {
|
||||
margin: -40px var(--space-page) 16px;
|
||||
position: relative;
|
||||
z-index: 2;
|
||||
background: var(--color-card);
|
||||
border-radius: var(--radius-lg);
|
||||
padding: 20px 16px;
|
||||
box-shadow: var(--shadow-card);
|
||||
}
|
||||
|
||||
.store-detail-name {
|
||||
display: block;
|
||||
font-family: var(--font-headline);
|
||||
font-size: 20px;
|
||||
font-weight: 700;
|
||||
color: var(--color-ink-black);
|
||||
margin-bottom: 8px;
|
||||
}
|
||||
|
||||
.store-detail-meta {
|
||||
display: block;
|
||||
font-size: 13px;
|
||||
color: var(--color-on-surface-variant);
|
||||
margin-bottom: 6px;
|
||||
line-height: 1.5;
|
||||
}
|
||||
|
||||
.store-detail-meta--flex {
|
||||
flex: 1;
|
||||
min-width: 0;
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
.store-detail-row {
|
||||
display: flex;
|
||||
align-items: flex-start;
|
||||
gap: 12px;
|
||||
margin-bottom: 6px;
|
||||
}
|
||||
|
||||
.store-detail-action {
|
||||
flex-shrink: 0;
|
||||
padding: 2px 10px;
|
||||
border-radius: 999px;
|
||||
background: rgba(166, 29, 36, 0.08);
|
||||
color: var(--color-heritage-red);
|
||||
font-size: 12px;
|
||||
font-weight: 600;
|
||||
line-height: 1.6;
|
||||
}
|
||||
|
||||
.store-detail-intro {
|
||||
display: block;
|
||||
font-size: 14px;
|
||||
color: var(--color-on-surface);
|
||||
line-height: 1.7;
|
||||
white-space: pre-wrap;
|
||||
}
|
||||
|
||||
.store-detail-tags {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
margin-top: 12px;
|
||||
}
|
||||
|
||||
.store-detail-tag {
|
||||
padding: 4px 10px;
|
||||
margin-right: 8px;
|
||||
margin-bottom: 8px;
|
||||
border-radius: 999px;
|
||||
background: rgba(166, 29, 36, 0.08);
|
||||
color: var(--color-heritage-red);
|
||||
font-size: 11px;
|
||||
}
|
||||
|
||||
.store-detail-marquee-wrap {
|
||||
margin: 0 var(--space-page) 12px;
|
||||
}
|
||||
|
||||
.store-detail-marquee {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
border-radius: 8px;
|
||||
background: #fff7f6;
|
||||
border: 1px solid rgba(166, 29, 36, 0.12);
|
||||
overflow: hidden;
|
||||
height: 40px;
|
||||
box-sizing: border-box;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.store-detail-marquee-inner {
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
margin-top: -10px;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.store-detail-marquee-text {
|
||||
white-space: nowrap;
|
||||
font-size: 12px;
|
||||
line-height: 20px;
|
||||
color: #a61d24;
|
||||
}
|
||||
|
||||
.store-detail-section {
|
||||
background: var(--color-card);
|
||||
margin: 0 var(--space-page) 16px;
|
||||
border-radius: var(--radius-lg);
|
||||
padding: 16px;
|
||||
box-shadow: var(--shadow-card);
|
||||
}
|
||||
|
||||
.store-detail-section-title {
|
||||
display: block;
|
||||
font-family: var(--font-headline);
|
||||
font-size: 16px;
|
||||
font-weight: 700;
|
||||
margin-bottom: 10px;
|
||||
color: var(--color-on-surface);
|
||||
}
|
||||
|
||||
.store-detail-env-grid {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(3, 1fr);
|
||||
gap: 8px;
|
||||
}
|
||||
|
||||
.store-detail-env-item {
|
||||
position: relative;
|
||||
width: 100%;
|
||||
aspect-ratio: 1;
|
||||
border-radius: var(--radius-md, 8px);
|
||||
overflow: hidden;
|
||||
background: var(--color-surface-container);
|
||||
}
|
||||
|
||||
.store-detail-env-img {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
display: block;
|
||||
}
|
||||
|
||||
.store-detail-bar {
|
||||
position: fixed;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
z-index: 50;
|
||||
padding: 12px 16px calc(env(safe-area-inset-bottom, 0px) + 12px);
|
||||
display: flex;
|
||||
background: rgba(255, 255, 255, 0.95);
|
||||
border-top: 1px solid rgba(226, 190, 188, 0.1);
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
.store-detail-bar-btn {
|
||||
flex: 1;
|
||||
height: 48px;
|
||||
border-radius: 999px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
font-size: 15px;
|
||||
font-weight: 700;
|
||||
}
|
||||
|
||||
.store-detail-bar-btn--ghost {
|
||||
background: rgba(166, 29, 36, 0.08);
|
||||
color: var(--color-heritage-red);
|
||||
margin-right: 12px;
|
||||
}
|
||||
|
||||
.store-detail-bar-btn--primary {
|
||||
background: var(--color-heritage-red);
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.store-detail-bar-btn--full {
|
||||
flex: 1;
|
||||
margin-right: 0;
|
||||
}
|
||||
|
||||
.store-detail-package-card {
|
||||
padding: 12px 0;
|
||||
border-bottom: 1px solid rgba(0, 0, 0, 0.06);
|
||||
}
|
||||
|
||||
.store-detail-package-card:last-of-type {
|
||||
border-bottom: none;
|
||||
}
|
||||
|
||||
.store-detail-package-name {
|
||||
display: block;
|
||||
font-size: 16px;
|
||||
font-weight: 700;
|
||||
color: var(--color-text-primary, #1a1a1a);
|
||||
margin-bottom: 6px;
|
||||
}
|
||||
|
||||
.store-detail-package-body {
|
||||
display: block;
|
||||
font-size: 14px;
|
||||
color: var(--color-text-secondary, #666);
|
||||
line-height: 1.5;
|
||||
}
|
||||
|
||||
.store-detail-package-meta {
|
||||
display: block;
|
||||
font-size: 13px;
|
||||
color: var(--color-text-tertiary, #999);
|
||||
margin-top: 4px;
|
||||
}
|
||||
|
||||
.store-detail-package-dispute {
|
||||
display: block;
|
||||
margin-top: 12px;
|
||||
font-size: 13px;
|
||||
color: var(--color-heritage-red);
|
||||
}
|
||||
|
||||
.store-detail-dispute-mask {
|
||||
position: fixed;
|
||||
inset: 0;
|
||||
background: rgba(0, 0, 0, 0.45);
|
||||
z-index: 1000;
|
||||
display: flex;
|
||||
align-items: flex-end;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
.store-detail-dispute-panel {
|
||||
width: 100%;
|
||||
max-width: 480px;
|
||||
background: #fff;
|
||||
border-radius: 16px 16px 0 0;
|
||||
padding: 20px 16px calc(20px + env(safe-area-inset-bottom));
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
.store-detail-dispute-input {
|
||||
width: 100%;
|
||||
min-height: 96px;
|
||||
margin: 12px 0 16px;
|
||||
padding: 12px;
|
||||
border: 1px solid rgba(0, 0, 0, 0.08);
|
||||
border-radius: 8px;
|
||||
box-sizing: border-box;
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
.store-detail-dispute-actions {
|
||||
display: flex;
|
||||
gap: 12px;
|
||||
}
|
||||
|
||||
.store-detail-dispute-actions .u-btn {
|
||||
flex: 1;
|
||||
}
|
||||
|
||||
.store-detail-dispute-actions .u-btn--ghost {
|
||||
background: rgba(166, 29, 36, 0.08);
|
||||
color: var(--color-heritage-red);
|
||||
}
|
||||
@@ -1,206 +0,0 @@
|
||||
/* 门店列表 */
|
||||
.store-page {
|
||||
background: var(--color-background);
|
||||
}
|
||||
|
||||
.store-filter {
|
||||
padding: 0 var(--space-page) 12px;
|
||||
}
|
||||
|
||||
.store-search-row {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 8px;
|
||||
width: 100%;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
.store-search-input {
|
||||
flex: 1;
|
||||
min-width: 0;
|
||||
height: 40px;
|
||||
padding: 0 14px;
|
||||
border-radius: var(--radius-md);
|
||||
background: var(--color-surface-container-low);
|
||||
font-size: 13px;
|
||||
line-height: 40px;
|
||||
color: var(--color-on-surface);
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
.store-search-input input,
|
||||
.store-search-input .taro-input,
|
||||
.store-search-input .weui-input {
|
||||
width: 100% !important;
|
||||
height: 100% !important;
|
||||
min-height: 0 !important;
|
||||
padding: 0 !important;
|
||||
margin: 0 !important;
|
||||
border: none !important;
|
||||
background: transparent !important;
|
||||
box-sizing: border-box !important;
|
||||
font-size: 13px !important;
|
||||
line-height: normal !important;
|
||||
color: inherit;
|
||||
}
|
||||
|
||||
.store-search-btn {
|
||||
flex-shrink: 0;
|
||||
width: 40px;
|
||||
height: 40px;
|
||||
border-radius: var(--radius-md);
|
||||
background: var(--color-heritage-red);
|
||||
color: #fff;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
.store-search-icon {
|
||||
position: relative;
|
||||
width: 14px;
|
||||
height: 14px;
|
||||
border: 2px solid currentColor;
|
||||
border-radius: 50%;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
.store-search-icon::after {
|
||||
content: '';
|
||||
position: absolute;
|
||||
right: -5px;
|
||||
bottom: -4px;
|
||||
width: 7px;
|
||||
height: 2px;
|
||||
background: currentColor;
|
||||
border-radius: 1px;
|
||||
transform: rotate(45deg);
|
||||
transform-origin: left center;
|
||||
}
|
||||
|
||||
.store-filter-row {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 8px;
|
||||
margin-top: 10px;
|
||||
}
|
||||
|
||||
.store-filter-chip {
|
||||
flex: 1;
|
||||
min-width: 0;
|
||||
height: 36px;
|
||||
padding: 0 10px;
|
||||
border-radius: var(--radius-md);
|
||||
background: var(--color-surface-container-low);
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
gap: 4px;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
.store-filter-chip-text {
|
||||
flex: 1;
|
||||
min-width: 0;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
font-size: 12px;
|
||||
font-weight: 500;
|
||||
color: var(--color-on-surface);
|
||||
}
|
||||
|
||||
.store-filter-chip-arrow {
|
||||
flex-shrink: 0;
|
||||
font-size: 10px;
|
||||
color: var(--color-subtle-gray);
|
||||
}
|
||||
|
||||
.store-filter-icon-btn {
|
||||
flex-shrink: 0;
|
||||
width: 36px;
|
||||
height: 36px;
|
||||
border-radius: var(--radius-md);
|
||||
background: var(--color-surface-container-low);
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
color: var(--color-heritage-red);
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
.store-filter-icon-btn--busy {
|
||||
opacity: 0.5;
|
||||
}
|
||||
|
||||
.store-filter-icon-glyph {
|
||||
font-size: 18px;
|
||||
line-height: 1;
|
||||
font-weight: 700;
|
||||
color: var(--color-heritage-red);
|
||||
}
|
||||
|
||||
.store-list {
|
||||
padding: 4px var(--space-page) 16px;
|
||||
}
|
||||
|
||||
.store-card {
|
||||
background: var(--color-card);
|
||||
border-radius: var(--radius-lg);
|
||||
overflow: hidden;
|
||||
box-shadow: var(--shadow-card);
|
||||
margin-bottom: 16px;
|
||||
}
|
||||
|
||||
.store-card-cover {
|
||||
width: 100%;
|
||||
height: 160px;
|
||||
background: var(--color-surface-container);
|
||||
display: block;
|
||||
}
|
||||
|
||||
.store-card-cover--empty {
|
||||
height: 160px;
|
||||
background: var(--color-surface-container);
|
||||
}
|
||||
|
||||
.store-card-body {
|
||||
padding: 14px 16px 16px;
|
||||
}
|
||||
|
||||
.store-card-name {
|
||||
display: block;
|
||||
font-family: var(--font-headline);
|
||||
font-size: 16px;
|
||||
font-weight: 700;
|
||||
color: var(--color-on-surface);
|
||||
margin-bottom: 6px;
|
||||
}
|
||||
|
||||
.store-card-meta {
|
||||
display: block;
|
||||
font-size: 12px;
|
||||
color: var(--color-subtle-gray);
|
||||
margin-bottom: 4px;
|
||||
}
|
||||
|
||||
.store-card-footer {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
margin-top: 12px;
|
||||
}
|
||||
|
||||
.store-card-distance {
|
||||
font-size: 12px;
|
||||
color: var(--color-on-surface-variant);
|
||||
}
|
||||
|
||||
.store-card-cta {
|
||||
padding: 6px 14px;
|
||||
border-radius: var(--radius-full);
|
||||
background: rgba(166, 29, 36, 0.08);
|
||||
color: var(--color-heritage-red);
|
||||
font-size: 12px;
|
||||
font-weight: 600;
|
||||
}
|
||||
@@ -1,51 +0,0 @@
|
||||
/* Dukang design tokens — mirrored from packages/shared-ui/src/tokens.css */
|
||||
page,
|
||||
:root {
|
||||
--color-surface: #faf9f7;
|
||||
--color-surface-dim: #dadad8;
|
||||
--color-surface-container-low: #f4f3f1;
|
||||
--color-surface-container: #efeeec;
|
||||
--color-surface-container-highest: #e3e2e0;
|
||||
--color-on-surface: #1a1c1b;
|
||||
--color-on-surface-variant: #5a413f;
|
||||
--color-outline: #8d706e;
|
||||
--color-outline-variant: #e2bebc;
|
||||
|
||||
--color-primary: #820012;
|
||||
--color-on-primary: #ffffff;
|
||||
--color-heritage-red: #a61d24;
|
||||
--color-on-primary-container: #ffb9b4;
|
||||
|
||||
--color-secondary: #735c00;
|
||||
--color-secondary-container: #fed65b;
|
||||
--color-on-secondary-container: #745c00;
|
||||
--color-aged-amber: #ffbf00;
|
||||
|
||||
--color-success-green: #2d6a4f;
|
||||
--color-status-blue: #2a6ebb;
|
||||
--color-subtle-gray: #999999;
|
||||
--color-ink-black: #1a1a1a;
|
||||
|
||||
--color-error: #ba1a1a;
|
||||
--color-background: #faf9f7;
|
||||
--color-card: #ffffff;
|
||||
|
||||
--font-headline: 'PingFang SC', 'Noto Sans SC', sans-serif;
|
||||
--font-body: 'PingFang SC', 'Noto Sans SC', sans-serif;
|
||||
--font-label: 'PingFang SC', 'Noto Sans SC', sans-serif;
|
||||
|
||||
--radius-sm: 0.25rem;
|
||||
--radius-md: 0.75rem;
|
||||
--radius-lg: 1rem;
|
||||
--radius-xl: 1.5rem;
|
||||
--radius-full: 9999px;
|
||||
|
||||
--space-page: 20px;
|
||||
--space-gutter: 12px;
|
||||
--space-md: 16px;
|
||||
--space-lg: 32px;
|
||||
|
||||
--shadow-card: 0 4px 20px rgba(166, 29, 36, 0.05);
|
||||
--shadow-tabbar: 0 -4px 20px rgba(0, 0, 0, 0.06);
|
||||
--border-card: 1px solid rgba(166, 29, 36, 0.05);
|
||||
}
|
||||
Reference in New Issue
Block a user