style(web-admin): style product confirm dialog for scheme A/B.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
wuzilongandCursor committed 2026-10-18 18:14:46 +08:00
1 parent 6821cd6a03
commit 321e0d05fa
1 file changed
+390
@@ -0,0 +1,390 @@
:root {
--van-primary-color: #0a9f6d;
--van-success-color: #0a9f6d;
--van-danger-color: #dc2626;
--van-warning-color: #d97706;
--van-button-primary-background: #0a9f6d;
--van-button-primary-border-color: #0a9f6d;
--van-dropdown-menu-title-active-text-color: #0a9f6d;
--van-dropdown-menu-option-active-color: #0a9f6d;
--van-tabs-bottom-bar-color: #0a9f6d;
--van-tab-active-text-color: #0a9f6d;
}
.mp-product-page {
--van-primary-color: #0a9f6d;
--van-success-color: #0a9f6d;
--van-button-primary-background: #0a9f6d;
--van-button-primary-border-color: #0a9f6d;
min-height: 100%;
background: #f5f8f7;
}
.mp-product-list .mp-wv-header {
padding-bottom: 10px;
}
.mp-product-list .mp-wv-header .mp-wv-search {
margin-bottom: 0;
}
.mp-product-list .mp-wv-header .mp-product-dd {
margin-top: 4px;
}
.mp-product-loading {
display: flex;
justify-content: center;
padding: 48px 16px;
}
.mp-product-error {
display: flex;
gap: 10px;
align-items: center;
justify-content: space-between;
margin: 0 10px 10px;
padding: 10px 12px;
font-size: 13px;
color: #b91c1c;
background: #fff7f7;
border: 1px solid #fecaca;
border-radius: 10px;
}
.mp-product-tag-row {
display: flex;
flex-wrap: wrap;
gap: 6px;
justify-content: flex-end;
}
/* ── 产品管理按钮:对齐列表卡片 .mp-wv-btn(高 30px)── */
@mixin mp-product-card-btn {
box-sizing: border-box;
height: 30px !important;
min-height: 30px !important;
padding: 0 10px !important;
font-size: 13px !important;
font-weight: 500;
line-height: 1 !important;
border-radius: 8px !important;
&.van-button--round {
border-radius: 8px !important;
}
&.van-button--default {
color: #1f2a26 !important;
background: #fff !important;
border: 1px solid #dcebe4 !important;
}
&.van-button--primary:not(.van-button--plain) {
color: #fff !important;
font-weight: 600;
background: #0a9f6d !important;
border: 1px solid #0a9f6d !important;
}
&.van-button--disabled,
&[disabled] {
opacity: 0.45;
}
}
.mp-product-page .mp-wv-fab-bar {
position: fixed;
right: 0;
bottom: 0;
left: 0;
z-index: 40;
display: flex;
flex-wrap: nowrap;
gap: 8px;
width: 100%;
max-width: min(480px, 100%);
margin: 0 auto;
padding: 10px 12px calc(10px + env(safe-area-inset-bottom, 0px));
background: #fff;
border-top: 1px solid #dcebe4;
box-shadow: 0 -8px 24px rgb(34 64 52 / 12%);
.van-button {
flex: 1 1 0;
min-width: 0;
@include mp-product-card-btn;
}
}
.mp-product-detail-tabs {
position: sticky;
z-index: 40;
display: flex;
margin: 0 0 12px;
overflow-x: auto;
background: #f5f8f7;
border-bottom: 1px solid #dcebe4;
-webkit-overflow-scrolling: touch;
}
.mp-product-detail-tab {
position: relative;
flex: 1 0 auto;
min-width: 96px;
height: 44px;
padding: 0 10px;
font-size: 13px;
font-weight: 600;
color: #6b7b74;
background: transparent;
border: 0;
&.is-active {
color: #087f57;
&::after {
position: absolute;
right: 22%;
bottom: 0;
left: 22%;
height: 2px;
content: '';
background: #0a9f6d;
border-radius: 2px;
}
}
}
.mp-product-detail-body {
padding: 0 10px 88px;
}
.mp-product-anchor + .mp-product-anchor {
margin-top: 0;
}
/* 更多筛选:头/底固定,中间可滚(popup teleport 到 body) */
.mp-customer-vant-popup .mp-customer-filter-vant {
display: flex;
flex-direction: column;
box-sizing: border-box;
height: 100%;
min-height: 0;
background: #f7faf8;
}
.mp-customer-vant-popup .mp-customer-filter-vant > .van-nav-bar {
flex-shrink: 0;
}
.mp-product-filter-vant__body {
flex: 1 1 auto;
min-height: 0;
padding: 8px 0 16px;
overflow: auto;
-webkit-overflow-scrolling: touch;
}
.mp-product-filter-vant__foot {
display: flex;
flex-shrink: 0;
gap: 8px;
padding: 12px 16px calc(12px + env(safe-area-inset-bottom, 0px));
background: #fff;
border-top: 1px solid #e8f0ec;
box-shadow: 0 -8px 24px rgb(34 64 52 / 12%);
.van-button {
flex: 1 1 0;
min-width: 0;
@include mp-product-card-btn;
}
}
.mp-product-form-popup.van-popup,
.mp-customer-vant-popup.van-popup {
display: flex;
flex-direction: column;
overflow: hidden;
}
.mp-product-form-popup,
.mp-customer-vant-popup {
--van-primary-color: #0a9f6d;
--van-button-primary-background: #0a9f6d;
--van-button-primary-border-color: #0a9f6d;
--van-nav-bar-icon-color: #0a9f6d;
--van-nav-bar-text-color: #0a9f6d;
--van-picker-confirm-action-color: #0a9f6d;
}
.mp-product-page .mp-customer-pool-vant,
.mp-product-form-popup .mp-customer-pool-vant {
display: flex;
flex-direction: column;
box-sizing: border-box;
height: 100%;
min-height: 0;
background: #f7faf8;
}
.mp-product-page .mp-customer-pool-vant__body,
.mp-product-form-popup .mp-customer-pool-vant__body {
flex: 1 1 auto;
min-height: 0;
padding: 8px 0 16px;
overflow: auto;
-webkit-overflow-scrolling: touch;
}
.mp-product-form-popup .mp-wv-section {
margin: 0 12px 10px;
}
.mp-product-form-popup .mp-customer-fields-vant {
margin: 0;
overflow: hidden;
background: #fff !important;
border-radius: 12px;
.van-cell {
background: #fff !important;
}
}
.mp-product-page .van-button:not(.mp-wv-speed-main),
.mp-product-form-popup .van-button,
.mp-product-filter-vant .van-button {
@include mp-product-card-btn;
}
/* FAB 圆形主按钮保持圆形 */
.mp-product-page .mp-wv-speed-main.van-button {
width: 52px !important;
height: 52px !important;
min-width: 52px !important;
min-height: 52px !important;
padding: 0 !important;
border-radius: 50% !important;
}
.mp-product-page .mp-customer-pool-vant__foot,
.mp-product-form-popup .mp-customer-pool-vant__foot,
.mp-product-form-popup__foot {
display: flex;
flex-shrink: 0;
gap: 8px;
padding: 10px 12px calc(10px + env(safe-area-inset-bottom, 0px));
background: #fff;
border-top: 1px solid #dcebe4;
box-shadow: 0 -8px 24px rgb(34 64 52 / 12%);
.van-button {
flex: 1 1 0;
min-width: 0;
@include mp-product-card-btn;
}
}
body > .van-dropdown-item {
z-index: 3000 !important;
}
/* ── 确认弹窗:方案 A / B(挂到 body,须用 className 限定)── */
body .van-dialog.mp-product-dialog {
overflow: hidden;
border-radius: 16px;
box-shadow: 0 16px 40px rgb(15 40 30 / 22%);
}
body .van-dialog.mp-product-dialog .van-dialog__header {
padding-top: 20px;
font-size: 16px;
font-weight: 700;
color: #1f2a26;
line-height: 1.4;
}
body .van-dialog.mp-product-dialog .van-dialog__content {
padding: 0;
}
body .van-dialog.mp-product-dialog .van-dialog__message {
padding: 10px 20px 4px;
font-size: 14px;
line-height: 1.55;
color: #6b7b74;
text-align: center;
}
body .van-dialog.mp-product-dialog .mp-product-dialog__warn {
display: flex;
justify-content: center;
margin: 4px 0 10px;
}
body .van-dialog.mp-product-dialog .mp-product-dialog__warn-icon {
display: flex;
align-items: center;
justify-content: center;
width: 44px;
height: 44px;
font-size: 22px;
font-weight: 700;
color: #dc2626;
background: #fef2f2;
border-radius: 50%;
}
body .van-dialog.mp-product-dialog .mp-product-dialog__msg {
color: #6b7b74;
text-align: center;
}
body .van-dialog.mp-product-dialog .van-dialog__footer {
display: flex;
gap: 10px;
padding: 16px;
border-top: none !important;
}
body .van-dialog.mp-product-dialog .van-dialog__footer::after,
body .van-dialog.mp-product-dialog .van-hairline--left::after,
body .van-dialog.mp-product-dialog .van-hairline--top::after {
display: none !important;
}
body .van-dialog.mp-product-dialog .van-dialog__cancel,
body .van-dialog.mp-product-dialog .van-dialog__confirm {
flex: 1;
height: 40px !important;
min-height: 40px !important;
margin: 0 !important;
padding: 0 10px !important;
font-size: 14px !important;
font-weight: 600 !important;
line-height: 40px !important;
border-radius: 10px !important;
border: 1px solid #dcebe4 !important;
}
body .van-dialog.mp-product-dialog .van-dialog__cancel {
color: #1f2a26 !important;
background: #fff !important;
}
body .van-dialog.mp-product-dialog .van-dialog__confirm {
color: #fff !important;
background: #0a9f6d !important;
border-color: #0a9f6d !important;
}
body .van-dialog.mp-product-dialog.mp-product-dialog--danger .van-dialog__confirm {
background: #dc2626 !important;
border-color: #dc2626 !important;
}
body .van-dialog.mp-product-dialog.mp-product-dialog--danger .van-dialog__header {
padding-top: 12px;
}