Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in / Register
Toggle navigation
R
risk_case_library
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
David Yang
risk_case_library
Commits
7b7c281e
Commit
7b7c281e
authored
Jun 08, 2026
by
David Yang
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
update: ui
parent
6f4521a3
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
60 additions
and
37 deletions
+60
-37
.umirc.ts
.umirc.ts
+2
-0
favicon.ico
public/favicon.ico
+0
-0
manifest.json
public/manifest.json
+8
-0
Layout.jsx
src/pages/project_manager_xy/Layout.jsx
+1
-1
audit-material-center.business-flow.md
...project_manager_xy/audit-material-center.business-flow.md
+35
-25
materialService.js
src/pages/project_manager_xy/materialService.js
+0
-0
index.jsx
src/pages/project_manager_xy/resource-booking/index.jsx
+0
-0
index.jsx
src/pages/project_manager_xy/resource-stat/index.jsx
+0
-0
audit-material-subject-build-checklist.md
src/services/audit-material-subject-build-checklist.md
+3
-3
record-api.md
src/services/record-api.md
+4
-2
subjectsDefinition.md
src/services/subjectsDefinition.md
+7
-6
No files found.
.umirc.ts
View file @
7b7c281e
...
@@ -14,6 +14,8 @@ const ROUTE_PATHS = {
...
@@ -14,6 +14,8 @@ const ROUTE_PATHS = {
export
default
defineConfig
({
export
default
defineConfig
({
layout
:
false
,
layout
:
false
,
fastRefresh
:
true
,
fastRefresh
:
true
,
base
:
'/risk_case_library/'
,
publicPath
:
'/risk_case_library/'
,
alias
:
{
alias
:
{
react
:
resolvePackageRoot
(
'react'
),
react
:
resolvePackageRoot
(
'react'
),
'react-dom'
:
resolvePackageRoot
(
'react-dom'
),
'react-dom'
:
resolvePackageRoot
(
'react-dom'
),
...
...
public/favicon.ico
0 → 100644
View file @
7b7c281e
15 KB
public/manifest.json
0 → 100644
View file @
7b7c281e
{
"name"
:
"project_manager_new"
,
"version"
:
"1.0.1"
,
"build"
:
"abc"
,
"description"
:
"merge master"
,
"date"
:
"2025-07-14 19:27:20"
,
"author"
:
"yang"
}
src/pages/project_manager_xy/Layout.jsx
View file @
7b7c281e
...
@@ -17,7 +17,7 @@ const menuGroups = [
...
@@ -17,7 +17,7 @@ const menuGroups = [
title
:
'案例库工作台'
,
title
:
'案例库工作台'
,
items
:
[
items
:
[
{
{
name
:
'
案例总览
'
,
name
:
'
驾驶舱
'
,
path
:
'/resource/stat'
,
path
:
'/resource/stat'
,
icon
:
Squares2X2Icon
,
icon
:
Squares2X2Icon
,
},
},
...
...
src/pages/project_manager_xy/audit-material-center.business-flow.md
View file @
7b7c281e
...
@@ -22,14 +22,15 @@
...
@@ -22,14 +22,15 @@
保留现有两级菜单框架,但替换业务语义:
保留现有两级菜单框架,但替换业务语义:
-
左侧菜单:
`
案例总览
`
-
左侧菜单:
`
驾驶舱
`
-
左侧菜单:
`案例管理`
-
左侧菜单:
`案例管理`
推荐职责划分:
推荐职责划分:
-
`案例总览`
-
`驾驶舱`
-
展示案例总数、案例性质分布、关键字热度、最近更新
-
展示案例总数、分类数量、标签数量、案例类型数量、待整理数量、最近 7 天更新
-
通过图表展示案例性质占比、案例年份分布、近 7 日更新活跃度
-
通过图表展示分类结构、案例类型排行、案例来源分布
-
展示关键字词云与最近更新案例
-
提供对库内内容密度和结构完整度的快速判断
-
提供对库内内容密度和结构完整度的快速判断
-
`案例管理`
-
`案例管理`
-
搜索、筛选、浏览案例卡片
-
搜索、筛选、浏览案例卡片
...
@@ -55,7 +56,7 @@
...
@@ -55,7 +56,7 @@
-
`case_attribute`
:案例属性
-
`case_attribute`
:案例属性
-
`case_details`
:案例详情正文
-
`case_details`
:案例详情正文
-
`case_warning`
:案例警示
-
`case_warning`
:案例警示
-
`keyword`
:关键字,用于检索和热度统计
-
`keyword`
:关键字,
多值字符串数组,
用于检索和热度统计
-
`case_source`
:案例来源
-
`case_source`
:案例来源
-
`case_level`
:案例等级
-
`case_level`
:案例等级
-
`case_year`
:案例年份
-
`case_year`
:案例年份
...
@@ -88,7 +89,7 @@
...
@@ -88,7 +89,7 @@
-
`案例属性`
→
`metadata.case_attribute`
-
`案例属性`
→
`metadata.case_attribute`
-
`案例详情`
→
`content`
、
`metadata.case_details`
-
`案例详情`
→
`content`
、
`metadata.case_details`
-
`案例警示`
→
`metadata.case_warning`
-
`案例警示`
→
`metadata.case_warning`
-
`关键字`
→
`metadata.keyword`
,同时回填
`metadata.tag`
以兼容现有检索
-
`关键字`
→
按英文逗号或中文逗号拆分、去空、去重后写入
`metadata.keyword`
字符串数组
,同时回填
`metadata.tag`
以兼容现有检索
-
`案例来源`
→
`metadata.case_source`
-
`案例来源`
→
`metadata.case_source`
-
`案例等级`
→
`metadata.case_level`
-
`案例等级`
→
`metadata.case_level`
-
`案例年份`
→
`metadata.case_year`
-
`案例年份`
→
`metadata.case_year`
...
@@ -114,6 +115,7 @@
...
@@ -114,6 +115,7 @@
-
`案例等级`
-
`案例等级`
-
`案例年份`
-
`案例年份`
5.
浏览器直接下载
`.xlsx`
文件
5.
浏览器直接下载
`.xlsx`
文件
6.
`metadata.keyword`
导出到
`关键字`
列时恢复为逗号拼接字符串,便于线下继续维护
### 4.4 浏览与检索案例
### 4.4 浏览与检索案例
...
@@ -124,14 +126,16 @@
...
@@ -124,14 +126,16 @@
5.
页面顶部提供
`Segment`
视图切换,可在“卡片视图 / 表格视图”之间切换
5.
页面顶部提供
`Segment`
视图切换,可在“卡片视图 / 表格视图”之间切换
6.
卡片视图用于浏览案例摘要,点击卡片后以弹框方式查看并编辑详情
6.
卡片视图用于浏览案例摘要,点击卡片后以弹框方式查看并编辑详情
7.
表格视图展示标题、分类、标签、案例类型、关键字、来源、等级、年份、更新时间等字段
7.
表格视图展示标题、分类、标签、案例类型、关键字、来源、等级、年份、更新时间等字段
8.
表格视图支持单选、全选当前已加载案例,并显示当前勾选数量
8.
表格视图按页加载案例,支持选择每页 20、50、100 条,并显示页码、当前页范围和匹配总数
9.
表格视图支持单选、全选当前页案例,并显示当前勾选数量
### 4.5 编辑案例
### 4.5 编辑案例
1.
用户在列表中打开某个案例详情
1.
用户在列表中打开某个案例详情
2.
修改标题、分类、标签、案例类型、案例属性、案例详情、案例警示、关键字、案例来源、案例等级、案例年份
2.
修改标题、分类、标签、案例类型、案例属性、案例详情、案例警示、关键字、案例来源、案例等级、案例年份
3.
前端调用
`PUT /record/:name`
3.
关键字编辑区支持逗号输入,并实时预览为关键字标签;保存时拆分为
`metadata.keyword`
字符串数组
4.
保存成功后刷新列表与统计数据
4.
前端调用
`PUT /record/:name`
5.
保存成功后刷新列表与统计数据
### 4.6 批量修改案例
### 4.6 批量修改案例
...
@@ -176,40 +180,44 @@
...
@@ -176,40 +180,44 @@
-
未识别到的列忽略,不中断导入
-
未识别到的列忽略,不中断导入
-
空行直接跳过
-
空行直接跳过
-
`标题`
为空时,优先使用
`案例类型`
,再回退为
`案例详情`
摘要自动生成
`title`
-
`标题`
为空时,优先使用
`案例类型`
,再回退为
`案例详情`
摘要自动生成
`title`
-
所有文本字段统一按字符串保存
-
普通文本字段统一按字符串保存
-
`关键字`
是多值字段,导入时将逗号拼接文本拆分为字符串数组保存
-
`案例年份`
优先按数字写入,不可解析时保留原字符串
-
`案例年份`
优先按数字写入,不可解析时保留原字符串
-
导出模板固定为 11 列标准表头,便于线下统一维护
-
导出模板固定为 11 列标准表头,便于线下统一维护
### 5.3 筛选规则
### 5.3 筛选规则
-
案例性质筛选使用
`metadata.category`
-
案例性质筛选使用
`metadata.category`
-
关键字筛选优先使用
`metadata.keyword`
,同时兼容历史
`metadata.tag`
-
关键字筛选优先使用
多值数组
`metadata.keyword`
,同时兼容历史字符串型
`metadata.keyword`
与
`metadata.tag`
-
关键词检索同时覆盖
`title`
、
`metadata.label`
、
`metadata.case_type`
、
`metadata.case_attribute`
、
`metadata.case_details`
、
`metadata.case_warning`
、
`metadata.keyword`
、
`metadata.case_source`
、
`metadata.case_level`
、
`metadata.category`
、
`metadata.tag`
-
关键词检索同时覆盖
`title`
、
`metadata.label`
、
`metadata.case_type`
、
`metadata.case_attribute`
、
`metadata.case_details`
、
`metadata.case_warning`
、
`metadata.keyword`
、
`metadata.case_source`
、
`metadata.case_level`
、
`metadata.category`
、
`metadata.tag`
---
---
## 6. 页面与交互要求
## 6. 页面与交互要求
### 6.1
案例总览
### 6.1
驾驶舱
建议至少展示:
建议至少展示:
-
案例总数
-
案例总数
-
分类数量
-
标签数量
-
案例类型数量
-
最近 7 天更新数
-
最近 7 天更新数
-
案例性质分布
-
分类结构饼图
-
关键字热度
-
案例类型排行柱状图
-
案例
年份分布趋势
图
-
案例
来源分布横向柱状
图
-
近 7 日更新活跃度图
-
关键字词云
-
最近更新案例
-
最近更新案例
-
重点长文本案例或待整理案例,待整理规则关注缺少案例性质、关键字、案例详情或详情偏短
-
数据洞察卡片,例如分类最集中主题、最高频关键字、结构完整度
-
数据洞察卡片,例如分类最集中主题、最高频关键字、结构完整度
图表口径说明:
图表口径说明:
-
案例性质分布:按
`metadata.category`
聚合
-
分类结构:按
`metadata.category`
聚合,缺失时归入
`未分类`
-
关键字热度:按
`metadata.keyword`
,缺失时兼容
`metadata.tag`
-
案例类型排行:按
`metadata.case_type`
聚合,缺失时归入
`未填写类型`
-
案例年份分布:按
`metadata.case_year`
聚合
-
案例来源分布:按
`metadata.case_source`
聚合,缺失时归入
`未填写来源`
-
近 7 日更新活跃度:按
`updated_at`
汇总最近 7 天更新次数
-
关键字词云:按
`metadata.keyword`
聚合并按热度调整字号,缺失时兼容
`metadata.tag`
-
最近 7 天更新:按
`updated_at`
统计近 7 天更新的案例数量
### 6.2 案例管理
### 6.2 案例管理
...
@@ -243,6 +251,7 @@
...
@@ -243,6 +251,7 @@
-
案例详情全文
-
案例详情全文
-
案例性质
-
案例性质
-
关键字
-
关键字
-
关键字以标签形式展示;编辑时保留逗号输入并即时预览拆分后的标签
-
案例警示
-
案例警示
-
案例来源 / 案例等级 / 案例年份
-
案例来源 / 案例等级 / 案例年份
-
案例详情字数
-
案例详情字数
...
@@ -274,10 +283,11 @@
...
@@ -274,10 +283,11 @@
## 8. 分页与性能建议
## 8. 分页与性能建议
-
首屏只加载一页,建议每页 24 条
-
首屏只加载第一页,默认每页 20 条
-
列表滚动到底部时自动加载下一页
-
表格与卡片列表通过页码分页加载,不使用下滑自动加载
-
用户可选择每页 20、50、100 条;切换每页数量时从第一页重新加载
-
当用户切换分类或搜索条件时,从第一页重新加载
-
当用户切换分类或搜索条件时,从第一页重新加载
-
总数
通过
`count`
接口单独获取
-
总数
优先读取
`POST /record/query`
返回的
`total_records`
;接口未返回总数时再回退到
`count`
接口
---
---
...
@@ -297,4 +307,4 @@
...
@@ -297,4 +307,4 @@
1.
`risk_case_library`
1.
`risk_case_library`
当前不拆分独立关键字表、案例性质表或附件表。
当前不拆分独立关键字表、案例性质表或附件表。
案例性质
与关键字先通过文本字段
实现,后续如有需要再演进。
案例性质
先通过文本字段实现,关键字通过多值文本数组
实现,后续如有需要再演进。
src/pages/project_manager_xy/materialService.js
View file @
7b7c281e
This diff is collapsed.
Click to expand it.
src/pages/project_manager_xy/resource-booking/index.jsx
View file @
7b7c281e
This diff is collapsed.
Click to expand it.
src/pages/project_manager_xy/resource-stat/index.jsx
View file @
7b7c281e
This diff is collapsed.
Click to expand it.
src/services/audit-material-subject-build-checklist.md
View file @
7b7c281e
...
@@ -15,7 +15,7 @@
...
@@ -15,7 +15,7 @@
-
所有业务字段都放在
`metadata`
中
-
所有业务字段都放在
`metadata`
中
-
案例详情走纯文本,不单独拆分附件对象
-
案例详情走纯文本,不单独拆分附件对象
-
一期先不建独立关键字表、案例性质表
-
一期先不建独立关键字表、案例性质表
-
案例性质
和关键字先通过
文本字段实现
-
案例性质
先通过文本字段实现,关键字通过多值
文本字段实现
---
---
...
@@ -47,7 +47,7 @@
...
@@ -47,7 +47,7 @@
| 案例属性 |
`case_attribute`
|
`text`
| 否 | 否 | 否 | 无 | 案例属性或归属维度 |
| 案例属性 |
`case_attribute`
|
`text`
| 否 | 否 | 否 | 无 | 案例属性或归属维度 |
| 案例详情 |
`case_details`
|
`long_text`
| 否 | 否 | 否 | 无 | 案例详细内容正文 |
| 案例详情 |
`case_details`
|
`long_text`
| 否 | 否 | 否 | 无 | 案例详细内容正文 |
| 案例警示 |
`case_warning`
|
`text`
| 否 | 否 | 否 | 无 | 警示或风险提示 |
| 案例警示 |
`case_warning`
|
`text`
| 否 | 否 | 否 | 无 | 警示或风险提示 |
| 关键字 |
`keyword`
|
`text`
| 否 |
否 | 否 | 无 | 用户自定义检索关键字
|
| 关键字 |
`keyword`
|
`text`
| 否 |
是 | 否 | 无 | 用户自定义检索关键字;导入逗号拼接值需拆分为数组
|
| 案例来源 |
`case_source`
|
`text`
| 否 | 否 | 否 | 无 | 如监管通报、内部复盘 |
| 案例来源 |
`case_source`
|
`text`
| 否 | 否 | 否 | 无 | 如监管通报、内部复盘 |
| 案例等级 |
`case_level`
|
`text`
| 否 | 否 | 否 | 无 | 风险等级或分级 |
| 案例等级 |
`case_level`
|
`text`
| 否 | 否 | 否 | 无 | 风险等级或分级 |
| 案例年份 |
`case_year`
|
`number`
| 否 | 否 | 否 | 无 | 案例发生或归档年份 |
| 案例年份 |
`case_year`
|
`number`
| 否 | 否 | 否 | 无 | 案例发生或归档年份 |
...
@@ -98,7 +98,7 @@
...
@@ -98,7 +98,7 @@
1.
在案例管理页手动创建后,能生成
`risk_case_library`
1.
在案例管理页手动创建后,能生成
`risk_case_library`
2.
通过 Excel 导入后,能批量生成
`risk_case_library`
2.
通过 Excel 导入后,能批量生成
`risk_case_library`
3.
案例总览页能正确读取案例性质
、关键字和更新统计
3.
驾驶舱页能正确读取分类、案例类型、案例来源
、关键字和更新统计
4.
案例详情页能完成编辑与删除
4.
案例详情页能完成编辑与删除
---
---
...
...
src/services/record-api.md
View file @
7b7c281e
...
@@ -154,7 +154,7 @@
...
@@ -154,7 +154,7 @@
"case_attribute"
:
"流程绕行"
,
"case_attribute"
:
"流程绕行"
,
"case_details"
:
"某项目在高峰采购期内,多次通过拆分订单绕过审批阈值……"
,
"case_details"
:
"某项目在高峰采购期内,多次通过拆分订单绕过审批阈值……"
,
"case_warning"
:
"涉及审批阈值、例外授权和供应商集中度的场景应设置联合预警。"
,
"case_warning"
:
"涉及审批阈值、例外授权和供应商集中度的场景应设置联合预警。"
,
"keyword"
:
"采购审批, 拆单"
,
"keyword"
:
[
"采购审批"
,
"拆单"
]
,
"case_source"
:
"内部审计复盘"
,
"case_source"
:
"内部审计复盘"
,
"case_level"
:
"高"
,
"case_level"
:
"高"
,
"case_year"
:
2024
"case_year"
:
2024
...
@@ -229,7 +229,7 @@
...
@@ -229,7 +229,7 @@
"case_attribute"
:
"财务舞弊"
,
"case_attribute"
:
"财务舞弊"
,
"case_details"
:
"财务负责人通过虚构往来科目转移资金……"
,
"case_details"
:
"财务负责人通过虚构往来科目转移资金……"
,
"case_warning"
:
"资金支付复核应与月末异常波动分析交叉验证。"
,
"case_warning"
:
"资金支付复核应与月末异常波动分析交叉验证。"
,
"keyword"
:
"资金管理, 异常调账"
,
"keyword"
:
[
"资金管理"
,
"异常调账"
]
,
"case_source"
:
"内部通报"
,
"case_source"
:
"内部通报"
,
"case_level"
:
"高"
,
"case_level"
:
"高"
,
"case_year"
:
2025
"case_year"
:
2025
...
@@ -242,3 +242,5 @@
...
@@ -242,3 +242,5 @@
-
`title`
、
`content_type`
、
`content`
、
`metadata`
、
`subject`
这一层结构正确
-
`title`
、
`content_type`
、
`content`
、
`metadata`
、
`subject`
这一层结构正确
-
案例业务字段全部放入
`metadata`
-
案例业务字段全部放入
`metadata`
-
`metadata.keyword`
为多值字符串数组;Excel 导入如读取到
`资金管理, 异常调账`
,前端需拆分为
`["资金管理", "异常调账"]`
后保存
-
Excel 导出时,
`metadata.keyword`
数组需恢复为逗号拼接字符串写入
`关键字`
列
src/services/subjectsDefinition.md
View file @
7b7c281e
...
@@ -48,7 +48,7 @@ type Record = {
...
@@ -48,7 +48,7 @@ type Record = {
"case_attribute"
:
"内部控制缺陷"
,
"case_attribute"
:
"内部控制缺陷"
,
"case_details"
:
"项目经理通过虚构供应商合同套取资金……"
,
"case_details"
:
"项目经理通过虚构供应商合同套取资金……"
,
"case_warning"
:
"供应商准入与合同审批需交叉复核"
,
"case_warning"
:
"供应商准入与合同审批需交叉复核"
,
"keyword"
:
"资金挪用, 虚构合同"
,
"keyword"
:
[
"资金挪用"
,
"虚构合同"
]
,
"case_source"
:
"内部通报"
,
"case_source"
:
"内部通报"
,
"case_level"
:
"高"
,
"case_level"
:
"高"
,
"case_year"
:
2025
"case_year"
:
2025
...
@@ -64,6 +64,7 @@ type Record = {
...
@@ -64,6 +64,7 @@ type Record = {
-
统一存储为字符串
-
统一存储为字符串
-
Excel 导入时,空单元格需要转换为空字符串,避免
`undefined`
-
Excel 导入时,空单元格需要转换为空字符串,避免
`undefined`
-
若字段配置
`multiple: true`
,统一存储为字符串数组;Excel 单元格中的英文逗号或中文逗号拼接值需要拆分、去空并去重
### 2.2 `Record.title`
### 2.2 `Record.title`
...
@@ -78,7 +79,7 @@ type Record = {
...
@@ -78,7 +79,7 @@ type Record = {
-
卡片或详情摘要使用
`case_details`
-
卡片或详情摘要使用
`case_details`
-
案例性质筛选读取
`category`
-
案例性质筛选读取
`category`
-
标签筛选读取
`tag`
-
标签筛选读取
`tag`
-
关键字筛选读取
`keyword`
,历史数据可兼容读取
`tag`
-
关键字筛选读取
多值数组
`keyword`
,历史数据可兼容读取字符串型
`keyword`
与
`tag`
-
关键词检索优先覆盖
`label`
、
`keyword`
、
`case_details`
、
`case_warning`
-
关键词检索优先覆盖
`label`
、
`keyword`
、
`case_details`
、
`case_warning`
---
---
...
@@ -100,7 +101,7 @@ type Record = {
...
@@ -100,7 +101,7 @@ type Record = {
-
`case_attribute`
用于补充案例属性、归属维度或风险特征
-
`case_attribute`
用于补充案例属性、归属维度或风险特征
-
`case_details`
为案例详情正文,通常为几百到上千字
-
`case_details`
为案例详情正文,通常为几百到上千字
-
`case_warning`
用于提炼关键警示信息
-
`case_warning`
用于提炼关键警示信息
-
`keyword`
用于检索和热度统计,可与历史
`tag`
并存
-
`keyword`
用于检索和热度统计,
按多值字符串数组存储,
可与历史
`tag`
并存
-
`case_year`
建议存储为数字类型年份,便于筛选和排序
-
`case_year`
建议存储为数字类型年份,便于筛选和排序
| 字段标签 | 字段别名 | 字段类型 | 默认值 | 是否主键 | 是否多值 | 是否必填 | 搜索 | 聚合 | 说明 |
| 字段标签 | 字段别名 | 字段类型 | 默认值 | 是否主键 | 是否多值 | 是否必填 | 搜索 | 聚合 | 说明 |
...
@@ -112,7 +113,7 @@ type Record = {
...
@@ -112,7 +113,7 @@ type Record = {
| 案例属性 |
`case_attribute`
|
`text`
|
`null`
| 否 | 否 | 否 | 否 | 否 | 案例属性或归属维度 |
| 案例属性 |
`case_attribute`
|
`text`
|
`null`
| 否 | 否 | 否 | 否 | 否 | 案例属性或归属维度 |
| 案例详情 |
`case_details`
|
`long_text`
|
`null`
| 否 | 否 | 否 | 否 | 否 | 案例详细内容正文 |
| 案例详情 |
`case_details`
|
`long_text`
|
`null`
| 否 | 否 | 否 | 否 | 否 | 案例详细内容正文 |
| 案例警示 |
`case_warning`
|
`text`
|
`null`
| 否 | 否 | 否 | 否 | 否 | 案例提炼出的警示或风险提示 |
| 案例警示 |
`case_warning`
|
`text`
|
`null`
| 否 | 否 | 否 | 否 | 否 | 案例提炼出的警示或风险提示 |
| 关键字 |
`keyword`
|
`text`
|
`null`
| 否 |
否 | 否 | 否 | 否 | 检索关键字,支持人工维护
|
| 关键字 |
`keyword`
|
`text`
|
`null`
| 否 |
是 | 否 | 否 | 否 | 检索关键字,支持人工维护;导入时逗号拼接值需拆分为数组
|
| 案例来源 |
`case_source`
|
`text`
|
`null`
| 否 | 否 | 否 | 否 | 否 | 案例来源,如监管通报、内部复盘 |
| 案例来源 |
`case_source`
|
`text`
|
`null`
| 否 | 否 | 否 | 否 | 否 | 案例来源,如监管通报、内部复盘 |
| 案例等级 |
`case_level`
|
`text`
|
`null`
| 否 | 否 | 否 | 否 | 否 | 案例风险等级或分级 |
| 案例等级 |
`case_level`
|
`text`
|
`null`
| 否 | 否 | 否 | 否 | 否 | 案例风险等级或分级 |
| 案例年份 |
`case_year`
|
`number`
|
`null`
| 否 | 否 | 否 | 否 | 否 | 案例发生或归档年份 |
| 案例年份 |
`case_year`
|
`number`
|
`null`
| 否 | 否 | 否 | 否 | 否 | 案例发生或归档年份 |
...
@@ -130,7 +131,7 @@ type Record = {
...
@@ -130,7 +131,7 @@ type Record = {
{
"name"
:
"case_attribute"
,
"label"
:
"案例属性"
,
"type"
:
"text"
,
"default"
:
null
,
"multiple"
:
false
,
"required"
:
false
,
"primary"
:
false
,
"search"
:
{
"enabled"
:
false
},
"aggregation"
:
{
"enabled"
:
false
},
"settings"
:
{}
},
{
"name"
:
"case_attribute"
,
"label"
:
"案例属性"
,
"type"
:
"text"
,
"default"
:
null
,
"multiple"
:
false
,
"required"
:
false
,
"primary"
:
false
,
"search"
:
{
"enabled"
:
false
},
"aggregation"
:
{
"enabled"
:
false
},
"settings"
:
{}
},
{
"name"
:
"case_details"
,
"label"
:
"案例详情"
,
"type"
:
"long_text"
,
"default"
:
null
,
"multiple"
:
false
,
"required"
:
false
,
"primary"
:
false
,
"search"
:
{
"enabled"
:
false
},
"aggregation"
:
{
"enabled"
:
false
},
"settings"
:
{}
},
{
"name"
:
"case_details"
,
"label"
:
"案例详情"
,
"type"
:
"long_text"
,
"default"
:
null
,
"multiple"
:
false
,
"required"
:
false
,
"primary"
:
false
,
"search"
:
{
"enabled"
:
false
},
"aggregation"
:
{
"enabled"
:
false
},
"settings"
:
{}
},
{
"name"
:
"case_warning"
,
"label"
:
"案例警示"
,
"type"
:
"text"
,
"default"
:
null
,
"multiple"
:
false
,
"required"
:
false
,
"primary"
:
false
,
"search"
:
{
"enabled"
:
false
},
"aggregation"
:
{
"enabled"
:
false
},
"settings"
:
{}
},
{
"name"
:
"case_warning"
,
"label"
:
"案例警示"
,
"type"
:
"text"
,
"default"
:
null
,
"multiple"
:
false
,
"required"
:
false
,
"primary"
:
false
,
"search"
:
{
"enabled"
:
false
},
"aggregation"
:
{
"enabled"
:
false
},
"settings"
:
{}
},
{
"name"
:
"keyword"
,
"label"
:
"关键字"
,
"type"
:
"text"
,
"default"
:
null
,
"multiple"
:
fals
e
,
"required"
:
false
,
"primary"
:
false
,
"search"
:
{
"enabled"
:
false
},
"aggregation"
:
{
"enabled"
:
false
},
"settings"
:
{}
},
{
"name"
:
"keyword"
,
"label"
:
"关键字"
,
"type"
:
"text"
,
"default"
:
null
,
"multiple"
:
tru
e
,
"required"
:
false
,
"primary"
:
false
,
"search"
:
{
"enabled"
:
false
},
"aggregation"
:
{
"enabled"
:
false
},
"settings"
:
{}
},
{
"name"
:
"case_source"
,
"label"
:
"案例来源"
,
"type"
:
"text"
,
"default"
:
null
,
"multiple"
:
false
,
"required"
:
false
,
"primary"
:
false
,
"search"
:
{
"enabled"
:
false
},
"aggregation"
:
{
"enabled"
:
false
},
"settings"
:
{}
},
{
"name"
:
"case_source"
,
"label"
:
"案例来源"
,
"type"
:
"text"
,
"default"
:
null
,
"multiple"
:
false
,
"required"
:
false
,
"primary"
:
false
,
"search"
:
{
"enabled"
:
false
},
"aggregation"
:
{
"enabled"
:
false
},
"settings"
:
{}
},
{
"name"
:
"case_level"
,
"label"
:
"案例等级"
,
"type"
:
"text"
,
"default"
:
null
,
"multiple"
:
false
,
"required"
:
false
,
"primary"
:
false
,
"search"
:
{
"enabled"
:
false
},
"aggregation"
:
{
"enabled"
:
false
},
"settings"
:
{}
},
{
"name"
:
"case_level"
,
"label"
:
"案例等级"
,
"type"
:
"text"
,
"default"
:
null
,
"multiple"
:
false
,
"required"
:
false
,
"primary"
:
false
,
"search"
:
{
"enabled"
:
false
},
"aggregation"
:
{
"enabled"
:
false
},
"settings"
:
{}
},
{
"name"
:
"case_year"
,
"label"
:
"案例年份"
,
"type"
:
"number"
,
"default"
:
null
,
"multiple"
:
false
,
"required"
:
false
,
"primary"
:
false
,
"search"
:
{
"enabled"
:
false
},
"aggregation"
:
{
"enabled"
:
false
},
"settings"
:
{}
}
{
"name"
:
"case_year"
,
"label"
:
"案例年份"
,
"type"
:
"number"
,
"default"
:
null
,
"multiple"
:
false
,
"required"
:
false
,
"primary"
:
false
,
"search"
:
{
"enabled"
:
false
},
"aggregation"
:
{
"enabled"
:
false
},
"settings"
:
{}
}
...
@@ -148,7 +149,7 @@ type Record = {
...
@@ -148,7 +149,7 @@ type Record = {
"case_attribute"
:
"流程绕行"
,
"case_attribute"
:
"流程绕行"
,
"case_details"
:
"某项目在高峰采购期内,多次通过拆分订单绕过审批阈值,导致同一供应商在短期内累计发生异常采购金额。复盘发现,审批节点设置与例外授权规则未同步更新,最终形成流程漏洞。"
,
"case_details"
:
"某项目在高峰采购期内,多次通过拆分订单绕过审批阈值,导致同一供应商在短期内累计发生异常采购金额。复盘发现,审批节点设置与例外授权规则未同步更新,最终形成流程漏洞。"
,
"case_warning"
:
"涉及审批阈值、例外授权和供应商集中度的场景应设置联合预警。"
,
"case_warning"
:
"涉及审批阈值、例外授权和供应商集中度的场景应设置联合预警。"
,
"keyword"
:
"审批, 采购, 拆单"
,
"keyword"
:
[
"审批"
,
"采购"
,
"拆单"
]
,
"case_source"
:
"内部审计复盘"
,
"case_source"
:
"内部审计复盘"
,
"case_level"
:
"高"
,
"case_level"
:
"高"
,
"case_year"
:
2024
"case_year"
:
2024
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment