Commit Graph
100 Commits
Author SHA1 Message Date
wuzilongandCursor a382f3e730 feat(web-admin): add mobile paste-create for third-party vehicle bundles.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-14 16:47:14 +08:00
wuzilongandCursor 866a87f747 feat(web-admin): add mobile print preview for transport plan slips.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-14 16:47:12 +08:00
wuzilongandCursor bc7a1c225a feat(web-admin): reuse plan form as a full-page webview variant.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-14 16:47:05 +08:00
wuzilongandCursor 1a5aa1c934 feat(web-admin): add mobile plan detail and shared action guards.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-14 16:25:09 +08:00
wuzilongandCursor 17edd7016f feat(web-admin): add mobile card list for transport plans in webview.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-14 16:25:09 +08:00
wuzilongandCursor 5220637639 docs(sql): add miniprogram menu for webview transport plan.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-14 16:22:12 +08:00
wuzilongandCursor 57a831a36f feat(miniprogram): add reusable web-view shell for H5 business pages.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-14 16:22:12 +08:00
wuzilongandCursor 8fbe0679c9 feat(web-admin): add mp webview shell and /m/pl/plan static routes.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-14 16:21:37 +08:00
wuzilongandCursor c0721786ff feat(web-admin): skip desktop chrome and login page inside mp webview routes.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-14 16:15:08 +08:00
wuzilongandCursor 5eb7b0b193 feat(backend): exchange miniprogram webview tickets for JWT sessions.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-14 16:11:36 +08:00
wuzilongandCursor 98292cb914 fix(backend): consume webview tickets atomically and fail closed on Redis errors.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-14 16:07:45 +08:00
wuzilongandCursor 62161e2905 feat(backend): add one-time Redis tickets for miniprogram webview login.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-14 16:03:18 +08:00
wuzilongandCursor da7476df5a docs: record miniprogram WebView template and transport plan design.
Capture the approved card-list, ticket-based login, and reusable shell so later modules can follow the same path.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-14 15:50:12 +08:00
wuzilong b7d0d4a4f8 提交 2026-09-14 11:57:58 +08:00
wuzilongandCursor 31d3a044cf feat(miniprogram): add withdraw button on reimburse and advance lists
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-14 11:51:10 +08:00
wuzilongandCursor f8c93d2bd6 chore: update graphify after attachment display name feature
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-14 11:38:22 +08:00
wuzilongandCursor a1ace0cf9a feat(miniprogram): show remark-based names on reimburse apply attachments
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-14 11:32:20 +08:00
wuzilongandCursor f05e353d1e feat(miniprogram): add apply attachment display name helper
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-14 11:32:17 +08:00
wuzilongandCursor 76e5d27a79 feat(web-admin): pass remark into reimburse apply attachment UI
Wire addForm.remark into apply upload and viewData.remark into apply attachment readonly on reimburse apply and approve pages.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-14 11:31:00 +08:00
wuzilongandCursor e50d2c27c8 feat(web-admin): show remark-based names on bx attachment cards
Add optional remark prop to BxAttachmentUpload and BxAttachmentReadonly so cards display sanitized remark_index names while download keeps the original fileName.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-14 11:30:55 +08:00
wuzilongandCursor a564bfe733 feat(web-admin): add apply attachment display name helper
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-14 11:30:16 +08:00
wuzilongandCursor 5d4e1e14ad docs: add plan for reimburse apply attachment display names
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-14 11:29:55 +08:00
wuzilongandCursor 6d0668bf58 docs: add design for reimburse apply attachment display names
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-14 11:27:10 +08:00
wuzilongandCursor 07f45a1c92 fix(miniprogram): refresh detail after withdraw failure
Also add the bx apply withdraw implementation plan.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-14 10:07:44 +08:00
wuzilongandCursor 7a45df9de7 chore: update graphify after bx apply withdraw
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-14 10:05:16 +08:00
wuzilongandCursor d2a13bdf87 feat(miniprogram): add advance detail withdraw
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-14 10:04:22 +08:00
wuzilongandCursor c1a999e490 feat(miniprogram): add reimburse detail withdraw
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-14 10:04:20 +08:00
wuzilongandCursor 904630d695 feat(web-admin): add withdraw on advance apply page
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-14 10:03:40 +08:00
wuzilongandCursor 1917661266 feat(web-admin): add withdraw on reimburse apply page
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-14 10:03:11 +08:00
wuzilongandCursor d058518e57 feat(bx): wire advance/reimburse withdraw API clients
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-14 10:00:54 +08:00
wuzilongandCursor 9d06e1830e feat(bx): add advance apply withdraw API
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-14 09:59:02 +08:00
wuzilongandCursor ac713070ab docs: add design for bx apply withdraw (reimburse + advance)
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-14 09:55:23 +08:00
wuzilong 8c96de2c0c 提交 2026-09-13 13:08:52 +08:00
wuzilongandCursor 499896b29c fix(web-admin): put trip driver/escort on vehicle summary row
Merge「本次安排」into PlVehicleSummaryStrip instead of a separate
row above the vehicle info strip.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-13 12:29:47 +08:00
wuzilongandCursor c580bdf03f feat(web-admin): show this-trip driver and escort on plan view
Add a「本次安排」row above the vehicle personnel strip so the
selected driver and escort are visible separately from vehicle bindings.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-13 12:28:04 +08:00
wuzilongandCursor 7f25ff0fc0 docs: add design for trip driver/escort on plan view
Document approved layout: show this-trip driver and escort above
the vehicle personnel strip in the plan detail dialog.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-13 12:27:47 +08:00
wuzilongandCursor 407dd76a6f chore: update graphify after driver-plan feature
Refresh backend AST graph after new driver-plan service and routes.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-13 11:46:03 +08:00
wuzilongandCursor 74ed4ba534 feat(miniprogram): add driver-plan list and receipt pages
Wire workbench menu, login APIs, calendar list without plate
search, and native receipt detail aligned with site-plan shell.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-13 11:45:43 +08:00
wuzilongandCursor 7f9be18ab6 docs(sql): add mini driver-plan menu and role bindings
Create/reuse 司机 and 押运员 roles and bind the miniprogram
司机运输计划单 menu under 运输管理.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-13 11:45:43 +08:00
wuzilongandCursor 57ca252f81 feat(pl): add JWT driver-plan routes for miniprogram
Expose history/detail/feedback/attachments under /transport/driver-plan
and exclude the path from API encryption middleware.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-13 11:44:24 +08:00
wuzilongandCursor 1303fae1e0 feat(pl): add driver-plan service for personnel-scoped history
Resolve plans by linked driver/escort personnel and reuse public
driver page/feedback helpers for login-state miniprogram APIs.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-13 11:44:24 +08:00
wuzilongandCursor ca3062b0e2 feat(pl): optional escort selection on transport arrange
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-13 10:48:23 +08:00
wuzilongandCursor 3dc71788d4 feat(web-admin): link system user on personnel form
Allow binding a login account on driver/escort personnel so
miniprogram driver-plan visibility can resolve by sys_user_id.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-13 10:42:19 +08:00
wuzilongandCursor 26b096ae38 feat(pl): bind sys user on personnel and snapshot selectedEscortId
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-13 10:37:11 +08:00
wuzilongandCursor 0658090223 feat(pl): add personnel sys_user_id and transport escort columns
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-13 10:30:49 +08:00
wuzilongandCursor 5102817782 docs: add mini driver transport plan implementation plan
Break the approved driver-plan design into schema, web arrange/escort,
login APIs, menu SQL, and miniprogram list/detail tasks.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-13 10:26:07 +08:00
wuzilongandCursor 3a70c44508 docs: add mini driver transport plan design spec
Capture approved decisions for miniprogram driver/escort plan list,
escort selection on arrange, and personnel-user linking.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-13 10:23:34 +08:00
wuzilongandCursor 1c631ccd50 chore: update graphify after pound QR public link
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-13 09:45:42 +08:00
wuzilongandCursor ee8bf14eb5 feat(web-admin): add pound QR button on public driver transport page
Show a third footer action that opens the shared weighbridge QR card popup.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-13 09:42:57 +08:00
wuzilongandCursor ab3a90c3f5 feat(web-admin): append pound QR links in copy-to-driver text
Include multi-line public pound QR URLs after the driver link when dibang slips exist.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-13 09:41:41 +08:00
wuzilongandCursor 5b4c1bc991 feat(web-admin): add public pound QR page by inventory id
Drivers can open a standalone link that renders the shared weighbridge QR card.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-13 09:38:23 +08:00
wuzilongandCursor d7dec04cb3 refactor(web-admin): extract PoundSlipQrcodeView for shared QR card
Keep admin dialog behavior while enabling public page and driver popup reuse.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-13 09:36:21 +08:00
wuzilongandCursor 10183dabc2 feat(backend): expose pound QR items on driver transport page
Enrich inventory links with business type/partner and attach
poundQrcodeItems for the public driver footer button.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-13 09:29:03 +08:00
wuzilongandCursor 87ed40512c feat(backend): add public pound-qr endpoint by inventory id
Expose a read-only payload for the shared weighbridge QR card without auth.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-13 09:24:09 +08:00
wuzilongandCursor 8994849292 docs: add pound QR public link implementation plan
Break the approved design into backend, shared QR view, public page,
copy-to-driver text, and driver footer tasks with TDD steps.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-13 09:22:05 +08:00
wuzilongandCursor 157ad5e29a docs: add pound QR public link and driver-page entry design
Capture the approved approach for sharing weighbridge slip QR via
public inventory-id URLs, multi-line copy text, and a third driver footer button.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-13 09:17:12 +08:00
wuzilongandCursor df8c28bd7c docs: add miniprogram transport plan site feedback design
Capture the approved design for 运输计划单 (site record/feedback) in the mini program so implementation can follow a single agreed spec.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-13 08:30:10 +08:00
wuzilongandCursor d7981eda17 chore: update graphify after deliveryTimes list column
Keep backend and frontend knowledge graphs in sync with the new
plan delivery time filter and list UI wiring.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-12 21:31:45 +08:00
wuzilongandCursor 8dc1820622 feat(web-admin): add deliveryTimes column on plan contract-gap list
Filter and display deduped delivery dates beside planDate.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-12 21:31:20 +08:00
wuzilongandCursor 754113a6d2 feat(web-admin): add deliveryTimes column on plan archive and cert lists
Match main plan list display and column-header filter behavior.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-12 21:31:20 +08:00
wuzilongandCursor afc0b5e1bf feat(web-admin): show deliveryTimes column on transport plan list
Multi-line YYYY-MM-DD with header range filter after planDate.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-12 21:25:26 +08:00
wuzilongandCursor fb608cea7f feat(web-admin): add deliveryTimes column filter defs for plan lists
Align query keys with deliveryTimeFrom/To server filters.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-12 21:24:27 +08:00
wuzilongandCursor 204b5f48c8 feat(pl): wire deliveryTimeFrom/To through plan list and export
Contract-gap list/export share the same stop-date EXISTS filter.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-12 21:23:31 +08:00
wuzilongandCursor 0e3df1f39d feat(pl): expose deliveryTimes on plan list and contract-gap schemas
Populate from delivery stops during attach/gap row build.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-12 21:20:55 +08:00
wuzilongandCursor 9c5a1cfb8e feat(pl): aggregate unique delivery dates from stop rows
Provide YYYY-MM-DD dedupe helper for plan list deliveryTimes.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-12 21:08:54 +08:00
wuzilongandCursor efe8aed409 feat(pl): filter plans by delivery-stop date range
Add EXISTS on pl_plan_delivery.delivery_time for list column filters.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-12 21:07:23 +08:00
wuzilongandCursor de7d5194ad docs: add implementation plan for plan deliveryTimes column
Break the approved design into TDD tasks across filters, schema,
export, and the four plan-family list pages.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-12 21:05:41 +08:00
wuzilongandCursor cb57a71d2d docs: add design for plan list delivery times column
Capture the approved brainstorm for showing and filtering
deduplicated delivery-stop dates on PL plan family lists.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-12 21:03:02 +08:00
wuzilong 2dadd34981 提交 2026-09-12 19:42:20 +08:00
wuzilongandCursor fa8ffd5fe7 fix(miniprogram): nudge workbench header content slightly downward
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-12 19:24:22 +08:00
wuzilongandCursor b2a29ebd57 fix(miniprogram): remove workbench header subtitle text
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-12 19:23:14 +08:00
wuzilongandCursor a9f3443727 fix(miniprogram): prefix workbench title with 山峡化工
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-12 19:22:38 +08:00
wuzilongandCursor 25eeb82db0 fix(miniprogram): center-align workbench title and user stack in one row
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-12 19:16:04 +08:00
wuzilongandCursor ec2d0cc2ee fix(miniprogram): remove workbench logo; center-align title with welcome line
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-12 19:15:54 +08:00
wuzilongandCursor 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
wuzilongandCursor 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
wuzilongandCursor 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
wuzilongandCursor 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
wuzilongandCursor 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
wuzilongandCursor 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
wuzilongandCursor 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
wuzilongandCursor ab5aa94ff3 docs: require miniprogram custom header capsule safe area
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-12 18:55:01 +08:00
wuzilongandCursor 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
wuzilongandCursor 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
wuzilongandCursor 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
wuzilongandCursor 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
wuzilongandCursor 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
wuzilongandCursor 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
wuzilongandCursor 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
wuzilongandCursor 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
wuzilongandCursor 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
wuzilongandCursor 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
wuzilongandCursor 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
wuzilongandCursor 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
wuzilongandCursor 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
wuzilongandCursor 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
wuzilongandCursor 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
wuzilongandCursor 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
wuzilongandCursor 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
wuzilongandCursor 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