Explorar o código

feat:新增权限说明md和json。修复logo刷新页面全屏闪过bug

韩洋 hai 1 mes
pai
achega
74e8ac0f45

+ 206 - 0
default/docs/permission-identifiers.json

@@ -0,0 +1,206 @@
+[
+  {
+    "module_name": "总览",
+    "module_code": "dashboard.view",
+    "module_label": "Dashboard",
+    "children": []
+  },
+  {
+    "module_name": "渠道管理",
+    "module_code": "channel.view",
+    "module_label": "Channel Management",
+    "children": [
+      {
+        "perm_name": "新增",
+        "front_perm_code": "channel.create",
+        "api_perm_code": "",
+        "perm_label": "Create Channel"
+      },
+      {
+        "perm_name": "编辑",
+        "front_perm_code": "channel.update",
+        "api_perm_code": "",
+        "perm_label": "Update Channel"
+      },
+      {
+        "perm_name": "删除",
+        "front_perm_code": "channel.delete",
+        "api_perm_code": "",
+        "perm_label": "Delete Channel"
+      },
+      {
+        "perm_name": "禁用",
+        "front_perm_code": "channel.disable",
+        "api_perm_code": "",
+        "perm_label": "Disable Channel"
+      }
+    ]
+  },
+  {
+    "module_name": "模型管理",
+    "module_code": "models.view",
+    "module_label": "Model Management",
+    "children": [
+      {
+        "perm_name": "新增",
+        "front_perm_code": "models.create",
+        "api_perm_code": "",
+        "perm_label": "Create Model"
+      },
+      {
+        "perm_name": "编辑",
+        "front_perm_code": "models.update",
+        "api_perm_code": "",
+        "perm_label": "Update Model"
+      },
+      {
+        "perm_name": "删除",
+        "front_perm_code": "models.delete",
+        "api_perm_code": "",
+        "perm_label": "Delete Model"
+      },
+      {
+        "perm_name": "禁用",
+        "front_perm_code": "models.disable",
+        "api_perm_code": "",
+        "perm_label": "Disable Model"
+      }
+    ]
+  },
+  {
+    "module_name": "用户管理",
+    "module_code": "user.view",
+    "module_label": "User Management",
+    "children": [
+      {
+        "perm_name": "新增",
+        "front_perm_code": "user.create",
+        "api_perm_code": "",
+        "perm_label": "Create User"
+      },
+      {
+        "perm_name": "编辑",
+        "front_perm_code": "user.update",
+        "api_perm_code": "",
+        "perm_label": "Update User"
+      },
+      {
+        "perm_name": "删除",
+        "front_perm_code": "user.delete",
+        "api_perm_code": "",
+        "perm_label": "Delete User"
+      },
+      {
+        "perm_name": "禁用",
+        "front_perm_code": "user.disable",
+        "api_perm_code": "",
+        "perm_label": "Disable User"
+      }
+    ]
+  },
+  {
+    "module_name": "平台角色",
+    "module_code": "role.view",
+    "module_label": "Role Management",
+    "children": [
+      {
+        "perm_name": "新增角色",
+        "front_perm_code": "role.create",
+        "api_perm_code": "",
+        "perm_label": "Create Role"
+      },
+      {
+        "perm_name": "编辑角色",
+        "front_perm_code": "role.update",
+        "api_perm_code": "",
+        "perm_label": "Update Role"
+      },
+      {
+        "perm_name": "删除角色",
+        "front_perm_code": "role.delete",
+        "api_perm_code": "",
+        "perm_label": "Delete Role"
+      }
+    ]
+  },
+  {
+    "module_name": "租户管理",
+    "module_code": "tenant.view",
+    "module_label": "Tenant Management",
+    "children": [
+      {
+        "perm_name": "新增租户",
+        "front_perm_code": "tenant.create",
+        "api_perm_code": "",
+        "perm_label": "Create Tenant"
+      },
+      {
+        "perm_name": "编辑租户",
+        "front_perm_code": "tenant.update",
+        "api_perm_code": "",
+        "perm_label": "Update Tenant"
+      },
+      {
+        "perm_name": "禁用租户",
+        "front_perm_code": "tenant.disable",
+        "api_perm_code": "",
+        "perm_label": "Disable Tenant"
+      }
+    ]
+  },
+  {
+    "module_name": "个人信息",
+    "module_code": "profile.view",
+    "module_label": "Profile",
+    "children": []
+  },
+  {
+    "module_name": "API 密钥",
+    "module_code": "keys.view",
+    "module_label": "API Keys",
+    "children": [
+      {
+        "perm_name": "新增",
+        "front_perm_code": "keys.create",
+        "api_perm_code": "",
+        "perm_label": "Create API Key"
+      },
+      {
+        "perm_name": "编辑",
+        "front_perm_code": "keys.update",
+        "api_perm_code": "",
+        "perm_label": "Update API Key"
+      },
+      {
+        "perm_name": "删除",
+        "front_perm_code": "keys.delete",
+        "api_perm_code": "",
+        "perm_label": "Delete API Key"
+      },
+      {
+        "perm_name": "禁用",
+        "front_perm_code": "keys.disable",
+        "api_perm_code": "",
+        "perm_label": "Disable API Key"
+      }
+    ]
+  },
+  {
+    "module_name": "模型列表",
+    "module_code": "pricing.view",
+    "module_label": "Model List",
+    "children": []
+  },
+  {
+    "module_name": "调用日志",
+    "module_code": "usage-logs.view",
+    "module_label": "Usage Logs",
+    "children": []
+  },
+  {
+    "module_name": "系统设置",
+    "module_code": "settings.view",
+    "module_label": "System Settings",
+    "children": []
+  }
+]

