|
|
@@ -614,6 +614,15 @@
|
|
|
border-radius: 10px;
|
|
|
color: var(--ion-color-primary);
|
|
|
font-size: 20px;
|
|
|
+
|
|
|
+ // 🔥 Emoji图标样式
|
|
|
+ .emoji-icon {
|
|
|
+ font-size: 24px; // 🔥 Emoji稍大一点
|
|
|
+ line-height: 1;
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ justify-content: center;
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
.product-details {
|
|
|
@@ -675,21 +684,39 @@
|
|
|
color: var(--ion-color-medium);
|
|
|
cursor: pointer;
|
|
|
transition: all 0.2s;
|
|
|
+ display: flex; // 🔥 添加flex布局
|
|
|
+ align-items: center; // 🔥 垂直居中
|
|
|
+ justify-content: center; // 🔥 水平居中
|
|
|
|
|
|
&:hover {
|
|
|
background: var(--ion-color-light-shade);
|
|
|
color: var(--ion-color-dark);
|
|
|
+ transform: scale(1.1); // 🔥 hover时轻微放大
|
|
|
}
|
|
|
|
|
|
&.danger:hover {
|
|
|
background: var(--ion-color-danger-tint);
|
|
|
color: var(--ion-color-danger);
|
|
|
}
|
|
|
+
|
|
|
+ &:active {
|
|
|
+ transform: scale(0.95); // 🔥 点击时缩小
|
|
|
+ }
|
|
|
|
|
|
.icon {
|
|
|
width: 16px;
|
|
|
height: 16px;
|
|
|
}
|
|
|
+
|
|
|
+ // 🔥 Emoji图标样式
|
|
|
+ .emoji-icon {
|
|
|
+ font-size: 18px; // 🔥 Emoji大小
|
|
|
+ line-height: 1;
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ justify-content: center;
|
|
|
+ filter: grayscale(0); // 🔥 确保颜色正常显示
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
.product-toggle {
|
|
|
@@ -1283,25 +1310,38 @@
|
|
|
.product-content .process-grid {
|
|
|
grid-template-columns: 1fr;
|
|
|
}
|
|
|
+
|
|
|
+ // 🔥 小屏幕下优化输入框样式
|
|
|
+ .allocation-input-section {
|
|
|
+ .input-with-currency {
|
|
|
+ .currency-symbol {
|
|
|
+ left: 12px; // 🔥 减小左边距
|
|
|
+ font-size: 14px; // 🔥 减小字体
|
|
|
+ }
|
|
|
+
|
|
|
+ .amount-input {
|
|
|
+ padding: 12px 12px 12px 36px; // 🔥 调整padding适配小屏幕
|
|
|
+ font-size: 16px; // 🔥 减小字体从18px到16px
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
|
|
|
// ============ 模态框样式 ============
|
|
|
|
|
|
.modal-overlay {
|
|
|
- position: fixed;
|
|
|
- top: 0;
|
|
|
- left: 0;
|
|
|
- right: 0;
|
|
|
- bottom: 0;
|
|
|
- background: rgba(0, 0, 0, 0.6);
|
|
|
- backdrop-filter: blur(4px);
|
|
|
- display: flex;
|
|
|
- align-items: center;
|
|
|
- justify-content: center;
|
|
|
- z-index: 10000;
|
|
|
- padding: 20px;
|
|
|
- animation: fadeIn 0.2s ease-out;
|
|
|
+ position: fixed !important; // 🔥 确保生效
|
|
|
+ top: 0 !important; // 🔥 确保生效
|
|
|
+ left: 0 !important; // 🔥 确保生效
|
|
|
+ right: 0 !important; // 🔥 确保生效
|
|
|
+ bottom: 0 !important; // 🔥 确保生效
|
|
|
+ background: rgba(0, 0, 0, 0.5) !important; // 🔥 确保生效
|
|
|
+ display: flex !important; // 🔥 确保生效
|
|
|
+ align-items: center !important; // 🔥 确保生效
|
|
|
+ justify-content: center !important; // 🔥 确保生效
|
|
|
+ z-index: 1000 !important; // 🔥 设置为1000,低于设计师分配弹窗(1050),确保不会覆盖
|
|
|
+ animation: fadeIn 0.3s ease-out;
|
|
|
}
|
|
|
|
|
|
@keyframes fadeIn {
|
|
|
@@ -1313,15 +1353,18 @@
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-.modal-container {
|
|
|
- background: white;
|
|
|
- border-radius: 16px;
|
|
|
- box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);
|
|
|
- max-width: 600px;
|
|
|
- width: 100%;
|
|
|
- max-height: 90vh;
|
|
|
- display: flex;
|
|
|
- flex-direction: column;
|
|
|
+.modal-container,
|
|
|
+.add-product-modal { // 🔥 额外添加这个类选择器
|
|
|
+ background: white !important; // 🔥 确保生效
|
|
|
+ border-radius: 16px !important; // 🔥 确保生效
|
|
|
+ box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3) !important; // 🔥 确保生效
|
|
|
+ max-width: 600px !important; // 🔥 确保生效
|
|
|
+ width: 100% !important; // 🔥 确保生效
|
|
|
+ max-height: 95vh !important; // 🔥 增加到95vh,提供更多空间
|
|
|
+ height: auto !important; // 🔥 允许自动高度
|
|
|
+ display: flex !important; // 🔥 确保生效
|
|
|
+ flex-direction: column !important; // 🔥 确保生效
|
|
|
+ overflow: hidden !important; // 🔥 防止外部滚动
|
|
|
animation: slideUp 0.3s ease-out;
|
|
|
}
|
|
|
|
|
|
@@ -1342,6 +1385,7 @@
|
|
|
justify-content: space-between;
|
|
|
padding: 20px 24px;
|
|
|
border-bottom: 1px solid #e5e7eb;
|
|
|
+ flex-shrink: 0; // 🔥 防止header被压缩
|
|
|
|
|
|
h3 {
|
|
|
margin: 0;
|
|
|
@@ -1380,9 +1424,10 @@
|
|
|
}
|
|
|
|
|
|
.modal-body {
|
|
|
- flex: 1;
|
|
|
- overflow-y: auto;
|
|
|
- padding: 24px;
|
|
|
+ flex: 1 1 auto !important; // 🔥 允许增长和缩小
|
|
|
+ overflow-y: auto !important; // 🔥 确保生效
|
|
|
+ padding: 24px !important; // 🔥 恢复底部padding,确保内容可以完全滚动显示
|
|
|
+ min-height: 0; // 🔥 允许flex容器正确缩小
|
|
|
|
|
|
&::-webkit-scrollbar {
|
|
|
width: 8px;
|
|
|
@@ -1410,6 +1455,10 @@
|
|
|
gap: 12px;
|
|
|
padding: 16px 24px;
|
|
|
border-top: 1px solid #e5e7eb;
|
|
|
+ flex-shrink: 0 !important; // 🔥 关键!防止footer被压缩
|
|
|
+ background: white !important; // 🔥 确保背景不透明
|
|
|
+ z-index: 10; // 🔥 确保在最上层
|
|
|
+ position: relative; // 🔥 为z-index生效
|
|
|
|
|
|
button {
|
|
|
padding: 10px 20px;
|
|
|
@@ -1465,19 +1514,19 @@
|
|
|
|
|
|
.form-input,
|
|
|
.form-select {
|
|
|
- width: 100%;
|
|
|
- padding: 10px 14px;
|
|
|
- border: 1.5px solid #e5e7eb;
|
|
|
- border-radius: 8px;
|
|
|
+ width: 100% !important; // 🔥 确保生效
|
|
|
+ padding: 10px 14px !important; // 🔥 确保生效
|
|
|
+ border: 1.5px solid #e5e7eb !important; // 🔥 确保生效
|
|
|
+ border-radius: 8px !important; // 🔥 确保生效
|
|
|
font-size: 14px;
|
|
|
color: #111827;
|
|
|
transition: all 0.2s ease;
|
|
|
outline: none;
|
|
|
- background: white;
|
|
|
+ background: white !important; // 🔥 确保生效
|
|
|
|
|
|
&:focus {
|
|
|
- border-color: #667eea;
|
|
|
- box-shadow: 0 0 0 3px rgba(102, 126, 234, 0.1);
|
|
|
+ border-color: #667eea !important; // 🔥 确保生效
|
|
|
+ box-shadow: 0 0 0 3px rgba(102, 126, 234, 0.1) !important; // 🔥 确保生效
|
|
|
}
|
|
|
|
|
|
&::placeholder {
|
|
|
@@ -1526,24 +1575,24 @@
|
|
|
}
|
|
|
|
|
|
.radio-group {
|
|
|
- display: flex;
|
|
|
+ display: flex !important; // 🔥 确保生效
|
|
|
gap: 12px;
|
|
|
flex-wrap: wrap;
|
|
|
|
|
|
.radio-label {
|
|
|
- display: flex;
|
|
|
+ display: flex !important; // 🔥 确保生效
|
|
|
align-items: center;
|
|
|
gap: 8px;
|
|
|
- padding: 10px 16px;
|
|
|
- border: 1.5px solid #e5e7eb;
|
|
|
- border-radius: 8px;
|
|
|
+ padding: 10px 16px !important; // 🔥 确保生效
|
|
|
+ border: 1.5px solid #e5e7eb !important; // 🔥 确保生效
|
|
|
+ border-radius: 8px !important; // 🔥 确保生效
|
|
|
cursor: pointer;
|
|
|
transition: all 0.2s ease;
|
|
|
- background: white;
|
|
|
+ background: white !important; // 🔥 确保生效
|
|
|
|
|
|
&:hover {
|
|
|
- border-color: #667eea;
|
|
|
- background: #f5f7ff;
|
|
|
+ border-color: #667eea !important; // 🔥 确保生效
|
|
|
+ background: #f5f7ff !important; // 🔥 确保生效
|
|
|
}
|
|
|
|
|
|
input[type="radio"] {
|
|
|
@@ -1558,8 +1607,8 @@
|
|
|
}
|
|
|
|
|
|
&:has(input:checked) {
|
|
|
- border-color: #667eea;
|
|
|
- background: linear-gradient(135deg, rgba(102, 126, 234, 0.1) 0%, rgba(118, 75, 162, 0.1) 100%);
|
|
|
+ border-color: #667eea !important; // 🔥 确保生效
|
|
|
+ background: linear-gradient(135deg, rgba(102, 126, 234, 0.1) 0%, rgba(118, 75, 162, 0.1) 100%) !important; // 🔥 确保生效
|
|
|
font-weight: 500;
|
|
|
}
|
|
|
}
|
|
|
@@ -1569,28 +1618,28 @@
|
|
|
// ============ 场景选择网格 ============
|
|
|
|
|
|
.scene-grid {
|
|
|
- display: grid;
|
|
|
- grid-template-columns: repeat(auto-fill, minmax(100px, 1fr));
|
|
|
+ display: grid !important; // 🔥 确保生效
|
|
|
+ grid-template-columns: repeat(auto-fill, minmax(100px, 1fr)) !important; // 🔥 确保生效
|
|
|
gap: 12px;
|
|
|
|
|
|
.scene-card {
|
|
|
- padding: 16px 12px;
|
|
|
- border: 1.5px solid #e5e7eb;
|
|
|
- border-radius: 10px;
|
|
|
- background: white;
|
|
|
+ padding: 16px 12px !important; // 🔥 确保生效
|
|
|
+ border: 1.5px solid #e5e7eb !important; // 🔥 确保生效
|
|
|
+ border-radius: 10px !important; // 🔥 确保生效
|
|
|
+ background: white !important; // 🔥 确保生效
|
|
|
cursor: pointer;
|
|
|
transition: all 0.2s ease;
|
|
|
text-align: center;
|
|
|
- display: flex;
|
|
|
+ display: flex !important; // 🔥 确保生效
|
|
|
flex-direction: column;
|
|
|
align-items: center;
|
|
|
justify-content: center;
|
|
|
gap: 8px;
|
|
|
- position: relative; // ⭐ 为选中标记定位
|
|
|
+ position: relative; // ⏭️ 为选中标记定位
|
|
|
|
|
|
&:hover {
|
|
|
- border-color: #667eea;
|
|
|
- background: #f5f7ff;
|
|
|
+ border-color: #667eea !important; // 🔥 确保生效
|
|
|
+ background: #f5f7ff !important; // 🔥 确保生效
|
|
|
transform: translateY(-2px);
|
|
|
box-shadow: 0 4px 12px rgba(102, 126, 234, 0.15);
|
|
|
}
|
|
|
@@ -1600,8 +1649,8 @@
|
|
|
}
|
|
|
|
|
|
&.selected {
|
|
|
- border-color: #667eea;
|
|
|
- background: linear-gradient(135deg, rgba(102, 126, 234, 0.15) 0%, rgba(118, 75, 162, 0.15) 100%);
|
|
|
+ border-color: #667eea !important; // 🔥 确保生效
|
|
|
+ background: linear-gradient(135deg, rgba(102, 126, 234, 0.15) 0%, rgba(118, 75, 162, 0.15) 100%) !important; // 🔥 确保生效
|
|
|
box-shadow: 0 4px 12px rgba(102, 126, 234, 0.2);
|
|
|
|
|
|
.scene-name {
|
|
|
@@ -2008,11 +2057,13 @@
|
|
|
color: #94a3b8;
|
|
|
pointer-events: none;
|
|
|
z-index: 1;
|
|
|
+ min-width: 20px; // 🔥 确保符号有固定宽度
|
|
|
+ flex-shrink: 0; // 🔥 防止缩小
|
|
|
}
|
|
|
|
|
|
.amount-input {
|
|
|
width: 100%;
|
|
|
- padding: 14px 16px 14px 40px;
|
|
|
+ padding: 14px 16px 14px 44px; // 🔥 增加左边距从40px到44px
|
|
|
border: 2px solid #e2e8f0;
|
|
|
border-radius: 12px;
|
|
|
font-size: 18px;
|
|
|
@@ -2022,6 +2073,7 @@
|
|
|
outline: none;
|
|
|
background: white;
|
|
|
font-variant-numeric: tabular-nums;
|
|
|
+ min-width: 0; // 🔥 允许在flex容器中收缩
|
|
|
|
|
|
&:hover {
|
|
|
border-color: #cbd5e1;
|
|
|
@@ -2297,6 +2349,9 @@
|
|
|
transform: translateY(-50%);
|
|
|
width: 18px;
|
|
|
height: 18px;
|
|
|
+ min-width: 18px; // 🔥 防止被挤压
|
|
|
+ min-height: 18px; // 🔥 防止被挤压
|
|
|
+ flex-shrink: 0; // 🔥 防止缩小
|
|
|
color: #94a3b8;
|
|
|
pointer-events: none;
|
|
|
}
|
|
|
@@ -2308,6 +2363,7 @@
|
|
|
border-radius: 12px;
|
|
|
font-size: 14px;
|
|
|
transition: all 0.2s ease;
|
|
|
+ min-width: 0; // 🔥 允许缩小但不会超出容器
|
|
|
|
|
|
&:focus {
|
|
|
outline: none;
|
|
|
@@ -2560,6 +2616,8 @@
|
|
|
.btn-remove-small {
|
|
|
width: 28px;
|
|
|
height: 28px;
|
|
|
+ min-width: 28px; // 🔥 防止被挤压
|
|
|
+ min-height: 28px; // 🔥 防止被挤压
|
|
|
border-radius: 6px;
|
|
|
border: none;
|
|
|
background: #fee2e2;
|
|
|
@@ -2569,14 +2627,17 @@
|
|
|
display: flex;
|
|
|
align-items: center;
|
|
|
justify-content: center;
|
|
|
+ font-size: 16px; // 🔥 emoji字体大小
|
|
|
+ line-height: 1;
|
|
|
+ flex-shrink: 0; // 🔥 防止缩小
|
|
|
|
|
|
&:hover {
|
|
|
background: #fecaca;
|
|
|
+ transform: scale(1.05); // 🔥 hover时轻微放大
|
|
|
}
|
|
|
|
|
|
- svg {
|
|
|
- width: 14px;
|
|
|
- height: 14px;
|
|
|
+ &:active {
|
|
|
+ transform: scale(0.95); // 🔥 点击时轻微缩小
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
@@ -2611,13 +2672,22 @@
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+// ============ 中等屏幕优化 (平板) ============
|
|
|
+@media (min-width: 769px) and (max-width: 1024px) {
|
|
|
+ .modal-container,
|
|
|
+ .add-product-modal {
|
|
|
+ max-width: 90vw !important; // 🔥 平板上午90%宽度
|
|
|
+ max-height: 92vh !important; // 🔥 略微减小高度
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
// ============ 移动端适配(模态框) ============
|
|
|
|
|
|
@media (max-width: 768px) {
|
|
|
.modal-container {
|
|
|
max-width: none;
|
|
|
width: 100%;
|
|
|
- max-height: 95vh;
|
|
|
+ max-height: 98vh; // 🔥 移动端增加到98vh,留出状态栏空间
|
|
|
margin: 0;
|
|
|
border-radius: 16px 16px 0 0;
|
|
|
}
|
|
|
@@ -2631,15 +2701,41 @@
|
|
|
}
|
|
|
|
|
|
.modal-body {
|
|
|
- padding: 20px;
|
|
|
+ padding: 20px !important; // 🔥 保持四周padding一致
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
.modal-footer {
|
|
|
padding: 12px 20px;
|
|
|
+ flex-shrink: 0 !important; // 🔥 确保不被压缩
|
|
|
+ background: white !important; // 🔥 确保背景可见
|
|
|
+ z-index: 10; // 🔥 确保在最上层
|
|
|
+ position: relative;
|
|
|
|
|
|
button {
|
|
|
flex: 1;
|
|
|
padding: 12px;
|
|
|
+ min-height: 44px; // 🔥 移动端按钮最小高度,易于点击
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 🔥 小屏幕下emoji图标优化
|
|
|
+ .product-card {
|
|
|
+ .product-icon {
|
|
|
+ width: 36px;
|
|
|
+ height: 36px;
|
|
|
+
|
|
|
+ .emoji-icon {
|
|
|
+ font-size: 20px; // 🔥 小屏幕下稍微减小
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ .btn-icon {
|
|
|
+ width: 28px;
|
|
|
+ height: 28px;
|
|
|
+
|
|
|
+ .emoji-icon {
|
|
|
+ font-size: 16px; // 🔥 小屏幕下稍微减小
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@@ -2676,3 +2772,76 @@
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+// ============ 超小屏幕优化 (手机竖屏) ============
|
|
|
+@media (max-width: 480px) {
|
|
|
+ // 🔥 超小屏幕下模态框优化
|
|
|
+ .modal-container,
|
|
|
+ .add-product-modal {
|
|
|
+ max-height: 99vh !important; // 🔥 超小屏幕几乎全屏
|
|
|
+ border-radius: 12px 12px 0 0;
|
|
|
+ }
|
|
|
+
|
|
|
+ .modal-body {
|
|
|
+ padding: 16px !important; // 🔥 减小padding节省空间
|
|
|
+ }
|
|
|
+
|
|
|
+ .modal-footer {
|
|
|
+ padding: 10px 16px;
|
|
|
+ flex-shrink: 0 !important;
|
|
|
+ background: white !important;
|
|
|
+ z-index: 10;
|
|
|
+
|
|
|
+ button {
|
|
|
+ padding: 10px 16px;
|
|
|
+ font-size: 13px;
|
|
|
+ min-height: 42px; // 🔥 超小屏幕按钮高度
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 🔥 超小屏幕下emoji图标进一步优化
|
|
|
+ .product-card {
|
|
|
+ .product-icon {
|
|
|
+ width: 32px;
|
|
|
+ height: 32px;
|
|
|
+
|
|
|
+ .emoji-icon {
|
|
|
+ font-size: 18px; // 🔥 超小屏幕下再减小
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ .btn-icon {
|
|
|
+ width: 26px;
|
|
|
+ height: 26px;
|
|
|
+
|
|
|
+ .emoji-icon {
|
|
|
+ font-size: 14px; // 🔥 超小屏幕下再减小
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ .product-name {
|
|
|
+ font-size: 16px !important; // 🔥 产品名称也适当减小
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ .allocation-input-section {
|
|
|
+ padding-left: 20px !important; // 🔥 减小左边距节省空间
|
|
|
+
|
|
|
+ .input-with-currency {
|
|
|
+ .currency-symbol {
|
|
|
+ left: 10px; // 🔥 进一步减小左边距
|
|
|
+ font-size: 14px;
|
|
|
+ }
|
|
|
+
|
|
|
+ .amount-input {
|
|
|
+ padding: 10px 10px 10px 32px; // 🔥 进一步优化padding
|
|
|
+ font-size: 15px; // 🔥 再减小字体
|
|
|
+ border-radius: 10px; // 🔥 稍微减小圆角
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ .allocation-hint {
|
|
|
+ font-size: 11px; // 🔥 减小提示文字
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|