Commit ec8c19b4 authored by drigle's avatar drigle

fix: omit read-only subject from record updates

parent f167d242
......@@ -118,6 +118,8 @@ MySQL 联调数据可通过 `scripts/mysql/model-monitor-source-fixtures.sql`
3. 含子分组或模型的分组不得删除。
4. 模型只允许编辑说明、分组和标签;外部模型编码、名称、主键及数据 Subject 不可编辑。
分组保存流程:从分组操作打开编辑弹窗,修改分组名称或父级后保存;名称不能为空,父级不能选择当前分组或其后代。创建时调用 `POST /record?preview=false`,携带 `subject: model_monitor_group`;编辑时调用 `PUT /record/:name`,更新 `title`、`metadata.group_name` 和 `metadata.parent_group_id` 等可写字段,顶层不传只读 `subject`。统一更新 service 同样处理模型、批次和审批请求,兼容已有内部或外部对象。保存成功后重新加载分组和模型列表并关闭弹窗,显示成功提示;保存失败时保留表单并显示接口错误,不回退本地存储。
### 4.5 查看批次与数据
1. 模型列表首列仅展示模型信息;点击最右操作列的查看按钮进入独立批次路由,只展示本地已经同步的批次。
......
......@@ -441,9 +441,12 @@ function restoreRecord(name) {
}
function updateRecord(name, model = {}) {
// subject 仅用于创建;更新时由记录标识定位对象,外部对象拒绝写入此只读字段。
const data = { ...model };
delete data.subject;
return request(`/record/${name}`, {
method: 'put',
data: model,
data,
});
}
......
......@@ -129,7 +129,24 @@
`PUT /record/:name`
请求体使用完整 Record payload。当前用于更新模型、批次、隐藏状态和审批数据;一次性同步的模型结果行不调用更新接口。
请求体传入可写的 Record 字段和 `metadata`,不传 `subject`;所属 Subject 由路径中的记录 `name` 或 ID 定位。`subject` 仅在创建 Record 时用于指定对象,外部对象更新时传入该字段会返回 `422 Unknown or read-only external field: subject`。统一 service `updateRecord` 在发送前移除顶层 `subject`,不修改调用方传入的 payload,也不影响 `metadata` 中的业务字段。
模型分组重命名或调整父级的请求示例:
```json
{
"title": "新分组名称",
"content_type": "text",
"metadata": {
"group_name": "新分组名称",
"parent_group_id": "父分组记录 ID",
"created_by_user_id": "创建人 ID",
"created_by_user_name": "创建人名称"
}
}
```
当前用于更新模型分组、模型、批次、隐藏状态和审批数据;一次性同步的模型结果行不调用更新接口。
### 3.6 删除 Record
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment