| 12345678910111213141516171819202122232425262728293031323334353637 |
- import type { FunnelPeriod } from '../../api/types';
- /** Default period selected on first load: 单日(默认昨日,T+1)。 */
- export const DEFAULT_PERIOD: FunnelPeriod = 'day';
- /** The fixed 5-step funnel (display name + event key), in fixed order. */
- export const FIXED_FUNNEL_STEPS: { name: string; event_key: string }[] = [
- { name: '启动', event_key: 'start' },
- { name: '曝光', event_key: 'show' },
- { name: '拼团详情', event_key: 'detail' },
- { name: '下单', event_key: 'order' },
- { name: '成功', event_key: 'paid' },
- ];
- /** Format a "yyyyMMdd" snapshot day as "yyyy-MM-dd" for display. */
- export function formatSnapshotDt(dt: string): string {
- if (/^\d{8}$/.test(dt)) {
- return `${dt.slice(0, 4)}-${dt.slice(4, 6)}-${dt.slice(6, 8)}`;
- }
- return dt;
- }
- /** Local-midnight `Date` for yesterday — the latest selectable / queryable day (data is T+1). */
- export function yesterday(): Date {
- const d = new Date();
- d.setHours(0, 0, 0, 0);
- d.setDate(d.getDate() - 1);
- return d;
- }
- /** Format a local `Date` as request `snapshot_dt` ("yyyy-MM-dd"). */
- export function toSnapshotParam(d: Date): string {
- const y = d.getFullYear();
- const m = String(d.getMonth() + 1).padStart(2, '0');
- const day = String(d.getDate()).padStart(2, '0');
- return `${y}-${m}-${day}`;
- }
|