Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in / Register
Toggle navigation
A
audit_project_manager
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_project_manager
Commits
6001bdb3
Commit
6001bdb3
authored
Aug 03, 2026
by
drigle
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat: update deployment path and simplify management tables
parent
f4ec5abf
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
19 additions
and
22 deletions
+19
-22
.umirc.ts
.umirc.ts
+1
-1
DynamicFormManager.jsx
src/components/DynamicFormManager.jsx
+1
-9
AuditProjectArchivePage.jsx
src/pages/project_manager_xy/AuditProjectArchivePage.jsx
+1
-10
Layout.jsx
src/pages/project_manager_xy/Layout.jsx
+12
-1
project-management.business-flow.md
...es/project_manager_xy/project-management.business-flow.md
+4
-1
No files found.
.umirc.ts
View file @
6001bdb3
...
...
@@ -13,7 +13,7 @@ const ROUTE_PATHS = {
projectForm
:
'/project_form'
,
auditProjectForm
:
'/audit_project_form'
,
}
as
const
;
const
APP_BASE_PATH
=
'/audit_project_manager/'
;
const
APP_BASE_PATH
=
'/audit_project_manager
_new
/'
;
export
default
defineConfig
({
layout
:
false
,
...
...
src/components/DynamicFormManager.jsx
View file @
6001bdb3
...
...
@@ -267,24 +267,16 @@ function FieldsDialog({ form, open, onClose }) {
name
:
field
.
name
,
title
:
field
.
label
,
typeLabel
:
FIELD_TYPE_LABELS
[
field
.
type
]
||
field
.
type
,
flags
:
[
field
.
primary
?
'主键'
:
''
,
field
.
multiple
?
'多值'
:
''
,
field
.
required
?
'必填'
:
''
].
filter
(
Boolean
).
join
(
'、'
)
||
'-'
,
raw
:
field
,
}));
const
columns
=
[
{
field
:
'title'
,
label
:
'字段标签'
,
width
:
220
,
fieldDef
:
{
type
:
'text'
,
label
:
'字段标签'
}
},
{
field
:
'name'
,
label
:
'字段别名'
,
width
:
220
,
fieldDef
:
{
type
:
'text'
,
label
:
'字段别名'
}
},
{
field
:
'typeLabel'
,
label
:
'字段类型'
,
width
:
140
,
fieldDef
:
{
type
:
'text'
,
label
:
'字段类型'
},
},
{
field
:
'flags'
,
label
:
'字段属性'
,
width
:
220
,
fieldDef
:
{
type
:
'text'
,
label
:
'字段属性'
},
},
];
const
reorder
=
async
(
field
,
offset
)
=>
{
...
...
@@ -367,7 +359,7 @@ function FieldsDialog({ form, open, onClose }) {
records=
{
records
}
selectable=
{
false
}
filters=
{
{
keyword
}
}
filterSchema=
{
[{
key
:
'keyword'
,
label
:
'搜索字段'
,
type
:
'text'
,
placeholder
:
'字段标签
、别名
或类型'
}]
}
filterSchema=
{
[{
key
:
'keyword'
,
label
:
'搜索字段'
,
type
:
'text'
,
placeholder
:
'字段标签或类型'
}]
}
onFiltersChange=
{
(
_
,
value
)
=>
setKeyword
(
value
)
}
onClearFilters=
{
()
=>
setKeyword
(
''
)
}
toolbarActions=
{
[
...
...
src/pages/project_manager_xy/AuditProjectArchivePage.jsx
View file @
6001bdb3
...
...
@@ -11,16 +11,7 @@ export default function AuditProjectArchivePage() {
allowCreate=
{
false
}
allowClone=
{
false
}
allowDelete=
{
false
}
buildSummaryItems=
{
({
records
,
filteredRecords
,
selectedIds
,
activeView
})
=>
[
{
label
:
'归档项目数'
,
value
:
records
.
length
,
hint
:
'全部历史快照'
,
tone
:
'default'
},
{
label
:
'当前视图'
,
value
:
filteredRecords
.
length
,
hint
:
activeView
?.
title
||
'筛选结果'
,
tone
:
'emerald'
,
},
{
label
:
'当前已选'
,
value
:
selectedIds
.
length
,
hint
:
'只读查看'
,
tone
:
'amber'
},
]
}
buildSummaryItems=
{
()
=>
[]
}
emptyDescription=
"当前还没有历史快照,审计项目执行一键归档后会在这里展示。"
/>
);
...
...
src/pages/project_manager_xy/Layout.jsx
View file @
6001bdb3
...
...
@@ -60,6 +60,11 @@ const MENU_GROUPS = [
},
];
const
APP_BASE_PATH
=
String
(
AUDIT_PROJECT_MANAGER_APP_BASE_PATH
||
'/'
).
replace
(
/
\/
+$/
,
''
,
);
function
NavigationItem
({
item
,
currentPath
})
{
const
Icon
=
item
.
icon
;
...
...
@@ -99,7 +104,13 @@ function NavigationGroup({ group, currentPath }) {
function
Navigation
({
location
,
userInfo
,
siteInfo
})
{
const
appTitle
=
siteInfo
?.
title
||
siteInfo
?.
name
||
'审计项目管理'
;
const
currentPath
=
location
.
pathname
.
replace
(
/^
\/
audit_project_manager
(?=\/
|$
)
/
,
''
)
||
'/'
;
const
locationPath
=
location
.
pathname
||
'/'
;
const
currentPath
=
APP_BASE_PATH
&&
APP_BASE_PATH
!==
'/'
&&
(
locationPath
===
APP_BASE_PATH
||
locationPath
.
startsWith
(
`
${
APP_BASE_PATH
}
/`
))
?
locationPath
.
slice
(
APP_BASE_PATH
.
length
)
||
'/'
:
locationPath
;
return
(
<
Sidebar
className=
"dark bg-zinc-950 text-white"
>
...
...
src/pages/project_manager_xy/project-management.business-flow.md
View file @
6001bdb3
...
...
@@ -2,7 +2,8 @@
## 1. 功能入口
应用基路径为
`/audit_project_manager/`
。
应用基路径为
`/audit_project_manager_new/`
,由 Umi 的
`base`
、
`publicPath`
和
`AUDIT_PROJECT_MANAGER_APP_BASE_PATH`
统一配置。页面业务路由保持不变。
| 页面 | 路由 | 用途 |
| --- | --- | --- |
...
...
@@ -56,6 +57,7 @@ Word 导出分别读取 `audit_plain_template`、`audit_verification_template`
## 5. 往期项目归档
-
`/audit_project_archive`
直接查询并展示已有的
`audit_project_history`
历史快照,不再读写已废弃的
`audit_project_archive`
Subject。
-
归档列表不展示前端写死的归档数量、当前视图和已选数量摘要,仅保留服务端配置驱动的视图、筛选和表格内容。
-
审计项目列表右上角保留批量“一键归档”:用户选择一条或多条项目后,页面把项目
`metadata`
复制为
`audit_project_history`
记录,并通过
`POST /record/import`
写入历史快照。
-
批量归档未选择记录时按钮禁用;接口未返回任何历史记录 ID 时展示错误。归档只生成快照,不删除或修改原审计项目。
-
列表行内不提供复制或单条归档入口,已有历史快照继续保留并只读展示。
...
...
@@ -90,6 +92,7 @@ Word 导出分别读取 `audit_plain_template`、`audit_verification_template`
-
表单支持新建、编辑、删除和进入字段管理;新建和编辑只维护表单标题,不提供描述或别名字段。新建时内部
`name`
由服务端自动生成,编辑时保留已有
`name`
。列表只展示表单标题,字段数量以标签展示,字段管理使用表格图标入口。
-
表单列表默认每页展示 20 条,搜索表单时自动回到第一页,并支持切换每页 10、20、50 或 100 条。
-
字段支持新建、编辑、删除、上移、下移、Excel 导入和导出。
-
字段管理表格仅展示字段标签和类型,不展示内部字段别名或字段属性;这些数据仍作为字段接口和编辑弹窗的内部配置使用。
-
字段类型、必填、多值、主键和
`settings`
由表单字段接口保存。
-
`settings`
必须是合法 JSON;选择字段选项存放在
`settings.options`
。
-
审计项目中的
`form`
字段在项目详情侧栏内默认完整展开:左侧按
`settings.group`
展示默认分组和自定义分组,右侧展示当前分组下的全部表单及数据表格。
...
...
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