feat(workflow): 重构工作流编排界面,使用VueFlow替换LogicFlow

refactor: 统一详情接口权限标识从query改为detail

feat(tenant): 为租户模型添加domain字段支持

fix(cron): 移除定时任务触发参数只读限制

perf(menu): 优化菜单权限标识注释说明

refactor(model): 为多个模型添加租户关联支持

style(main): 调整CSS导入顺序和格式

chore(package): 替换前端流程图库为@vue-flow系列

fix(token): 修正令牌详情接口权限标识

docs(sql): 更新菜单权限标识注释为query格式
This commit is contained in:
zhangtao
2025-12-24 01:01:34 +08:00
parent 057776c35f
commit 97c35b0780
44 changed files with 1561 additions and 934 deletions
@@ -195,7 +195,7 @@ async def get_obj_list_controller(
@UserRouter.get("/detail/{id}", summary="查询用户详情", description="查询用户详情")
async def get_obj_detail_controller(
id: int = Path(..., description="用户ID"),
auth: AuthSchema = Depends(AuthPermission(["module_system:user:query"])),
auth: AuthSchema = Depends(AuthPermission(["module_system:user:detail"])),
) -> JSONResponse:
"""
查询用户详情
@@ -298,7 +298,7 @@ async def batch_set_available_obj_controller(
return SuccessResponse(msg="批量修改用户状态成功")
@UserRouter.post('/import/template', summary="获取用户导入模板", description="获取用户导入模板", dependencies=[Depends(AuthPermission(["module_system:user:import"]))])
@UserRouter.post('/import/template', summary="获取用户导入模板", description="获取用户导入模板", dependencies=[Depends(AuthPermission(["module_system:user:download"]))])
async def export_obj_template_controller()-> StreamingResponse:
"""
获取用户导入模板
@@ -5,7 +5,7 @@ from datetime import datetime
from sqlalchemy import Boolean, String, Integer, DateTime, ForeignKey
from sqlalchemy.orm import relationship, Mapped, mapped_column
from app.core.base_model import MappedBase, ModelMixin, UserMixin
from app.core.base_model import MappedBase, ModelMixin, TenantMixin, UserMixin
if TYPE_CHECKING:
from app.api.v1.module_system.dept.model import DeptModel
@@ -59,13 +59,13 @@ class UserPositionsModel(MappedBase):
)
class UserModel(ModelMixin, UserMixin):
class UserModel(ModelMixin, TenantMixin, UserMixin):
"""
用户模型
"""
__tablename__: str = "sys_user"
__table_args__: dict[str, str] = ({'comment': '用户表'})
__loader_options__: list[str] = ["dept", "roles", "positions", "created_by", "updated_by"]
__loader_options__: list[str] = ["dept", "roles", "positions", "created_by", "updated_by", "tenant"]
username: Mapped[str] = mapped_column(String(64), nullable=False, unique=True, comment="用户名/登录账号")
password: Mapped[str] = mapped_column(String(255), nullable=False, comment="密码哈希")