9 Commits

Author SHA1 Message Date
kae
7545799fdc feat: add detail pages for stock checks and adjusts
Both list pages had 查看 links with no onClick. Added detail pages showing
header info and line items, with action buttons (确认开始盘点 / 审核通过+驳回).

Also: extended StockCheck/StockAdjust types to include details and extra
fields; added /inventory/checks/:id and /inventory/adjusts/:id routes;
moved columns definitions inside components (module-level columns with
history.push were silently ignored by the browser due to MFSU caching);
switched to Link component for SPA navigation.
2026-06-18 19:20:49 +09:00
kae
c08a9a4854 feat: implement create stock check and adjust modals
Both pages had toolbar buttons with no onClick handler. Added modal forms:
- Checks: date + checker + optional detail rows (product + actual qty)
- Adjusts: date + reason + required detail rows (product + adjust qty, negative to decrease)

Also updated createStockCheck and createStockAdjust API function signatures
from Partial<StockCheck/Adjust> to explicit typed request shapes.

Fixed a go-zero validation bug: non-optional fields (checker, adjustReason)
must be present in the JSON body; antd Form returns undefined for untouched
inputs which JSON.stringify omits, causing 400. Solved by setting default
empty strings in Form initialValues.
2026-06-18 18:33:57 +09:00
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
4626bf2771 update api 2026-05-22 18:59:15 +09:00
Chever John
8096f4a848 first init 2026-04-20 01:58:36 +00: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
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