Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion DESIGN.md
Original file line number Diff line number Diff line change
Expand Up @@ -215,7 +215,7 @@ RLS 谓词不能跨对象(ADR-0055),所以「同部门可见」无法用 `
| 执行与档案 | `clm_records.access` | 待执行 · 待归档 · 合同台账 | 待执行 grid(`signing` 且签署记录未 `completed` 或执行形式未齐)· 待归档 grid(终态且 `archive_no` 空)· 台账 grid(全字段,可导出) |
| 管理 | `clm_admin.access` | 审批矩阵 · 相对方 · 签约主体与部门 · 报表 | 配置对象 grid |

**合同详情页**(slotted):header 挂「提交 / 受理 / 送审 / 发起签署 / 生效 / 终止 / 发起续签」动作,按 status 与门控显隐;highlights:编号 · 相对方 · 金额 · 到期日 · 当前轮次;path 组件显示 draft→submitted→in_review→in_approval→approved→signing→active;tab:概要 / 版本(timeline)/ 审查与偏离 / 审批记录(平台 `sys_approval_request`)/ 履约与收付款 / 签署与归档 / 讨论(平台 discussion slot,评论与 @)。
**合同详情页**(slotted):header 挂「提交 / 受理 / 送审 / 发起签署 / 生效 / 终止 / 发起续签」动作,按 status 与门控显隐;highlights:编号 · 相对方 · 金额 · 到期日 · 当前轮次;path 组件显示 draft→submitted→in_review→in_approval→approved→signing→active;正文由平台按对象编排(@objectstack 18.3 起,ADR-0085 记录页 v3 取消了页面自带的 tabs 槽;维护者 2026-11-03 裁定跟随平台):先是关键条款各字段组(合同 / 签约方与负责人 / 商务条款 / 期限与续约 / 法律条款),再是 版本 · 审查 · 偏离 · 履约义务 · 收付款计划 · 签署记录 六张整宽子表(`clm_contract.fieldGroups` 中的子表组定位,列由各子表外键的 `relatedListColumns` 声明),最后是收起的 路由与审批 / 生命周期 / AI 审阅 / 汇总;右栏是平台的动态(讨论,评论与 @)、续签合同侧卡、附件与审批面板(平台 `sys_approval_request`)。

无匿名公开表单:合同发起必须登录。

Expand Down
14 changes: 7 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -218,17 +218,17 @@ step waits on a read-only view of the one record the request is about
(upstream `objectstack-ai/objectstack#26180`); this app declares nothing for
it. So a manager who holds no position at all opens the request from
**我的合同 › Waiting on Me** and lands on the contract page itself, with
**通过 / 拒绝** above it. Every tab opens: the overview, **版本** (the version's
PDF opens), **审查与偏离**, **审批记录**, **履约与收付款**, **签署与归档** and **讨论**,
and each review, deviation, obligation, signature round and version opens on
its own page. Nothing can be changed: the page has no **编辑**, its **⋯** menu
**通过 / 拒绝** above it. The whole page opens: the key terms, the **合同版本**
table (the version's PDF opens), **审查**, **偏离**, **履约义务**, **收付款计划**,
**签署记录**, the approval panel and the activity feed, and each review,
deviation, obligation, signature round and version opens on its own page. Nothing can be changed: the page has no **编辑**, its **⋯** menu
offers only 添加到收藏 and 分享, and a write through the API answers
`403 PERMISSION_DENIED`.

The read ends with the step. Once the manager approves or rejects, the contract,
its child rows and its files are closed to them again — the page they decided
on reads 「未找到记录」 straight away, which means the step is over, not that
the record is gone. A contract of a report's that is not waiting on them (a
its child rows and its files are closed to them again — from @objectstack 18.3
the page they decided on says so straight away (「你的审批决定已记录 · 你的审批环节已结束,
对此记录的访问权限也随之结束」) with a link back to the approvals inbox. A contract of a report's that is not waiting on them (a
draft, or one already past rung 1) stays closed too: on the open edition
being the owner's manager grants no read. The scope that would
(`own_and_reports`, DESIGN.md §04 `contract_manager_reports`) is an
Expand Down
8 changes: 4 additions & 4 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -21,12 +21,12 @@
"verify": "pnpm validate && pnpm lint && pnpm typecheck && pnpm lint:i18n-gate"
},
"dependencies": {
"@objectstack/spec": "18.2.0",
"@objectstack/runtime": "18.2.0",
"@objectstack/plugin-hono-server": "18.2.0"
"@objectstack/spec": "18.3.0",
"@objectstack/runtime": "18.3.0",
"@objectstack/plugin-hono-server": "18.3.0"
},
"devDependencies": {
"@objectstack/cli": "18.2.0",
"@objectstack/cli": "18.3.0",
"typescript": "^6.0.0"
}
}
Loading
Loading