zlwu and Cursor
112ad31428
docs: add implementation plan for reimburse apply attachments
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-05 17:08:55 +08:00
zlwu and Cursor
4b012923bf
docs: add design for optional reimburse apply attachments
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-05 17:05:03 +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
cf579284e7
docs: add implementation plan for contract Word export
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-05 14:33:47 +08:00
zlwu and Cursor
32f51274eb
docs: add design for contract print dialog Word export
...
Capture the agreed frontend HTML-to-DOCX approach for CRM contract print dialog.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-05 14:30:40 +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
87374f3976
docs: add implementation plan for transport plan arranged tab
...
Break the arranged-tab design into TDD utility steps and list-page filter sync.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-04 17:33:11 +08:00
zlwu and Cursor
a4e107b2e6
docs: add design for transport plan arranged tab
...
Record the approved design to insert an「已安排」list tab after「待安排」, filtering by followStatus=arranged.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-04 17:31:47 +08:00
zlwu and Cursor
6bf4e7b249
fix(sql): avoid UUID collision in plan-archive price role backfill
...
MySQL may evaluate UUID() once per INSERT...SELECT, causing duplicate
primary keys when backfilling multiple sys_role_menu rows.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-03 16:53:06 +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 and Cursor
b47c809300
feat(backend): gate archive writes and mask plan prices by menu code
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-03 16:30:31 +08:00
zlwu and Cursor
ce70265c92
feat(backend): add plan archive price mask helpers
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-03 16:25:17 +08:00
zlwu and Cursor
7fbfcffd43
chore(sql): add pl:plan-archive:price menu and backfill roles
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-03 16:21:12 +08:00
zlwu and Cursor
27c1cbba15
docs: add plan-archive price permission implementation plan
...
Break the approved design into SQL, backend mask/API, and
web-admin permission wiring tasks with verification steps.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-03 16:19:16 +08:00
zlwu and Cursor
513d3b0fb3
docs: add plan-archive price permission design
...
Document button-level archive/price controls on the existing
transport plan archive page instead of a separate view module.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-03 16:16:13 +08:00
zlwu
dd3bb3cf06
提交
2026-09-03 15:54:34 +08:00
zlwu
54a1ba0c5c
提交
2026-09-03 13:50:25 +08:00
zlwu and Cursor
67d37a1f0e
chore: update graphify after transport address notes
...
Mark the notes-fill design as implemented and refresh backend/frontend graphs.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-02 12:01:40 +08:00
zlwu and Cursor
d798ef55a7
feat(web-admin): manage transport address notes on library page
...
Expose notes in list, form, and view dialog for address master data.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-02 12:00:36 +08:00
zlwu and Cursor
bf5f6b66be
feat(web-admin): edit address library notes in select dialog
...
Allow create/update of notes while picking an address for a plan stop.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-02 11:59:40 +08:00
zlwu and Cursor
6021287c97
feat(web-admin): fill load/delivery notes from address when empty
...
Apply library notes only if the stop notes field is currently blank.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-02 11:59:29 +08:00
zlwu and Cursor
9c3c53c705
feat(web-admin): pass address library notes through apply payload
...
Allow load/delivery sections to receive notes when an address is selected.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-02 11:59:09 +08:00
zlwu and Cursor
22b92ea056
feat(pl): add notes column on transport address library
...
Persist address-level precautions for later fill into plan load/delivery notes.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-02 11:58:17 +08:00
zlwu and Cursor
86e668920c
feat(web-admin): add resolveAddressNotesFill for address library notes
...
Encode empty-only fill rule for load/delivery notes when selecting an address.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-02 11:57:27 +08:00
zlwu and Cursor
7f9516e63d
docs: use pnpm exec tsx --test in address notes plan
...
Align frontend unit test commands with existing web-admin plan conventions.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-02 11:56:09 +08:00
zlwu and Cursor
ed96976090
docs: add transport address notes fill implementation plan
...
Break the approved design into TDD-friendly tasks covering DDL, API, apply chain, and address UIs.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-02 11:55:56 +08:00
zlwu and Cursor
209f27606e
docs: add transport address notes fill design
...
Capture the approved design for adding notes on pl_transport_address and filling load/delivery notes only when empty.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-02 11:53:22 +08:00
zlwu and Cursor
585b731846
chore: update graphify after plan draft-save feature
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-02 11:43:47 +08:00
zlwu and Cursor
3c7e3c69c5
feat(web-admin): add plan draft save UI and drafting follow-status filters
...
Rename pending tab to 待安排/草稿, default-select drafting, and add 暂存 with saveMode.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-02 11:42:23 +08:00
zlwu and Cursor
ae91fbc63e
feat(backend): support saveMode draft/formal and drafting follow gates
...
Draft skips business validators and writes drafting; formal promotes drafting to pending_arrange; wait-notice/delete/force allow drafting.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-02 11:40:54 +08:00
zlwu and Cursor
f9cdb8852b
feat(backend): add saveMode field on plan create-full and update schemas
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-02 11:39:17 +08:00
zlwu and Cursor
f28e82c1b3
feat(backend): add draft save helpers for plan follow status drafting
...
Introduce min-field validation and follow_status resolution for saveMode draft/formal.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-02 11:39:04 +08:00
zlwu and Cursor
16c657b75e
docs: add implementation plan for plan draft save / drafting status
...
Break the approved design into backend helpers, saveMode API, list tab filters, and form dialog tasks.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-02 11:37:11 +08:00
zlwu and Cursor
70c9de3618
docs: add transport plan draft/save design for drafting follow status
...
Capture approved decisions for 暂存 button, drafting status, list tab, and saveMode API so implementation can follow a single spec.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-02 11:33:05 +08:00
zlwu
1dfcc66d2c
提交
2026-09-02 08:20:52 +08:00