+ 287 - 0
default/docs/permission-identifiers.md

@@ -0,0 +1,287 @@
+# Default 权限标识梳理
+
+## 梳理范围
+
+- 项目范围:`default` 前端项目。
+- 当前基准:`docs/permission-identifiers.json`。
+- 菜单权限:顶层模块使用 `module_code` 表示,统一使用 `*.view`。
+- 按钮权限:`children` 中的每一项表示一个按钮权限。
+- 接口权限:`api_perm_code` 字段已预留,当前暂时为空字符串。
+
+## 字段说明
+
+| 字段 | 所在层级 | 说明 | 示例 |
+| --- | --- | --- | --- |
+| `module_name` | 模块 | 模块英文名称 | `Channel Management` |
+| `module_code` | 模块 | 菜单权限编码,统一使用 `view` | `channel.view` |
+| `module_label` | 模块 | 模块中文展示名称 | `渠道管理` |
+| `children` | 模块 | 按钮权限列表;没有按钮权限时为空数组 | `[]` |
+| `perm_name` | 按钮 | 按钮权限英文名称 | `Create Channel` |
+| `front_perm_code` | 按钮 | 前端按钮权限编码 | `channel.create` |
+| `api_perm_code` | 按钮 | 接口权限编码,当前暂时为空 | `""` |
+| `perm_label` | 按钮 | 按钮权限中文展示名称 | `新增` |
+
+## 命名约定
+
+| 类型 | 命名格式 | 示例 |
+| --- | --- | --- |
+| 菜单权限 | `{业务模块}.view` | `channel.view` |
+| 新增按钮权限 | `{业务模块}.create` | `channel.create` |
+| 编辑按钮权限 | `{业务模块}.update` | `channel.update` |
+| 删除按钮权限 | `{业务模块}.delete` | `channel.delete` |
+| 禁用按钮权限 | `{业务模块}.disable` | `channel.disable` |
+| 接口权限 | 暂未定义,预留为空字符串 | `""` |
+
+## 菜单权限
+
+| 模块英文名 | 模块展示名 | 菜单权限编码 | 按钮权限数量 |
+| --- | --- | --- | --- |
+| Dashboard | 总览 | `dashboard.view` | 0 |
+| Channel Management | 渠道管理 | `channel.view` | 4 |
+| Model Management | 模型管理 | `models.view` | 4 |
+| User Management | 用户管理 | `user.view` | 4 |
+| Role Management | 平台角色 | `role.view` | 3 |
+| Tenant Management | 租户管理 | `tenant.view` | 3 |
+| Profile | 个人信息 | `profile.view` | 0 |
+| API Keys | API 密钥 | `keys.view` | 4 |
+| Model List | 模型列表 | `pricing.view` | 0 |
+| Usage Logs | 调用日志 | `usage-logs.view` | 0 |
+| System Settings | 系统设置 | `settings.view` | 0 |
+
+## 按钮权限
+
+| 模块 | 按钮英文名 | 前端权限编码 | 接口权限编码 | 展示名 |
+| --- | --- | --- | --- | --- |
+| 渠道管理 | Create Channel | `channel.create` | `""` | 新增 |
+| 渠道管理 | Update Channel | `channel.update` | `""` | 编辑 |
+| 渠道管理 | Delete Channel | `channel.delete` | `""` | 删除 |
+| 渠道管理 | Disable Channel | `channel.disable` | `""` | 禁用 |
+| 模型管理 | Create Model | `models.create` | `""` | 新增 |
+| 模型管理 | Update Model | `models.update` | `""` | 编辑 |
+| 模型管理 | Delete Model | `models.delete` | `""` | 删除 |
+| 模型管理 | Disable Model | `models.disable` | `""` | 禁用 |
+| 用户管理 | Create User | `user.create` | `""` | 新增 |
+| 用户管理 | Update User | `user.update` | `""` | 编辑 |
+| 用户管理 | Delete User | `user.delete` | `""` | 删除 |
+| 用户管理 | Disable User | `user.disable` | `""` | 禁用 |
+| 平台角色 | Create Role | `role.create` | `""` | 新增角色 |
+| 平台角色 | Update Role | `role.update` | `""` | 编辑角色 |
+| 平台角色 | Delete Role | `role.delete` | `""` | 删除角色 |
+| 租户管理 | Create Tenant | `tenant.create` | `""` | 新增租户 |
+| 租户管理 | Update Tenant | `tenant.update` | `""` | 编辑租户 |
+| 租户管理 | Disable Tenant | `tenant.disable` | `""` | 禁用租户 |
+| API 密钥 | Create API Key | `keys.create` | `""` | 新增 |
+| API 密钥 | Update API Key | `keys.update` | `""` | 编辑 |
+| API 密钥 | Delete API Key | `keys.delete` | `""` | 删除 |
+| API 密钥 | Disable API Key | `keys.disable` | `""` | 禁用 |
+
+## JSON 权限结构
+
+```json
+[
+  {
+    "module_name": "Dashboard",
+    "module_code": "dashboard.view",
+    "module_label": "总览",
+    "children": []
+  },
+  {
+    "module_name": "Channel Management",
+    "module_code": "channel.view",
+    "module_label": "渠道管理",
+    "children": [
+      {
+        "perm_name": "Create Channel",
+        "front_perm_code": "channel.create",
+        "api_perm_code": "",
+        "perm_label": "新增"
+      },
+      {
+        "perm_name": "Update Channel",
+        "front_perm_code": "channel.update",
+        "api_perm_code": "",
+        "perm_label": "编辑"
+      },
+      {
+        "perm_name": "Delete Channel",
+        "front_perm_code": "channel.delete",
+        "api_perm_code": "",
+        "perm_label": "删除"
+      },
+      {
+        "perm_name": "Disable Channel",
+        "front_perm_code": "channel.disable",
+        "api_perm_code": "",
+        "perm_label": "禁用"
+      }
+    ]
+  },
+  {
+    "module_name": "Model Management",
+    "module_code": "models.view",
+    "module_label": "模型管理",
+    "children": [
+      {
+        "perm_name": "Create Model",
+        "front_perm_code": "models.create",
+        "api_perm_code": "",
+        "perm_label": "新增"
+      },
+      {
+        "perm_name": "Update Model",
+        "front_perm_code": "models.update",
+        "api_perm_code": "",
+        "perm_label": "编辑"
+      },
+      {
+        "perm_name": "Delete Model",
+        "front_perm_code": "models.delete",
+        "api_perm_code": "",
+        "perm_label": "删除"
+      },
+      {
+        "perm_name": "Disable Model",
+        "front_perm_code": "models.disable",
+        "api_perm_code": "",
+        "perm_label": "禁用"
+      }
+    ]
+  },
+  {
+    "module_name": "User Management",
+    "module_code": "user.view",
+    "module_label": "用户管理",
+    "children": [
+      {
+        "perm_name": "Create User",
+        "front_perm_code": "user.create",
+        "api_perm_code": "",
+        "perm_label": "新增"
+      },
+      {
+        "perm_name": "Update User",
+        "front_perm_code": "user.update",
+        "api_perm_code": "",
+        "perm_label": "编辑"
+      },
+      {
+        "perm_name": "Delete User",
+        "front_perm_code": "user.delete",
+        "api_perm_code": "",
+        "perm_label": "删除"
+      },
+      {
+        "perm_name": "Disable User",
+        "front_perm_code": "user.disable",
+        "api_perm_code": "",
+        "perm_label": "禁用"
+      }
+    ]
+  },
+  {
+    "module_name": "Role Management",
+    "module_code": "role.view",
+    "module_label": "平台角色",
+    "children": [
+      {
+        "perm_name": "Create Role",
+        "front_perm_code": "role.create",
+        "api_perm_code": "",
+        "perm_label": "新增角色"
+      },
+      {
+        "perm_name": "Update Role",
+        "front_perm_code": "role.update",
+        "api_perm_code": "",
+        "perm_label": "编辑角色"
+      },
+      {
+        "perm_name": "Delete Role",
+        "front_perm_code": "role.delete",
+        "api_perm_code": "",
+        "perm_label": "删除角色"
+      }
+    ]
+  },
+  {
+    "module_name": "Tenant Management",
+    "module_code": "tenant.view",
+    "module_label": "租户管理",
+    "children": [
+      {
+        "perm_name": "Create Tenant",
+        "front_perm_code": "tenant.create",
+        "api_perm_code": "",
+        "perm_label": "新增租户"
+      },
+      {
+        "perm_name": "Update Tenant",
+        "front_perm_code": "tenant.update",
+        "api_perm_code": "",
+        "perm_label": "编辑租户"
+      },
+      {
+        "perm_name": "Disable Tenant",
+        "front_perm_code": "tenant.disable",
+        "api_perm_code": "",
+        "perm_label": "禁用租户"
+      }
+    ]
+  },
+  {
+    "module_name": "Profile",
+    "module_code": "profile.view",
+    "module_label": "个人信息",
+    "children": []
+  },
+  {
+    "module_name": "API Keys",
+    "module_code": "keys.view",
+    "module_label": "API 密钥",
+    "children": [
+      {
+        "perm_name": "Create API Key",
+        "front_perm_code": "keys.create",
+        "api_perm_code": "",
+        "perm_label": "新增"
+      },
+      {
+        "perm_name": "Update API Key",
+        "front_perm_code": "keys.update",
+        "api_perm_code": "",
+        "perm_label": "编辑"
+      },
+      {
+        "perm_name": "Delete API Key",
+        "front_perm_code": "keys.delete",
+        "api_perm_code": "",
+        "perm_label": "删除"
+      },
+      {
+        "perm_name": "Disable API Key",
+        "front_perm_code": "keys.disable",
+        "api_perm_code": "",
+        "perm_label": "禁用"
+      }
+    ]
+  },
+  {
+    "module_name": "Model List",
+    "module_code": "pricing.view",
+    "module_label": "模型列表",
+    "children": []
+  },
+  {
+    "module_name": "Usage Logs",
+    "module_code": "usage-logs.view",
+    "module_label": "调用日志",
+    "children": []
+  },
+  {
+    "module_name": "System Settings",
+    "module_code": "settings.view",
+    "module_label": "系统设置",
+    "children": []
+  }
+]
+```

