Commit 6001bdb3 authored by drigle's avatar drigle

feat: update deployment path and simplify management tables

parent f4ec5abf
......@@ -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,
......
......@@ -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={[
......
......@@ -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="当前还没有历史快照,审计项目执行一键归档后会在这里展示。"
/>
);
......
......@@ -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">
......
......@@ -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` 展示默认分组和自定义分组,右侧展示当前分组下的全部表单及数据表格。
......
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