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
05d0a6b7
Commit
05d0a6b7
authored
Aug 31, 2026
by
drigle
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix: center table loading state
parent
3cc706f5
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
10 additions
and
9 deletions
+10
-9
DataTable.jsx
src/components/DataTable.jsx
+2
-4
SubjectRecordWorkbench.jsx
src/components/SubjectRecordWorkbench.jsx
+7
-4
project-management.business-flow.md
...es/project_manager_xy/project-management.business-flow.md
+1
-1
No files found.
src/components/DataTable.jsx
View file @
05d0a6b7
...
...
@@ -74,9 +74,7 @@ export function DataTableEmptyState({ title = '暂无数据', size = 'md' }) {
function
DataTableLoadingState
()
{
return
(
<
div
className=
"flex min-h-48 items-center justify-center"
aria
-
label=
"数据加载中"
>
<
Spinner
size=
"sm"
/>
</
div
>
<
div
className=
"min-h-48 w-full"
aria
-
hidden=
"true"
/>
);
}
...
...
@@ -264,7 +262,7 @@ export function DataTable({
return
(
<
div
className=
{
[
'relative min-w-0 w-full'
,
className
].
filter
(
Boolean
).
join
(
' '
)
}
>
<
div
ref=
{
gridViewportRef
}
className=
"relative min-w-0 w-full"
>
{
isLoading
&&
rows
.
length
>
0
?
(
{
isLoading
?
(
<
div
className=
"absolute inset-0 z-10 grid place-items-center"
aria
-
label=
"数据加载中"
...
...
src/components/SubjectRecordWorkbench.jsx
View file @
05d0a6b7
...
...
@@ -130,6 +130,9 @@ export default function SubjectRecordWorkbench({
safePage
*
pageSize
,
(
safePage
+
1
)
*
pageSize
,
);
const
displayRecords
=
loading
?
[]
:
pageRecords
;
const
displaySelectedIds
=
loading
?
[]
:
selectedIds
;
const
displayPage
=
loading
?
0
:
safePage
;
useEffect
(()
=>
{
if
(
safePage
!==
page
)
{
...
...
@@ -311,8 +314,8 @@ export default function SubjectRecordWorkbench({
description=
{
description
}
columns=
{
visibleColumns
}
columnGroups=
{
activeView
?.
settings
?.
groups
||
[]
}
records=
{
page
Records
}
selectedIds=
{
s
electedIds
}
records=
{
display
Records
}
selectedIds=
{
displayS
electedIds
}
onSelectionChange=
{
setSelectedIds
}
toolbarActions=
{
builtToolbarActions
}
bulkActions=
{
builtBulkActions
}
...
...
@@ -345,10 +348,10 @@ export default function SubjectRecordWorkbench({
:
'当前账号未获得该对象 Grid 视图的查看权限。'
,
}
}
pagination=
{
{
page
:
safe
Page
,
page
:
display
Page
,
pageSize
,
pageSizeOptions
:
PAGE_SIZE_OPTIONS
,
totalRecords
:
filteredRecords
.
length
,
totalRecords
:
loading
?
0
:
filteredRecords
.
length
,
totalPages
,
onPageChange
:
(
nextPage
)
=>
{
setPage
(
nextPage
);
...
...
src/pages/project_manager_xy/project-management.business-flow.md
View file @
05d0a6b7
...
...
@@ -28,7 +28,7 @@
1.
页面通过
`loadSubject`
、
`getSubjectView`
和
`POST /record/query`
读取字段、视图和记录。
2.
表格列、视图限制、排序、选择字段选项和字段分组来自服务端配置;字段分组读取当前 Grid View 的
`settings.groups`
,按配置展示分组表头并支持展开或收起。当前 Grid View 的
`settings.shortTitle === true`
时只隐藏通用
`title`
展示列;
`false`
或未配置时正常展示。
`title`
数据仍参与关键词搜索、排序、详情和保存,详情入口保留在项目名称和固定操作列。
切换 Grid View 时立即切换当前视图、清空跨视图选择并回到第一页,同时重新读取 Subject、视图配置和
`/record/query`
数据;项目状态不再单独提供下拉筛选,按顶部 Grid View Tabs 切换。
切换 Grid View 时立即切换当前视图、清空跨视图选择并回到第一页,同时重新读取 Subject、视图配置和
`/record/query`
数据;项目状态不再单独提供下拉筛选,按顶部 Grid View Tabs 切换
;刷新期间不展示上一次请求的记录行,表格在当前可视区域中心显示加载状态,失败时保留错误反馈并清空不可确认的旧数据
。
View 中兼容历史字段
`metadata.project_finish_time`
时按数据定义显示为“项目完成时间”;
内部
`metadata.*`
路径不作为可见表头,字段取值路径和服务端配置保持不变。
3.
新建和编辑时业务字段统一写入
`metadata`
;引用和用户字段只提交 ID,日期提交 ISO 8601。
...
...
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