10 Commits

Author SHA1 Message Date
kae
a713f944b6 update tests 2026-06-18 17:37:11 +09:00
kae
0db2be28d8 test(products): add regression tests for GROUP_CONCAT NULL bug and reload path
- 'renders summary table without crash when product has empty colors and locations':
  mocks getProductSummary returning a product with colors/locations='', verifying the
  page does not crash and calls the API (reproduces the previously-broken scenario).

- 'closes dialog after successful product creation (reload branch reached)':
  verifies that a successful form submission calls createProduct and the ModalForm
  closes, confirming onFinish returned true — the same code branch that triggers
  summaryRef.reload().
2026-06-16 03:30:47 +09:00
kae
70532dda3a add tests 2026-06-15 19:47:45 +09:00
kae
4ba4dc98bf update ourchase 2026-05-24 20:05:28 +09:00
kae
4626bf2771 update api 2026-05-22 18:59:15 +09:00
Chever John
8096f4a848 first init 2026-04-20 01:58:36 +00:00
Chenwei Jiang
4aba6541f3 Merge pull request 'feat: 多租户 CRM Portal + 供应商客户视图 + Terminal 风格关系图' (#1) from feat/multitenant-crm into main
Reviewed-on: https://forgejo.cheverjohn.me/Business/muyuqingfeng-portal/pulls/1
2026-03-30 21:02:14 +08:00
Chever John
f61e216c43 feat: multi-tenant CRM portal with tenant login, supplier/customer views, and graph visualization
- Login page: tenantId mandatory, ruby logo (木羽清風), brand rename to 木羽清風
- Tenant session: localStorage tenantId + X-Tenant-Id header on all requests
- CRM Relations page: "我的供应商" / "我的客户" tabs with Chinese relation type mapping
- CRM Graph page: Terminal CLI aesthetic force-directed supply chain visualization (admin only)
- Menu filtering: empty menuPaths hides all menus (security fix)
- Error handler: 403 no longer triggers logout (security fix)
- API layer: added CRM endpoints (upstream/downstream/relations/history/full graph)
- Route config: added /crm/relations and /crm/graph routes
- app.ts renamed to app.tsx for JSX support in layout config

Made-with: Cursor
2026-03-30 02:56:16 +00:00
Chever John
68fc27a5fd
chore: update .gitignore with Node/macOS/VSCode template
- Replace hand-written gitignore with comprehensive generator template
- Add .umi/ and .umi-production/ to custom rules

Made-with: Cursor
2026-02-28 15:41:20 +08:00
Chever John
0437aa04ed
feat: initial commit for muyu-portal
Umi-based frontend portal with TypeScript config.

Made-with: Cursor
2026-02-28 15:29:12 +08:00