diff --git a/backend/app/api/v1/module_system/user/schema.py b/backend/app/api/v1/module_system/user/schema.py index fa3d4249..8eee6179 100644 --- a/backend/app/api/v1/module_system/user/schema.py +++ b/backend/app/api/v1/module_system/user/schema.py @@ -83,7 +83,7 @@ class UserUpdateSchema(UserCreateSchema): last_login: Optional[DateTimeStr] = Field(default=None, description="最后登录时间") -class UserOutSchema(UserCreateSchema, BaseSchema): +class UserOutSchema(UserUpdateSchema, BaseSchema): """响应""" model_config = ConfigDict(arbitrary_types_allowed=True, from_attributes=True) diff --git a/backend/app/config/setting.py b/backend/app/config/setting.py index b64feb3e..fd88737e 100755 --- a/backend/app/config/setting.py +++ b/backend/app/config/setting.py @@ -72,6 +72,7 @@ class Settings(BaseSettings): ALLOW_METHODS: List[str] = ["*"] # 允许的HTTP方法 ALLOW_HEADERS: List[str] = ["*"] # 允许的请求头 ALLOW_CREDENTIALS: bool = True # 是否允许携带cookie + CORS_EXPOSE_HEADERS: list[str] = ['X-Request-ID'] # ================================================= # # ******************* 登录认证配置 ****************** # diff --git a/backend/app/core/middlewares.py b/backend/app/core/middlewares.py index 84702642..da4d5355 100644 --- a/backend/app/core/middlewares.py +++ b/backend/app/core/middlewares.py @@ -24,7 +24,8 @@ def __init__(self, app: ASGIApp) -> None: "allow_origins": settings.ALLOW_ORIGINS, "allow_methods": settings.ALLOW_METHODS, "allow_headers": settings.ALLOW_HEADERS, - "allow_credentials": settings.ALLOW_CREDENTIALS + "allow_credentials": settings.ALLOW_CREDENTIALS, + "expose_headers": settings.CORS_EXPOSE_HEADERS, } super().__init__(app, **CORSMiddlewareConfig) diff --git a/fastdocs/src/public/group.jpg b/fastdocs/src/public/group.jpg index 38d9e1ad..1d8124ab 100644 Binary files a/fastdocs/src/public/group.jpg and b/fastdocs/src/public/group.jpg differ diff --git a/frontend/src/api/generator/demo.ts b/frontend/src/api/generator/demo.ts index f63a2cde..ba5a6792 100644 --- a/frontend/src/api/generator/demo.ts +++ b/frontend/src/api/generator/demo.ts @@ -67,7 +67,7 @@ const ExampleAPI = { }); }, - importExample(body: any) { + importExample(body: FormData) { return request({ url: `${API_PATH}/import`, method: "post", diff --git a/frontend/src/api/system/dict.ts b/frontend/src/api/system/dict.ts index 9a2f44ef..75744441 100644 --- a/frontend/src/api/system/dict.ts +++ b/frontend/src/api/system/dict.ts @@ -143,6 +143,8 @@ export interface DictPageQuery extends PageQuery { start_time?: string; /** 结束时间 */ end_time?: string; + // 创建人ID + creator?: number; } export interface DictDataPageQuery extends PageQuery { @@ -151,6 +153,8 @@ export interface DictDataPageQuery extends PageQuery { status?: boolean; start_time?: string; end_time?: string; + // 创建人ID + creator?: number; } export interface DictTable { diff --git a/frontend/src/api/system/log.ts b/frontend/src/api/system/log.ts index 5e3137b2..e265357f 100644 --- a/frontend/src/api/system/log.ts +++ b/frontend/src/api/system/log.ts @@ -46,6 +46,8 @@ export interface LogPageQuery extends PageQuery { start_time?: string; /** 结束时间 */ end_time?: string; + // 创建人ID + creator?: number; } export interface LogTable { diff --git a/frontend/src/api/system/notice.ts b/frontend/src/api/system/notice.ts index 29d7af56..c94d60da 100644 --- a/frontend/src/api/system/notice.ts +++ b/frontend/src/api/system/notice.ts @@ -80,6 +80,8 @@ export interface NoticePageQuery extends PageQuery { start_time?: string; /** 结束时间 */ end_time?: string; + // 创建人ID + creator?: number; } export interface NoticeTable { diff --git a/frontend/src/api/system/params.ts b/frontend/src/api/system/params.ts index 88cab420..72d27ea6 100644 --- a/frontend/src/api/system/params.ts +++ b/frontend/src/api/system/params.ts @@ -81,6 +81,8 @@ export interface ConfigPageQuery extends PageQuery { start_time?: string; /** 结束时间 */ end_time?: string; + // 创建人ID + creator?: number; } export interface ConfigTable { diff --git a/frontend/src/api/system/position.ts b/frontend/src/api/system/position.ts index 60d24b79..2ef35d9d 100644 --- a/frontend/src/api/system/position.ts +++ b/frontend/src/api/system/position.ts @@ -69,6 +69,8 @@ export interface PositionPageQuery extends PageQuery { start_time?: string; /** 结束时间 */ end_time?: string; + // 创建人ID + creator?: number; } export interface PositionTable { diff --git a/frontend/src/api/system/role.ts b/frontend/src/api/system/role.ts index 6784121e..8cf609ca 100644 --- a/frontend/src/api/system/role.ts +++ b/frontend/src/api/system/role.ts @@ -77,6 +77,8 @@ export interface TablePageQuery extends PageQuery { start_time?: string; /** 结束时间 */ end_time?: string; + // 创建人ID + creator?: number; } export interface RoleTable { diff --git a/frontend/src/api/system/user.ts b/frontend/src/api/system/user.ts index caae4fd6..b3f753d0 100644 --- a/frontend/src/api/system/user.ts +++ b/frontend/src/api/system/user.ts @@ -159,6 +159,8 @@ export interface UserPageQuery extends PageQuery { start_time?: string; /** 结束时间 */ end_time?: string; + // 创建人ID + creator?: number; } export interface searchSelectDataType { @@ -181,10 +183,10 @@ export interface UserInfo { dept_id?: deptTreeType["id"]; dept_name?: deptTreeType["name"]; roles?: roleSelectorType[]; - roleNames?: roleSelectorType["name"][]; + role_names?: roleSelectorType["name"][]; role_ids?: roleSelectorType["id"][]; positions?: positionSelectorType[]; - positionNames?: positionSelectorType["name"][]; + position_names?: positionSelectorType["name"][]; position_ids?: positionSelectorType["id"][]; is_superuser?: boolean; status?: boolean; @@ -251,9 +253,9 @@ export interface UserForm { dept_id?: number; dept_name?: string; role_ids?: number[]; - roleNames?: string[]; + role_names?: string[]; position_ids?: number[]; - positionNames?: string[]; + position_names?: string[]; password?: string; gender?: number; email?: string; diff --git a/frontend/src/components/CURD/ExportModal.vue b/frontend/src/components/CURD/ExportModal.vue new file mode 100644 index 00000000..c9e01dba --- /dev/null +++ b/frontend/src/components/CURD/ExportModal.vue @@ -0,0 +1,271 @@ + + + diff --git a/frontend/src/components/Upload/ImportModal.vue b/frontend/src/components/CURD/ImportModal.vue similarity index 57% rename from frontend/src/components/Upload/ImportModal.vue rename to frontend/src/components/CURD/ImportModal.vue index f58b5e63..6cc1a270 100644 --- a/frontend/src/components/Upload/ImportModal.vue +++ b/frontend/src/components/CURD/ImportModal.vue @@ -1,12 +1,22 @@