Commit ccd2f097 authored by David Yang's avatar David Yang

feat: 更新配置

parent a455bb75
No preview for this file type
{
"0 debug pnpm:scope": {
"selected": 1
},
"1 error pnpm": {
"code": "ELIFECYCLE",
"errno": "ENOENT",
"syscall": "spawn",
"file": "sh",
"pkgid": "@",
"stage": "dev",
"script": "max dev",
"err": {
"name": "pnpm",
"message": "@ dev: `max dev`\nspawn ENOENT",
"code": "ELIFECYCLE",
"stack": "pnpm: @ dev: `max dev`\nspawn ENOENT\n at ChildProcess.<anonymous> (/snapshot/dist/pnpm.cjs)\n at ChildProcess.emit (events.js:400:28)\n at maybeClose (internal/child_process.js:1088:16)\n at Process.ChildProcess._handle.onexit (internal/child_process.js:296:5)"
}
},
"2 warn pnpm:global": " Local package.json exists, but node_modules missing, did you mean to install?"
}
\ No newline at end of file
This diff is collapsed.
......@@ -56,8 +56,9 @@
- `material_title`:材料标题
- `file_asset`:文件对象
- `source_app`:来源应用,可选
- `source_system`:来源系统,可选
- `archive_category`:分类,可选
- `source_system`:来源系统,可选;字段类型为 `select`,候选项读取 Subject 字段配置的 `settings.options`
- `archive_category`:分类,可选;字段类型为 `select`,候选项读取 Subject 字段配置的 `settings.options`
- `archive_year`:所属周期/年份,可选,建议保存四位年份字符串,避免大量同名材料在不同年度间产生视觉混淆
- `uploader` / `uploaded_at`:上传人、上传时间
- `remark`:备注,可选
- `tag`:用户自定义分组标签
......@@ -75,13 +76,13 @@
2. 选择本地文件;若选择的是 `ZIP` 压缩包,可进一步选择上传模式:
- `整包上传`:将压缩包本身作为 1 份材料处理
- `解压后逐文件上传`:按压缩包内文件逐个建档
3. 用户补充标题、来源应用、来源系统、标签、分类、提供部门、提供时间、是否涉密、是否审计部材料等信息
3. 用户补充标题、所属周期/年份、来源应用、来源系统、标签、分类、提供部门、提供时间、是否涉密、是否审计部材料等信息;来源系统和材料分类必须从配置下拉中选择
4. 先调用上传接口上传二进制文件
5. 上传成功后,得到 `{name, type, size, url}` 文件对象
6. 再创建 `am_material` 记录:
- 普通文件或 `整包上传`:创建 1 条记录
- `解压后逐文件上传`:压缩包内有多少个文件,就创建多少条记录
7. 当使用 `解压后逐文件上传` 时,上传表单中的来源应用、来源系统、分类、标签、提供信息、合规属性等字段作为每个文件的通用属性一并写入
7. 当使用 `解压后逐文件上传` 时,上传表单中的所属周期/年份、来源应用、来源系统、分类、标签、提供信息、合规属性等字段作为每个文件的通用属性一并写入
8. 材料进入统一材料池,可被其他审计应用统一查看
### 4.2 在其他业务应用上传材料
......@@ -94,13 +95,13 @@
### 4.3 在材料中心统一查看与管理
1. 用户进入 `材料归档`
2. 在“搜索材料”区域按字段手填筛选条件,支持模糊搜索:
2. 在“搜索材料”区域按字段填写筛选条件;文本字段支持模糊搜索,来源系统和材料分类使用配置下拉筛选:
- 材料标题:匹配 `metadata.material_title`
- 所属周期/年份:匹配 `metadata.archive_year`
- 文件名:匹配 `metadata.file_asset.name`
- 材料分类:匹配 `metadata.archive_category`
- 标签分组:匹配 `metadata.tag`
- 材料分类:从 `archive_category.settings.options` 选择并匹配 `metadata.archive_category`
- 来源应用:匹配 `metadata.source_app`
- 来源系统:匹配 `metadata.source_system`
- 来源系统:从 `source_system.settings.options` 选择并匹配 `metadata.source_system`
- 提供部门:匹配 `metadata.provide_department`
- 备注:匹配 `metadata.remark`
- 是否涉密:匹配 `metadata.is_confidential`
......@@ -109,22 +110,22 @@
4. 列表默认每页 20 条,支持切换为 50 或 100 条
5. 用户通过上一页 / 下一页进行分页浏览
6. 在“全部文件”视图下,直接以列表展示当前筛选条件下的全部材料
7. 切换到某个分类标签后,系统将分类名称回填到“材料分类”搜索字段,并重新从第一页加载模糊匹配结果
7. 切换到某个分类标签后,系统将分类存储值回填到“材料分类”筛选字段,并重新从第一页加载匹配结果
8. `未分类` 仅表示 `metadata.archive_category` 为空、空字符串或缺失,不作为真实分类值写回查询条件
9. 列表支持当前页批量勾选,并提供“全选当前页”能力
10. 勾选后可执行以下批量操作:
- 批量下载/导出:勾选 1 份材料时直接下载原文件;勾选多份材料时,前端读取各材料 `metadata.file_asset.url` 并打包为 `ZIP` 压缩包下载
- 批量修改:按字段选择是否覆盖来源应用、来源系统、分类、提供部门、提供时间、是否涉密、是否审计部材料
- 批量修改:按字段选择是否覆盖所属周期/年份、来源应用、来源系统、分类、提供部门、提供时间、是否涉密、是否审计部材料;来源系统或材料分类启用覆盖后从对应配置下拉选择
- 批量打标签:统一覆盖 `metadata.tag`
- 批量删除:对已勾选材料执行软删除
11. 点击某份材料后,以弹框方式打开详情
12. 弹框默认进入查看态,字段不可直接编辑,可查看:
- 文件信息与打开或下载入口
- 标签与分类
- 所属周期/年份、标签与分类
- 来源信息
- 提供部门、提供时间
- 涉密标记、审计部材料标记
13. 用户点击“编辑”后进入编辑态,可修改材料标题、来源应用、来源系统、分类、标签、提供信息与合规属性
13. 用户点击“编辑”后进入编辑态,可修改材料标题、所属周期/年份、来源应用、来源系统、分类、标签、提供信息与合规属性;来源系统和材料分类从配置下拉选择
14. 编辑态下点击“取消编辑”放弃未保存修改并恢复当前材料原值
15. 编辑态下点击“保存修改”后调用材料更新接口,保存成功后生效并回到查看态
16. 详情弹框提供单个删除入口,删除前需二次确认,确认后对当前材料执行软删除并关闭弹框
......@@ -193,9 +194,10 @@
建议至少包含:
- 上传按钮
- 标签筛选
- 年份筛选
- 来源应用筛选
- 来源系统筛选
- 来源系统下拉筛选,选项来自 `am_material.source_system.settings.options`
- 材料分类下拉筛选,选项来自 `am_material.archive_category.settings.options`
- 分类切换标签页
- 材料列表表格
- 当前页批量勾选工具条
......@@ -224,6 +226,7 @@
建议展示:
- 材料标题
- 所属周期/年份
- 文件名 / 类型 / 大小
- 标签
- 分类
......@@ -259,16 +262,19 @@
- 字段搜索采用展开式表单,不再使用聚合关键词搜索
- 可使用以下过滤条件:
- `metadata.material_title`
- `metadata.archive_year`
- `metadata.file_asset.name`
- `metadata.source_app`
- `metadata.source_system`
- `metadata.archive_category`
- `metadata.tag`
- `metadata.provide_department`
- `metadata.remark`
- `metadata.is_confidential`
- `metadata.is_audit_dept_material`
- 文本字段按 `$regex` + `$options: i` 组织为模糊匹配
- 除来源系统和材料分类外,文本字段按 `$regex` + `$options: i` 组织为模糊匹配
- 来源系统筛选值来自 `settings.options`,按选项存储值查询 `metadata.source_system`
- 材料分类筛选值来自 `settings.options`,按选项存储值查询 `metadata.archive_category`
- `metadata.archive_year` 按文本字段处理,用户输入 `2025` 时可检索到该年度材料
- 布尔字段采用“全部 / 是 / 否”三态筛选,选择“全部”时不进入查询条件
- 多个搜索字段同时填写时按 AND 关系组合
......@@ -310,13 +316,18 @@
- 创建 `am_material` 失败时,需要提示用户重试,并避免出现“文件已传但列表无记录”的静默失败
- ZIP 拆分上传若中途失败,需要明确提示已成功创建的记录条数以及失败文件名,便于用户补传
- 标签允许自由输入,但需控制重复标签与空标签
- 分类和标签用于支持用户自定义分组
- 材料分类由 Subject 选项配置统一维护,标签继续支持用户自定义分组
- 批量下载/导出依赖 `metadata.file_asset.url` 可被当前浏览器访问;若跨域或文件失效导致拉取失败,多文件 ZIP 中会跳过失败项并提示用户
- 批量修改仅允许覆盖用户显式勾选的字段,未勾选字段必须保留原值,避免误覆盖
- 批量删除前必须二次确认,默认仍按软删除处理
- 当前版本的批量勾选范围限定在“当前筛选结果的当前页”,切换分页后需要重新确认勾选结果
- `provide_time` 提交时统一转为 `ISO 8601`
- 布尔字段 `is_confidential`、`is_audit_dept_material` 需要以 true/false 写入 `metadata`
- `archive_year` 写入 `metadata.archive_year`,建议使用四位年份字符串;为空时不进入年份搜索条件
- `source_system` 的搜索、上传、详情编辑和批量修改控件均读取 Subject 字段的 `settings.options`
- `archive_category` 的搜索、上传、详情编辑和批量修改控件均读取 Subject 字段的 `settings.options`
- Subject 配置加载期间来源系统和材料分类控件显示加载状态;加载失败或未配置选项时禁用对应控件并提示用户刷新或联系管理员补充配置
- 当前配置选项为:投资交易系统、估值系统、注册登记系统、OA系统、财务系统、产品系统、投研系统、外部导出、其他业务系统
---
......
......@@ -43,12 +43,33 @@
| 材料标题 | `material_title` | `text` | 是 | 否 | 否 | 无 | 主展示字段 |
| 文件对象 | `file_asset` | `file` | 是 | 否 | 否 | 无 | 上传接口返回对象 |
| 来源应用 | `source_app` | `text` | 否 | 否 | 否 | 无 | 材料最初来源 |
| 材料分类 | `archive_category` | `text` | 否 | 否 | 否 | 无 | 用户自定义分类 |
| 来源系统 | `source_system` | `select` | 否 | 否 | 否 | 无 | 选项必须配置在 `settings.options` |
| 材料分类 | `archive_category` | `select` | 否 | 否 | 否 | 无 | 选项必须配置在 `settings.options` |
| 上传人 | `uploader` | `user` | 是 | 否 | 否 | 无 | 当前登录人 |
| 上传时间 | `uploaded_at` | `date` | 是 | 否 | 否 | 无 | 创建材料时间 |
| 备注 | `remark` | `text` | 否 | 否 | 否 | 无 | 说明字段 |
| 标签 | `tag` | `text` | 否 | 否 | 否 | 无 | 用户自定义分组标签 |
### 3.2.1 `source_system.settings.options`
| 显示值 | 存储值 |
| --- | --- |
| 投资交易系统 | `投资交易系统` |
| 估值系统 | `估值系统` |
| 注册登记系统 | `注册登记系统` |
| OA系统 | `OA系统` |
| 财务系统 | `财务系统` |
| 产品系统 | `产品系统` |
| 投研系统 | `投研系统` |
| 外部导出 | `外部导出` |
| 其他业务系统 | `其他业务系统` |
### 3.2.2 `archive_category.settings.options`
- 材料分类候选项以线上 Subject 字段配置为准
- 前端仅从 `archive_category.settings.options` 读取显示值和存储值
- 不在页面代码中硬编码或根据历史材料临时生成可编辑选项
## 3.3 推荐初始记录规则
- `title` 默认取 `material_title`
......@@ -60,8 +81,11 @@
1. 能成功创建一条本地上传材料
2. `file_asset.url` 能正常回显
3. 可以按 `metadata.source_app` 查询
4. 可以按 `metadata.archive_category` 查询
5. 可以按 `metadata.tag` 查询
4. 来源系统下拉只展示 `source_system.settings.options` 中的选项
5. 可以按 `metadata.source_system` 查询
6. 材料分类下拉只展示 `archive_category.settings.options` 中的选项
7. 可以按 `metadata.archive_category` 查询
8. 可以按 `metadata.tag` 查询
---
......
......@@ -173,8 +173,9 @@
"url": "https://oss.example.com/audit/xxx.pdf"
},
"source_app": "中台",
"source_system": "middle_platform",
"source_system": "投资交易系统",
"archive_category": "试试水",
"archive_year": "2026",
"uploader": "69b12a47e92b1de77c94a9f5",
"uploaded_at": "2026-05-09T08:30:00.000Z",
"tag": "项目一期"
......@@ -193,8 +194,9 @@
"page_size": 20,
"filter": {
"metadata.source_app": "project_manager_xy",
"metadata.source_system": "project_manager_xy",
"metadata.source_system": "投资交易系统",
"metadata.archive_category": "审计证据",
"metadata.archive_year": "2026",
"metadata.tag": "项目一期"
},
"sort": "-created_at"
......@@ -222,8 +224,9 @@
"url": "https://oss.streams7.com/xinyuan/3WCqMeKoiqOc.xlsx"
},
"source_app": "中台",
"source_system": "middle_platform",
"source_system": "投资交易系统",
"archive_category": "试试水",
"archive_year": "2026",
"uploader": "64b6575b80bdbd9b3d65d09b",
"uploaded_at": "2026-05-08T16:00:00.000Z",
"tag": "ttt"
......
......@@ -94,15 +94,16 @@ type Record = {
说明:
- `title` 建议默认取文件名去后缀,或取用户录入的材料标题
- `archive_category` 和 `tag` 用于支持用户自定义分类和分组
- `archive_category` 使用 Subject 配置维护分类选项,`tag` 用于用户自定义分组
| 字段标签 | 字段别名 | 字段类型 | 是否主键 | 是否多值 | 是否必填 | 说明 |
| --- | --- | --- | --- | --- | --- | --- |
| 材料标题 | `material_title` | text | 否 | 否 | 是 | 业务展示主标题 |
| 文件对象 | `file_asset` | file | 否 | 否 | 是 | 上传接口返回的文件对象 |
| 来源应用 | `source_app` | text | 否 | 否 | 否 | 材料最初产生于哪个应用 |
| 来源系统 | `source_system` | text | 否 | 否 | 否 | 材料最初产生于哪个系统 |
| 材料分类 | `archive_category` | text | 否 | 否 | 否 | 用户自定义分类 |
| 来源系统 | `source_system` | select | 否 | 否 | 否 | 材料最初产生于哪个系统;选项读取 `settings.options` |
| 材料分类 | `archive_category` | select | 否 | 否 | 否 | 选项读取 `settings.options` |
| 所属周期/年份 | `archive_year` | text | 否 | 否 | 否 | 材料归属年度或周期,建议存四位年份字符串,如 `2025` |
| 上传人 | `uploader` | user | 否 | 否 | 是 | 当前登录用户 |
| 上传时间 | `uploaded_at` | date | 否 | 否 | 是 | 创建主档时间 |
| 备注 | `remark` | text | 否 | 否 | 否 | 材料补充说明 |
......@@ -112,7 +113,29 @@ type Record = {
| 是否涉密 | `is_confidential` | boolean | 否 | 否 | 否 | |
| 是否审计部材料 | `is_audit_dept_material` | boolean | 否 | 否 | 否 | |
### 3.1.1 metadata 示例
### 3.1.1 `source_system` 选项配置
`source_system` 必须使用以下 `settings.options`,前端只读取配置生成下拉,不得写死选项:
```json
[
{ "label": "投资交易系统", "value": "投资交易系统" },
{ "label": "估值系统", "value": "估值系统" },
{ "label": "注册登记系统", "value": "注册登记系统" },
{ "label": "OA系统", "value": "OA系统" },
{ "label": "财务系统", "value": "财务系统" },
{ "label": "产品系统", "value": "产品系统" },
{ "label": "投研系统", "value": "投研系统" },
{ "label": "外部导出", "value": "外部导出" },
{ "label": "其他业务系统", "value": "其他业务系统" }
]
```
### 3.1.2 `archive_category` 选项配置
`archive_category` 必须使用 Subject 字段配置中的 `settings.options`。前端只读取线上配置生成下拉,不在代码或文档中重复维护候选项。
### 3.1.3 metadata 示例
```json
{
......@@ -124,8 +147,9 @@ type Record = {
"url": "https://oss.example.com/audit/meeting-note.pdf"
},
"source_app": "project_manager_xy",
"source_system": "project_manager_xy",
"source_system": "投资交易系统",
"archive_category": "审计证据",
"archive_year": "2026",
"uploader": "69b12a47e92b1de77c94a9f5",
"uploaded_at": "2026-05-09T08:30:00.000Z",
"remark": "会议纪要已补签字页",
......
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