ns = params_kw.copy() kb_id = ns.get('kb_id', '') result = { "widgettype": "VBox", "options": {"width": "100%", "padding": "0", "spacing": "16px"}, "subwidgets": [ {"widgettype": "Text", "options": {"text": "📤 上传文件", "cfontsize": 20, "fontWeight": "bold", "color": "#333"}}, { "widgettype": "VBox", "options": { "id": "drop_zone", "width": "100%", "cheight": 12, "bgcolor": "#f8f9fa", "padding": "32px", "css": "card", "border": "2px dashed #3b82f6", "alignItems": "center", "justifyContent": "center" }, "subwidgets": [ {"widgettype": "Text", "options": {"text": "📂", "cfontsize": 40}}, {"widgettype": "Text", "options": {"text": "点击或拖拽文件到此处上传", "cfontsize": 16, "color": "#555"}}, {"widgettype": "Text", "options": {"text": "支持: TXT, PDF, JPG, PNG, MP3, WAV, MP4, AVI", "cfontsize": 12, "color": "#999"}}, {"widgettype": "Text", "options": {"text": "单个文件最大 500MB · 自动向量化入库", "cfontsize": 12, "color": "#999"}} ] }, { "widgettype": "VBox", "options": { "id": "upload_status", "width": "100%", "padding": "12px", "bgcolor": "#f0fdf4", "border": "1px solid #86efac" }, "subwidgets": [ {"widgettype": "Text", "options": {"text": "⏳ 等待上传...", "cfontsize": 13, "color": "#666", "id": "status_text"}} ] } ] } result