Commit Graph
100 Commits
Author SHA1 Message Date
zlwuandCursor ac8e471aca fix: align sample registration, freight scope, and OA datetime display
Let customer-service quick register write storage, certificate, and insurance separately without extra menu or data-scope checks. List freight by document data scope like the web admin, allow protocol staff outside the collection region, and pad OA datetimes to seconds so PC date pickers can show historical minute values.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-20 17:30:30 +08:00
zlwu 03fcc01d6d 提交 2026-10-17 17:36:14 +08:00
zlwuandCursor 3ceee48c00 style(web-admin): skin Fresh Mint info tags as barley soft.
Align page/dialog el-tag--info with mobile market neutral tags
(#fff7e8 / #9a7020) so storage-service pending states match H5.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-17 17:08:03 +08:00
zlwuandCursor 19dffbaa49 fix(mobile-oa-h5): skin market neutral tags as barley soft.
Map Element Plus info tones through Vant default and style them as
浅底大麦黄 so unpaid/pending tags stay visible and distinct from solid semantic tags.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-17 17:05:46 +08:00
zlwu be2226e4ca 提交 2026-10-17 11:46:53 +08:00
zlwuandCursor 48dcf991dc fix(mobile-oa-h5): finish storage-service tag tone parity for market details
Wire detail header statusTone for protocol/payment/freight/chase from the
registry mirror, stop hardcoding primary on nested tags, and map 已过期 to
warning so title and field colors stay consistent.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-17 11:27:29 +08:00
zlwuandCursor d355cd0640 feat(mobile-oa-h5): inline payment detail transfers aligned with web dialog
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-17 11:12:23 +08:00
zlwuandCursor c825c170e7 refactor(mobile-oa-h5): extract ScheduleTransferEditor for shared transfer UI
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-17 11:04:14 +08:00
zlwuandCursor 9de7f5456e refactor(mobile-oa-h5): allow transfer helpers to use payment contextId
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-17 10:56:43 +08:00
zlwuandCursor e2fee1d9c5 feat(mobile-oa-h5): open protocol from payment as readonly detail
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-17 10:55:59 +08:00
zlwuandCursor 80d238d31d feat(mobile-oa-h5): add payment-entry helpers for readonly protocol view
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-17 10:53:11 +08:00
zlwuandCursor 526c9029c8 fix(web-admin): rename presign collector label to 市场专员
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-16 17:45:30 +08:00
zlwuandCursor b545e5987c fix(web-admin): remove collector staff from payment confirm timeline
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-16 17:45:30 +08:00
zlwuandCursor d85c70a860 fix(web-admin): hide collector staff on research donation UI
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-16 17:45:30 +08:00
zlwuandCursor b76a7d65be fix(web-admin): hide collector staff on collection protocol UI
Retain silent collectorUserId defaults and edit hydration.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-16 17:45:30 +08:00
zlwuandCursor d998378e12 fix(mobile-oa-h5): rename presign collector label to 市场专员
Keep collectorUserId for convert-to-protocol mapping.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-16 17:44:41 +08:00
zlwuandCursor 90c1b83a54 fix(mobile-oa-h5): hide collector staff on protocol UI
Keep collectorUserId in form state as a hidden field with create defaults.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-16 17:39:39 +08:00
zlwuandCursor 75f00a6472 docs: add plan for hiding collector staff UI
Break down protocol/donation hide, presign rename to 市场专员, and silent collectorUserId write rules into TDD tasks.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-16 17:38:14 +08:00
zlwuandCursor 241dd2861c docs: specify hide collector staff UI with presign rename
Capture the agreed design: hide collector displays on protocol/donation/timeline, keep DB/API fields with silent defaults, and rename presign visible labels to 市场专员 while retaining collectorUserId for convert.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-16 17:33:59 +08:00
zlwuandCursor d29a18db86 chore(graphify): refresh graphs after OA bank receipt feature
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-16 16:58:44 +08:00
zlwuandCursor 3a148b2985 feat(web-admin): add bank receipt upload on OA done center
Show permission-gated upload action and wire the receipt dialog.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-16 16:58:24 +08:00
zlwuandCursor 6c8b8025d7 feat(web-admin): add OA bank receipt upload dialog
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-16 16:58:24 +08:00
zlwuandCursor 209fb7bff3 feat(web-admin): add OA bank receipt API clients
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-16 16:58:24 +08:00
zlwuandCursor e5ae28f0c7 docs(sql): seed oa:done:bank-receipt button permission
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-16 16:58:24 +08:00
zlwuandCursor 0402f797c0 feat(oa): expose bank-receipts GET/PUT with menu permission
Gate instance bank receipt APIs behind oa:done:bank-receipt.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-16 16:58:24 +08:00
zlwuandCursor b042266c5b fix(oa): stabilize bank receipt list order via order_num
Preserve PUT item sequence when create_time ties on replace.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-16 16:56:09 +08:00
zlwuandCursor 5e38dc1eca feat(oa): add bank receipt attachment service for instances
Store multiple bank receipts on biz_attachment keyed by instance id.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-16 16:49:33 +08:00
zlwuandCursor 00a315b61c docs(plan): OA done-center bank receipt upload implementation
Break the approved design into TDD tasks for service, API, SQL, and web-admin UI.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-16 16:47:18 +08:00
zlwuandCursor 35532eceee docs(spec): design OA done-center bank receipt upload
Capture approved approach A (biz_attachment + permission-gated dialog)
and the Fresh Mint HTML demo for the done-center upload flow.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-16 16:44:20 +08:00
zlwuandCursor a148961b55 feat(oa): add department filter on history list and export
Allow filtering OA history by initiator department including descendants, while keeping the existing all-history permission scope.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-16 16:23:18 +08:00
zlwuandCursor 6cd22b218d docs(plan): OA history department filter implementation
Break down backend tests, engine/API wiring, and web-admin filter UI into executable tasks.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-16 16:16:15 +08:00
zlwuandCursor 3ecd8f4a74 docs(spec): design OA history department filter
Add confirmed design for initiator-dept tree filter on the web-admin OA history list and export APIs.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-16 16:13:44 +08:00
zlwu 06d021807b 提交 2026-10-15 23:21:07 +08:00
zlwu ecde2ba07d 提交 2026-10-15 14:27:42 +08:00
zlwuandCursor b9d981d46b fix(mobile-oa-h5): finish tagType wiring for market detail sections
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-15 10:07:32 +08:00
zlwuandCursor 2b5f2f939c fix(mobile-oa-h5): align presign and freight tags with registry mirror
Use info for draft; full payMode codes; receptionSource/transportType colors.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-15 10:06:07 +08:00
zlwuandCursor 7ba336169a fix(mobile-oa-h5): align protocol and chase tags with registry mirror
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-15 10:01:43 +08:00
zlwuandCursor 79f9c8785b fix(mobile-oa-h5): align payment list/detail tags with registry mirror
Prefer progressStatus codes and explicit tagType over Chinese heuristics.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-15 09:57:21 +08:00
zlwuandCursor 87f1e9a4eb feat(mobile-oa-h5): add market status-tag registry mirror
Mirror Web status-tag-registry for market modules with resolveStatusTag and parity tests.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-15 09:52:54 +08:00
zlwuandCursor a7a5a914f1 fix(web-admin): align freight source and transport tags with registry
Use receptionSource and transportType tag types instead of hard-coded success/primary plain.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-15 09:51:26 +08:00
zlwuandCursor 920b432491 fix(web-admin): use registry tag types for protocol payMode and auditStatus
Align ProtocolViewDialog tags with status-tag-registry instead of hard-coded success/warning.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-15 09:50:45 +08:00
zlwuandCursor b592aaec2e feat(web-admin): add paymentScheduleStatus to status-tag registry
Lift schedule open/cleared/void labels from PaymentBySampleTab so Web and mobile share one source.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-15 09:47:18 +08:00
zlwuandCursor 012527ed35 docs: mark payment detail transfer display design as implemented
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-14 15:24:34 +08:00
zlwuandCursor 9d7a72673d feat(mobile-oa-h5): restyle payment schedule transfers as amount-first cards
Render schedule cards with metric grids and white transfer cards (amount, method·time, notes) in payment and protocol detail views.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-14 15:24:25 +08:00
zlwuandCursor 5ce18e56a0 docs: design payment detail transfer cards as white amount-first layout
Capture approved option A demo and implementation outline for schedule/transfer hierarchy in payment detail.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-14 15:17:21 +08:00
zlwuandCursor f045841f1a fix(mobile-oa-h5): drop duplicate pay-mode tag on protocol detail payment cards
Sample payment cards already show 缴费模式 in the field list; remove the redundant status tag beside the sample code title.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-14 15:11:02 +08:00
zlwuandCursor 82b8a9c1b2 fix(mobile-oa-h5): slim payment list card fields to a two-column grid
Drop protocol number, storage years, and discount amount; remove wide spans so summary fields sit two per row.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-14 15:08:49 +08:00
zlwuandCursor 6eafec3fa9 test(mobile-oa-h5): align payment Excel-column parity with periodBlocks
Assert installment amount labels on the list card and periodBlocks/footerFields in the presenter.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-14 15:03:29 +08:00
zlwuandCursor 321dd3ca43 feat(mobile-oa-h5): collapse payment installment rows on list cards
Render periodBlocks as independent expandable summary rows with footer totals after the period section.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-14 14:41:34 +08:00
zlwuandCursor 4e586e905b feat(mobile-oa-h5): present payment periods as collapsible periodBlocks
Stop flattening six installment field groups into list cards; emit periodBlocks and footerFields instead.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-14 14:40:00 +08:00
zlwuandCursor bbc24b7c73 docs: add implementation plan for payment card period collapse
Break down presenter periodBlocks, MarketListCard UI, CSS, and TDD steps.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-14 14:26:45 +08:00
zlwuandCursor 42dde4b0bc docs: design payment list card period collapse for mobile market H5
Spec and interactive demo for collapsing payment installments on list cards (summary row + expand details).

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-14 14:24:12 +08:00
zlwu 3950b5c334 提交 2026-10-14 12:32:03 +08:00
zlwuandCursor a2125374a8 fix(mobile-oa-h5): limit presign detail bottom bar to edit convert delete
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-14 12:13:23 +08:00
zlwuandCursor 6e190665c0 test(mobile-oa-h5): expect presign detail actions to be order-level only
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-14 12:12:59 +08:00
zlwuandCursor f040f579d1 docs: design presign detail bottom bar with order-level actions only
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-14 12:09:18 +08:00
zlwuandCursor e16afdee95 feat(web-admin): auto-submit paid earnest transfers after saving presign order
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-14 12:04:22 +08:00
zlwuandCursor e56d8d7f51 feat(web-admin): add presign save auto-submit helpers and silent finance submit option
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-14 12:02:24 +08:00
zlwuandCursor 0398cb3897 feat(mobile-oa-h5): auto-submit paid earnest transfers after presign save
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-14 12:00:48 +08:00
zlwuandCursor ee95036666 feat(mobile-oa-h5): add helpers to auto-submit dfj presign transfers on save
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-14 11:58:11 +08:00
zlwuandCursor b217ffcdca docs: design presign save auto-submit finance confirmation
Document frontend orchestration so saving a presign order submits all dfj earnest transfers on web and mobile.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-14 11:51:11 +08:00
zlwuandCursor e4ec917a03 style(mobile-oa-h5): JD-style left status dropdown on presign list
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-14 10:55:55 +08:00
zlwuandCursor 63f1d7c2f9 fix(mobile-oa-h5): remove reset button from presign list filters
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-14 10:53:33 +08:00
zlwuandCursor c767373a8f test(mobile-oa-h5): expect JD-style presign status filter without reset
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-14 10:51:17 +08:00
zlwuandCursor 8dd816ee1d docs: plan JD-style status filter for mobile presign list
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-14 10:49:47 +08:00
zlwuandCursor 1c53bcd226 docs: design JD-style status filter for mobile presign list
Remove the redundant reset button and adopt a left-aligned lightweight dropdown under the search bar.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-14 10:49:03 +08:00
zlwu f5c514c520 docs: plan complete mobile market parity implementation 2026-10-13 19:41:55 +08:00
zlwu f5daab0d44 docs: define complete mobile market parity scope and boundaries 2026-10-13 19:37:15 +08:00
zlwuandCursor a7b8560f5f feat(mobile-oa-h5): integrate sample payment panel into protocol form
Validate and persist samplePayments on cell_storage protocol save.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-13 15:30:22 +08:00
zlwuandCursor 3354e66d82 feat(mobile-oa-h5): add ProtocolSamplePaymentPanel for mobile protocol forms
Mobile card UI for per-sample pay modes, schedules, and autofill rules.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-13 15:30:22 +08:00
zlwuandCursor 20a8bf538a feat(mobile-oa-h5): wire samplePayments into protocol payload and detail
Drop read-only payment stubs; detail shows per-sample payment cards.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-13 15:30:22 +08:00
zlwuandCursor 66e1c8334c feat(mobile-oa-h5): port protocol sample payment helpers
Share web-aligned installment autofill and mode-switch helpers for
mobile protocol forms.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-13 15:28:39 +08:00
zlwuandCursor be22c37196 feat(backend): persist and return samplePayments for market protocols
Mobile protocol create/update saves v2 per-sample payments; detail
includes samplePayments for edit hydration.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-13 15:23:24 +08:00
zlwuandCursor 9c61f36db8 feat(backend): accept samplePayments on market protocol body
Whitelist per-sample payment payload for mobile protocol create/update.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-13 15:21:07 +08:00
zlwu cc843535f5 提交 2026-10-13 15:18:01 +08:00
zlwuandCursor d08f03ab03 docs: add mobile protocol payment parity P1 implementation plan
Six TDD tasks covering backend samplePayments, shared helpers, and
mobile ProtocolSamplePaymentPanel integration.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-13 15:16:32 +08:00
zlwuandCursor 6d56572f8b docs: add mobile protocol payment parity P1 design
Phased plan to align mini-program protocol payment editing with
web SamplePaymentPanel while keeping admin actions closed.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-13 15:13:04 +08:00
zlwuandCursor 618d8fe21c feat(web-admin): wire fq last-period and dj deadline autofill in SamplePaymentPanel
Auto-recalculate the final installment due amount when earlier periods
change (with manual override), and sync lump-sum deadline to due date.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-13 14:53:11 +08:00
zlwuandCursor 6ec4ec6730 feat(web-admin): sync lump-sum deadline to last due date
Add applyLumpSumDeadlineToLastDueDate for dj payment schedules,
skipping locked or void rows.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-13 14:50:41 +08:00
zlwuandCursor 5fd5550e0d feat(web-admin): add last-period due amount calc helpers
Pure functions for fq auto-fill of the final installment amount
with override/lock gates, covered by unit tests.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-13 14:48:43 +08:00
zlwuandCursor 13ac45d10d docs: add protocol payment last-period autofill implementation plan
Bite-sized TDD tasks for SamplePaymentPanel fq/dj autofill helpers.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-13 14:44:51 +08:00
zlwuandCursor 0efcd6a6e5 docs: add protocol payment last-period autofill design
Document confirmed rules for fq last-period due amount auto-fill
and dj lump-sum deadline to due date sync in SamplePaymentPanel.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-13 14:43:07 +08:00
zlwuandCursor 08150167a8 docs: mark research donation list excel parity design as implemented
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-13 13:17:20 +08:00
zlwuandCursor 6c66eb164e chore: update backend graphify after monthly verify no
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-13 13:14:25 +08:00
zlwuandCursor 99e71096ac feat(mobile-oa-h5): align research donation protocol card with excel fields
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-13 13:14:09 +08:00
zlwuandCursor 0ab0774e8a feat(web-admin): align research donation audit list with excel columns
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-13 13:14:09 +08:00
zlwuandCursor aa231ea5f8 feat(web-admin): flatten research donation excel-parity list fields
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-13 13:14:09 +08:00
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