Commit Graph
100 Commits
Author SHA1 Message Date
zlwuandCursor bee2c0d193 feat(backend): persist monthly verify no and expose research list fields
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-13 13:14:09 +08:00
zlwuandCursor 60efc5d5d3 feat(backend): allocate research donation monthly verify numbers
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-13 13:11:25 +08:00
zlwuandCursor e0ef78925a feat(db): add research donation monthly_verify_no column
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-13 12:05:54 +08:00
zlwuandCursor 56f379dd0c docs: add research donation list Excel parity implementation plan
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-13 12:05:10 +08:00
zlwuandCursor c22c9467f5 docs: add research donation list Excel parity design
Capture confirmed field mapping, monthly verify number rules, and Web/mini list scope before implementation.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-13 12:03:04 +08:00
zlwuandCursor 22a6e1f4e4 docs: add customer-service management design and plan; note mobile follow-up.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-13 11:04:45 +08:00
zlwuandCursor efbf8f6ac9 feat: switch protocol view cert/insurance handle panels to sample level.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-13 11:04:25 +08:00
zlwuandCursor 8cebb8e0b8 feat(web-admin): customer-service toolbar and Excel-aligned wide list columns.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-13 11:02:11 +08:00
zlwuandCursor 1c225ec89d feat(web-admin): expand sample quick-register dialog for customer-service kinds.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-13 10:59:39 +08:00
zlwuandCursor ad18204eb9 feat: rename sample-info menu label and extend quick-register client API.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-13 10:58:23 +08:00
zlwuandCursor 9c264d7942 feat(backend): enrich cell-storage sample list with customer-service wide columns.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-13 10:57:55 +08:00
zlwuandCursor aeadaa9919 feat(backend): extend sample-info quick-register for sms/followup/fulfillment/all.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-13 10:56:41 +08:00
zlwuandCursor 50400ad19c feat(backend): write storage cert and insurance at sample level in quick-register.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-13 10:52:45 +08:00
zlwuandCursor edabf70287 feat(backend): upsert sample customer-service fields with empty-skip merge.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-13 10:50:36 +08:00
zlwuandCursor d676bfadd7 feat(backend): add customer-service dict list and ensure-on-write helpers.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-13 10:47:11 +08:00
zlwuandCursor eee70e417c feat(backend): add models for customer-service and sample-level cert/insurance.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-13 10:45:54 +08:00
zlwuandCursor da35921f58 docs(sql): add sample-level storage cert and insurance with migrate-from-protocol.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-13 10:43:36 +08:00
zlwuandCursor 8618141c2f docs(sql): add customer-service tables and rename sample-info menu.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-13 10:42:34 +08:00
zlwuandCursor af992b5680 fix: drop 付款确认中 from sample payment progressStatus
Sample-level 缴费进度 is now only 待缴费 / 部分已缴 / 已缴清.
Transfer jfqrz still blocks canConfirm but no longer surfaces as progress.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-12 18:26:36 +08:00
zlwuandCursor cc0b217c89 feat(mobile-oa-h5): align transfer payStatus labels with 付款 wording
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-12 18:10:14 +08:00
zlwuandCursor 727002761d fix(backend): align pay-status user messages with 付款 wording
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-12 18:10:14 +08:00
zlwuandCursor a5bf4252b9 chore: rename payment-confirm menu to 缴费财务确认
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-12 18:10:14 +08:00
zlwuandCursor a6f56f3453 feat(web-admin): rename transfer pay statuses to 付款 wording
Use 已付款/付款确认中/付款完成 for payStatus; keep period money
labels 应缴费/已缴费/欠缴费 unchanged.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-12 18:10:13 +08:00
zlwuandCursor c71bb5a11c fix(web-admin): align schedule paid/arrears with yjf-only rule
Period 已缴费 now counts only 付款完成 transfers, matching backend
summarize_period.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-12 18:10:13 +08:00
zlwuandCursor d2bb1e0fa1 test(backend): align market chase assertions with yjf-only paid
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-12 18:06:22 +08:00
zlwuandCursor b8b20dcebe fix(backend): count period paid amount as yjf only
Align displayPaidAmount/arrears with business rule: 已缴费 excludes
已付款 and 付款确认中 transfers.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-12 18:01:06 +08:00
zlwuandCursor a1be31c694 docs: add payment status and paid-amount semantics implementation plan
Break the confirmed spec into TDD tasks covering backend yjf-only paid
amounts, web/mobile label renames, and menu SQL migration.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-12 17:50:54 +08:00
zlwuandCursor 06a30ff658 docs: specify payment status labels and paid-amount semantics
Clarify transfer statuses (已付款/付款确认中/付款完成) vs period money
(应缴费/已缴费/欠缴费), with 已缴费 counting only yjf, and rename the
finance confirm menu.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-12 17:47:48 +08:00
zlwuandCursor 97bf67c962 feat(mobile-oa-h5): rename freight unlink action to 取消运费
Also include the two-button freight config/cancel design spec and plan.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-12 14:07:51 +08:00
zlwuandCursor f659ec602e feat(web-admin): align sample-freight page cancel UX with two-button rules
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-12 14:07:39 +08:00
zlwuandCursor 8c0cbb8ab8 feat(web-admin): gate protocol freight config and unify cancel dialog
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-12 14:07:07 +08:00
zlwuandCursor 75bae974e4 feat(web-admin): add shared freight unlink dialog
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-12 14:06:28 +08:00
zlwuandCursor d72e28959d feat(web-admin): add shared freight unlink dialog
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-12 13:49:18 +08:00
zlwuandCursor ce9d836194 feat(web-admin): add freight config sample partition helper
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-12 13:46:54 +08:00
zlwu 55e321f266 docs: document the market card overflow fix. 2026-10-11 16:22:20 +08:00
zlwu 54ec8e1cd1 fix: serialize mobile presign conversion amounts. 2026-10-11 14:02:20 +08:00
zlwu e0dc7f4cee fix: preserve mobile presign decimal precision. 2026-10-11 13:50:47 +08:00
zlwu f761c7021e fix: decouple mobile market API contracts from page routes. 2026-10-11 13:34:03 +08:00
zlwu 06255d1e41 fix: harden mobile presign contracts and authorization. 2026-10-11 13:22:04 +08:00
zlwu 0927a514d2 chore: add the mobile market contract dependency closure. 2026-10-11 13:14:56 +08:00
zlwu 0c4a2408ee docs: add the remaining mobile market parity demo. 2026-10-11 13:04:23 +08:00
zlwu a3a2ffcce0 fix: isolate mobile presign action scopes and transfer locks. 2026-10-11 12:59:22 +08:00
zlwu 7a750e7e81 docs: plan the remaining mobile market parity demo. 2026-10-11 12:51:26 +08:00
zlwu b28ed3e280 feat: add tested mobile presign contracts and form state. 2026-10-11 12:49:21 +08:00
zlwu 702ff0e074 docs: define the remaining mobile market parity demo design. 2026-10-11 12:49:19 +08:00
zlwu 81bda0cb79 fix: scope user organization labels to the current tenant. 2026-10-11 12:37:32 +08:00
zlwu 02d1e16036 fix: scope authentication roles to the current tenant. 2026-10-11 12:25:50 +08:00
zlwu 3f40caa1cd fix: enforce atomic presign status and action transitions. 2026-10-11 12:06:22 +08:00
zlwu 337d31bbe8 feat: integrate required mobile market backend dependencies. 2026-10-11 12:00:52 +08:00
zlwu 7e930c77fd feat: expose complete scoped presign actions to mobile clients. 2026-10-11 11:43:38 +08:00
zlwu 34bf9aa0dc fix: make mobile presign transitions concurrency-safe. 2026-10-11 11:31:24 +08:00
zlwu c5c7e42feb fix: make mobile presign transitions concurrency-safe. 2026-10-11 11:17:06 +08:00
zlwu 8453c9c805 feat: enforce scoped presign deletion and transfer workflows on mobile. 2026-10-11 10:56:06 +08:00
zlwu e8e278be86 docs: plan verified mobile presign parity implementation. 2026-10-11 10:45:55 +08:00
zlwu 99bd4749ea docs: define mobile presign parity design for consistent market workflows. 2026-10-11 10:42:33 +08:00
zlwu d20b9f5a20 docs: record backend graph verification constraints. 2026-10-11 10:25:58 +08:00
zlwuandCursor 3018d05bc4 feat(mobile-h5): show non-prod env stripe on home
Render a short local/test banner above the green header
so the active APP_ENV is obvious before WeChat upload.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-11 10:09:21 +08:00
zlwu 7a6d804cfa fix: honor order numbers in protocol workflow lists. 2026-10-11 10:08:40 +08:00
zlwuandCursor a47a7db7dc feat(mobile-h5): export ENV_BANNER from APP_ENV
Add buildEnvBanner so the homepage can show a non-prod
stripe without hardcoding environment labels.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-11 10:01:42 +08:00
zlwuandCursor f5c999f633 docs: plan mobile-h5 non-prod env banner implementation
Break the approved homepage stripe into TDD tasks for
config mapping and the index page UI.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-11 10:00:33 +08:00
zlwuandCursor 8c82f6a6dd docs: add mobile-h5 non-prod env banner design
Capture the approved homepage top-stripe approach so local/test
builds are visually distinct before WeChat upload.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-11 09:59:51 +08:00
zlwu 28990e66be test: align API crypto coverage with the AES-GCM protocol 2026-10-11 09:53:48 +08:00
zlwu 5a24f3b433 docs: plan the backend baseline test failure fixes. 2026-10-11 09:49:22 +08:00
zlwu b2ea79710c docs: describe how to resolve the existing backend test failures. 2026-10-11 09:47:52 +08:00
zlwuandCursor daace3ff74 docs: note OA-style UI and placeholder market menu icons
Record that market H5 pages follow OA approval UI patterns, and specialist/manager storage menu icons stay empty until assets are provided.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-10 22:03:35 +08:00
zlwuandCursor 8ef8981d71 docs: revise market miniapp design for split menus and mobile-oa-h5
Separate specialist/manager menu trees under 移动端菜单, host business pages in mobile-oa-h5 via web-view, and scope data per entry role.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-10 21:45:26 +08:00
zlwuandCursor b0a4b94d7d docs: add market miniapp role feature design for specialist and region manager
Capture confirmed data scopes, shared module matrix, freight redaction, and non-goals for the on-site mini program.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-10 21:43:16 +08:00
zlwuandCursor db31990ebe feat: 细胞存储缴费催缴、统一样本信息与协议支付能力增强
汇总近期业务改动:催缴菜单与后端、样本信息快捷登记与进度、运费关联、客户档案扩展、协议优惠/期次与押金划转,并同步 SQL 迁移与管理端页面收敛。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-10 21:20:37 +08:00
zlwu 2d3472f5c4 docs: document responsive payment detail dialog adjustments 2026-10-10 16:59:16 +08:00
zlwuandCursor f5fdfc6770 chore: update graphify after payment-info detail dialog
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-10 15:20:13 +08:00
zlwuandCursor 416b1cefa2 fix(web-admin): avoid typed arrow in Vue template for transfer upload
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-10 15:16:17 +08:00
zlwuandCursor 842aa0847f feat(web-admin): payment-info 缴费明细 dialog with list-mode transfers
Open sample-level detail from the list; manage transfers like
SamplePaymentPanel; remove direct PaymentReceiptConfirmDialog path.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-10 15:15:56 +08:00
zlwuandCursor ea5fba9dc2 feat(web-admin): add fetchDeletePaymentTransfer API
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-10 15:14:07 +08:00
zlwuandCursor 628a20dbbd feat(backend): allow soft-delete of dfj payment transfers
Supports 缴费明细 list-mode row delete for draft transfers.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-10 14:58:23 +08:00
zlwuandCursor 5025aa09c2 docs: add implementation plan for payment-info 缴费明细 dialog
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-10 14:17:28 +08:00
zlwuandCursor 34c8a1a62d docs: add payment-info 缴费明细 list-mode transfer design
Spec and interactive demo for replacing 缴费确认 with a sample-level
detail dialog that manages transfers in SamplePaymentPanel list mode.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-10 14:16:26 +08:00
zlwuandCursor da63c228f5 docs: align dialog label-top spacing rules with Fresh Mint
Document 4px gap, weight 400, form-grid margin reset, and stock-check exception.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-10 13:49:28 +08:00
zlwuandCursor de132a7c04 refactor(web-admin): drop redundant label-top overrides in large form dialogs
Rely on global label-top and form-grid margin rules.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-10 13:46:47 +08:00
zlwuandCursor 674084c511 fix(web-admin): zero form-item margin when form-grid is on el-form
Cover label-top dialogs that put form-grid-* class on the form element.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-10 13:42:59 +08:00
zlwuandCursor 8b42cf1b90 fix(web-admin): tighten label-top row spacing for all dialog grids
Zero form-item margin inside .form-grid* and add dialog fallback spacing.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-10 13:39:31 +08:00
zlwuandCursor 60ad9de191 fix(web-admin): lock label-top dialog label spacing and weight
Keep 4px gap and font-weight 400 for vertical form labels.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-10 13:37:51 +08:00
zlwuandCursor 32c742c1ed docs: add dialog label-top spacing unify spec and plan
Scope B for all label-top dialogs; keep compact 11px stock-check labels as exception.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-10 13:35:37 +08:00
zlwuandCursor 3edfb9dd86 chore: refresh graphify after transfer remark withdraw.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-10 12:21:24 +08:00
zlwuandCursor 8cbbd3548b feat(web-admin): transfer remark columns and jfqrz withdraw UI.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-10 12:19:46 +08:00
zlwuandCursor c860e39363 feat: add protocol payment transfer withdraw API for jfqrz.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-10 12:17:49 +08:00
zlwuandCursor eb8a76d8d2 feat: add presign transfer withdraw API for jfqrz.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-10 12:16:58 +08:00
zlwuandCursor d4477f357d feat: add can_withdraw_receipt for jfqrz transfer withdraw.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-10 12:12:03 +08:00
zlwuandCursor 70fb2219de docs: add transfer remark and withdraw implementation plan.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-10 12:10:01 +08:00
zlwuandCursor 9444945add docs: add transfer remark and jfqrz withdraw design.
Capture business/finance dual remarks on each transfer and business withdraw from 缴费确认中 while keeping finance_remark.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-10 12:07:20 +08:00
zlwuandCursor bce0a15772 chore: refresh graphify after storage-cert QC info.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-09 12:40:41 +08:00
zlwuandCursor df5206454f feat(web-admin): mount unified sample-info page for storage-cert QC entry.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-09 12:40:41 +08:00
zlwuandCursor 5d0e3d904a docs: add storage-cert QC info implementation plan.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-09 12:40:22 +08:00
zlwuandCursor 500a85465f feat(web-admin): add storage-cert QC view on cell-storage sample-info.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-09 12:40:16 +08:00
zlwuandCursor f1dcafd33d feat(web-admin): add storage-cert QC fill entry on QC work-order cards.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-09 12:40:16 +08:00
zlwuandCursor df827e4344 feat(web-admin): add shared storage-cert QC fill/view dialog.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-09 12:40:16 +08:00
zlwuandCursor 28b10663ee feat(web-admin): add storage-cert QC field metadata and API client.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-09 12:40:15 +08:00
zlwuandCursor 5546b7aa73 feat(api): expose GET/PUT sample-storage-cert-qc by sample code.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-09 12:37:16 +08:00
zlwuandCursor e194e1ad04 feat(backend): add sample storage-cert QC get and upsert CRUD.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-09 12:36:18 +08:00
zlwuandCursor e6763241d1 feat(backend): add storage-cert QC type-key and payload helpers.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-09 12:33:50 +08:00
zlwuandCursor e521d781e3 fix(db): keep storage-cert QC model commit free of unrelated model edits.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-09 12:32:18 +08:00