Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in / Register
Toggle navigation
A
audit_material_manage
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
audit_material_manage
Commits
6b376a4b
Commit
6b376a4b
authored
Sep 03, 2026
by
drigle
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix: use text input for source application
parent
97b9b7d3
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
23 additions
and
42 deletions
+23
-42
audit-material-center.business-flow.md
...project_manager_xy/audit-material-center.business-flow.md
+4
-4
index.jsx
src/pages/project_manager_xy/resource-booking/index.jsx
+19
-38
No files found.
src/pages/project_manager_xy/audit-material-center.business-flow.md
View file @
6b376a4b
...
...
@@ -89,7 +89,7 @@
2.
通过上传区拖拽文件或打开文件选择器;若选择的是
`ZIP`
压缩包,可进一步选择上传模式:
-
`整包上传`
:将压缩包本身作为 1 份材料处理
-
`解压后逐文件上传`
:按压缩包内文件逐个建档
3.
用户补充标题、所属周期/年份、来源应用、来源系统、标签、分类、提供部门、提供时间、是否涉密、是否审计部材料等信息;来源系统和材料分类必须从配置下拉中选择
3.
用户补充标题、所属周期/年份、来源应用、来源系统、标签、分类、提供部门、提供时间、是否涉密、是否审计部材料等信息;来源
应用为文本输入,来源
系统和材料分类必须从配置下拉中选择
4.
先调用上传接口上传二进制文件
5.
上传成功后,得到
`{name, type, size, url}`
文件对象
6.
再创建
`am_material`
记录:
...
...
@@ -108,7 +108,7 @@
### 4.3 在材料中心统一查看与管理
1.
用户进入
`材料归档`
2.
在“搜索材料”区域按字段填写筛选条件;文本字段支持模糊搜索,来源系统和材料分类使用配置下拉筛选:
2.
在“搜索材料”区域按字段填写筛选条件;文本字段支持模糊搜索,来源系统和材料分类使用配置下拉筛选
,来源应用按文本模糊匹配
:
-
材料标题:匹配
`metadata.material_title`
-
所属周期/年份:匹配
`metadata.archive_year`
-
文件名:匹配
`metadata.file_asset.name`
...
...
@@ -129,7 +129,7 @@
10.
勾选后在浮动操作条中执行以下批量操作:
-
批量下载/导出:勾选 1 份材料时直接下载原文件;勾选多份材料时,前端读取各材料
`metadata.file_asset.url`
并打包为
`ZIP`
压缩包下载
-
批量修改:按字段选择是否覆盖所属周期/年份、来源应用、来源系统、分类、提供部门、提供时间、是否涉密、是否审计部材料;来源系统或材料分类启用覆盖后从对应配置下拉选择
-
批量修改:按字段选择是否覆盖所属周期/年份、来源应用、来源系统、分类、提供部门、提供时间、是否涉密、是否审计部材料;来源
应用使用文本输入,来源
系统或材料分类启用覆盖后从对应配置下拉选择
-
批量打标签:统一覆盖
`metadata.tag`
-
批量删除:对已勾选材料执行软删除
...
...
@@ -144,7 +144,7 @@
13.
创建、修改、批量操作、下载和删除成功后,以视口顶部居中的 Toast 提示结果,并在 4 秒后自动消失;失败信息保留在当前业务区域,便于用户定位和重试
14.
列表或统计请求失败时保留真实错误态并展示重试提示;真实查询结果为空时展示空状态,不注入演示材料、测试数字或伪造项目记录
15.
用户点击“编辑”后进入编辑态,可修改材料标题、所属周期/年份、来源应用、来源系统、分类、标签、提供信息与合规属性;来源系统和材料分类从配置下拉选择
15.
用户点击“编辑”后进入编辑态,可修改材料标题、所属周期/年份、来源应用、来源系统、分类、标签、提供信息与合规属性;来源
应用使用文本输入,来源
系统和材料分类从配置下拉选择
16.
编辑态下点击“取消编辑”放弃未保存修改并恢复当前材料原值
17.
编辑态下点击“保存修改”后调用材料更新接口,保存成功后生效并回到查看态
18.
详情弹框提供单个删除入口,删除前需二次确认,确认后对当前材料执行软删除并关闭弹框
...
...
src/pages/project_manager_xy/resource-booking/index.jsx
View file @
6b376a4b
...
...
@@ -70,7 +70,6 @@ import {
loadMaterialSelectFieldOptions
,
removeMaterialRecord
,
UNCATEGORIZED_CATEGORY_LABEL
,
SOURCE_APP_SUGGESTIONS
,
updateMaterialRecord
,
}
from
"../materialService"
;
...
...
@@ -499,22 +498,6 @@ export default function ResourceBookingPage() {
};
},
[
activeMaterialId
,
submittedMaterialSearchForm
,
page
,
pageSize
]);
const
sourceOptions
=
useMemo
(()
=>
{
const
dynamicOptions
=
(
dashboard
.
sourceSuggestions
||
[]).
filter
(
Boolean
);
return
[...
SOURCE_APP_SUGGESTIONS
,
...
dynamicOptions
].
reduce
(
(
accumulator
,
item
)
=>
{
if
(
!
item
?.
value
||
accumulator
.
some
((
current
)
=>
current
.
value
===
item
.
value
)
)
{
return
accumulator
;
}
accumulator
.
push
(
item
);
return
accumulator
;
},
[],
);
},
[
dashboard
.
sourceSuggestions
]);
const
categoryTabs
=
useMemo
(
()
=>
{
const
categorizedTabs
=
archiveCategoryOptions
...
...
@@ -1301,14 +1284,12 @@ export default function ResourceBookingPage() {
<
div
className=
"min-w-0"
>
<
FieldLabel
>
来源应用
</
FieldLabel
>
<
ConfiguredSelect
<
Input
fullWidth
variant=
"secondary"
value=
{
materialSearchForm
.
sourceApp
}
options=
{
sourceOptions
}
fieldLabel=
"来源应用"
emptyLabel=
"全部来源应用"
onChange=
{
(
event
)
=>
updateMaterialSearchField
(
"sourceApp"
,
event
.
target
.
value
)
}
placeholder=
"全部来源应用"
onChange=
{
(
event
)
=>
updateMaterialSearchField
(
"sourceApp"
,
event
.
target
.
value
)
}
/>
</
div
>
</
div
>
...
...
@@ -1773,12 +1754,12 @@ export default function ResourceBookingPage() {
</
div
>
<
div
>
<
FieldLabel
>
来源应用
</
FieldLabel
>
<
ConfiguredSelect
<
Input
fullWidth
variant=
"secondary"
value=
{
detailForm
.
sourceApp
}
options=
{
sourceOptions
}
fieldLabel=
"来源应用"
emptyLabel=
"请选择来源应用(可选)"
disabled=
{
saving
}
placeholder=
"请输入来源应用"
isDisabled=
{
saving
}
onChange=
{
(
event
)
=>
setDetailForm
((
prev
)
=>
({
...
prev
,
...
...
@@ -2113,12 +2094,12 @@ export default function ResourceBookingPage() {
</
HeroCheckbox
>
<
div
>
<
FieldLabel
>
来源应用
</
FieldLabel
>
<
ConfiguredSelect
<
Input
fullWidth
variant=
"secondary"
value=
{
batchEditForm
.
sourceApp
}
options=
{
sourceOptions
}
fieldLabel=
"来源应用"
emptyLabel=
"留空以统一清除来源应用"
disabled=
{
!
batchEditFields
.
sourceApp
}
placeholder=
"留空以统一清除来源应用"
isDisabled=
{
!
batchEditFields
.
sourceApp
}
onChange=
{
(
event
)
=>
setBatchEditForm
((
prev
)
=>
({
...
prev
,
...
...
@@ -2725,11 +2706,11 @@ export default function ResourceBookingPage() {
</
div
>
<
div
>
<
FieldLabel
>
来源应用
</
FieldLabel
>
<
ConfiguredSelect
<
Input
fullWidth
variant=
"secondary"
value=
{
uploadForm
.
sourceApp
}
options=
{
sourceOptions
}
fieldLabel=
"来源应用"
emptyLabel=
"请选择来源应用(可选)"
placeholder=
"请输入来源应用"
onChange=
{
(
event
)
=>
setUploadForm
((
prev
)
=>
({
...
prev
,
...
...
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