-
Reverses the earlier 'hide unsupported fields' decision per user request to strictly follow the prototype look. Brings back: - Full dark sub-toolbar: 新增 / 修改 / 删除 / 保存 / 取消 (separator) 功能 / 作废 / 重置密码 / 取消作废, with status chip + settings gear on the right and 已选权限 counter - 9-field 3x3 form with prototype's required-field cyan tint, 制单人 showing 保存后自动生成 placeholder in new mode - 6 perm tabs (权限组 / 客户 / 供应商 / 人员 / 工序 / 司机) - 30-row permission grid with hover, accent-soft selected row, filter - Scope tabs with master enable + 4-col grid of items - Floating vertical 帮助 button on right edge Permissions and the no-op buttons are visual-only — they don't round-trip to backend. Save still sends only sUserNo/sUserName/sUserType/sLanguage/ bCanModifyDocs (iStaffId and permissionCategoryIds intentionally omitted). Adds bespoke Primitives.tsx (Field/PrimInput/PrimSelect/PrimCheckbox/ ToolbarBtnDark/ToolbarBtnLight) so this screen renders pixel-faithful to prototype rather than picking up AntD chrome.
-
Per docs/04 production stack: Vite + React 18 + TypeScript + AntD 5 + Redux Toolkit + React Router v6 + Axios. Theme tokens copied from prototype/XLY-ERP.html so density, colors, and layout match. Pages: Login, Home, UserList, UserDetail, ModuleConfig — wired to existing endpoints (/api/usr/auth/login, /api/usr/users, /api/mod/modules). Backend-unsupported fields (user permission grid, 18 module fields, iStaffId picker) hidden per scope. Sidebar/MegaNav remain static reference data; dashboard stats hardcoded (no endpoint).