wuzilong and Cursor
13a8a0c8df
fix(miniprogram): align workbench header logo layout with template classes
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-12 19:13:57 +08:00
wuzilong and Cursor
24572931dc
feat(miniprogram): add workbench logo and welcome user stack above logout
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-12 19:13:35 +08:00
wuzilong and Cursor
7547e4e142
fix(miniprogram): restore workbench green header with full-width right user row
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-12 19:10:11 +08:00
wuzilong and Cursor
83db2fd996
fix(miniprogram): put workbench user actions on full-width row below title
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-12 19:08:16 +08:00
wuzilong and Cursor
ddff1212ae
fix(miniprogram): unify nav headers to dashboard style with tall workbench bar
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-12 19:06:51 +08:00
wuzilong and Cursor
aa2da07c99
fix(miniprogram): left-align headers, raise workbench bar, drop dashboard username
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-12 19:01:37 +08:00
wuzilong and Cursor
335dd842be
fix(miniprogram): repair broken bxFormat imports after safe-area wiring
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-12 18:57:12 +08:00
wuzilong and Cursor
ab5aa94ff3
docs: require miniprogram custom header capsule safe area
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-12 18:55:01 +08:00
wuzilong and Cursor
1a97ec954b
fix(miniprogram): adapt mp-header for WeChat capsule safe area
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-12 18:54:57 +08:00
wuzilong and Cursor
f0d64379a7
fix(miniprogram): adapt bx topbar for WeChat capsule safe area
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-12 18:54:21 +08:00
wuzilong and Cursor
8505115f05
fix(miniprogram): wire db pages to capsule safe-area header
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-12 18:53:40 +08:00
wuzilong and Cursor
b3fc308446
style(miniprogram): adapt db-header for WeChat capsule safe area
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-12 18:50:46 +08:00
wuzilong and Cursor
49ec2418a2
refactor(miniprogram): reuse safe-area CSS builder in applySafeAreaCssVars
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-12 18:50:23 +08:00
wuzilong and Cursor
cfe0f94467
feat(miniprogram): add safe-area CSS vars style builder
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-12 18:48:57 +08:00
wuzilong and Cursor
0599b7a3a9
docs: add miniprogram header capsule safe-area implementation plan.
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-12 18:47:35 +08:00
wuzilong and Cursor
2866fef5bf
docs: add miniprogram header capsule safe-area design (scheme B).
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-12 18:45:39 +08:00
wuzilong and Cursor
b3640741ef
docs: mark ETC-only vehicle recharge plan tasks complete
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-12 08:50:19 +08:00
wuzilong and Cursor
9968fc72a3
docs: add ETC-only vehicle recharge design/plan and refresh graphify
...
Persist the approved cutover spec and implementation plan; sync graphs after the ETC-only changes.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-12 08:50:12 +08:00
wuzilong and Cursor
9a8dd691d8
chore(web-admin): update recharge column filter comments for ETC-only
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-12 08:48:17 +08:00
wuzilong and Cursor
62d46d6e57
chore: update graphify after ETC-only vehicle recharge cutover
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-12 08:48:14 +08:00
wuzilong and Cursor
f13e18329a
fix(web-admin): rename ETC recharge menus and drop fuel type option
...
Align UI with ETC-only scope; list filtering is enforced by the backend.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-12 08:46:49 +08:00
wuzilong and Cursor
27d69f1af9
fix(pl): hide non-ETC vehicle recharge rows in list and get APIs
...
Force etc on reads so historical fuel data stays in DB but out of this module.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-12 08:45:36 +08:00
wuzilong and Cursor
542ecc63e7
fix(pl): allow only etc recharge type in vehicle recharge schemas
...
Reject fuel writes so the shared module can be narrowed to ETC-only.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-12 08:43:49 +08:00
wuzilong and Cursor
00849bd998
docs(sql): narrow vehicle recharge menus to ETC-only labels
...
Rename ETC/fuel menus and soft-disable fuel dict for the ETC-only cutover.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-12 08:41:55 +08:00
wuzilong and Cursor
72d372674a
chore: archive mobile-h5 under bak for reference only.
...
Keep WeChat miniprogram as the primary mobile path; H5 remains available for lookup.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-12 08:09:41 +08:00
wuzilong and Cursor
f13eba5623
feat(miniprogram): migrate expense items and workflow admin from bx-mobile.
...
Enable mobile config of expense tree and advance/reimburse approval nodes.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-11 23:42:16 +08:00
wuzilong and Cursor
1bd0503409
feat(miniprogram): migrate invoice wallet mine and admin from bx-mobile.
...
Reuse invoice-wallets/invoices APIs with summary, upload, ledgers, and admin proxy upload.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-11 23:37:40 +08:00
wuzilong and Cursor
4c24f58b63
feat(miniprogram): migrate mine and all application lists from bx-mobile.
...
Unify advance/reimburse browsing under workbench view menus with existing detail routes.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-11 23:31:17 +08:00
wuzilong and Cursor
006e94ad33
feat(miniprogram): migrate reimburse apply list/form/detail from bx-mobile.
...
Reuse /reimburses APIs with bx envelope; support multi-line details and draft actions.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-11 23:25:58 +08:00
wuzilong and Cursor
2ff754d572
feat(miniprogram): migrate advance apply list/form/detail from bx-mobile.
...
Reuse /advances APIs with bx envelope and Fresh Mint list/form styling.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-11 23:20:54 +08:00
wuzilong and Cursor
507823dfce
feat(miniprogram): add mobile bx menus and Batch1 placeholders.
...
Insert MINI_BX_* menus with mini:bx:* perms on test/prod, expose 9 workbench entries, and register placeholder pages.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-11 23:12:55 +08:00
wuzilong and Cursor
279e405149
docs: add mini-program bx migration design from bx-mobile.
...
Document batched C-scope migration with mini:bx:* perms, vant-weapp styling, and API reuse.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-11 23:08:06 +08:00
wuzilong and Cursor
16c55c0a4a
feat(miniprogram): filter workbench menus by mobile menu permissions.
...
Hide weighbridge entries the current user is not granted via mini:db:* codes.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-11 22:51:13 +08:00
wuzilong and Cursor
d3de3f5c45
feat(miniprogram): load menu-codes into user store.
...
Cache menuAll and menuCodes from /web/auth/menu-codes for workbench filtering.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-11 22:43:37 +08:00
wuzilong and Cursor
106ace1ea9
feat(miniprogram): map workbench db menus to mini:db:* perms.
...
Add MENU_CODES auth path for workbench permission loading.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-11 22:43:06 +08:00
wuzilong and Cursor
a5a1c29f01
feat(miniprogram): add workbench menu permission filter helper.
...
Pure function filters modules by menuAll or mini:db:* menuCodes.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-11 22:42:45 +08:00
wuzilong and Cursor
fd463c77eb
feat(sql): add mini-program weighbridge menus under 移动端.
...
Insert MINI_DB_* menus with mini:db:* perms and grant them to 超级管理员 only.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-11 22:42:21 +08:00
wuzilong and Cursor
d5923df26e
docs: add mini-db mobile menu permission implementation plan.
...
Break down SQL grant, workbench filter helper, and store wiring into executable tasks.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-11 22:38:13 +08:00
wuzilong and Cursor
fed3389ef1
docs: add mini-program weighbridge menu permission design.
...
Capture agreed decisions for mobile sys_menu under 移动端, mini:db:* perms, and workbench filtering via menu-codes.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-11 22:36:38 +08:00
wuzilong
8e87c7d576
提交
2026-09-11 21:19:52 +08:00
wuzilong
83192719b0
提交
2026-09-11 09:41:09 +08:00
wuzilong and Cursor
166e5735df
chore: update graphify after plan product+package key
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-10 18:09:47 +08:00
wuzilong and Cursor
6548316644
fix(web-admin): allow same product with different packages on delivery stop
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-10 18:08:02 +08:00
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 and Cursor
ded6aeaa85
feat(pl): require contract package spec on plan stop save
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-10 18:01:33 +08:00
wuzilong and Cursor
ff96f2ec25
feat(pl): arrange-qty and overflow checks use product+package key
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-10 18:00:10 +08:00
wuzilong and Cursor
2fc14b1291
feat(pl): key contract plan qty by product and package spec
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-10 17:52:57 +08:00
wuzilong and Cursor
3e6ae41e4b
docs: add implementation plan for plan product+package qty key.
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-10 17:50:13 +08:00
wuzilong and Cursor
ff42d7fe77
docs: add design for plan contract qty keyed by product and package spec.
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-10 17:47:49 +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
7579c36fc6
docs: add DB weighbridge date column sort implementation plan.
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-08 22:34:33 +08:00
wuzilong and Cursor
9e1862f4e7
docs: add DB weighbridge date column dual-caret sort design.
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-08 22:31:35 +08:00
wuzilong and Cursor
9ead177dc3
feat(bx): add datetime list sort helpers and get_paged order_by.
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-08 22:14:30 +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
cf3c1e6609
docs: add implementation plan for BX date column sort.
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-08 22:09:51 +08:00
wuzilong and Cursor
e33b56797a
docs: add BX date column dual-caret sort design.
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-08 22:07:29 +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
f14a96b28d
feat(crm): support datetime column sort on contract list.
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-08 21:45:52 +08:00
wuzilong and Cursor
8f63430881
feat(crm): support datetime column sort on quote list.
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-08 21:41:05 +08:00
wuzilong and Cursor
72a8f97bd1
feat(crm): support datetime column sort on customer list.
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-08 21:39:26 +08:00
wuzilong and Cursor
e6af68a2c3
feat(crm): add whitelist datetime list sort helper.
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-08 21:37:35 +08:00
wuzilong and Cursor
b731c728a7
docs: add implementation plan for CRM date column sort.
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-08 21:31:26 +08:00
wuzilong and Cursor
302988f75c
docs: add CRM date column dual-caret sort design and demo.
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-08 21:28:41 +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
b4e59ab16b
docs: add plan for cert ZIP on self-vehicle and personnel lists.
...
Cover shared pack core, personnel naming, and toolbar wiring for both pages.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-08 20:37:53 +08:00
wuzilong and Cursor
b84eec3c90
docs: extend cert batch ZIP design to self-vehicle and personnel lists.
...
Reuse the frontend JSZip approach with personnel name folders and shared toolbar entry.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-08 20:36:25 +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
wuzilong and Cursor
65af6e6163
docs: add implementation plan for vehicle cert batch ZIP download.
...
Break the frontend JSZip approach into TDD tasks for helpers, blob fetch, packing, and toolbar wiring.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-08 20:17:05 +08:00
wuzilong and Cursor
53a1bea890
docs: add vehicle cert batch ZIP download design and demo.
...
Capture the approved frontend JSZip approach for third-party vehicle list bulk certificate attachment download.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-08 20:14:32 +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