diff --git a/clinical-web/README.md b/clinical-web/README.md index f619be8..1348cce 100644 --- a/clinical-web/README.md +++ b/clinical-web/README.md @@ -218,7 +218,7 @@ API 模块与页面按业务域对应。工作台页面使用 `api/workbench` - `GET /api/v1/sign-artifacts/{artifactId}/download`:原始 PDF、签署后 PDF、签名原图下载; - `POST /api/v1/sign-deliveries/{taskId}/sms/resend`:短信重发,自动携带幂等键; - `GET/POST /api/v1/templates`、`GET /api/v1/templates/{id}`:模板列表、详情; -- `PUT /api/v1/templates/{id}`:更新模板元数据; +- `PUT /api/v1/templates/{id}`:更新模板名称、说明、分类及归属。修改归属时提交 `campusId` 与 `departmentId`;科室为空表示该院区通用,不提交院区则保留原归属。真实模式只支持一个归属科室,选择科室时使用该科室的院区;编辑为通用时保留文档原院区。后端校验目标组织状态、院区匹配及数据权限,记录归属变更审计,保留历史签署快照; - `GET/POST /api/v1/templates/{id}/versions`、`GET /api/v1/templates/{id}/versions/{versionId}`:版本列表、创建与版本详情(**正文 `contentHtml` 只在这个详情接口里返回**); - `POST /api/v1/templates/{id}/versions/{versionId}/{action}`(submit-review / reject / approve / publish / disable / archive):版本工作流,模板「删除」即走 archive; - `GET /api/v1/users`、`POST /api/v1/users`、`GET/PUT /api/v1/users/{id}`:员工列表、资料创建和资料更新; @@ -243,6 +243,8 @@ API 模块与页面按业务域对应。工作台页面使用 `api/workbench` ## 签署记录查询 +文档库院区筛选支持「所有院区」:列表查询省略 `campusId`,由后端按当前账号的角色数据范围过滤;科室标签显示院区和科室名称。此选项只影响文档库查询,全局院区及新增通用文档的目标院区仍使用具体院区,编辑通用文档仍保留原院区。 + `views/workbench/records` 是「工作台 → 签署记录查询」(`/sign/records`,菜单资源 `sign/record/index`)的实现:工作台只保留当天的签署操作,历史记录的检索、核对与导出统一放在这里。页面只读——已签署的正式文书不可直接修改,需要追加内容时回签署工作台新建签署任务。 **接口现状与边界**(后端还没有「按条件检索历史签署记录」的专用接口): diff --git a/clinical-web/src/api/management/types.ts b/clinical-web/src/api/management/types.ts index f2e9a2b..df7bd3f 100644 --- a/clinical-web/src/api/management/types.ts +++ b/clinical-web/src/api/management/types.ts @@ -143,6 +143,10 @@ export interface UpdateTemplateRequest { name: string description?: string category?: string + /** 修改归属时提供院区;不传则保留原归属。 */ + campusId?: string + /** 提供院区时,null 表示该院区通用。 */ + departmentId?: string | null } export interface CreateTemplateVersionRequest { diff --git a/clinical-web/src/views/management/documents/components/DocumentFilterTabs.vue b/clinical-web/src/views/management/documents/components/DocumentFilterTabs.vue index 844bb18..988d34a 100644 --- a/clinical-web/src/views/management/documents/components/DocumentFilterTabs.vue +++ b/clinical-web/src/views/management/documents/components/DocumentFilterTabs.vue @@ -4,8 +4,7 @@ * * 原型 V10.2 只有「科室 + 状态」两行(#libTabs / #libStatus)。这里把科室那一级按 * 「组织架构」的口径拆成两级:先选院区(同一份院区字典、同一个 sortNo 顺序, - * 与架构树的院区顺序一致),再在该院区的科室里筛。院区不做「全部院区」—— - * 架构树里也始终落在某一个院区上,两处口径保持一致。 + * 与架构树的院区顺序一致),再按科室筛选。「所有院区」跨院区查询,科室显示院区名。 * * 类名沿用原型的 lib-tabs / lib-tab / lib-status / lib-st:这套样式是文档库页面独有的 * 筛选语言(胶囊 + 虚线分隔),与通用 Tabs 组件的观感不同,换成通用组件会把 @@ -16,7 +15,7 @@ import type { CampusTab, DepartmentTab, DocumentFilterStatus, StatusTab } from '../types' defineProps<{ - /** 当前院区 id。院区是页面级的取数口径,由页面持有(见 index.vue) */ + /** 当前院区 id;空字符串表示所有院区,由页面持有查询状态。 */ campus: string department: string | null status: DocumentFilterStatus diff --git a/clinical-web/src/views/management/documents/components/DocumentPropsDialog.vue b/clinical-web/src/views/management/documents/components/DocumentPropsDialog.vue index 2e13559..5c6c21b 100644 --- a/clinical-web/src/views/management/documents/components/DocumentPropsDialog.vue +++ b/clinical-web/src/views/management/documents/components/DocumentPropsDialog.vue @@ -125,6 +125,11 @@ function toggleOwnership(option: string) { form.ownership = [] } + if (!props.isMock) { + form.ownership = form.ownership.includes(option) ? [] : [option] + return + } + const index = form.ownership.indexOf(option) if (index >= 0) { @@ -205,7 +210,11 @@ function submit() {

- 勾选科室设置可见范围,支持多科室与通用(全院)。勾选「通用(全院)」后各科室均可见。 + +