wuzilong and Cursor
39161e43e4
feat(web-admin): plan form package UI keyed by product and package spec
...
Contract-bound stop products use package options from the contract, arrange-qty
cache/API include packageSpec, and save validates required package selections.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-10 18:06:52 +08:00
wuzilong
05559def40
提交
2026-09-09 13:03:02 +08:00
wuzilong and Cursor
4529166e16
fix(web-admin): prevent duplicate date sort carets on CRM column headers.
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-08 22:55:08 +08:00
wuzilong and Cursor
45a6fc5cc5
feat(pl): add datetime column dual-caret sort on scoped transport lists.
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-08 22:50:35 +08:00
wuzilong and Cursor
100b0880f0
feat(db): add datetime column dual-caret sort on inventory and weighing lists.
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-08 22:36:55 +08:00
wuzilong and Cursor
5410bf8836
feat(web-admin): show dual carets on ColumnHeaderFilter datetime columns.
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-08 22:13:31 +08:00
wuzilong and Cursor
9dca19a2e4
chore: update graphify after CRM date column sort.
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-08 21:54:12 +08:00
wuzilong and Cursor
626f91d4a8
feat(crm): wire date column sort on contract manage and approval lists.
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-08 21:51:35 +08:00
wuzilong and Cursor
381ece40df
feat(crm): wire date column sort on quote manage and approval lists.
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-08 21:50:15 +08:00
wuzilong and Cursor
a2d1de4c41
feat(crm): wire date column sort on customer list page.
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-08 21:49:05 +08:00
wuzilong and Cursor
23d23d0b86
feat(web-admin): show dual carets on CRM datetime column headers.
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-08 21:48:05 +08:00
wuzilong and Cursor
58b5d9d7de
feat(web-admin): add useColumnSort for CRM date headers.
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-08 21:47:37 +08:00
wuzilong and Cursor
d1c85ec5b8
chore: update graphify after personnel/self-vehicle cert zip.
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-08 20:40:47 +08:00
wuzilong and Cursor
2357c46e4d
feat(pl): add cert batch ZIP download on personnel lists.
...
Wire third-party and Shanxia escort/driver lists to personnel cert zip packing.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-08 20:40:06 +08:00
wuzilong and Cursor
6d8e5578c9
feat(pl): add cert batch ZIP download on self-vehicle list.
...
Reuse vehicle cert zip packing on the Shanxia owned-vehicle toolbar.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-08 20:39:37 +08:00
wuzilong and Cursor
55abe614f8
feat(pl): add personnel cert zip packing and shared pack core.
...
Extract packAndSaveCertZip for reuse; keep vehicle API; name folders with _2 on collisions.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-08 20:38:43 +08:00
wuzilong and Cursor
a4a272d842
chore: update web-admin graphify after vehicle cert zip utils.
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-08 20:27:47 +08:00
wuzilong and Cursor
a6dff669d4
feat(pl): add toolbar batch ZIP download for vehicle certs.
...
Wire selected rows to frontend JSZip packing on the third-party vehicle list.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-08 20:26:46 +08:00
wuzilong and Cursor
31ef9d4053
feat(pl): pack selected vehicle cert attachments into zip.
...
Add JSZip builder with concurrency, injectable fetch/save for tests, and multi-vehicle folders.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-08 20:25:27 +08:00
wuzilong and Cursor
e07af251c0
feat(web-admin): add fetchAttachmentBlob for zip packing.
...
Reuse attachment download-url flow to load file bytes without triggering anchor download.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-08 20:21:54 +08:00
wuzilong and Cursor
8d3062a5af
feat(pl): add vehicle cert zip naming and collect helpers.
...
Pure functions for toolbar batch ZIP: plate folders, 主·/挂· labels, and collision-safe paths.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-08 20:19:50 +08:00
zlwu
b6485f3b6c
提交
2026-09-07 10:34:41 +08:00
zlwu
7f05162fd1
提交
2026-09-06 20:44:56 +08:00
zlwu and Cursor
f33b905f0d
refactor(web-admin): generalize server column filter queryKey mapping.
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-06 08:15:49 +08:00
zlwu and Cursor
55cbd1d3d2
feat(bx): server-side column filters on reimburse apply list.
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-06 07:53:28 +08:00
zlwu and Cursor
1604ffceb1
feat(web-admin): use fuzzy text input in column header filter.
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-06 07:50:50 +08:00
zlwu and Cursor
e492cedab9
feat(web-admin): add useServerColumnFilters for list column queries.
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-06 07:47:15 +08:00
zlwu and Cursor
c90ff7c419
feat(web-admin): submit stable load/delivery/product ids on plan save.
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-05 18:31:59 +08:00
zlwu and Cursor
6adb3cee9d
fix(bx): rename historical attachments label to apply attachments
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-05 17:16:05 +08:00
zlwu and Cursor
d373776526
feat(bx): bind reimburse apply attachments on save and submit
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-05 17:12:37 +08:00
zlwu and Cursor
24aca104ad
feat(bx): add apply-attachment upload UI on reimburse apply dialog
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-05 17:10:47 +08:00
zlwu and Cursor
f09399f5f0
fix(web-admin): prevent blank Word export from broken seal img tags
...
Self-closing slash before style produced invalid HTML that caused html-to-docx to emit an empty document.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-05 15:38:54 +08:00
zlwu and Cursor
0dc7ce0de8
fix(web-admin): polish Word header layout and floating seals
...
Use float text rows for header meta without table borders; rewrite seal images to float over party fields while keeping title underlines.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-05 15:33:47 +08:00
zlwu and Cursor
da2f36af7f
fix(web-admin): keep contract header meta side-by-side in Word export
...
Convert flex+absolute rows (供方/合同编号, 需方/签订地点) into borderless two-column tables before html-to-docx.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-05 15:26:31 +08:00
zlwu and Cursor
57c2a37171
fix(web-admin): drop Word watermark and keep party columns side-by-side
...
Word export no longer injects watermarks; convert the flex 供方/需方 footer into a two-cell table so html-to-docx preserves left-right layout.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-05 15:21:10 +08:00
zlwu and Cursor
f872333df6
fix(web-admin): polyfill Buffer/global for contract Word export in Vite
...
html-to-docx still reads Node globals after Vite rebundles; inject buffer polyfill, map global to globalThis, and alias the package to the browser build.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-05 15:06:20 +08:00
zlwu and Cursor
8bbc716d17
fix(web-admin): use html-to-docx browser build and inline images for Word export
...
Vite was resolving the Node ESM entry which needs Buffer/global; switch to the browser bundle and pre-convert images to data URLs so seals and watermarks embed.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-05 14:59:58 +08:00
zlwu and Cursor
deefdf7bb4
fix(web-admin): resolve html-to-docx default import interop for Word export
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-05 14:52:03 +08:00
zlwu and Cursor
591736f11f
feat(web-admin): add Generate Word on contract detail print dialog
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-05 14:50:00 +08:00
zlwu and Cursor
9ac37d1196
feat(web-admin): add Generate Word on contract print dialog
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-05 14:44:36 +08:00
zlwu and Cursor
b078245fbc
feat(web-admin): generate contract DOCX blob from prepared HTML
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-05 14:42:44 +08:00
zlwu and Cursor
17b42dc06c
feat(web-admin): add contract HTML prep helpers for Word export
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-05 14:38:23 +08:00
zlwu and Cursor
e2b676121a
chore(web-admin): add @turbodocx/html-to-docx for contract Word export
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-05 14:35:23 +08:00
zlwu and Cursor
f43ef91d70
chore(web-admin): update frontend knowledge graph after plan tab sync
...
Refresh graphify outputs after handlePlanTypeTabChange arranged tab wiring.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-04 17:36:46 +08:00
zlwu and Cursor
75d60c5b75
feat(web-admin): sync followStatus when switching to arranged plan tab
...
Mirror pending_arrange behavior so the arranged tab forces followStatus filter to arranged.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-04 17:36:34 +08:00
zlwu and Cursor
01946dde8e
feat(web-admin): add arranged tab to transport plan list filters
...
Insert「已安排」after「待安排」in PL_PLAN_LIST_TABS and map it to followStatus=arranged.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-04 17:34:34 +08:00
zlwu and Cursor
7a5b8c3d96
chore: update graphify after plan-archive price permission
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-03 16:48:28 +08:00
zlwu and Cursor
b92418fa4a
feat(web-admin): gate archive actions and price columns by menu codes
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-03 16:34:49 +08:00
zlwu and Cursor
af0ae031a5
feat(web-admin): split archive qty vs price display flags
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-03 16:33:04 +08:00
zlwu
dd3bb3cf06
提交
2026-09-03 15:54:34 +08:00