Remove wwwroot/ from .gitignore so production deployment is just git pull. Changes: - wwwroot/index.ui: Shell layout with sidebar and main content - wwwroot/global_menu.ui: Global navigation menu (22 modules) - wwwroot/dashboard_for_sage/: Dashboard widgets and stats - wwwroot/product_management/: Product management pages - Module symlinks (accounting, rbac, bricks, etc.) Ignored: .DS_Store, *.bak, tmp/
176 lines
6.3 KiB
XML
176 lines
6.3 KiB
XML
{% set roles = get_user_roles(get_user()) %}
|
|
{
|
|
"widgettype": "Menu",
|
|
"id": "global_nav_menu",
|
|
"options": {
|
|
"width": "100%",
|
|
"height": "100%",
|
|
"bgcolor": "#111827",
|
|
"items": [
|
|
{
|
|
"name": "dashboard",
|
|
"label": "仪表盘",
|
|
"icon": "fa fa-dashboard",
|
|
"url": "{{entire_url('/dashboard_for_sage/index.ui')}}",
|
|
"target": "app.sage_main_content"
|
|
},
|
|
{% if get_user() %}
|
|
{
|
|
"name": "unified_dashboard",
|
|
"label": "统一仪表板",
|
|
"icon": "fa fa-chart-line",
|
|
"url": "{{entire_url('/unified_dashboard/index.ui')}}",
|
|
"target": "app.sage_main_content"
|
|
},
|
|
{
|
|
"name": "integrated_crm_app",
|
|
"label": "CRM系统",
|
|
"icon": "fa fa-handshake",
|
|
"url": "{{entire_url('/integrated_crm_app/index.ui')}}",
|
|
"target": "app.sage_main_content"
|
|
},
|
|
{
|
|
"name": "customer_management",
|
|
"label": "客户管理",
|
|
"icon": "fa fa-users",
|
|
"url": "{{entire_url('/customer_management/index.ui')}}",
|
|
"target": "app.sage_main_content"
|
|
},
|
|
{
|
|
"name": "opportunity_management",
|
|
"label": "商机管理",
|
|
"icon": "fa fa-briefcase",
|
|
"url": "{{entire_url('/opportunity_management/index.ui')}}",
|
|
"target": "app.sage_main_content"
|
|
},
|
|
{
|
|
"name": "contract_management",
|
|
"label": "合同管理",
|
|
"icon": "fa fa-file-contract",
|
|
"url": "{{entire_url('/contract_management/index.ui')}}",
|
|
"target": "app.sage_main_content"
|
|
},
|
|
{
|
|
"name": "product_management",
|
|
"label": "产品管理",
|
|
"icon": "fa fa-cubes",
|
|
"url": "{{entire_url('/product_management/index.ui')}}",
|
|
"target": "app.sage_main_content"
|
|
},
|
|
{
|
|
"name": "supplychain",
|
|
"label": "供销链管理",
|
|
"icon": "fa fa-truck",
|
|
"url": "{{entire_url('/supplychain/index.ui')}}",
|
|
"target": "app.sage_main_content"
|
|
},
|
|
{
|
|
"name": "pricing",
|
|
"label": "定价管理",
|
|
"icon": "fa fa-money-bill",
|
|
"url": "{{entire_url('/pricing/index.ui')}}",
|
|
"target": "app.sage_main_content"
|
|
},
|
|
{
|
|
"name": "discount",
|
|
"label": "折扣管理",
|
|
"icon": "fa fa-percent",
|
|
"url": "{{entire_url('/discount/promote.ui')}}",
|
|
"target": "app.sage_main_content"
|
|
},
|
|
{
|
|
"name": "financial_management",
|
|
"label": "财务管理",
|
|
"icon": "fa fa-calculator",
|
|
"url": "{{entire_url('/financial_management/index.ui')}}",
|
|
"target": "app.sage_main_content"
|
|
},
|
|
{
|
|
"name": "workflow_approval",
|
|
"label": "工作流审批",
|
|
"icon": "fa fa-tasks",
|
|
"url": "{{entire_url('/workflow_approval/index.ui')}}",
|
|
"target": "app.sage_main_content"
|
|
},
|
|
{
|
|
"name": "llmage",
|
|
"label": "LLM 模型管理",
|
|
"icon": "fa fa-brain",
|
|
"url": "{{entire_url('/llmage/index.ui')}}",
|
|
"target": "app.sage_main_content"
|
|
},
|
|
{
|
|
"name": "rag",
|
|
"label": "知识库管理",
|
|
"icon": "fa fa-database",
|
|
"url": "{{entire_url('/rag/index.ui')}}",
|
|
"target": "app.sage_main_content"
|
|
},
|
|
{
|
|
"name": "cpcc",
|
|
"label": "算力中心管理",
|
|
"icon": "fa fa-server",
|
|
"url": "{{entire_url('/cpcc/index.ui')}}",
|
|
"target": "app.sage_main_content"
|
|
},
|
|
{
|
|
"name": "msp",
|
|
"label": "运维管理",
|
|
"icon": "fa fa-tools",
|
|
"url": "{{entire_url('/msp/index.ui')}}",
|
|
"target": "app.sage_main_content"
|
|
},
|
|
{% endif %}
|
|
{% if 'reseller.operator' in roles or 'owner.superuser' in roles %}
|
|
{
|
|
"name": "platformbiz",
|
|
"label": "平台业务",
|
|
"icon": "fa fa-building",
|
|
"url": "{{entire_url('/platformbiz/index.ui')}}",
|
|
"target": "app.sage_main_content"
|
|
},
|
|
{% endif %}
|
|
{% if 'reseller.accountant' in roles or 'owner.superuser' in roles %}
|
|
{
|
|
"name": "accounting",
|
|
"label": "计费管理",
|
|
"icon": "fa fa-coins",
|
|
"url": "{{entire_url('/accounting/index.ui')}}",
|
|
"target": "app.sage_main_content"
|
|
},
|
|
{% endif %}
|
|
{% if get_user() %}
|
|
{
|
|
"name": "rbac",
|
|
"label": "用户与权限",
|
|
"icon": "fa fa-user-shield",
|
|
"url": "{{entire_url('/rbac/index.ui')}}",
|
|
"target": "app.sage_main_content"
|
|
},
|
|
{
|
|
"name": "entcms",
|
|
"label": "内容管理",
|
|
"icon": "fa fa-newspaper",
|
|
"url": "{{entire_url('/cms/entcms/index.ui')}}",
|
|
"target": "app.sage_main_content"
|
|
},
|
|
{
|
|
"name": "dingdingflow",
|
|
"label": "钉钉审批",
|
|
"icon": "fa fa-mobile-alt",
|
|
"url": "{{entire_url('/cms/dingdingflow/index.ui')}}",
|
|
"target": "app.sage_main_content"
|
|
},
|
|
{% endif %}
|
|
{
|
|
"name": "hermes_web_cli",
|
|
"label": "AI Agent",
|
|
"icon": "fa fa-robot",
|
|
"url": "{{entire_url('/hermes-web-cli/index.ui')}}",
|
|
"target": "app.sage_main_content"
|
|
}
|
|
],
|
|
"menuitem_css": "menuitem"
|
|
}
|
|
}
|