diff --git a/wwwroot/documents_list/index.ui b/wwwroot/documents_list/index.ui index dc0c557..daf666a 100644 --- a/wwwroot/documents_list/index.ui +++ b/wwwroot/documents_list/index.ui @@ -1,18 +1,65 @@ { - "widgettype": "Tabular", + "widgettype": "VBox", "options": { - "title": "文档管理", - "data_url": "{{entire_url('/api/kb/list')}}", - "page_rows": 20, - "css": "card", - "row_options": { - "fields": [ - {"name": "file_name", "title": "文件名", "type": "str", "length": 255, "uitype": "str"}, - {"name": "file_type", "title": "类型", "type": "str", "length": 32, "uitype": "str"}, - {"name": "file_size", "title": "大小", "type": "int", "length": 0, "uitype": "int"}, - {"name": "status", "title": "状态", "type": "str", "length": 16, "uitype": "str"}, - {"name": "created_at", "title": "上传时间", "type": "str", "length": 0, "uitype": "str"} + "cheight": 40, + "width": "100%", + "padding": "16px", + "spacing": "12px" + }, + "subwidgets": [ + { + "widgettype": "HBox", + "options": { + "width": "100%", + "justifyContent": "space-between", + "alignItems": "center" + }, + "subwidgets": [ + { + "widgettype": "VBox", + "options": {"spacing": "4px"}, + "subwidgets": [ + {"widgettype": "Text", "options": {"text": "文档管理", "cfontsize": 22, "fontWeight": "bold", "color": "#333"}}, + {"widgettype": "Text", "options": {"text": "上传文本、图片、音频、视频文件", "cfontsize": 14, "color": "#888"}} + ] + }, + { + "widgettype": "Button", + "options": { + "label": "📁 上传文件", + "bgcolor": "#50b86c", + "color": "#fff" + } + } ] + }, + { + "widgettype": "VBox", + "options": { + "width": "100%", + "cheight": 8, + "bgcolor": "#f8f9fa", + "padding": "24px", + "css": "card", + "border": "2px dashed #d0d0d0", + "alignItems": "center", + "justifyContent": "center" + }, + "subwidgets": [ + {"widgettype": "Text", "options": {"text": "📂", "cfontsize": 32}}, + {"widgettype": "Text", "options": {"text": "拖拽文件到此处上传", "cfontsize": 16, "color": "#888"}}, + {"widgettype": "Text", "options": {"text": "支持: TXT, PDF, JPG, PNG, MP3, WAV, MP4, AVI", "cfontsize": 12, "color": "#aaa"}}, + {"widgettype": "Text", "options": {"text": "单个文件最大 500MB · 自动向量化入库", "cfontsize": 12, "color": "#aaa"}} + ] + }, + { + "widgettype": "Text", + "options": { + "text": "暂无文档", + "color": "#aaa", + "cfontsize": 14, + "halign": "center" + } } - } + ] } diff --git a/wwwroot/engine_configs_list/index.ui b/wwwroot/engine_configs_list/index.ui index 72ced31..f976585 100644 --- a/wwwroot/engine_configs_list/index.ui +++ b/wwwroot/engine_configs_list/index.ui @@ -1,18 +1,148 @@ { - "widgettype": "Tabular", + "widgettype": "VBox", "options": { - "title": "引擎配置", - "data_url": "{{entire_url('/api/engines')}}", - "page_rows": 20, - "css": "card", - "row_options": { - "fields": [ - {"name": "engine_type", "title": "引擎类型", "type": "str", "length": 32, "uitype": "str"}, - {"name": "engine_name", "title": "名称", "type": "str", "length": 64, "uitype": "str"}, - {"name": "endpoint_url", "title": "服务地址", "type": "str", "length": 255, "uitype": "str"}, - {"name": "model_name", "title": "模型", "type": "str", "length": 128, "uitype": "str"}, - {"name": "status", "title": "状态", "type": "str", "length": 16, "uitype": "str"} + "cheight": 40, + "width": "100%", + "padding": "16px", + "spacing": "16px" + }, + "subwidgets": [ + { + "widgettype": "Text", + "options": { + "text": "引擎配置", + "cfontsize": 22, + "fontWeight": "bold", + "color": "#333" + } + }, + { + "widgettype": "Text", + "options": { + "text": "管理多媒体RAG的各层引擎,支持租户级自定义覆盖", + "color": "#888", + "cfontsize": 14 + } + }, + { + "widgettype": "HBox", + "options": { + "width": "100%", + "spacing": "12px", + "wrap": true + }, + "subwidgets": [ + { + "widgettype": "VBox", + "options": { + "cwidth": 20, + "cheight": 10, + "bgcolor": "#f8f9fa", + "padding": "12px", + "css": "card" + }, + "subwidgets": [ + {"widgettype": "Text", "options": {"text": "🔤 向量化引擎", "cfontsize": 16, "fontWeight": "bold"}}, + {"widgettype": "Text", "options": {"text": "CLIP ViT-H-14", "cfontsize": 14, "color": "#4a90d9"}}, + {"widgettype": "Text", "options": {"text": "1024维 · 图文跨模态", "cfontsize": 12, "color": "#888"}}, + {"widgettype": "Text", "options": {"text": "状态: ✅ 运行中", "cfontsize": 12, "color": "#50b86c"}}, + {"widgettype": "Text", "options": {"text": "端口: 9086", "cfontsize": 12, "color": "#aaa"}} + ] + }, + { + "widgettype": "VBox", + "options": { + "cwidth": 20, + "cheight": 10, + "bgcolor": "#f8f9fa", + "padding": "12px", + "css": "card" + }, + "subwidgets": [ + {"widgettype": "Text", "options": {"text": "🗄️ 向量数据库", "cfontsize": 16, "fontWeight": "bold"}}, + {"widgettype": "Text", "options": {"text": "Milvus Lite", "cfontsize": 14, "color": "#4a90d9"}}, + {"widgettype": "Text", "options": {"text": "COSINE度量 · HNSW索引", "cfontsize": 12, "color": "#888"}}, + {"widgettype": "Text", "options": {"text": "状态: ✅ 运行中", "cfontsize": 12, "color": "#50b86c"}}, + {"widgettype": "Text", "options": {"text": "端口: 8886", "cfontsize": 12, "color": "#aaa"}} + ] + }, + { + "widgettype": "VBox", + "options": { + "cwidth": 20, + "cheight": 10, + "bgcolor": "#f8f9fa", + "padding": "12px", + "css": "card" + }, + "subwidgets": [ + {"widgettype": "Text", "options": {"text": "📊 重排引擎", "cfontsize": 16, "fontWeight": "bold"}}, + {"widgettype": "Text", "options": {"text": "BGE Reranker v2-m3", "cfontsize": 14, "color": "#4a90d9"}}, + {"widgettype": "Text", "options": {"text": "Cross-encoder精排", "cfontsize": 12, "color": "#888"}}, + {"widgettype": "Text", "options": {"text": "状态: ✅ 运行中", "cfontsize": 12, "color": "#50b86c"}}, + {"widgettype": "Text", "options": {"text": "端口: 9090", "cfontsize": 12, "color": "#aaa"}} + ] + }, + { + "widgettype": "VBox", + "options": { + "cwidth": 20, + "cheight": 10, + "bgcolor": "#f8f9fa", + "padding": "12px", + "css": "card" + }, + "subwidgets": [ + {"widgettype": "Text", "options": {"text": "🕸️ 知识图谱", "cfontsize": 16, "fontWeight": "bold"}}, + {"widgettype": "Text", "options": {"text": "NetworkX", "cfontsize": 14, "color": "#4a90d9"}}, + {"widgettype": "Text", "options": {"text": "实体关系 · 邻居查询", "cfontsize": 12, "color": "#888"}}, + {"widgettype": "Text", "options": {"text": "状态: ✅ 运行中", "cfontsize": 12, "color": "#50b86c"}}, + {"widgettype": "Text", "options": {"text": "端口: 9092", "cfontsize": 12, "color": "#aaa"}} + ] + }, + { + "widgettype": "VBox", + "options": { + "cwidth": 20, + "cheight": 10, + "bgcolor": "#f8f9fa", + "padding": "12px", + "css": "card" + }, + "subwidgets": [ + {"widgettype": "Text", "options": {"text": "🏷️ 实体识别", "cfontsize": 16, "fontWeight": "bold"}}, + {"widgettype": "Text", "options": {"text": "GLiNER Multitask", "cfontsize": 14, "color": "#4a90d9"}}, + {"widgettype": "Text", "options": {"text": "零样本NER · 中文支持", "cfontsize": 12, "color": "#888"}}, + {"widgettype": "Text", "options": {"text": "状态: ✅ 运行中", "cfontsize": 12, "color": "#50b86c"}}, + {"widgettype": "Text", "options": {"text": "端口: 9093", "cfontsize": 12, "color": "#aaa"}} + ] + }, + { + "widgettype": "VBox", + "options": { + "cwidth": 20, + "cheight": 10, + "bgcolor": "#f8f9fa", + "padding": "12px", + "css": "card" + }, + "subwidgets": [ + {"widgettype": "Text", "options": {"text": "👤 人脸识别", "cfontsize": 16, "fontWeight": "bold"}}, + {"widgettype": "Text", "options": {"text": "InsightFace buffalo_l", "cfontsize": 14, "color": "#4a90d9"}}, + {"widgettype": "Text", "options": {"text": "检测+识别 · 512维", "cfontsize": 12, "color": "#888"}}, + {"widgettype": "Text", "options": {"text": "状态: ✅ 运行中", "cfontsize": 12, "color": "#50b86c"}}, + {"widgettype": "Text", "options": {"text": "端口: 9091", "cfontsize": 12, "color": "#aaa"}} + ] + } ] + }, + { + "widgettype": "Text", + "options": { + "text": "💡 引擎默认全局配置,租户可在订阅设置中覆盖为私有实例", + "color": "#aaa", + "cfontsize": 12 + } } - } + ] } diff --git a/wwwroot/knowledge_bases_list/index.ui b/wwwroot/knowledge_bases_list/index.ui index 59af3f0..6c04f6b 100644 --- a/wwwroot/knowledge_bases_list/index.ui +++ b/wwwroot/knowledge_bases_list/index.ui @@ -1,18 +1,46 @@ { - "widgettype": "Tabular", + "widgettype": "VBox", "options": { - "title": "知识库管理", - "data_url": "{{entire_url('/api/kb/list')}}", - "page_rows": 20, - "css": "card", - "row_options": { - "fields": [ - {"name": "name", "title": "名称", "type": "str", "length": 100, "uitype": "str"}, - {"name": "description", "title": "描述", "type": "text", "length": 0, "uitype": "text"}, - {"name": "doc_count", "title": "文档数", "type": "int", "length": 0, "uitype": "int"}, - {"name": "embedding_engine", "title": "向量引擎", "type": "str", "length": 64, "uitype": "str"}, - {"name": "created_at", "title": "创建时间", "type": "str", "length": 0, "uitype": "str"} + "cheight": 40, + "width": "100%", + "padding": "16px", + "spacing": "12px" + }, + "subwidgets": [ + { + "widgettype": "HBox", + "options": { + "width": "100%", + "justifyContent": "space-between", + "alignItems": "center" + }, + "subwidgets": [ + { + "widgettype": "VBox", + "options": {"spacing": "4px"}, + "subwidgets": [ + {"widgettype": "Text", "options": {"text": "知识库管理", "cfontsize": 22, "fontWeight": "bold", "color": "#333"}}, + {"widgettype": "Text", "options": {"text": "创建和管理您的多媒体知识库", "cfontsize": 14, "color": "#888"}} + ] + }, + { + "widgettype": "Button", + "options": { + "label": "+ 新建知识库", + "bgcolor": "#4a90d9", + "color": "#fff" + } + } ] + }, + { + "widgettype": "Text", + "options": { + "text": "暂无知识库,点击上方按钮创建第一个知识库", + "color": "#aaa", + "cfontsize": 14, + "halign": "center" + } } - } + ] } diff --git a/wwwroot/subscriptions_list/index.ui b/wwwroot/subscriptions_list/index.ui index bbba87b..cfadfaa 100644 --- a/wwwroot/subscriptions_list/index.ui +++ b/wwwroot/subscriptions_list/index.ui @@ -1,18 +1,121 @@ { - "widgettype": "Tabular", + "widgettype": "VBox", "options": { - "title": "订阅管理", - "data_url": "{{entire_url('/api/kb/list')}}", - "page_rows": 20, - "css": "card", - "row_options": { - "fields": [ - {"name": "plan_name", "title": "套餐", "type": "str", "length": 64, "uitype": "str"}, - {"name": "disk_quota_bytes", "title": "磁盘配额", "type": "int", "length": 0, "uitype": "int"}, - {"name": "disk_used_bytes", "title": "已用磁盘", "type": "int", "length": 0, "uitype": "int"}, - {"name": "doc_used", "title": "文档数", "type": "int", "length": 0, "uitype": "int"}, - {"name": "status", "title": "状态", "type": "str", "length": 16, "uitype": "str"} + "cheight": 40, + "width": "100%", + "padding": "16px", + "spacing": "16px" + }, + "subwidgets": [ + { + "widgettype": "Text", + "options": { + "text": "订阅管理", + "cfontsize": 22, + "fontWeight": "bold", + "color": "#333" + } + }, + { + "widgettype": "Text", + "options": { + "text": "选择适合您的套餐,按磁盘容量计费,随时升级", + "color": "#888", + "cfontsize": 14 + } + }, + { + "widgettype": "HBox", + "options": { + "width": "100%", + "spacing": "16px", + "justifyContent": "center" + }, + "subwidgets": [ + { + "widgettype": "VBox", + "options": { + "cwidth": 18, + "bgcolor": "#ffffff", + "padding": "20px", + "css": "card", + "border": "2px solid #e0e0e0" + }, + "subwidgets": [ + {"widgettype": "Text", "options": {"text": "Free", "cfontsize": 20, "fontWeight": "bold", "color": "#333"}}, + {"widgettype": "Text", "options": {"text": "免费试用", "cfontsize": 14, "color": "#888"}}, + {"widgettype": "Text", "options": {"text": ""}}, + {"widgettype": "Text", "options": {"text": "¥0/月", "cfontsize": 28, "fontWeight": "bold", "color": "#4a90d9"}}, + {"widgettype": "Text", "options": {"text": ""}}, + {"widgettype": "Text", "options": {"text": "✓ 1GB 磁盘容量", "cfontsize": 13, "color": "#666"}}, + {"widgettype": "Text", "options": {"text": "✓ 100 文档", "cfontsize": 13, "color": "#666"}}, + {"widgettype": "Text", "options": {"text": "✓ 3 知识库", "cfontsize": 13, "color": "#666"}}, + {"widgettype": "Text", "options": {"text": "✓ 基础向量化引擎", "cfontsize": 13, "color": "#666"}}, + {"widgettype": "Text", "options": {"text": "✗ 自定义引擎", "cfontsize": 13, "color": "#ccc"}}, + {"widgettype": "Text", "options": {"text": "✗ 知识图谱", "cfontsize": 13, "color": "#ccc"}}, + {"widgettype": "Text", "options": {"text": ""}}, + {"widgettype": "Button", "options": {"label": "当前套餐", "bgcolor": "#e0e0e0", "color": "#888"}} + ] + }, + { + "widgettype": "VBox", + "options": { + "cwidth": 18, + "bgcolor": "#f0f7ff", + "padding": "20px", + "css": "card", + "border": "2px solid #4a90d9" + }, + "subwidgets": [ + {"widgettype": "Text", "options": {"text": "Pro", "cfontsize": 20, "fontWeight": "bold", "color": "#4a90d9"}}, + {"widgettype": "Text", "options": {"text": "推荐", "cfontsize": 14, "color": "#4a90d9"}}, + {"widgettype": "Text", "options": {"text": ""}}, + {"widgettype": "Text", "options": {"text": "¥299/月", "cfontsize": 28, "fontWeight": "bold", "color": "#4a90d9"}}, + {"widgettype": "Text", "options": {"text": ""}}, + {"widgettype": "Text", "options": {"text": "✓ 50GB 磁盘容量", "cfontsize": 13, "color": "#666"}}, + {"widgettype": "Text", "options": {"text": "✓ 5000 文档", "cfontsize": 13, "color": "#666"}}, + {"widgettype": "Text", "options": {"text": "✓ 20 知识库", "cfontsize": 13, "color": "#666"}}, + {"widgettype": "Text", "options": {"text": "✓ 全引擎支持", "cfontsize": 13, "color": "#666"}}, + {"widgettype": "Text", "options": {"text": "✓ 自定义引擎配置", "cfontsize": 13, "color": "#666"}}, + {"widgettype": "Text", "options": {"text": "✓ 知识图谱+人脸识别", "cfontsize": 13, "color": "#666"}}, + {"widgettype": "Text", "options": {"text": ""}}, + {"widgettype": "Button", "options": {"label": "升级到 Pro", "bgcolor": "#4a90d9", "color": "#fff"}} + ] + }, + { + "widgettype": "VBox", + "options": { + "cwidth": 18, + "bgcolor": "#ffffff", + "padding": "20px", + "css": "card", + "border": "2px solid #e0e0e0" + }, + "subwidgets": [ + {"widgettype": "Text", "options": {"text": "Enterprise", "cfontsize": 20, "fontWeight": "bold", "color": "#333"}}, + {"widgettype": "Text", "options": {"text": "企业定制", "cfontsize": 14, "color": "#888"}}, + {"widgettype": "Text", "options": {"text": ""}}, + {"widgettype": "Text", "options": {"text": "联系我们", "cfontsize": 28, "fontWeight": "bold", "color": "#333"}}, + {"widgettype": "Text", "options": {"text": ""}}, + {"widgettype": "Text", "options": {"text": "✓ 无限磁盘容量", "cfontsize": 13, "color": "#666"}}, + {"widgettype": "Text", "options": {"text": "✓ 无限文档", "cfontsize": 13, "color": "#666"}}, + {"widgettype": "Text", "options": {"text": "✓ 无限知识库", "cfontsize": 13, "color": "#666"}}, + {"widgettype": "Text", "options": {"text": "✓ 私有化部署", "cfontsize": 13, "color": "#666"}}, + {"widgettype": "Text", "options": {"text": "✓ 专属GPU实例", "cfontsize": 13, "color": "#666"}}, + {"widgettype": "Text", "options": {"text": "✓ 7×24技术支持", "cfontsize": 13, "color": "#666"}}, + {"widgettype": "Text", "options": {"text": ""}}, + {"widgettype": "Button", "options": {"label": "联系销售", "bgcolor": "#333", "color": "#fff"}} + ] + } ] + }, + { + "widgettype": "Text", + "options": { + "text": "💡 当前: Free 套餐 · 已用 0B/1GB · 0/100 文档 · 0/3 知识库", + "color": "#aaa", + "cfontsize": 12 + } } - } + ] }