diff --git a/conf/rp.json b/conf/rp.json index c7f116a..433b7b4 100644 --- a/conf/rp.json +++ b/conf/rp.json @@ -9,6 +9,8 @@ "/rbac/phone_login.dspy", "/rbac/gen_sms_code.dspy", "/rbac/qr_scan.ui", + "/rbac/user/logout.dspy", + "/rbac/usermenu.ui", "/i18n_getmsgs", "/index_tab.js", "/appbase/menu.ui", @@ -43,6 +45,7 @@ "/tenant/**", "/pipeline_core", "/pipeline_core/**", + "/mine.ui", "/pipeline_ops", "/pipeline_ops/**", "/pipeline_dist", diff --git a/i18n/en/msg.txt b/i18n/en/msg.txt index 93f11a9..7752be6 100644 --- a/i18n/en/msg.txt +++ b/i18n/en/msg.txt @@ -36,3 +36,17 @@ Submit: Submit 显示所有已最小化的窗口: Show all minimized windows 通用助手: General Assistant API Key: API Key +助手: Assistant +待办: To-do +我的: Me +欢迎使用产线平台: Welcome to the Pipeline Platform +我的权益: My Entitlements +我的账户: My Account +充值: Recharge +产品商城: Product Store +深色模式: Dark Mode +浅色模式: Light Mode +退出登录: Log Out +暂无待办: No to-dos +暂无数据: No data +暂无已购产线 · 请到「我的 → 产品商城」购买: No purchased pipelines · Buy in Me → Product Store diff --git a/i18n/zh/msg.txt b/i18n/zh/msg.txt index 2b86459..79faaf8 100644 --- a/i18n/zh/msg.txt +++ b/i18n/zh/msg.txt @@ -36,3 +36,17 @@ Submit: Submit 显示所有已最小化的窗口: 显示所有已最小化的窗口 通用助手: 通用助手 API Key: API Key +助手: 助手 +待办: 待办 +我的: 我的 +欢迎使用产线平台: 欢迎使用产线平台 +我的权益: 我的权益 +我的账户: 我的账户 +充值: 充值 +产品商城: 产品商城 +深色模式: 深色模式 +浅色模式: 浅色模式 +退出登录: 退出登录 +暂无待办: 暂无待办 +暂无数据: 暂无数据 +暂无已购产线 · 请到「我的 → 产品商城」购买: 暂无已购产线 · 请到「我的 → 产品商城」购买 diff --git a/scripts/load_path.py b/scripts/load_path.py index 83fc21a..f9567fb 100644 --- a/scripts/load_path.py +++ b/scripts/load_path.py @@ -58,6 +58,12 @@ PERMS = [ ("/todo_badge.js", "app", "any"), ("/index_tab.js", "app", "any"), ("/theme_toggle.js", "app", "any"), + # 手机端 H5 外壳(2026-09-07):「我的」整页(底部 TabBar 第4个 Tab) + ("/mine.ui", "app", "logined"), + # 产线工作界面外壳(手机端「产线」Tab:ChipBar 已购产线 + AgentIO 全屏) + ("/pipeline_core/mobile_agent.ui", "pipeline_core", "logined"), + # 已购产线列表(ChipBar 数据源,订阅过滤在服务端) + ("/pipeline_core/api/my_pipelines.dspy", "pipeline_core", "logined"), ("/pipeline-sdlc/index.ui", "pipeline_sdlc", "logined"), ("/pipeline_core/index.ui", "pipeline_core", "logined"), ("/pipeline_ops/index.ui", "pipeline_ops", "logined"), diff --git a/wwwroot/mine.ui b/wwwroot/mine.ui new file mode 100644 index 0000000..806154f --- /dev/null +++ b/wwwroot/mine.ui @@ -0,0 +1,82 @@ +{ + "widgettype": "VBox", + "options": {"css": "filler", "width": "100%", "height": "100%", "padding": "0", "gap": "0px"}, + "subwidgets": [ + { + "widgettype": "VScrollPanel", + "options": {"css": "filler", "width": "100%", "height": "100%", "padding": "12px", "gap": "10px"}, + "subwidgets": [ + { + "widgettype": "VBox", + "options": {"width": "100%", "bgcolor": "#1e293b", "borderRadius": "14px", "padding": "16px", "gap": "4px"}, + "subwidgets": [ + {"widgettype": "Title3", "options": {"text": "{{get_username()}}", "color": "#ffffff"}}, + {"widgettype": "Text", "options": {"text": "欢迎使用产线平台", "cfontsize": 0.8, "color": "#94a3b8"}} + ] + }, + { + "widgettype": "VBox", + "id": "mine_group_account", + "options": {"width": "100%", "bgcolor": "#ffffff", "border": "1px solid #e2e8f0", "borderRadius": "12px", "padding": "4px 0", "gap": "0px"}, + "subwidgets": [ + { + "widgettype": "Button", + "options": {"label": "💳 我的权益", "css": "text", "width": "100%", "halign": "left", "padding": "14px 16px", "orientation": "horizontal"}, + "binds": [{"wid": "self", "event": "click", "actiontype": "urlwidget", "target": "PopupWindow", + "popup_options": {"title": "我的权益"}, + "options": {"url": "/product_management/storefront/api/my_subscriptions.dspy"}}] + }, + { + "widgettype": "Button", + "options": {"label": "🏦 我的账户", "css": "text", "width": "100%", "halign": "left", "padding": "14px 16px", "orientation": "horizontal"}, + "binds": [{"wid": "self", "event": "click", "actiontype": "urlwidget", "target": "PopupWindow", + "popup_options": {"title": "我的账户"}, + "options": {"url": "/accounting/myaccounts.ui"}}] + }, + { + "widgettype": "Button", + "options": {"label": "💰 充值", "css": "text", "width": "100%", "halign": "left", "padding": "14px 16px", "orientation": "horizontal"}, + "binds": [{"wid": "self", "event": "click", "actiontype": "urlwidget", "target": "PopupWindow", + "popup_options": {"title": "充值"}, + "options": {"url": "/unipay/recharge.ui"}}] + }, + { + "widgettype": "Button", + "options": {"label": "🛒 产品商城", "css": "text", "width": "100%", "halign": "left", "padding": "14px 16px", "orientation": "horizontal"}, + "binds": [{"wid": "self", "event": "click", "actiontype": "urlwidget", "target": "PopupWindow", + "popup_options": {"title": "产品商城"}, + "options": {"url": "/product_management/storefront/index.ui"}}] + }, + { + "widgettype": "Button", + "options": {"label": "🔑 API Key", "css": "text", "width": "100%", "halign": "left", "padding": "14px 16px", "orientation": "horizontal"}, + "binds": [{"wid": "self", "event": "click", "actiontype": "urlwidget", "target": "PopupWindow", + "popup_options": {"title": "API Key"}, + "options": {"url": "/dapi/apikey_manage.ui"}}] + } + ] + }, + { + "widgettype": "VBox", + "options": {"width": "100%", "bgcolor": "#ffffff", "border": "1px solid #e2e8f0", "borderRadius": "12px", "padding": "4px 0", "gap": "0px"}, + "subwidgets": [ + { + "widgettype": "Button", + "id": "mine_theme_btn", + "options": {"label": "🌙 深色模式", "css": "text", "width": "100%", "halign": "left", "padding": "14px 16px", "orientation": "horizontal"}, + "binds": [{"wid": "self", "event": "click", "actiontype": "script", "target": "self", + "script": "var h=document.documentElement;var t=h.getAttribute('data-theme')||'light';var n=t=='light'?'dark':'light';h.setAttribute('data-theme',n);try{localStorage.setItem('pipeline_ui_theme',n);}catch(e){}if(window.applyPipelineTheme){window.applyPipelineTheme(n);}this.opts.label=(n=='dark'?'☀️ 浅色模式':'🌙 深色模式');if(this.text_w){this.text_w.set_text(this.opts.label);}"}] + }, + { + "widgettype": "Button", + "options": {"label": "🚪 退出登录", "css": "text", "width": "100%", "halign": "left", "padding": "14px 16px", "orientation": "horizontal", "color": "#ef4444"}, + "binds": [{"wid": "self", "event": "click", "actiontype": "urlwidget", "target": "PopupWindow", + "popup_options": {"title": "退出登录"}, + "options": {"url": "/rbac/user/logout.dspy"}}] + } + ] + } + ] + } + ] +}