diff --git a/README.md b/README.md index 8c68d1e9cea691d43c49397bb042b5f70bbb7a17..6b23357a7102a047dba7b0e11a340995209b9abd 100644 --- a/README.md +++ b/README.md @@ -1,12 +1,12 @@

logo

-

RuoYi-Vue-FastAPI v1.3.3

+

RuoYi-Vue-FastAPI v1.4.0

基于RuoYi-Vue+FastAPI前后端分离的快速开发框架

- + diff --git a/ruoyi-fastapi-backend/.env.dev b/ruoyi-fastapi-backend/.env.dev index 311ac45b678c1ebe52cd093a9fc20024c027846b..3ce6c6b6cb3f9cfa220854e15b799dd817b3fa7b 100644 --- a/ruoyi-fastapi-backend/.env.dev +++ b/ruoyi-fastapi-backend/.env.dev @@ -10,7 +10,7 @@ APP_HOST = '0.0.0.0' # 应用端口 APP_PORT = 9099 # 应用版本 -APP_VERSION= '1.3.3' +APP_VERSION= '1.4.0' # 应用是否开启热重载 APP_RELOAD = true # 应用是否开启IP归属区域查询 diff --git a/ruoyi-fastapi-backend/.env.prod b/ruoyi-fastapi-backend/.env.prod index 68a04b6b2a581372c379c04025b588f0f3380cce..d61b1c50a02feac9d092d0a4e8ae0b30f4ad8941 100644 --- a/ruoyi-fastapi-backend/.env.prod +++ b/ruoyi-fastapi-backend/.env.prod @@ -10,7 +10,7 @@ APP_HOST = '0.0.0.0' # 应用端口 APP_PORT = 9099 # 应用版本 -APP_VERSION= '1.3.3' +APP_VERSION= '1.4.0' # 应用是否开启热重载 APP_RELOAD = false # 应用是否开启IP归属区域查询 diff --git a/ruoyi-fastapi-backend/module_admin/controller/config_controller.py b/ruoyi-fastapi-backend/module_admin/controller/config_controller.py index d594da85df0d374227623f9acefff4697d38a67c..e41fe4f2faaac762cac9c670452fc20fb8f0d59c 100644 --- a/ruoyi-fastapi-backend/module_admin/controller/config_controller.py +++ b/ruoyi-fastapi-backend/module_admin/controller/config_controller.py @@ -1,5 +1,5 @@ from datetime import datetime -from fastapi import APIRouter, Depends, Request +from fastapi import APIRouter, Depends, Form, Query, Request from pydantic_validation_decorator import ValidateFields from sqlalchemy.ext.asyncio import AsyncSession from config.enums import BusinessType @@ -24,7 +24,7 @@ configController = APIRouter(prefix='/system/config', dependencies=[Depends(Logi ) async def get_system_config_list( request: Request, - config_page_query: ConfigPageQueryModel = Depends(ConfigPageQueryModel.as_query), + config_page_query: ConfigPageQueryModel = Query(), query_db: AsyncSession = Depends(get_db), ): # 获取分页数据 @@ -112,7 +112,7 @@ async def query_system_config(request: Request, config_key: str): @Log(title='参数管理', business_type=BusinessType.EXPORT) async def export_system_config_list( request: Request, - config_page_query: ConfigPageQueryModel = Depends(ConfigPageQueryModel.as_form), + config_page_query: ConfigPageQueryModel = Form(), query_db: AsyncSession = Depends(get_db), ): # 获取全量数据 diff --git a/ruoyi-fastapi-backend/module_admin/controller/dept_controller.py b/ruoyi-fastapi-backend/module_admin/controller/dept_controller.py index 29432069d955dd5881046099f5f278b8abe476c7..e6e6a1deebb9a0daa835c4638bdefeebe0e0fc6b 100644 --- a/ruoyi-fastapi-backend/module_admin/controller/dept_controller.py +++ b/ruoyi-fastapi-backend/module_admin/controller/dept_controller.py @@ -1,5 +1,5 @@ from datetime import datetime -from fastapi import APIRouter, Depends, Request +from fastapi import APIRouter, Depends, Query, Request from pydantic_validation_decorator import ValidateFields from sqlalchemy.ext.asyncio import AsyncSession from typing import List @@ -42,7 +42,7 @@ async def get_system_dept_tree_for_edit_option( ) async def get_system_dept_list( request: Request, - dept_query: DeptQueryModel = Depends(DeptQueryModel.as_query), + dept_query: DeptQueryModel = Query(), query_db: AsyncSession = Depends(get_db), data_scope_sql: str = Depends(GetDataScope('SysDept')), ): diff --git a/ruoyi-fastapi-backend/module_admin/controller/dict_controller.py b/ruoyi-fastapi-backend/module_admin/controller/dict_controller.py index f86dbac3ac39eec4ad89acddd9a61194c18c0ff8..a88b02e473d5705cebe642a1824cc9075b1e54ca 100644 --- a/ruoyi-fastapi-backend/module_admin/controller/dict_controller.py +++ b/ruoyi-fastapi-backend/module_admin/controller/dict_controller.py @@ -1,5 +1,5 @@ from datetime import datetime -from fastapi import APIRouter, Depends, Request +from fastapi import APIRouter, Depends, Form, Query, Request from pydantic_validation_decorator import ValidateFields from sqlalchemy.ext.asyncio import AsyncSession from typing import List @@ -32,7 +32,7 @@ dictController = APIRouter(prefix='/system/dict', dependencies=[Depends(LoginSer ) async def get_system_dict_type_list( request: Request, - dict_type_page_query: DictTypePageQueryModel = Depends(DictTypePageQueryModel.as_query), + dict_type_page_query: DictTypePageQueryModel = Query(), query_db: AsyncSession = Depends(get_db), ): # 获取分页数据 @@ -123,7 +123,7 @@ async def query_detail_system_dict_type(request: Request, dict_id: int, query_db @Log(title='字典类型', business_type=BusinessType.EXPORT) async def export_system_dict_type_list( request: Request, - dict_type_page_query: DictTypePageQueryModel = Depends(DictTypePageQueryModel.as_form), + dict_type_page_query: DictTypePageQueryModel = Form(), query_db: AsyncSession = Depends(get_db), ): # 获取全量数据 @@ -152,7 +152,7 @@ async def query_system_dict_type_data(request: Request, dict_type: str, query_db ) async def get_system_dict_data_list( request: Request, - dict_data_page_query: DictDataPageQueryModel = Depends(DictDataPageQueryModel.as_query), + dict_data_page_query: DictDataPageQueryModel = Query(), query_db: AsyncSession = Depends(get_db), ): # 获取分页数据 @@ -226,7 +226,7 @@ async def query_detail_system_dict_data(request: Request, dict_code: int, query_ @Log(title='字典数据', business_type=BusinessType.EXPORT) async def export_system_dict_data_list( request: Request, - dict_data_page_query: DictDataPageQueryModel = Depends(DictDataPageQueryModel.as_form), + dict_data_page_query: DictDataPageQueryModel = Form(), query_db: AsyncSession = Depends(get_db), ): # 获取全量数据 diff --git a/ruoyi-fastapi-backend/module_admin/controller/job_controller.py b/ruoyi-fastapi-backend/module_admin/controller/job_controller.py index 0c08fffbfe3ef32baa1e9096cd98fe923f2d46dd..67153f286c4d0835470bf68e83da9f715493a65f 100644 --- a/ruoyi-fastapi-backend/module_admin/controller/job_controller.py +++ b/ruoyi-fastapi-backend/module_admin/controller/job_controller.py @@ -1,5 +1,5 @@ from datetime import datetime -from fastapi import APIRouter, Depends, Request +from fastapi import APIRouter, Depends, Form, Query, Request from pydantic_validation_decorator import ValidateFields from sqlalchemy.ext.asyncio import AsyncSession from config.enums import BusinessType @@ -32,7 +32,7 @@ jobController = APIRouter(prefix='/monitor', dependencies=[Depends(LoginService. ) async def get_system_job_list( request: Request, - job_page_query: JobPageQueryModel = Depends(JobPageQueryModel.as_query), + job_page_query: JobPageQueryModel = Query(), query_db: AsyncSession = Depends(get_db), ): # 获取分页数据 @@ -132,7 +132,7 @@ async def query_detail_system_job(request: Request, job_id: int, query_db: Async @Log(title='定时任务', business_type=BusinessType.EXPORT) async def export_system_job_list( request: Request, - job_page_query: JobPageQueryModel = Depends(JobPageQueryModel.as_form), + job_page_query: JobPageQueryModel = Form(), query_db: AsyncSession = Depends(get_db), ): # 获取全量数据 @@ -148,7 +148,7 @@ async def export_system_job_list( ) async def get_system_job_log_list( request: Request, - job_log_page_query: JobLogPageQueryModel = Depends(JobLogPageQueryModel.as_query), + job_log_page_query: JobLogPageQueryModel = Query(), query_db: AsyncSession = Depends(get_db), ): # 获取分页数据 @@ -183,7 +183,7 @@ async def delete_system_job_log(request: Request, job_log_ids: str, query_db: As @Log(title='定时任务调度日志', business_type=BusinessType.EXPORT) async def export_system_job_log_list( request: Request, - job_log_page_query: JobLogPageQueryModel = Depends(JobLogPageQueryModel.as_form), + job_log_page_query: JobLogPageQueryModel = Form(), query_db: AsyncSession = Depends(get_db), ): # 获取全量数据 diff --git a/ruoyi-fastapi-backend/module_admin/controller/log_controller.py b/ruoyi-fastapi-backend/module_admin/controller/log_controller.py index 4d0b55cdece5ce9a2da774bbf3527cbf0a79fbe2..41421e86a02adb77da39c47263733e4623f246bf 100644 --- a/ruoyi-fastapi-backend/module_admin/controller/log_controller.py +++ b/ruoyi-fastapi-backend/module_admin/controller/log_controller.py @@ -1,4 +1,4 @@ -from fastapi import APIRouter, Depends, Request +from fastapi import APIRouter, Depends, Form, Query, Request from sqlalchemy.ext.asyncio import AsyncSession from config.enums import BusinessType from config.get_db import get_db @@ -29,7 +29,7 @@ logController = APIRouter(prefix='/monitor', dependencies=[Depends(LoginService. ) async def get_system_operation_log_list( request: Request, - operation_log_page_query: OperLogPageQueryModel = Depends(OperLogPageQueryModel.as_query), + operation_log_page_query: OperLogPageQueryModel = Query(), query_db: AsyncSession = Depends(get_db), ): # 获取分页数据 @@ -66,7 +66,7 @@ async def delete_system_operation_log(request: Request, oper_ids: str, query_db: @Log(title='操作日志', business_type=BusinessType.EXPORT) async def export_system_operation_log_list( request: Request, - operation_log_page_query: OperLogPageQueryModel = Depends(OperLogPageQueryModel.as_form), + operation_log_page_query: OperLogPageQueryModel = Form(), query_db: AsyncSession = Depends(get_db), ): # 获取全量数据 @@ -88,7 +88,7 @@ async def export_system_operation_log_list( ) async def get_system_login_log_list( request: Request, - login_log_page_query: LoginLogPageQueryModel = Depends(LoginLogPageQueryModel.as_query), + login_log_page_query: LoginLogPageQueryModel = Query(), query_db: AsyncSession = Depends(get_db), ): # 获取分页数据 @@ -137,7 +137,7 @@ async def unlock_system_user(request: Request, user_name: str, query_db: AsyncSe @Log(title='登录日志', business_type=BusinessType.EXPORT) async def export_system_login_log_list( request: Request, - login_log_page_query: LoginLogPageQueryModel = Depends(LoginLogPageQueryModel.as_form), + login_log_page_query: LoginLogPageQueryModel = Form(), query_db: AsyncSession = Depends(get_db), ): # 获取全量数据 diff --git a/ruoyi-fastapi-backend/module_admin/controller/menu_controller.py b/ruoyi-fastapi-backend/module_admin/controller/menu_controller.py index 0e3124ec8fcb762c5c840e6027b26c07d72c4fef..39e0a4fec942df7cd33f2eeef184be1875378567 100644 --- a/ruoyi-fastapi-backend/module_admin/controller/menu_controller.py +++ b/ruoyi-fastapi-backend/module_admin/controller/menu_controller.py @@ -1,5 +1,5 @@ from datetime import datetime -from fastapi import APIRouter, Depends, Request +from fastapi import APIRouter, Depends, Query, Request from pydantic_validation_decorator import ValidateFields from sqlalchemy.ext.asyncio import AsyncSession from typing import List @@ -48,7 +48,7 @@ async def get_system_role_menu_tree( ) async def get_system_menu_list( request: Request, - menu_query: MenuQueryModel = Depends(MenuQueryModel.as_query), + menu_query: MenuQueryModel = Query(), query_db: AsyncSession = Depends(get_db), current_user: CurrentUserModel = Depends(LoginService.get_current_user), ): diff --git a/ruoyi-fastapi-backend/module_admin/controller/notice_controller.py b/ruoyi-fastapi-backend/module_admin/controller/notice_controller.py index e1e4aa169ec1c1f80a6e4510c6e82d3ec51706b1..ffff7b38f102ef2610a482ed94b9759e46f40f56 100644 --- a/ruoyi-fastapi-backend/module_admin/controller/notice_controller.py +++ b/ruoyi-fastapi-backend/module_admin/controller/notice_controller.py @@ -1,5 +1,5 @@ from datetime import datetime -from fastapi import APIRouter, Depends, Request +from fastapi import APIRouter, Depends, Query, Request from pydantic_validation_decorator import ValidateFields from sqlalchemy.ext.asyncio import AsyncSession from config.enums import BusinessType @@ -23,7 +23,7 @@ noticeController = APIRouter(prefix='/system/notice', dependencies=[Depends(Logi ) async def get_system_notice_list( request: Request, - notice_page_query: NoticePageQueryModel = Depends(NoticePageQueryModel.as_query), + notice_page_query: NoticePageQueryModel = Query(), query_db: AsyncSession = Depends(get_db), ): # 获取分页数据 diff --git a/ruoyi-fastapi-backend/module_admin/controller/online_controller.py b/ruoyi-fastapi-backend/module_admin/controller/online_controller.py index bf65c8f5176e491ba197801929361c4c7b341428..04538552858a36cc9791192cff630f8f7bbe8053 100644 --- a/ruoyi-fastapi-backend/module_admin/controller/online_controller.py +++ b/ruoyi-fastapi-backend/module_admin/controller/online_controller.py @@ -1,4 +1,4 @@ -from fastapi import APIRouter, Depends, Request +from fastapi import APIRouter, Depends, Query, Request from sqlalchemy.ext.asyncio import AsyncSession from config.enums import BusinessType from config.get_db import get_db @@ -18,9 +18,7 @@ onlineController = APIRouter(prefix='/monitor/online', dependencies=[Depends(Log @onlineController.get( '/list', response_model=PageResponseModel, dependencies=[Depends(CheckUserInterfaceAuth('monitor:online:list'))] ) -async def get_monitor_online_list( - request: Request, online_page_query: OnlineQueryModel = Depends(OnlineQueryModel.as_query) -): +async def get_monitor_online_list(request: Request, online_page_query: OnlineQueryModel = Query()): # 获取全量数据 online_query_result = await OnlineService.get_online_list_services(request, online_page_query) logger.info('获取成功') diff --git a/ruoyi-fastapi-backend/module_admin/controller/post_controler.py b/ruoyi-fastapi-backend/module_admin/controller/post_controler.py index 42190763c66e75fbad16dc2626f72bac5188efdd..9e3f42ca329c5324095a80978ae0a897df37113b 100644 --- a/ruoyi-fastapi-backend/module_admin/controller/post_controler.py +++ b/ruoyi-fastapi-backend/module_admin/controller/post_controler.py @@ -1,5 +1,5 @@ from datetime import datetime -from fastapi import APIRouter, Depends, Request +from fastapi import APIRouter, Depends, Form, Query, Request from pydantic_validation_decorator import ValidateFields from sqlalchemy.ext.asyncio import AsyncSession from config.enums import BusinessType @@ -24,7 +24,7 @@ postController = APIRouter(prefix='/system/post', dependencies=[Depends(LoginSer ) async def get_system_post_list( request: Request, - post_page_query: PostPageQueryModel = Depends(PostPageQueryModel.as_query), + post_page_query: PostPageQueryModel = Query(), query_db: AsyncSession = Depends(get_db), ): # 获取分页数据 @@ -94,7 +94,7 @@ async def query_detail_system_post(request: Request, post_id: int, query_db: Asy @Log(title='岗位管理', business_type=BusinessType.EXPORT) async def export_system_post_list( request: Request, - post_page_query: PostPageQueryModel = Depends(PostPageQueryModel.as_form), + post_page_query: PostPageQueryModel = Form(), query_db: AsyncSession = Depends(get_db), ): # 获取全量数据 diff --git a/ruoyi-fastapi-backend/module_admin/controller/role_controller.py b/ruoyi-fastapi-backend/module_admin/controller/role_controller.py index e092bcc94a65a8bdb4b288824bcbecfd1261e8d4..f613c63507f2b2db35f84d13e53979d2edfe39d5 100644 --- a/ruoyi-fastapi-backend/module_admin/controller/role_controller.py +++ b/ruoyi-fastapi-backend/module_admin/controller/role_controller.py @@ -1,5 +1,5 @@ from datetime import datetime -from fastapi import APIRouter, Depends, Request +from fastapi import APIRouter, Depends, Form, Query, Request from pydantic_validation_decorator import ValidateFields from sqlalchemy.ext.asyncio import AsyncSession from config.enums import BusinessType @@ -43,7 +43,7 @@ async def get_system_role_dept_tree( ) async def get_system_role_list( request: Request, - role_page_query: RolePageQueryModel = Depends(RolePageQueryModel.as_query), + role_page_query: RolePageQueryModel = Query(), query_db: AsyncSession = Depends(get_db), data_scope_sql: str = Depends(GetDataScope('SysDept')), ): @@ -165,7 +165,7 @@ async def query_detail_system_role( @Log(title='角色管理', business_type=BusinessType.EXPORT) async def export_system_role_list( request: Request, - role_page_query: RolePageQueryModel = Depends(RolePageQueryModel.as_form), + role_page_query: RolePageQueryModel = Form(), query_db: AsyncSession = Depends(get_db), data_scope_sql: str = Depends(GetDataScope('SysDept')), ): @@ -211,7 +211,7 @@ async def reset_system_role_status( ) async def get_system_allocated_user_list( request: Request, - user_role: UserRolePageQueryModel = Depends(UserRolePageQueryModel.as_query), + user_role: UserRolePageQueryModel = Query(), query_db: AsyncSession = Depends(get_db), data_scope_sql: str = Depends(GetDataScope('SysUser')), ): @@ -230,7 +230,7 @@ async def get_system_allocated_user_list( ) async def get_system_unallocated_user_list( request: Request, - user_role: UserRolePageQueryModel = Depends(UserRolePageQueryModel.as_query), + user_role: UserRolePageQueryModel = Query(), query_db: AsyncSession = Depends(get_db), data_scope_sql: str = Depends(GetDataScope('SysUser')), ): @@ -246,7 +246,7 @@ async def get_system_unallocated_user_list( @Log(title='角色管理', business_type=BusinessType.GRANT) async def add_system_role_user( request: Request, - add_role_user: CrudUserRoleModel = Depends(CrudUserRoleModel.as_query), + add_role_user: CrudUserRoleModel = Query(), query_db: AsyncSession = Depends(get_db), current_user: CurrentUserModel = Depends(LoginService.get_current_user), data_scope_sql: str = Depends(GetDataScope('SysDept')), @@ -274,7 +274,7 @@ async def cancel_system_role_user( @Log(title='角色管理', business_type=BusinessType.GRANT) async def batch_cancel_system_role_user( request: Request, - batch_cancel_user_role: CrudUserRoleModel = Depends(CrudUserRoleModel.as_query), + batch_cancel_user_role: CrudUserRoleModel = Query(), query_db: AsyncSession = Depends(get_db), ): batch_cancel_user_role_result = await UserService.delete_user_role_services(query_db, batch_cancel_user_role) diff --git a/ruoyi-fastapi-backend/module_admin/controller/user_controller.py b/ruoyi-fastapi-backend/module_admin/controller/user_controller.py index 253535c4b0479e727ded50b689e6c934888379e9..ba17b0ab4512a3a3dc630bfd2aacf05dc7d558ea 100644 --- a/ruoyi-fastapi-backend/module_admin/controller/user_controller.py +++ b/ruoyi-fastapi-backend/module_admin/controller/user_controller.py @@ -1,6 +1,6 @@ import os from datetime import datetime -from fastapi import APIRouter, Depends, File, Query, Request, UploadFile +from fastapi import APIRouter, Depends, File, Form, Query, Request, UploadFile from sqlalchemy.ext.asyncio import AsyncSession from typing import Optional, Union from pydantic_validation_decorator import ValidateFields @@ -57,7 +57,7 @@ async def get_system_dept_tree( ) async def get_system_user_list( request: Request, - user_page_query: UserPageQueryModel = Depends(UserPageQueryModel.as_query), + user_page_query: UserPageQueryModel = Query(), query_db: AsyncSession = Depends(get_db), data_scope_sql: str = Depends(GetDataScope('SysUser')), ): @@ -296,7 +296,7 @@ async def change_system_user_profile_info( @Log(title='个人信息', business_type=BusinessType.UPDATE) async def reset_system_user_password( request: Request, - reset_password: ResetPasswordModel = Depends(ResetPasswordModel.as_query), + reset_password: ResetPasswordModel = Query(), query_db: AsyncSession = Depends(get_db), current_user: CurrentUserModel = Depends(LoginService.get_current_user), ): @@ -344,7 +344,7 @@ async def export_system_user_template(request: Request, query_db: AsyncSession = @Log(title='用户管理', business_type=BusinessType.EXPORT) async def export_system_user_list( request: Request, - user_page_query: UserPageQueryModel = Depends(UserPageQueryModel.as_form), + user_page_query: UserPageQueryModel = Form(), query_db: AsyncSession = Depends(get_db), data_scope_sql: str = Depends(GetDataScope('SysUser')), ): diff --git a/ruoyi-fastapi-backend/module_admin/entity/vo/config_vo.py b/ruoyi-fastapi-backend/module_admin/entity/vo/config_vo.py index c398d238dc159ada74a65fe0cbfd37e51f5c8911..6677e73e286e0adca892374bcd0c1ecce5aa8038 100644 --- a/ruoyi-fastapi-backend/module_admin/entity/vo/config_vo.py +++ b/ruoyi-fastapi-backend/module_admin/entity/vo/config_vo.py @@ -3,7 +3,6 @@ from pydantic import BaseModel, ConfigDict, Field from pydantic.alias_generators import to_camel from pydantic_validation_decorator import NotBlank, Size from typing import Literal, Optional -from module_admin.annotation.pydantic_annotation import as_form, as_query class ConfigModel(BaseModel): @@ -54,8 +53,6 @@ class ConfigQueryModel(ConfigModel): end_time: Optional[str] = Field(default=None, description='结束时间') -@as_query -@as_form class ConfigPageQueryModel(ConfigQueryModel): """ 参数配置管理分页查询模型 diff --git a/ruoyi-fastapi-backend/module_admin/entity/vo/dept_vo.py b/ruoyi-fastapi-backend/module_admin/entity/vo/dept_vo.py index dcad1177156a0698b540a382549d5f77bd80084a..521dc286d223ed50444f93be794214e16a945f6e 100644 --- a/ruoyi-fastapi-backend/module_admin/entity/vo/dept_vo.py +++ b/ruoyi-fastapi-backend/module_admin/entity/vo/dept_vo.py @@ -3,7 +3,6 @@ from pydantic import BaseModel, ConfigDict, Field from pydantic.alias_generators import to_camel from pydantic_validation_decorator import Network, NotBlank, Size from typing import Literal, Optional -from module_admin.annotation.pydantic_annotation import as_query class DeptModel(BaseModel): @@ -53,7 +52,6 @@ class DeptModel(BaseModel): self.get_email() -@as_query class DeptQueryModel(DeptModel): """ 部门管理不分页查询模型 diff --git a/ruoyi-fastapi-backend/module_admin/entity/vo/dict_vo.py b/ruoyi-fastapi-backend/module_admin/entity/vo/dict_vo.py index 49616749799379ffa917997aa5b228634ff33e7c..661bcada49afddadca5333d17cfc6b153093aee0 100644 --- a/ruoyi-fastapi-backend/module_admin/entity/vo/dict_vo.py +++ b/ruoyi-fastapi-backend/module_admin/entity/vo/dict_vo.py @@ -3,7 +3,6 @@ from pydantic import BaseModel, ConfigDict, Field from pydantic.alias_generators import to_camel from pydantic_validation_decorator import NotBlank, Pattern, Size from typing import Literal, Optional -from module_admin.annotation.pydantic_annotation import as_form, as_query class DictTypeModel(BaseModel): @@ -100,8 +99,6 @@ class DictTypeQueryModel(DictTypeModel): end_time: Optional[str] = Field(default=None, description='结束时间') -@as_query -@as_form class DictTypePageQueryModel(DictTypeQueryModel): """ 字典类型管理分页查询模型 @@ -130,8 +127,6 @@ class DictDataQueryModel(DictDataModel): end_time: Optional[str] = Field(default=None, description='结束时间') -@as_query -@as_form class DictDataPageQueryModel(DictDataQueryModel): """ 字典数据管理分页查询模型 diff --git a/ruoyi-fastapi-backend/module_admin/entity/vo/job_vo.py b/ruoyi-fastapi-backend/module_admin/entity/vo/job_vo.py index 4dd9e38a0ab8e13ab3ed5b47b084aaf38a690749..e233902510b709ca72700f8fb63b271c533b6280 100644 --- a/ruoyi-fastapi-backend/module_admin/entity/vo/job_vo.py +++ b/ruoyi-fastapi-backend/module_admin/entity/vo/job_vo.py @@ -3,7 +3,6 @@ from pydantic import BaseModel, ConfigDict, Field from pydantic.alias_generators import to_camel from pydantic_validation_decorator import NotBlank, Size from typing import Literal, Optional -from module_admin.annotation.pydantic_annotation import as_form, as_query class JobModel(BaseModel): @@ -77,8 +76,6 @@ class JobQueryModel(JobModel): end_time: Optional[str] = Field(default=None, description='结束时间') -@as_query -@as_form class JobPageQueryModel(JobQueryModel): """ 定时任务管理分页查询模型 @@ -115,8 +112,6 @@ class JobLogQueryModel(JobLogModel): end_time: Optional[str] = Field(default=None, description='结束时间') -@as_query -@as_form class JobLogPageQueryModel(JobLogQueryModel): """ 定时任务日志管理分页查询模型 diff --git a/ruoyi-fastapi-backend/module_admin/entity/vo/log_vo.py b/ruoyi-fastapi-backend/module_admin/entity/vo/log_vo.py index 18665132425f975f393de7ce456c0fc205488397..45ba3747ec928f4058498b777ce97ff5773b3d22 100644 --- a/ruoyi-fastapi-backend/module_admin/entity/vo/log_vo.py +++ b/ruoyi-fastapi-backend/module_admin/entity/vo/log_vo.py @@ -2,7 +2,6 @@ from datetime import datetime from pydantic import BaseModel, ConfigDict, Field from pydantic.alias_generators import to_camel from typing import Literal, Optional -from module_admin.annotation.pydantic_annotation import as_form, as_query class OperLogModel(BaseModel): @@ -68,8 +67,6 @@ class OperLogQueryModel(OperLogModel): end_time: Optional[str] = Field(default=None, description='结束时间') -@as_query -@as_form class OperLogPageQueryModel(OperLogQueryModel): """ 操作日志管理分页查询模型 @@ -102,8 +99,6 @@ class LoginLogQueryModel(LogininforModel): end_time: Optional[str] = Field(default=None, description='结束时间') -@as_query -@as_form class LoginLogPageQueryModel(LoginLogQueryModel): """ 登录日志管理分页查询模型 diff --git a/ruoyi-fastapi-backend/module_admin/entity/vo/menu_vo.py b/ruoyi-fastapi-backend/module_admin/entity/vo/menu_vo.py index 9dc8d75434f4c53a7f2473de1f1f0c9ed490ea74..4cff60ecb0deb073f7260ca8e49907cc6d20f0fb 100644 --- a/ruoyi-fastapi-backend/module_admin/entity/vo/menu_vo.py +++ b/ruoyi-fastapi-backend/module_admin/entity/vo/menu_vo.py @@ -3,7 +3,6 @@ from pydantic import BaseModel, ConfigDict, Field from pydantic.alias_generators import to_camel from pydantic_validation_decorator import NotBlank, Size from typing import Literal, Optional -from module_admin.annotation.pydantic_annotation import as_query class MenuModel(BaseModel): @@ -68,7 +67,6 @@ class MenuModel(BaseModel): self.get_perms() -@as_query class MenuQueryModel(MenuModel): """ 菜单管理不分页查询模型 diff --git a/ruoyi-fastapi-backend/module_admin/entity/vo/notice_vo.py b/ruoyi-fastapi-backend/module_admin/entity/vo/notice_vo.py index bbf0a07d6162b8d86130973d68d384cf29969408..51d037286b49be4059b5e1313fee8d6104f5d9f3 100644 --- a/ruoyi-fastapi-backend/module_admin/entity/vo/notice_vo.py +++ b/ruoyi-fastapi-backend/module_admin/entity/vo/notice_vo.py @@ -3,7 +3,6 @@ from pydantic import BaseModel, ConfigDict, Field from pydantic.alias_generators import to_camel from pydantic_validation_decorator import NotBlank, Size, Xss from typing import Literal, Optional -from module_admin.annotation.pydantic_annotation import as_form, as_query class NoticeModel(BaseModel): @@ -43,8 +42,6 @@ class NoticeQueryModel(NoticeModel): end_time: Optional[str] = Field(default=None, description='结束时间') -@as_query -@as_form class NoticePageQueryModel(NoticeQueryModel): """ 通知公告管理分页查询模型 diff --git a/ruoyi-fastapi-backend/module_admin/entity/vo/online_vo.py b/ruoyi-fastapi-backend/module_admin/entity/vo/online_vo.py index 11bb4758ace3962e3568617be9f0c0030f0ee22a..e83ba003a1260afda88ac0382e44bc4c585b41ab 100644 --- a/ruoyi-fastapi-backend/module_admin/entity/vo/online_vo.py +++ b/ruoyi-fastapi-backend/module_admin/entity/vo/online_vo.py @@ -2,7 +2,6 @@ from datetime import datetime from pydantic import BaseModel, ConfigDict, Field from pydantic.alias_generators import to_camel from typing import Optional -from module_admin.annotation.pydantic_annotation import as_query class OnlineModel(BaseModel): @@ -22,7 +21,6 @@ class OnlineModel(BaseModel): login_time: Optional[datetime] = Field(default=None, description='登录时间') -@as_query class OnlineQueryModel(OnlineModel): """ 岗位管理不分页查询模型 diff --git a/ruoyi-fastapi-backend/module_admin/entity/vo/post_vo.py b/ruoyi-fastapi-backend/module_admin/entity/vo/post_vo.py index ab85103884d8490d758c3dd904d987df29028d1a..1eb7c121c14c5a4373141f03e34622b0a188d885 100644 --- a/ruoyi-fastapi-backend/module_admin/entity/vo/post_vo.py +++ b/ruoyi-fastapi-backend/module_admin/entity/vo/post_vo.py @@ -3,7 +3,6 @@ from pydantic import BaseModel, ConfigDict, Field from pydantic.alias_generators import to_camel from pydantic_validation_decorator import NotBlank, Size from typing import Literal, Optional -from module_admin.annotation.pydantic_annotation import as_form, as_query class PostModel(BaseModel): @@ -53,8 +52,6 @@ class PostQueryModel(PostModel): end_time: Optional[str] = Field(default=None, description='结束时间') -@as_query -@as_form class PostPageQueryModel(PostQueryModel): """ 岗位管理分页查询模型 diff --git a/ruoyi-fastapi-backend/module_admin/entity/vo/role_vo.py b/ruoyi-fastapi-backend/module_admin/entity/vo/role_vo.py index d6f60bc7c384c7956e97f5b6ce64d1ded792417f..dd1a535589a1aef5b0e9a53d900db3a9c5fc6872 100644 --- a/ruoyi-fastapi-backend/module_admin/entity/vo/role_vo.py +++ b/ruoyi-fastapi-backend/module_admin/entity/vo/role_vo.py @@ -3,7 +3,6 @@ from pydantic import BaseModel, ConfigDict, Field, field_validator, model_valida from pydantic.alias_generators import to_camel from pydantic_validation_decorator import NotBlank, Size from typing import List, Literal, Optional, Union -from module_admin.annotation.pydantic_annotation import as_form, as_query class RoleModel(BaseModel): @@ -104,8 +103,6 @@ class RoleQueryModel(RoleModel): end_time: Optional[str] = Field(default=None, description='结束时间') -@as_query -@as_form class RolePageQueryModel(RoleQueryModel): """ 角色管理分页查询模型 diff --git a/ruoyi-fastapi-backend/module_admin/entity/vo/user_vo.py b/ruoyi-fastapi-backend/module_admin/entity/vo/user_vo.py index 67a1d14162538399a7777d696e226044b76298e7..19a9320404cbacc658b8a019cefdfb755acd3f01 100644 --- a/ruoyi-fastapi-backend/module_admin/entity/vo/user_vo.py +++ b/ruoyi-fastapi-backend/module_admin/entity/vo/user_vo.py @@ -5,7 +5,6 @@ from pydantic.alias_generators import to_camel from pydantic_validation_decorator import Network, NotBlank, Size, Xss from typing import List, Literal, Optional, Union from exceptions.exception import ModelValidatorException -from module_admin.annotation.pydantic_annotation import as_form, as_query from module_admin.entity.vo.dept_vo import DeptModel from module_admin.entity.vo.post_vo import PostModel from module_admin.entity.vo.role_vo import RoleModel @@ -162,8 +161,6 @@ class UserQueryModel(UserModel): end_time: Optional[str] = Field(default=None, description='结束时间') -@as_query -@as_form class UserPageQueryModel(UserQueryModel): """ 用户管理分页查询模型 @@ -191,7 +188,6 @@ class EditUserModel(AddUserModel): role: Optional[List] = Field(default=[], description='角色信息') -@as_query class ResetPasswordModel(BaseModel): """ 重置密码模型 @@ -241,7 +237,6 @@ class UserRoleQueryModel(UserModel): role_id: Optional[int] = Field(default=None, description='角色ID') -@as_query class UserRolePageQueryModel(UserRoleQueryModel): """ 用户角色关联管理分页查询模型 @@ -270,7 +265,6 @@ class UserRoleResponseModel(BaseModel): user: UserInfoModel = Field(description='用户信息') -@as_query class CrudUserRoleModel(BaseModel): """ 新增、删除用户关联角色及角色关联用户模型 diff --git a/ruoyi-fastapi-backend/module_admin/service/role_service.py b/ruoyi-fastapi-backend/module_admin/service/role_service.py index 7939781bfa479b07cfce923b1e8a225cd00710ad..24f9bee878a5bd1cc0b90fad472213cb8b36c1a3 100644 --- a/ruoyi-fastapi-backend/module_admin/service/role_service.py +++ b/ruoyi-fastapi-backend/module_admin/service/role_service.py @@ -144,9 +144,9 @@ class RoleService: """ add_role = RoleModel(**page_object.model_dump(by_alias=True)) if not await cls.check_role_name_unique_services(query_db, page_object): - raise ServiceException(message=f'新增角色{page_object.post_name}失败,角色名称已存在') + raise ServiceException(message=f'新增角色{page_object.role_name}失败,角色名称已存在') elif not await cls.check_role_key_unique_services(query_db, page_object): - raise ServiceException(message=f'新增角色{page_object.post_name}失败,角色权限已存在') + raise ServiceException(message=f'新增角色{page_object.role_name}失败,角色权限已存在') else: try: add_result = await RoleDao.add_role_dao(query_db, add_role) @@ -178,9 +178,9 @@ class RoleService: if role_info: if page_object.type != 'status': if not await cls.check_role_name_unique_services(query_db, page_object): - raise ServiceException(message=f'修改角色{page_object.post_name}失败,角色名称已存在') + raise ServiceException(message=f'修改角色{page_object.role_name}失败,角色名称已存在') elif not await cls.check_role_key_unique_services(query_db, page_object): - raise ServiceException(message=f'修改角色{page_object.post_name}失败,角色权限已存在') + raise ServiceException(message=f'修改角色{page_object.role_name}失败,角色权限已存在') try: await RoleDao.edit_role_dao(query_db, edit_role) if page_object.type != 'status': diff --git a/ruoyi-fastapi-backend/requirements.txt b/ruoyi-fastapi-backend/requirements.txt index 3daf29e3ae4e9d5b60e4d98dfdc35a58f564499c..c09d7b892ca990a786a63026d2e7f6663c73a839 100644 --- a/ruoyi-fastapi-backend/requirements.txt +++ b/ruoyi-fastapi-backend/requirements.txt @@ -1,7 +1,7 @@ APScheduler==3.10.4 asyncmy==0.2.9 DateTime==5.5 -fastapi[all]==0.111.1 +fastapi[all]==0.115.0 loguru==0.7.2 openpyxl==3.1.5 pandas==2.2.2 diff --git a/ruoyi-fastapi-frontend/package.json b/ruoyi-fastapi-frontend/package.json index cc13b82329157c81e021fb3398e8bedc889cdda7..21b6e7e3a36b780cf63bd9e379e5709914140f76 100644 --- a/ruoyi-fastapi-frontend/package.json +++ b/ruoyi-fastapi-frontend/package.json @@ -1,6 +1,6 @@ { "name": "vfadmin", - "version": "1.3.3", + "version": "1.4.0", "description": "vfadmin管理系统", "author": "insistence", "license": "MIT", diff --git a/ruoyi-fastapi-frontend/src/api/login.js b/ruoyi-fastapi-frontend/src/api/login.js index 8f6699b60bde4ea29e29862a81212f4fea21d8c4..83d7d61d973c5237c986a377568b1dd4e6b1f45b 100644 --- a/ruoyi-fastapi-frontend/src/api/login.js +++ b/ruoyi-fastapi-frontend/src/api/login.js @@ -2,11 +2,12 @@ import request from '@/utils/request' // 登录方法 export function login(username, password, code, uuid) { - const data = new FormData(); - data.append("username", username); - data.append("password", password); - data.append("code", code); - data.append("uuid", uuid); + const data = { + username, + password, + code, + uuid + } return request({ url: '/login', headers: {