+ 6 - 0
default/src/components/layout/components/system-brand.tsx

@@ -69,7 +69,10 @@ export function SystemBrand(props: SystemBrandProps) {
           <img
             src={logo}
             alt={t('Logo')}
+            width={20}
+            height={20}
             className='size-full rounded-md object-cover'
+            style={{ width: 20, height: 20 }}
           />
         </div>
         <span className='max-w-[12rem] truncate'>{name}</span>
@@ -89,7 +92,10 @@ export function SystemBrand(props: SystemBrandProps) {
             <img
               src={logo}
               alt={t('Logo')}
+              width={32}
+              height={32}
               className='size-full rounded-lg object-cover'
+              style={{ width: 32, height: 32 }}
             />
           </div>
           <div className='grid flex-1 text-start text-sm leading-tight group-data-[collapsible=icon]:hidden'>

+ 6 - 0
default/src/features/auth/auth-layout.tsx

@@ -65,7 +65,10 @@ export function AuthLayout(props: AuthLayoutProps) {
                 <img
                   src={logo}
                   alt={t('Logo')}
+                  width={48}
+                  height={48}
                   className='h-12 w-12 rounded-xl object-cover'
+                  style={{ width: 48, height: 48 }}
                 />
               )}
             </div>
@@ -110,7 +113,10 @@ export function AuthLayout(props: AuthLayoutProps) {
               <img
                 src={logo}
                 alt={t('Logo')}
+                width={32}
+                height={32}
                 className='h-8 w-8 rounded-full object-cover'
+                style={{ width: 32, height: 32 }}
               />
             )}
           </div>

+ 3 - 2
default/src/features/auth/sign-in/index.tsx

@@ -37,7 +37,8 @@ export function SignIn() {
           <h2 className='text-center text-2xl font-semibold tracking-tight sm:text-left'>
             {t('Sign in')}
           </h2>
-          {!status?.self_use_mode_enabled &&
+          {/* 注册链接 暂时不开放 */}
+          {/* {!status?.self_use_mode_enabled &&
             status?.register_enabled !== false && (
               <p className='text-muted-foreground text-left text-sm sm:text-base'>
                 {t("Don't have an account?")}{' '}
@@ -49,7 +50,7 @@ export function SignIn() {
                 </Link>
                 .
               </p>
-            )}
+            )} */}
         </div>
 
         <UserAuthForm redirectTo={redirect} />