恢复点(restore point)。别人改崩后可 git reset --hard 回到此提交。 == 此快照内容 == - 后端 oa-backend: 734 控制器 / 711 实体 (Spring Boot 3.2.5 + SQLite, 端口8091) - 前端 modern-ui/app: Vue3+Vite, 约700页 (构建产物已在 oa-backend/src/main/resources/static) - 数据库 oa-backend/data/oa.db: 含全部演示数据 (强制入库, 6.6MB) - 交接文档 go.md + go-code-reference/endpoints/entities/database.md - 多代理建设脚本 .claude/wf-*.js == 状态 == - 对 凯迪科技ERP_20260507.xlsx 合规 MET ~73.3% (PARTIAL 75: 34可建+6种子/bug+35外部硬天花板) - 安全: 5轮红队+5轮复检, default-deny分级鉴权, 连续零可利用 - W3~W7 累计补完436缺口; W8末轮(40缺口)为半成品(源码树可编译但未集成) - 运行: cd oa-backend; java -jar build/libs/oa-backend-0.1.0.jar --server.port=8091; admin/123456 == 排除(gitignore, 可再生) == node_modules / oa-backend/build / .jdks / *.log / Backup-ERP-* / 弃用的OFBiz核心(只保留modern-ui) 完整文件夹备份见同目录 Backup-ERP-20260615-191517/ (含上述全部, 仅缺 node_modules) 时间戳: 20260615-191517 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
7.8 KiB
7.8 KiB
Design
Source of truth
- Status: Active
- Last refreshed: 2026-06-09
- Primary product surfaces:
/modern/app/admin shell, dashboard, domain admin pages, generated business pages, dedicated ERP workspaces, POS and commerce operator surfaces. - Evidence reviewed:
plugins/modern-ui/UI.md,plugins/modern-ui/app/src/styles/erp-ui.css,tokens.css,base.css,element-overrides.css,erp-patterns.css,modern.css, and ERP wrapper usage inplugins/modern-ui/app/src/components/erp.
Brand
- Personality: quiet, operational, trustworthy, dense enough for repeated back-office work.
- Trust signals: stable navigation, visible permissions, explicit unavailable/error states, audit context, predictable action hierarchy.
- Avoid: marketing composition, decorative dashboards, isolated style experiments, and operator-facing engineering status language.
Product goals
- Goals: make OFBiz administration usable as a production management site for orders, catalog, parties, finance, inventory, procurement, manufacturing, human resources, content, POS, commerce, reporting, security, and system operations.
- Non-goals: replacing business verification with structural coverage, adding a second design system, or turning Element Plus primitives into page-local bespoke styling.
- Success signals: business pages use ERP wrappers, work areas are compact and scan-friendly, actions are clearly ranked, and runtime/coverage/parity evidence is reported with precise scope.
Personas and jobs
- Primary personas: operations clerk, finance operator, catalog manager, inventory coordinator, procurement user, HR admin, content manager, system administrator.
- User jobs: find records, compare rows, submit service actions, inspect permissions, review audit context, run reports, process exceptions, and continue interrupted work.
- Key contexts of use: desktop-first back-office sessions, high data density, repeated scanning, partial backend availability, permission-gated operations.
Information architecture
- Primary navigation:
ErpAppShellowns side navigation, top commands, session identity, module entry points, and support links. - Core routes/screens: dashboard, domain admin pages,
#/pages/:pageIdgenerated pages, dedicatedErp*Workspaceflows, report/POS/commerce surfaces. - Content hierarchy: page header, tabs or local navigation, query/action band, primary work area, side context for audit, permissions, handoff, and receipts.
Design principles
- Wrapper first: business pages depend on ERP wrappers and ERP patterns, not scattered Element Plus styling.
- Text first, color second: state copy explains the business meaning; color reinforces priority or risk.
- Dense, not cramped: use 4px spacing rhythm, 28/32/36px controls, compact tables, and clear grouping.
- One next action: each work area has one primary action and clear secondary/danger/overflow handling.
- Tradeoffs: prefer operational consistency over visual novelty; prefer structural reuse over one-off page polish.
Visual language
- Color: primary blue for navigation, focus, and primary actions; success green for completed/healthy/connected; warning amber for pending/review/background processing; danger red for errors/rejection/cancel/delete; info gray for neutral metadata.
- Typography: 24px page titles, 18px large panel titles, 14px body and primary controls, 13px compact text, 12px status and metadata; letter spacing remains 0.
- Spacing/layout rhythm: 4px grid through
--erp-space-*; desktop working width around 1180px; page sections are work areas, not nested decorative cards. - Shape/radius/elevation: 4px/6px normal radius, 8px maximum; no decorative shadows on work surfaces; 1px borders and left state lines carry structure.
- Motion: Element Plus defaults only; avoid motion that delays data scanning or action completion.
- Imagery/iconography: icons support navigation/actions/status; back-office pages do not rely on ornamental imagery.
Components
- Existing components to reuse:
ErpPageHeader,ErpSearchForm,ErpEntityForm,ErpDataTable,ErpActionBar,ErpStatusTag,ErpLookup,ErpUpload,ErpDrawer,ErpAuditTimeline,ErpPageRenderer,ErpAdapterBlock, and dedicatedErp*Workspacecomponents. - New/changed components: add wrapper or pattern only when a repeated business need is not covered by existing wrappers.
- Variants and states: forms use search/entity/one-column densities; tables use compact scan rows; actions use primary/default/link/danger/overflow; states use loading, empty, unavailable, error, success, disabled, and permission explanations.
- Token/component ownership:
tokens.cssowns variables;element-overrides.cssmaps Element Plus;erp-patterns.cssowns reusable ERP patterns;modern.cssowns shell and page-layout composition.
Accessibility
- Target standard: practical WCAG 2.1 AA for contrast, focus, keyboard access, and readable state copy.
- Keyboard/focus behavior: Element Plus focus rings must remain visible and use
--erp-color-focus-ring. - Contrast/readability: state colors must not carry meaning alone; pair with labels and descriptions.
- Screen-reader semantics: use tables for tabular data, descriptions for readonly facts, alerts for permission/error/unavailable states.
- Reduced motion and sensory considerations: avoid nonessential animation and color-only alerts.
Responsive behavior
- Supported breakpoints/devices: desktop-first admin workflows; narrower viewports collapse side context and multi-column grids without changing business order.
- Layout adaptations: search forms move from four columns to fewer columns; entity forms from two columns to one; workbench side panels stack below main work.
- Touch/hover differences: POS and commerce may use larger controls; back-office pages keep compact density while preserving tap targets where needed.
Interaction states
- Loading: skeleton or inline loading text stays inside the work area.
- Empty: explain whether no records match, permissions are missing, session is absent, service is unavailable, or data is flow-dependent.
- Error: keep the reason visible in the page; toast can supplement but not replace page feedback.
- Success: show action receipt or result context in the work area.
- Disabled: keep the disabled control visible when it teaches permission, session, or backend state.
- Offline/slow network: treat as unavailable/error with retry or next-step copy when the API contract supports it.
Content voice
- Tone: short, concrete, business-operational Chinese.
- Terminology: current document, business data, submit action, permission context, pending queue, exception handoff, action receipt, business flow, audit record.
- Microcopy rules: do not expose component paths, generated source, internal coverage states, or implementation labels as the main operator narrative.
Implementation constraints
- Framework/styling system: Vue 3, Element Plus, CSS tokens and patterns, ERP wrappers.
- Design-token constraints: pages do not define their own color, radius, spacing, shadow, button, table, or status systems.
- Performance constraints: generated pages and large admin routes must stay lightweight; prefer shared patterns over repeated page CSS.
- Compatibility constraints: original OFBiz metadata remains route, form, table, permission, action, and fallback source until business parity is signed off.
- Test/screenshot expectations: run build for changed UI code, runtime smoke for shell/pages, coverage for structural contracts, and parity checks only for scoped business behavior claims.
Open questions
- Owner: product/design. Impact: decide whether POS and commerce should receive a separate touch-density token set or continue sharing the admin density with local overrides.
- Owner: QA/business. Impact: define representative old-vs-new business E2E scenarios by module before claiming workflow completion.