Commit Graph
100 Commits
Author SHA1 Message Date
wuzilongandCursor 3583e6456b docs: add attachment image preview rotate/zoom design and demo.
Capture the approved AttachmentUploadField preview enhancements (rotate, fit-full, wheel/button zoom, drag pan) before implementation.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-23 14:16:00 +08:00
wuzilongandCursor 65d904fff1 chore: update graphify after archive zip export.
Refresh backend and web-admin graphs after plan-archive ZIP export changes.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-23 12:47:41 +08:00
wuzilongandCursor 2f3756eab8 feat(web-admin): add archive data-and-attachments ZIP export menu.
Extend ListExportDropdown with additional items and wire archive_zip on the plan-archive page.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-23 12:47:14 +08:00
wuzilongandCursor d5c2e1f1a4 feat(pl): wire archive_zip export format on plan export API.
Reuse archive row building and attach document plus hazard-cert files into a zip response.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-23 12:46:52 +08:00
wuzilongandCursor 81e52477de feat(pl): build archive export zip with relative hyperlinks.
Pack archive xlsx plus attachment files under 附件/, with HYPERLINK columns on each plan's first row.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-23 12:46:15 +08:00
wuzilongandCursor 7af4d7ac7e feat(pl): collect hazard certs for archive zip export.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-23 12:42:44 +08:00
wuzilongandCursor d68a0ef0bd fix(pl): fix FakePlan id for planId export field.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-23 12:42:05 +08:00
wuzilongandCursor e9ffa5d042 feat(pl): add archive zip naming helpers and planId on export rows.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-23 12:40:04 +08:00
wuzilongandCursor 1c3c0d40b6 docs: add implementation plan for plan-archive attachment ZIP export.
Break work into TDD tasks for zip helpers, hazard cert collection, API wiring, and ListExportDropdown menu items.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-23 12:38:51 +08:00
wuzilongandCursor f5b76ef711 docs: add plan-archive data-and-attachments ZIP export design.
Capture brainstorming decisions for coexisting Excel and ZIP export, reference-zip folder layout, document attachments plus hazard certs, and relative-path hyperlinks.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-23 12:36:18 +08:00
wuzilong c270d14057 提交 2026-09-23 12:03:07 +08:00
wuzilongandCursor b15d1ddde3 chore: update graphify after wx-qr web login.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-18 20:22:42 +08:00
wuzilongandCursor cce8fae673 feat(miniprogram): add web QR phone confirm page for admin login.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-18 20:21:47 +08:00
wuzilongandCursor 29898a107b feat(web-admin): default login to WeChat QR with password tab.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-18 20:20:11 +08:00
wuzilongandCursor e54c1bdfef chore: untrack web-admin env files force-added in Task 6.
Keep wx-qr encrypt exclude paths in local env files only; they remain gitignored.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-18 20:18:36 +08:00
wuzilongandCursor c5a0e17a05 feat(web-admin): add wx-qr create and status API clients.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-18 20:18:08 +08:00
wuzilongandCursor 98e31c88b2 feat(api): confirm web QR login from mini program phone auth.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-18 20:17:14 +08:00
wuzilongandCursor ec0045d5bf feat(api): add web wx-qr create and status endpoints.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-18 20:16:15 +08:00
wuzilongandCursor 22634330d5 feat(wechat): generate unlimited mini program codes for web QR login.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-18 20:15:15 +08:00
wuzilongandCursor 1e7c8bde3b test(auth): force in-memory backend for wx-qr session unit tests.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-18 20:14:35 +08:00
wuzilongandCursor 56a3311c45 feat(auth): add wx-qr session state machine for web login.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-18 19:55:00 +08:00
wuzilongandCursor 7f2b5d06c1 chore: add wx-qr login config and encrypt exclude paths.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-18 18:15:27 +08:00
wuzilongandCursor b438495b1d docs: add implementation plan for web-admin WeChat QR login.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-18 18:13:31 +08:00
wuzilongandCursor ef8b59d23c docs: add web-admin WeChat QR phone login design.
Record the shanxia-shell + zkxw-tab dual-mode login approach (mini program code, session poll, phone_no match) with an interactive HTML demo for review.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-18 18:08:11 +08:00
wuzilong 1ba1f38321 提交 2026-09-18 12:01:13 +08:00
wuzilongandCursor 98531845e4 chore: update graphify after mini phone quick login.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-18 11:16:25 +08:00
wuzilongandCursor b5a58583bd feat(miniprogram): add phone quick login button on login page.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-18 11:15:47 +08:00
wuzilongandCursor 6f39801c63 feat(miniprogram): add wechatLogin API client on user store.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-18 11:14:59 +08:00
wuzilongandCursor 713aa700ae feat(api): add mini wechat-login and share JWT issuance with web login.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-18 11:14:18 +08:00
wuzilongandCursor 7ccd1f553e feat(backend): resolve wechat login user by phone and bind openid.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-18 11:12:03 +08:00
wuzilongandCursor 3d003e8d37 feat(backend): add wechat mini auth helpers and user phone lookups.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-18 11:09:04 +08:00
wuzilongandCursor 7e7f9226cf feat(config): add WECHAT_MP credentials for mini wechat login.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-18 11:06:54 +08:00
wuzilongandCursor 2ce31b903f feat(db): add sys_user wx_openid columns for mini phone login.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-18 11:05:22 +08:00
wuzilongandCursor 53795c535d docs: add miniprogram phone quick login implementation plan.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-18 11:04:00 +08:00
wuzilongandCursor 7f3f569722 docs: add miniprogram phone quick login design.
Capture the approved WeChat getPhoneNumber login flow for shanxia mini program, including WECHAT_MP_* config, sys_user openid columns, and parity with password login JWT.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-18 11:00:42 +08:00
wuzilong 86694f739f 提交 2026-09-17 09:10:10 +08:00
wuzilongandCursor a0da6427ef chore(miniprogram): update graphify after invoice thumbnails.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-16 21:23:55 +08:00
wuzilongandCursor d6fddc666c feat(miniprogram): show linked invoice thumbnails on reimburse detail.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-16 21:22:09 +08:00
wuzilongandCursor 0c269b6e73 fix(miniprogram): retry invoice picker load after empty failure.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-16 21:20:44 +08:00
wuzilongandCursor ffec3ecd94 feat(miniprogram): show invoice thumbnails in reimburse apply picker.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-16 21:17:34 +08:00
wuzilongandCursor 01553ef0f7 style(miniprogram): add invoice thumbnail grid styles for bx.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-16 21:15:31 +08:00
wuzilongandCursor 4201d656b1 feat(miniprogram): add invoice thumb helper utilities.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-16 21:11:59 +08:00
wuzilongandCursor ea4d990abb docs: add reimburse invoice thumbnail implementation plan.
Break scheme-1 into helper, styles, apply picker, and detail tasks with verification steps.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-16 21:10:25 +08:00
wuzilongandCursor 1af6a944fb docs: add miniprogram reimburse invoice thumbnail design.
Record the approved scheme-1 UI for picker thumbnails, scroll paging, and detail linked-invoice display, with companion HTML demo.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-16 21:07:35 +08:00
wuzilongandCursor ca0098f6ca feat(web-admin): add mp plan form anchors and polish print customer pick.
Improve the page-variant plan form for WebView and align print customer selection with the mobile demo.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-15 09:35:17 +08:00
wuzilongandCursor bf81d9b77c feat(web-admin): redesign mp transport plan detail sections.
Align mobile detail with demo IA including hazard cert slots and capped footer actions.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-15 09:34:16 +08:00
wuzilongandCursor 8d1d5c19b5 feat(web-admin): redesign mp transport plan list to match demo.
Use dual dropdown filters, richer cards, and a speed dial for create actions.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-15 09:32:47 +08:00
wuzilongandCursor 92bb4bf0d0 feat(web-admin): add mp plan detail action splitter.
Cap the sticky footer at two primary actions and park the rest in a more sheet.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-15 09:31:43 +08:00
wuzilongandCursor b3ad19f6a9 feat(web-admin): enrich mp plan card with party and follower fields.
List cards need supplier→buyer and follow user to match the approved mobile demo.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-15 09:29:46 +08:00
wuzilongandCursor 8c69a01e16 feat(web-admin): add mp webview sheet and list chrome styles.
Provide shared Bottom Sheet and filter/speed-dial/fab tokens for the transport plan mobile redesign.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-15 09:27:11 +08:00
wuzilongandCursor 3795fa2b5a docs: add implementation plan for mp plan mobile redesign.
Break the approved WebView UI redesign into sequenced tasks for list, detail, form, print, and paste.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-15 01:46:49 +08:00
wuzilongandCursor 43f5ae8603 docs: add mobile redesign spec for WebView transport plans.
Capture the approved HTML demo as the UI authority for rewriting /#/m/pl/* without changing ticket or shell architecture.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-15 01:40:45 +08:00
wuzilongandCursor fe9d30105d docs: describe how to add more miniprogram webview modules.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-14 16:48:30 +08:00
wuzilongandCursor bf22c4b031 style(web-admin): format webview plan form and paste helpers.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-14 16:48:25 +08:00
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