Logo

GitLab

Sign in

朱子纯 / test

  • Back to Dashboard
  • Project
  • Activity
  • Files
  • Commits
  • Network
  • Graphs
  • Milestones
  • Issues 0
  • Merge Requests 0
  • Labels
  • Wiki
  • Snippets
  • Commits 90
  • Compare
  • Branches 4
  • Tags 0
  • test
06 May, 2026
1 commit
  • feat(user): wire user detail + permission categories endpoints to UserDetail page ...
    fe5a6531
    - Backend: add GET /usr/users/{id} detail endpoint that returns the user row plus its permissionCategoryIds
    - Backend: add GET /usr/permission-categories listing for the permission grid (active categories only)
    - Frontend: UserDetail consumes both endpoints to populate edit form and the permission grid
    zichun authored
    2026-05-06 13:45:13 +0800  
    Browse Dir »

30 Apr, 2026
39 commits
  • chore(schema): switch boolean flag columns from TINYINT(1) to BIT(1) ...
    f1e20216
    V2 ALTERs all 6 b* columns across tUser/tStaff/tPermissionCategory/
    tModule from TINYINT(1) to BIT(1). MySQL preserves data on the type
    change (0 → b'0', 1 → b'1') and indexes survive the modify.
    
    MyBatis-Plus entity Boolean fields and existing 'WHERE bDeleted = 0'
    queries continue to work — MySQL Connector/J 8.x maps BIT(1) ↔ Boolean
    automatically and accepts integer literals via implicit conversion.
    
    Verified: setup-test-db + mvn test → 149/149 pass with V2 applied.
    
    Also updates docs/03-数据库设计文档.md (schema SSoT) so the table
    descriptors say bit(1) instead of tinyint(1).
    zichun authored
    2026-04-30 19:54:02 +0800  
    Browse Code »
  • refactor(user-detail): drop 部门 field — it's a tStaff property ...
    b63ac3d2
    部门 (sDepartment) lives on tStaff, not tUser. Showing/editing it on
    the user form was misleading — it implied the value would be saved
    against the user, but the backend has no such column on tUser. The
    user list still surfaces 部门 via the LEFT JOIN on tStaff, which
    remains correct for display.
    
    Removes:
    - 部门 form field on UserDetail
    - DEPARTMENTS constant (now unused)
    zichun authored
    2026-04-30 19:38:08 +0800  
    Browse Code »
  • refactor(staff-picker): drop 已绑定 badge, auto-fill 用户号/用户名 ...
    ead53645
    - 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
    2026-04-30 19:30:53 +0800  
    Browse Code »
  • feat(staff-picker): add staff search endpoint and UserDetail typeahead ...
    3beaa61a
    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
    2026-04-30 19:19:41 +0800  
    Browse Dir »
  • chore(scripts): add seed-dev-data.sh for realistic dev/test fixtures ...
    2f4874be
    Idempotent (INSERT IGNORE on unique keys) script that populates:
    - tStaff: 20 print-industry employees with realistic Chinese names,
      staff numbers (S0001..S0020), and varied departments
    - tUser: admin + 18 business users, all BCrypt(666666), linked to
      staff rows; mix of 超级管理员 / 普通用户, languages zh/en/zh-TW,
      with one bDeleted=1 to demo the 作废 column
    - tPermissionCategory: 30 groups matching prototype's permission grid
    - tUserPermission: department-correlated permission grants
      (e.g. 财务部 users get PERM_FINANCE + PERM_VIEW_ORDER_PRICE)
    - tModule: 5 KPI flow trees (估价/订单/拼版/送货/采购) + 系统设置,
      ~30 nodes with proper parent/child relationships
    
    Final SELECT prints row counts for verification.
    zichun authored
    2026-04-30 19:11:49 +0800  
    Browse Code »
  • feat(frontend): restore prototype UserDetail look (perm grid + scope tabs) ...
    3491ef6c
    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
    2026-04-30 18:17:06 +0800  
    Browse Code »
  • feat(frontend): match prototype mega-nav and trim sidebar tree ...
    748348f0
    - Sidebar 系统管理 now contains only 角色管理 / 菜单配置 / 操作日志
      (用户列表 and 系统模块配置 are accessed via mega-nav, not duplicated
      in the tree).
    - MegaNav rebuilt as full-viewport dark layout per prototype: dark
      topbar with highlighted 全部导航 chip, 150px left rail of categories
      (active = accent + white left border), right grid of category columns
      with bordered titles and muted/featured items.
    - MEGA_COLUMNS expanded to 8 columns matching prototype 系统设置
      (期初设置 / 用户管理 / 系统参数 / 计算方案 / 日志 / 开发平台 /
      API对接管理 / 系统模块).
    zichun authored
    2026-04-30 18:09:00 +0800  
    Browse Code »
  • fix(scripts): load .env.local in seed-dev-admin so it targets correct DB ...
    c0e2fcae
    Previously the script used hardcoded defaults (127.0.0.1:3306 / xly_erp)
    and ignored the user's remote test DB. Now sources .env.local like
    setup-test-db.sh does. Documents the prereq that Spring Boot must have
    started at least once (Flyway applies V1) before seeding.
    zichun authored
    2026-04-30 17:55:05 +0800  
    Browse Code »
  • feat(frontend): build Vite + React + AntD frontend wired to backend ...
    7caeb6c5
    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
    2026-04-30 17:53:43 +0800  
    Browse Code »
  • chore(backend): add CORS config and dev admin seed script ...
    3a50cebe
    Enables the new frontend/ Vite app (localhost:5173) to call the backend
    across origins. Adds OPTIONS preflight permitAll. Seed script provisions
    an admin user (sUserName=admin / password=666666) for first-run login.
    zichun authored
    2026-04-30 17:53:21 +0800  
    Browse Dir »
  • Merge branch 'module-module_usr'
    7f728d42
    zichun authored
    2026-04-30 15:15:12 +0800  
    Browse Code »
  • docs(module_usr): record MR !2 link in module report
    39fa3f46
    zichun authored
    2026-04-30 15:08:09 +0800  
    Browse Code »
  • chore(module_usr): record MR !2 in docs/08
    7ee5c9b6
    zichun authored
    2026-04-30 15:08:07 +0800  
    Browse Code »
  • docs(module_usr): add module completion report
    ec4bf2b2
    zichun authored
    2026-04-30 15:06:52 +0800  
    Browse Code »
  • chore(module_usr): add local test-gate evidence
    f4449664
    zichun authored
    2026-04-30 15:05:23 +0800  
    Browse Code »
  • docs(usr): review approved + check off REQ-USR-004
    5cf19a92
    zichun authored
    2026-04-30 15:04:09 +0800  
    Browse Code »
  • test(usr): update stub regression to authenticated REQ-USR-004
    810f6969
    zichun authored
    2026-04-30 14:58:38 +0800  
    Browse Code »
  • refactor(usr): remove stub fallback in services REQ-USR-004
    3a625ce9
    zichun authored
    2026-04-30 14:58:38 +0800  
    Browse Code »
  • refactor(usr): tighten security to authenticated REQ-USR-004
    e80f7ba5
    zichun authored
    2026-04-30 14:58:38 +0800  
    Browse Code »
  • feat(usr): auth controller + login it REQ-USR-004
    f15ae2f1
    zichun authored
    2026-04-30 14:54:25 +0800  
    Browse Code »
  • feat(usr): login service + dto/vo REQ-USR-004
    c74ab3c0
    zichun authored
    2026-04-30 14:53:17 +0800  
    Browse Code »
  • feat(usr): mapper selectByUserName + updateLastLoginDate REQ-USR-004
    9c6dcd52
    zichun authored
    2026-04-30 14:51:39 +0800  
    Browse Code »
  • feat(usr): login attempt store + lock logic REQ-USR-004
    d06c610a
    zichun authored
    2026-04-30 14:50:54 +0800  
    Browse Code »
  • feat(usr): jwtutil signRefresh REQ-USR-004
    06b81430
    zichun authored
    2026-04-30 14:50:10 +0800  
    Browse Code »
  • docs(usr): spec + plan REQ-USR-004
    967f69fc
    zichun authored
    2026-04-30 14:49:27 +0800  
    Browse Code »
  • docs(usr): review approved + check off REQ-USR-003
    243e66ff
    zichun authored
    2026-04-30 14:42:36 +0800  
    Browse Code »
  • test(usr): user list integration coverage REQ-USR-003
    c00054ea
    zichun authored
    2026-04-30 14:39:18 +0800  
    Browse Code »
  • feat(usr): user list service + field/match mapping REQ-USR-003
    57a1bbfc
    zichun authored
    2026-04-30 14:37:37 +0800  
    Browse Code »
  • feat(usr): user list mapper + vo with join REQ-USR-003
    9895c567
    zichun authored
    2026-04-30 14:36:14 +0800  
    Browse Code »
  • docs(usr): spec + plan REQ-USR-003
    d3ff317d
    zichun authored
    2026-04-30 14:35:10 +0800  
    Browse Code »
  • docs(usr): review approved + check off REQ-USR-002
    111d5015
    zichun authored
    2026-04-30 14:33:06 +0800  
    Browse Code »
  • test(usr): user update integration coverage REQ-USR-002
    ac7704a5
    zichun authored
    2026-04-30 14:30:04 +0800  
    Browse Code »
  • feat(usr): user update error branches REQ-USR-002
    340cde10
    zichun authored
    2026-04-30 14:28:11 +0800  
    Browse Code »
  • feat(usr): user update dto + service happy path REQ-USR-002
    a75b8d36
    zichun authored
    2026-04-30 14:27:32 +0800  
    Browse Code »
  • feat(usr): mapper#deleteByUserId for permission rebuild REQ-USR-002
    36c5912f
    zichun authored
    2026-04-30 14:26:25 +0800  
    Browse Code »
  • docs(usr): spec + plan REQ-USR-002
    06d4c5a4
    zichun authored
    2026-04-30 14:25:38 +0800  
    Browse Code »
  • docs(usr): review approved + check off REQ-USR-001
    e5923022
    zichun authored
    2026-04-30 14:11:46 +0800  
    Browse Code »
  • test(usr): user create integration coverage REQ-USR-001
    33adcfb8
    zichun authored
    2026-04-30 10:52:26 +0800  
    Browse Code »
  • feat(usr): user create error branches REQ-USR-001
    eea41dba
    zichun authored
    2026-04-30 10:49:32 +0800  
    Browse Code »