From dc007a30a9ca7d95254a413c99d42e6256b280c4 Mon Sep 17 00:00:00 2001 From: yumoqing Date: Sun, 31 May 2026 11:08:10 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=A8=A1=E5=9E=8B=E5=B9=BF=E5=9C=BA?= =?UTF-8?q?=E9=A1=B5=E9=9D=A2=20-=20=E6=96=B0=E5=A2=9E=20model=5Fplaza.ui?= =?UTF-8?q?=20(TabPanel=E6=8C=89=E5=88=86=E7=B1=BB/=E6=8C=89=E4=BE=9B?= =?UTF-8?q?=E5=BA=94=E5=95=86)=20-=20=E6=96=B0=E5=A2=9E=20model=5Fplaza.cs?= =?UTF-8?q?s=20(=E5=8D=A1=E7=89=87=E6=82=AC=E6=B5=AE=E6=95=88=E6=9E=9C/?= =?UTF-8?q?=E9=97=B4=E8=B7=9D=E4=BC=98=E5=8C=96)=20-=20show=5Fllms/show=5F?= =?UTF-8?q?llms=5Fby=5Fproviders=20=E6=B7=BB=E5=8A=A0=20plaza-card/plaza-g?= =?UTF-8?q?rid=20CSS=20-=20load=5Fpath.py=20=E6=B3=A8=E5=86=8C=E6=9D=83?= =?UTF-8?q?=E9=99=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- scripts/load_path.py | 1 + wwwroot/model_plaza.css | 65 +++++++++++++++++++++++++++++++ wwwroot/model_plaza.ui | 65 +++++++++++++++++++++++++++++++ wwwroot/show_llms.ui | 4 +- wwwroot/show_llms_by_providers.ui | 4 +- 5 files changed, 135 insertions(+), 4 deletions(-) create mode 100644 wwwroot/model_plaza.css create mode 100644 wwwroot/model_plaza.ui diff --git a/scripts/load_path.py b/scripts/load_path.py index 5bb7e60..0627f5d 100644 --- a/scripts/load_path.py +++ b/scripts/load_path.py @@ -59,6 +59,7 @@ PATHS_LOGINED = [ f"/{MOD}/show_same_catelog_llm.ui", f"/{MOD}/show_llms.ui", f"/{MOD}/show_llms_by_providers.ui", + f"/{MOD}/model_plaza.ui", f"/{MOD}/failed_accounting.ui", f"/{MOD}/llmcatelog_list.ui", diff --git a/wwwroot/model_plaza.css b/wwwroot/model_plaza.css new file mode 100644 index 0000000..2ffd29c --- /dev/null +++ b/wwwroot/model_plaza.css @@ -0,0 +1,65 @@ +/* Model Plaza — 模型广场 */ + +.plaza-header { + padding: 8px 16px 4px 16px; +} + +.plaza-tabs .tab-bar { + border-bottom: 2px solid var(--sage-border, #e2e8f0); +} + +.plaza-tabs .tab-item { + font-weight: 500; + transition: color 0.2s ease; +} + +.plaza-tabs .tab-item:hover { + color: var(--sage-brand, #6366f1); +} + +/* Card hover effects for model cards */ +.plaza-card { + transition: transform 0.2s ease, box-shadow 0.2s ease; + cursor: pointer; + border-radius: 8px !important; +} + +.plaza-card:hover { + transform: translateY(-2px); + box-shadow: 0 4px 16px rgba(0, 0, 0, 0.12); +} + +/* Category section headers */ +.plaza-section-title { + padding: 12px 0 4px 4px; + position: relative; +} + +.plaza-section-title::before { + content: ''; + position: absolute; + left: 0; + top: 50%; + transform: translateY(-50%); + width: 4px; + height: 70%; + border-radius: 2px; + background: var(--sage-brand, #6366f1); +} + +/* Smooth card grid */ +.plaza-grid { + gap: 12px !important; + padding: 4px 0; +} + +/* Model icon area */ +.plaza-card .model-icon-row { + gap: 8px; +} + +/* Description text */ +.plaza-card .model-desc { + line-height: 1.5; + opacity: 0.85; +} diff --git a/wwwroot/model_plaza.ui b/wwwroot/model_plaza.ui new file mode 100644 index 0000000..7efe0ab --- /dev/null +++ b/wwwroot/model_plaza.ui @@ -0,0 +1,65 @@ +{ + "widgettype": "VBox", + "options": { + "css": "filler", + "width": "100%" + }, + "subwidgets": [ + { + "widgettype": "VBox", + "options": { + "css": "plaza-header", + "width": "100%" + }, + "subwidgets": [ + { + "widgettype": "Title2", + "options": { + "otext": "模型广场", + "i18n": true, + "halign": "left" + } + }, + { + "widgettype": "Text", + "options": { + "otext": "探索和使用各类AI模型", + "i18n": true, + "halign": "left", + "wrap": true + } + } + ] + }, + { + "widgettype": "TabPanel", + "id": "plaza_tabs", + "options": { + "css": "filler plaza-tabs", + "tab_pos": "top", + "items": [ + { + "name": "by_catelog", + "label": "按分类", + "content": { + "widgettype": "urlwidget", + "options": { + "url": "{{entire_url('show_llms.ui')}}" + } + } + }, + { + "name": "by_provider", + "label": "按供应商", + "content": { + "widgettype": "urlwidget", + "options": { + "url": "{{entire_url('show_llms_by_providers.ui')}}" + } + } + } + ] + } + } + ] +} diff --git a/wwwroot/show_llms.ui b/wwwroot/show_llms.ui index aa6d946..739ee8c 100644 --- a/wwwroot/show_llms.ui +++ b/wwwroot/show_llms.ui @@ -25,7 +25,7 @@ { "widgettype":"DynamicColumn", "options":{ - "css":"filler", + "css":"filler plaza-grid", "width":"100%" }, "subwidgets":[ @@ -33,7 +33,7 @@ { "widgettype":"VScrollPanel", "options":{ - "css":"card", + "css":"card plaza-card", "cwidth":20, "cheight":12 }, diff --git a/wwwroot/show_llms_by_providers.ui b/wwwroot/show_llms_by_providers.ui index ae516af..fb50657 100644 --- a/wwwroot/show_llms_by_providers.ui +++ b/wwwroot/show_llms_by_providers.ui @@ -24,7 +24,7 @@ { "widgettype":"DynamicColumn", "options":{ - "css":"filler", + "css":"filler plaza-grid", "width":"100%" }, "subwidgets":[ @@ -32,7 +32,7 @@ { "widgettype":"VScrollPanel", "options":{ - "css":"card", + "css":"card plaza-card", "cwidth":20, "cheight":12 },