DREW | 5b1883e | 2025-06-07 10:41:32 +0800 | [diff] [blame^] | 1 | /* Administer.css */ |
| 2 | |
22301080 | a93bebb | 2025-05-27 19:48:11 +0800 | [diff] [blame] | 3 | .administer-container { |
22301080 | a93bebb | 2025-05-27 19:48:11 +0800 | [diff] [blame] | 4 | max-width: 1200px; |
| 5 | margin: 0 auto; |
DREW | 5b1883e | 2025-06-07 10:41:32 +0800 | [diff] [blame^] | 6 | padding: 20px; |
| 7 | font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; |
| 8 | color: #333; |
22301080 | a93bebb | 2025-05-27 19:48:11 +0800 | [diff] [blame] | 9 | } |
| 10 | |
DREW | 5b1883e | 2025-06-07 10:41:32 +0800 | [diff] [blame^] | 11 | .administer-container h1 { |
| 12 | text-align: center; |
| 13 | color: #2c3e50; |
| 14 | margin-bottom: 30px; |
| 15 | font-size: 28px; |
| 16 | font-weight: 600; |
22301080 | a93bebb | 2025-05-27 19:48:11 +0800 | [diff] [blame] | 17 | } |
| 18 | |
| 19 | /* 选项卡样式 */ |
| 20 | .tab-container { |
| 21 | display: flex; |
| 22 | margin-bottom: 20px; |
| 23 | border-bottom: 1px solid #ddd; |
| 24 | } |
| 25 | |
| 26 | .tab-button { |
| 27 | padding: 10px 20px; |
| 28 | background: none; |
| 29 | border: none; |
| 30 | cursor: pointer; |
| 31 | font-size: 16px; |
DREW | 5b1883e | 2025-06-07 10:41:32 +0800 | [diff] [blame^] | 32 | color: #555; |
| 33 | transition: all 0.3s ease; |
22301080 | a93bebb | 2025-05-27 19:48:11 +0800 | [diff] [blame] | 34 | border-bottom: 3px solid transparent; |
DREW | 5b1883e | 2025-06-07 10:41:32 +0800 | [diff] [blame^] | 35 | margin-right: 5px; |
| 36 | } |
| 37 | |
| 38 | .tab-button:hover { |
| 39 | color: #3498db; |
22301080 | a93bebb | 2025-05-27 19:48:11 +0800 | [diff] [blame] | 40 | } |
| 41 | |
| 42 | .tab-button.active { |
DREW | 5b1883e | 2025-06-07 10:41:32 +0800 | [diff] [blame^] | 43 | color: #3498db; |
| 44 | border-bottom: 3px solid #3498db; |
| 45 | font-weight: 600; |
22301080 | a93bebb | 2025-05-27 19:48:11 +0800 | [diff] [blame] | 46 | } |
| 47 | |
DREW | 5b1883e | 2025-06-07 10:41:32 +0800 | [diff] [blame^] | 48 | /* 搜索区域 */ |
| 49 | .search-container { |
| 50 | display: flex; |
22301080 | a93bebb | 2025-05-27 19:48:11 +0800 | [diff] [blame] | 51 | margin-bottom: 20px; |
DREW | 5b1883e | 2025-06-07 10:41:32 +0800 | [diff] [blame^] | 52 | gap: 10px; |
22301080 | a93bebb | 2025-05-27 19:48:11 +0800 | [diff] [blame] | 53 | } |
| 54 | |
DREW | 5b1883e | 2025-06-07 10:41:32 +0800 | [diff] [blame^] | 55 | .search-input { |
| 56 | flex: 1; |
| 57 | padding: 10px 15px; |
| 58 | border: 1px solid #ddd; |
| 59 | border-radius: 4px; |
| 60 | font-size: 14px; |
| 61 | transition: border 0.3s; |
| 62 | } |
| 63 | |
| 64 | .search-input:focus { |
| 65 | outline: none; |
| 66 | border-color: #3498db; |
| 67 | } |
| 68 | |
| 69 | .search-button, .reset-button { |
| 70 | padding: 10px 20px; |
| 71 | border: none; |
| 72 | border-radius: 4px; |
| 73 | cursor: pointer; |
| 74 | font-size: 14px; |
| 75 | transition: background-color 0.3s; |
| 76 | } |
| 77 | |
| 78 | .search-button { |
| 79 | background-color: #3498db; |
| 80 | color: white; |
| 81 | } |
| 82 | |
| 83 | .search-button:hover { |
| 84 | background-color: #2980b9; |
| 85 | } |
| 86 | |
| 87 | .reset-button { |
| 88 | background-color: #f1f1f1; |
| 89 | color: #333; |
| 90 | } |
| 91 | |
| 92 | .reset-button:hover { |
| 93 | background-color: #ddd; |
| 94 | } |
| 95 | |
| 96 | /* 表格样式 */ |
| 97 | .user-table, .discount-table, .announcement-table { |
| 98 | width: 100%; |
| 99 | border-collapse: collapse; |
| 100 | margin-top: 20px; |
| 101 | box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1); |
| 102 | } |
| 103 | |
| 104 | .user-table th, |
| 105 | .discount-table th, |
| 106 | .announcement-table th { |
| 107 | background-color: #3498db; |
| 108 | color: white; |
| 109 | padding: 12px 15px; |
| 110 | text-align: left; |
| 111 | } |
| 112 | |
| 113 | .user-table td, |
| 114 | .discount-table td, |
| 115 | .announcement-table td { |
| 116 | padding: 12px 15px; |
| 117 | border-bottom: 1px solid #ddd; |
| 118 | } |
| 119 | |
| 120 | .user-table tr:nth-child(even), |
| 121 | .discount-table tr:nth-child(even), |
| 122 | .announcement-table tr:nth-child(even) { |
22301080 | a93bebb | 2025-05-27 19:48:11 +0800 | [diff] [blame] | 123 | background-color: #f9f9f9; |
DREW | 5b1883e | 2025-06-07 10:41:32 +0800 | [diff] [blame^] | 124 | } |
| 125 | |
| 126 | .user-table tr:hover, |
| 127 | .discount-table tr:hover, |
| 128 | .announcement-table tr:hover { |
| 129 | background-color: #f1f1f1; |
| 130 | } |
| 131 | |
| 132 | /* 权限选择框 */ |
| 133 | .authority-select { |
| 134 | padding: 8px 12px; |
| 135 | border: 1px solid #ddd; |
| 136 | border-radius: 4px; |
| 137 | background-color: white; |
| 138 | cursor: pointer; |
| 139 | } |
| 140 | |
| 141 | .authority-select:focus { |
| 142 | outline: none; |
| 143 | border-color: #3498db; |
| 144 | } |
| 145 | |
| 146 | /* 错误消息 */ |
| 147 | .error-message { |
| 148 | color: #e74c3c; |
| 149 | background-color: #fadbd8; |
| 150 | padding: 10px 15px; |
| 151 | border-radius: 4px; |
| 152 | margin-bottom: 15px; |
| 153 | border-left: 4px solid #e74c3c; |
| 154 | } |
| 155 | |
| 156 | /* 加载状态 */ |
| 157 | .loading-message { |
| 158 | color: #3498db; |
| 159 | text-align: center; |
| 160 | padding: 15px; |
| 161 | font-style: italic; |
| 162 | } |
| 163 | |
| 164 | /* 折扣卡片 */ |
| 165 | .current-discount-section { |
| 166 | margin-bottom: 30px; |
22301080 | a93bebb | 2025-05-27 19:48:11 +0800 | [diff] [blame] | 167 | padding: 20px; |
DREW | 5b1883e | 2025-06-07 10:41:32 +0800 | [diff] [blame^] | 168 | background-color: #f8f9fa; |
| 169 | border-radius: 8px; |
| 170 | box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05); |
| 171 | } |
| 172 | |
| 173 | .current-discount-section h3 { |
| 174 | margin-top: 0; |
| 175 | color: #2c3e50; |
| 176 | border-bottom: 1px solid #eee; |
| 177 | padding-bottom: 10px; |
| 178 | } |
| 179 | |
| 180 | .current-discount-card { |
| 181 | background-color: white; |
| 182 | padding: 15px; |
| 183 | border-radius: 6px; |
| 184 | box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1); |
| 185 | margin-top: 15px; |
| 186 | } |
| 187 | |
| 188 | .current-discount-card p { |
| 189 | margin: 8px 0; |
| 190 | } |
| 191 | |
| 192 | .current-discount-card strong { |
| 193 | color: #2c3e50; |
| 194 | margin-right: 10px; |
| 195 | } |
| 196 | |
| 197 | /* 表单样式 */ |
| 198 | .add-discount-form, .announcement-form { |
| 199 | background-color: #f8f9fa; |
| 200 | padding: 20px; |
| 201 | border-radius: 8px; |
| 202 | margin-bottom: 30px; |
| 203 | box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05); |
| 204 | } |
| 205 | |
| 206 | .add-discount-form h3, .announcement-form h3 { |
| 207 | margin-top: 0; |
| 208 | color: #2c3e50; |
| 209 | border-bottom: 1px solid #eee; |
| 210 | padding-bottom: 10px; |
22301080 | a93bebb | 2025-05-27 19:48:11 +0800 | [diff] [blame] | 211 | } |
| 212 | |
| 213 | .form-group { |
| 214 | margin-bottom: 15px; |
| 215 | } |
| 216 | |
| 217 | .form-group label { |
DREW | 5b1883e | 2025-06-07 10:41:32 +0800 | [diff] [blame^] | 218 | display: block; |
| 219 | margin-bottom: 8px; |
| 220 | font-weight: 500; |
| 221 | color: #2c3e50; |
22301080 | a93bebb | 2025-05-27 19:48:11 +0800 | [diff] [blame] | 222 | } |
| 223 | |
DREW | 5b1883e | 2025-06-07 10:41:32 +0800 | [diff] [blame^] | 224 | .form-group input[type="text"], |
| 225 | .form-group textarea, |
| 226 | .form-group select { |
22301080 | a93bebb | 2025-05-27 19:48:11 +0800 | [diff] [blame] | 227 | width: 100%; |
DREW | 5b1883e | 2025-06-07 10:41:32 +0800 | [diff] [blame^] | 228 | padding: 10px 15px; |
22301080 | a93bebb | 2025-05-27 19:48:11 +0800 | [diff] [blame] | 229 | border: 1px solid #ddd; |
DREW | 5b1883e | 2025-06-07 10:41:32 +0800 | [diff] [blame^] | 230 | border-radius: 4px; |
| 231 | font-size: 14px; |
| 232 | transition: border 0.3s; |
22301080 | a93bebb | 2025-05-27 19:48:11 +0800 | [diff] [blame] | 233 | } |
| 234 | |
DREW | 5b1883e | 2025-06-07 10:41:32 +0800 | [diff] [blame^] | 235 | .form-group textarea { |
| 236 | min-height: 100px; |
| 237 | resize: vertical; |
22301080 | a93bebb | 2025-05-27 19:48:11 +0800 | [diff] [blame] | 238 | } |
| 239 | |
DREW | 5b1883e | 2025-06-07 10:41:32 +0800 | [diff] [blame^] | 240 | .form-group input[type="text"]:focus, |
| 241 | .form-group textarea:focus, |
| 242 | .form-group select:focus { |
| 243 | outline: none; |
| 244 | border-color: #3498db; |
22301080 | a93bebb | 2025-05-27 19:48:11 +0800 | [diff] [blame] | 245 | } |
| 246 | |
DREW | 5b1883e | 2025-06-07 10:41:32 +0800 | [diff] [blame^] | 247 | /* 日期选择器样式 */ |
| 248 | .react-datepicker-wrapper { |
| 249 | width: 100%; |
22301080 | a93bebb | 2025-05-27 19:48:11 +0800 | [diff] [blame] | 250 | } |
| 251 | |
DREW | 5b1883e | 2025-06-07 10:41:32 +0800 | [diff] [blame^] | 252 | .react-datepicker__input-container input { |
| 253 | width: 100%; |
| 254 | padding: 10px 15px; |
| 255 | border: 1px solid #ddd; |
| 256 | border-radius: 4px; |
22301080 | a93bebb | 2025-05-27 19:48:11 +0800 | [diff] [blame] | 257 | font-size: 14px; |
| 258 | } |
| 259 | |
DREW | 5b1883e | 2025-06-07 10:41:32 +0800 | [diff] [blame^] | 260 | /* 按钮样式 */ |
| 261 | button { |
| 262 | padding: 10px 20px; |
| 263 | background-color: #3498db; |
| 264 | color: white; |
| 265 | border: none; |
22301080 | a93bebb | 2025-05-27 19:48:11 +0800 | [diff] [blame] | 266 | border-radius: 4px; |
DREW | 5b1883e | 2025-06-07 10:41:32 +0800 | [diff] [blame^] | 267 | cursor: pointer; |
| 268 | font-size: 14px; |
| 269 | transition: background-color 0.3s; |
DREW | ae420b2 | 2025-06-02 14:07:20 +0800 | [diff] [blame] | 270 | } |
| 271 | |
DREW | 5b1883e | 2025-06-07 10:41:32 +0800 | [diff] [blame^] | 272 | button:hover { |
| 273 | background-color: #2980b9; |
DREW | ae420b2 | 2025-06-02 14:07:20 +0800 | [diff] [blame] | 274 | } |
| 275 | |
DREW | 5b1883e | 2025-06-07 10:41:32 +0800 | [diff] [blame^] | 276 | .delete-button { |
| 277 | background-color: #e74c3c; |
DREW | ae420b2 | 2025-06-02 14:07:20 +0800 | [diff] [blame] | 278 | } |
| 279 | |
DREW | 5b1883e | 2025-06-07 10:41:32 +0800 | [diff] [blame^] | 280 | .delete-button:hover { |
| 281 | background-color: #c0392b; |
DREW | ae420b2 | 2025-06-02 14:07:20 +0800 | [diff] [blame] | 282 | } |
| 283 | |
DREW | 5b1883e | 2025-06-07 10:41:32 +0800 | [diff] [blame^] | 284 | /* 响应式调整 */ |
| 285 | @media (max-width: 768px) { |
| 286 | .administer-container { |
| 287 | padding: 15px; |
| 288 | } |
| 289 | |
| 290 | .tab-container { |
| 291 | flex-wrap: wrap; |
| 292 | } |
| 293 | |
| 294 | .tab-button { |
| 295 | padding: 8px 15px; |
| 296 | font-size: 14px; |
| 297 | } |
| 298 | |
| 299 | .user-table, .discount-table, .announcement-table { |
| 300 | display: block; |
| 301 | overflow-x: auto; |
| 302 | } |
| 303 | |
| 304 | .search-container { |
| 305 | flex-direction: column; |
| 306 | } |
| 307 | |
| 308 | .search-button, .reset-button { |
| 309 | width: 100%; |
| 310 | } |
22301080 | a93bebb | 2025-05-27 19:48:11 +0800 | [diff] [blame] | 311 | } |