From cda4b1825b3625b38a6fefe48d523eb986d9c51a Mon Sep 17 00:00:00 2001 From: Stev_Wang <304865932@qq.com> Date: Tue, 3 Nov 2026 16:26:10 +0800 Subject: [PATCH] =?UTF-8?q?chore(openapi):=20=E5=90=8C=E6=AD=A5=E9=83=A8?= =?UTF-8?q?=E9=97=A8=E7=AE=A1=E7=90=86=E6=8E=A5=E5=8F=A3=E7=9A=84=E7=94=9F?= =?UTF-8?q?=E6=88=90=E7=B1=BB=E5=9E=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 背景: - 上一批部门管理接口(disable / enable、update、树与字段说明)合入后没有重新导出 OpenAPI, apps/web/src/api/generated/openapi.d.ts 仍停留在「部门改名」版本,前端类型与真实契约不一致; - pnpm ci:local 第 9 步 openapi:export 会自动重生成该文件,导致每次跑完工作区变脏。 改动: - 执行 pnpm openapi:export,重新生成 apps/web/src/api/generated/openapi.d.ts (新增 /departments/{id}/disable、/departments/{id}/enable、update 操作与字段说明)。 影响面: - 仅前端生成类型,无运行时行为变化;openapi/lingxi.openapi.json 无差异。 回滚方式: - 回滚本提交即恢复旧生成文件。 验证证据: - pnpm openapi:diff 通过; - pnpm ci:local 全部门禁通过。 --- apps/web/src/api/generated/openapi.d.ts | 94 +++++++++++++++++++++++-- 1 file changed, 88 insertions(+), 6 deletions(-) diff --git a/apps/web/src/api/generated/openapi.d.ts b/apps/web/src/api/generated/openapi.d.ts index eb435bc..359ff0c 100644 --- a/apps/web/src/api/generated/openapi.d.ts +++ b/apps/web/src/api/generated/openapi.d.ts @@ -204,7 +204,10 @@ export interface paths { path?: never; cookie?: never; }; - /** 部门树(两级,含成员数与负责人) */ + /** + * 部门树(两级) + * @description memberCount 含下级成员、directMemberCount 仅本部门直属成员;默认只返回启用部门,管理页传 include_disabled=true + */ get: operations['DepartmentsController_tree']; put?: never; post?: never; @@ -225,7 +228,7 @@ export interface paths { put?: never; /** * 新建部门 / 小组 - * @description 最多两级,在小组下新建返回 42201 + * @description 最多两级;父级必须启用;负责人必须是启用用户;同级重名返回 40903 */ post: operations['DepartmentsController_create']; delete?: never; @@ -247,8 +250,51 @@ export interface paths { delete?: never; options?: never; head?: never; - /** 部门改名 */ - patch: operations['DepartmentsController_rename']; + /** + * 更新部门(名称 / 负责人 / 排序) + * @description 上级关系创建后不可移动;负责人必须是启用用户 + */ + patch: operations['DepartmentsController_update']; + trace?: never; + }; + '/api/v1/departments/{id}/disable': { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * 停用部门 + * @description 本部门仍有在职成员、或一级部门存在启用中的下级小组 / 下级在职成员时返回 42201;已停用返回 40903 + */ + post: operations['DepartmentsController_disable']; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + '/api/v1/departments/{id}/enable': { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * 启用部门 + * @description 上级必须启用;已启用返回 40903 + */ + post: operations['DepartmentsController_enable']; + delete?: never; + options?: never; + head?: never; + patch?: never; trace?: never; }; '/api/v1/roles': { @@ -657,7 +703,9 @@ export interface operations { }; DepartmentsController_tree: { parameters: { - query?: never; + query?: { + include_disabled?: 'true' | 'false'; + }; header?: never; path?: never; cookie?: never; @@ -689,7 +737,41 @@ export interface operations { }; }; }; - DepartmentsController_rename: { + DepartmentsController_update: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + DepartmentsController_disable: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + DepartmentsController_enable: { parameters: { query?: never; header?: never;