• - Remove the green '已绑定' badge from StaffPicker; the prototype
      doesn't show one and it's confusing in create mode (nothing has
      been saved yet).
    - On staff selection, auto-fill 用户号 (sUserNo) and 用户名 (sUserName)
      with the staff's Chinese name to match prototype behavior; user
      can still override either field after selection.
    zichun authored
     
    Browse Code »
  • Backend:
    - StaffSearchVO (iIncrement / sStaffNo / sStaffName / sDepartment)
    - StaffMapper.searchActive(keyword, limit) — LIKE on name + staff no
    - StaffController GET /api/usr/staffs?keyword=&limit=
    - UserListVO + UserMapper.xml: expose iStaffId so edit mode preserves
      the binding when user doesn't change 员工名
    
    Frontend:
    - api/staff.ts → searchStaff()
    - StaffPicker.tsx: input + dropdown with debounced search, '已绑定'
      badge when an iStaffId is bound, click outside to close, search icon
    - UserDetail: replace 员工名 PrimInput with StaffPicker; track iStaffId
      in form state; send to backend on save (no longer omitted)
    zichun authored
     
    Browse Dir »
  • 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.
    zichun authored
     
    Browse Code »
  • 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).
    zichun authored
     
    Browse Code »