feat(product): 新增产品管理模块与字典组件功能

- 新增产品管理相关路由和页面(dashboard、list、requirement、setting)
- 实现产品基础信息编辑弹窗组件(base-info-dialog.vue)
- 添加运行时字典功能(dict-select、dict-text、dict-tag组件)
- 集成字典管理store和API调用
- 规范ID类型定义为string避免精度丢失问题
- 完善国际化资源文件支持中英文对照
- 新增对象上下文业务域入口页导航实现说明
- 添加Vue DevTools浮动入口注释说明
- 统一权限控制支持全局和对象作用域区分
- 规范分页查询参数类型定义与使用方式
This commit is contained in:
2026-04-23 09:05:55 +08:00
parent c5911ea34b
commit 4122dfa50d
95 changed files with 9581 additions and 801 deletions

View File

@@ -19,13 +19,26 @@ declare namespace Api {
type RoleType = 1 | 2;
type ScopeType = 'global' | 'object';
type ObjectType = 'product' | 'project';
interface ScopeQueryParams {
scopeType?: ScopeType;
objectType?: ObjectType;
}
interface Role {
/** role id */
id: number;
id: string;
/** role name */
name: string;
/** role code */
code: string;
/** scope type */
scopeType?: ScopeType;
/** object type */
objectType?: ObjectType | '' | null;
/** display sort */
sort: number;
/** status: 0 enabled, 1 disabled */
@@ -39,13 +52,12 @@ declare namespace Api {
}
type RoleSearchParams = CommonType.RecordNullable<Pick<Role, 'name' | 'code' | 'status'>> &
PageParams & {
createTime?: string[];
};
PageParams & { createTime?: string[] } & ScopeQueryParams;
type SaveRoleParams = Pick<Role, 'name' | 'code' | 'sort' | 'status'> & {
type SaveRoleParams = (Pick<Role, 'name' | 'code' | 'sort' | 'status'> & {
remark?: string | null;
};
}) &
ScopeQueryParams;
type RoleList = PageResult<Role>;
@@ -149,7 +161,7 @@ declare namespace Api {
nickname?: string;
mobile?: string;
deptId?: number;
roleId?: number;
roleId?: string;
company?: string;
}
>;
@@ -218,7 +230,7 @@ declare namespace Api {
interface AssignUserRoleParams {
userId: number;
roleIds: number[];
roleIds: string[];
}
/**
@@ -244,17 +256,21 @@ declare namespace Api {
interface Menu {
/** menu id */
id: number;
id: string;
/** menu name */
name: string;
/** permission code */
permission?: string | null;
/** scope type */
scopeType?: ScopeType;
/** object type */
objectType?: ObjectType | '' | null;
/** menu type */
type: MenuType;
/** display sort */
sort: number;
/** parent menu id */
parentId: number;
parentId: string;
/** route path */
path?: string | null;
/** menu icon */
@@ -281,7 +297,7 @@ declare namespace Api {
children?: Menu[] | null;
}
type MenuSearchParams = CommonType.RecordNullable<Pick<Menu, 'name' | 'status'>>;
type MenuSearchParams = CommonType.RecordNullable<Pick<Menu, 'name' | 'status'>> & ScopeQueryParams;
type SaveMenuParams = Pick<
Menu,
@@ -300,12 +316,15 @@ declare namespace Api {
| 'visible'
| 'keepAlive'
| 'alwaysShow'
>;
> &
ScopeQueryParams;
interface MenuSimple {
id: number;
id: string;
name: string;
parentId: number;
parentId: string;
scopeType?: ScopeType;
objectType?: ObjectType | '' | null;
type: MenuType;
children?: MenuSimple[] | null;
}
@@ -315,8 +334,8 @@ declare namespace Api {
type MenuSimpleList = MenuSimple[];
interface AssignRoleMenuParams {
roleId: number;
menuIds: number[];
roleId: string;
menuIds: string[];
}
/**
@@ -327,11 +346,11 @@ declare namespace Api {
*/
interface UserManagementRelation {
/** 主键 ID */
id: any;
id: string | null;
/** 管理者用户 ID */
managerUserId: any;
managerUserId: string | null;
/** 被管理用户 ID */
subordinateUserId: any;
subordinateUserId: string | null;
/** 生效开始时间 */
effectiveFrom?: number | null;
/** 生效结束时间 */
@@ -350,13 +369,13 @@ declare namespace Api {
*/
interface UserManagementRelationTreeRespVO {
/** 关系记录主键 ID最高领导为 null */
id: number | null;
id: string | null;
/** 用户 ID */
userId: number;
userId: string;
/** 用户昵称 */
userNickname: string;
/** 上级用户 ID最高领导为 null */
managerUserId: number | null;
managerUserId: string | null;
/** 上级用户昵称(最高领导为 null */
managerNickname: string | null;
/** 下级用户列表(基层员工为空列表) */
@@ -371,11 +390,11 @@ declare namespace Api {
*/
interface UserManagementRelationSaveReqVO {
/** 主键 ID更新时需要 */
id?: number;
id?: string;
/** 管理者用户 ID */
managerUserId: any;
managerUserId: string | null;
/** 被管理用户 ID */
subordinateUserId: any;
subordinateUserId: string | null;
/** 生效开始时间 */
effectiveFrom?: number | null;
/** 生效结束时间 */
@@ -406,7 +425,7 @@ declare namespace Api {
*/
interface UserSimple {
/** 用户 ID */
id: number;
id: string;
/** 用户昵称 */
nickname: string;
}