0 ? '' : 'px-2 pt-2'}>
+
0 ? 'grid gap-4' : 'flex flex-wrap gap-4'} style={gridCols > 0 ? { gridTemplateColumns: `repeat(${gridCols}, 1fr)` } : undefined}>
{paginatedModels.map((model, index) => {
const modelKey = getModelKey(model);
const isSelected = selectedRowKeys.includes(modelKey);
@@ -884,7 +885,7 @@ const PricingCardView = ({
return (
0 ? '!w-full' : 'flex-1 min-w-[350px] max-w-[600px]'} !rounded-2xl transition-all duration-200 hover:shadow-lg border ${blurPricing ? '' : 'cursor-pointer'} ${isSelected ? CARD_STYLES.selected : CARD_STYLES.default}`}
bodyStyle={{ height: '100%' }}
onClick={() =>
!blurPricing && openModelDetail && openModelDetail(model)
diff --git a/web/src/index.css b/web/src/index.css
index 7b07468..ad6a070 100644
--- a/web/src/index.css
+++ b/web/src/index.css
@@ -1432,6 +1432,130 @@ html.dark .with-pastel-balls::before {
min-height: 0;
}
+/* ─── Models 新布局 ─── */
+.models-page-layout {
+ display: flex;
+ max-width: 1440px;
+ margin: 0 auto;
+ padding: 0 24px;
+ gap: 32px;
+ height: calc(100vh - 60px);
+ overflow: hidden;
+}
+
+.models-sidebar {
+ width: 280px;
+ flex-shrink: 0;
+ overflow-y: auto;
+ padding: 24px 16px 24px 0;
+ border-right: 1px solid var(--border-color, #e5e7eb);
+}
+
+.models-sidebar::-webkit-scrollbar {
+ width: 4px;
+}
+.models-sidebar::-webkit-scrollbar-thumb {
+ background: transparent;
+}
+.models-sidebar:hover::-webkit-scrollbar-thumb {
+ background: rgba(0,0,0,0.15);
+ border-radius: 2px;
+}
+
+.models-content {
+ flex: 1;
+ min-width: 0;
+ display: flex;
+ flex-direction: column;
+ overflow: hidden;
+}
+
+.models-tabs-bar {
+ display: flex;
+ gap: 8px;
+ padding: 16px 0;
+ flex-shrink: 0;
+ border-bottom: 1px solid var(--border-color, #e5e7eb);
+}
+
+.models-tab-btn {
+ padding: 6px 20px;
+ border-radius: 20px;
+ border: 1px solid var(--border-color, #d1d5db);
+ background: transparent;
+ cursor: pointer;
+ font-size: 14px;
+ color: var(--text-muted, #6b7280);
+ transition: all 0.2s;
+ white-space: nowrap;
+}
+.models-tab-btn:hover {
+ border-color: var(--primary-color, #3b82f6);
+ color: var(--primary-color, #3b82f6);
+}
+.models-tab-btn.active {
+ background: var(--primary-color, #3b82f6);
+ color: white;
+ border-color: var(--primary-color, #3b82f6);
+}
+
+.models-card-grid {
+ display: grid;
+ grid-template-columns: repeat(2, 1fr);
+ gap: 16px;
+ padding: 16px 0;
+ overflow-y: auto;
+ flex: 1;
+}
+
+.models-card-grid::-webkit-scrollbar {
+ width: 6px;
+}
+.models-card-grid::-webkit-scrollbar-thumb {
+ background: rgba(0,0,0,0.12);
+ border-radius: 3px;
+}
+
+/* 筛选面板标题 */
+.models-filter-section {
+ margin-bottom: 24px;
+}
+.models-filter-title {
+ font-size: 13px;
+ font-weight: 600;
+ text-transform: uppercase;
+ letter-spacing: 0.05em;
+ color: var(--text-muted, #6b7280);
+ margin-bottom: 12px;
+ padding-bottom: 8px;
+ border-bottom: 1px solid var(--border-color, #e5e7eb);
+}
+
+.models-filter-item {
+ display: flex;
+ align-items: center;
+ padding: 6px 10px;
+ border-radius: 8px;
+ cursor: pointer;
+ transition: all 0.15s;
+ font-size: 14px;
+ color: var(--text-color, #374151);
+ gap: 8px;
+}
+.models-filter-item:hover {
+ background: var(--hover-bg, #f3f4f6);
+}
+.models-filter-item.active {
+ background: var(--primary-light, #eff6ff);
+ color: var(--primary-color, #3b82f6);
+ font-weight: 500;
+}
+.models-filter-item .count {
+ margin-left: auto;
+ font-size: 12px;
+ color: var(--text-muted, #9ca3af);
+}
+
/* ==================== semi-ui 缁勪欢鑷畾涔夋牱寮?==================== */
.semi-card-header,
.semi-card-body {