/** * T-440: 兑换商城页组件 * 商品列表 + 详情 + 兑换确认 + 订单列表 */ import { BaseComponent } from '../base/BaseComponent'; export interface ExchangeProduct { id: number; name: string; imageUrl: string; pointsCost: number; stock: number; description: string; couponTemplateName?: string; couponTemplateType?: string; couponTemplateValue?: string; } export interface ExchangeOrder { id: number; productName: string; pointsCost: number; status: 'pending' | 'completed' | 'cancelled'; createdAt: string | number | Date; } /** 订单加载回调 */ export type LoadOrdersFn = () => Promise; export declare class ExchangeStore extends BaseComponent { private products; private orders; private selectedProduct; private viewMode; private initialized; private toastTimer; private loadOrdersFn; private ordersLoading; setProducts(products: ExchangeProduct[]): void; setOrders(orders: ExchangeOrder[]): void; /** 注入订单加载函数,注入后点击"兑换记录"按钮将自动加载 */ setLoadOrdersFn(fn: LoadOrdersFn): void; showDetail(product: ExchangeProduct): void; /** 显示兑换成功 toast(Shadow DOM 内渲染,3s 后消失) */ notifyRedeemSuccess(couponName: string): void; private handleProductClick; private handleRedeem; /** 点击兑换记录按钮:优先用内部 loadOrdersFn,否则 emit 事件让外部处理 */ private handleOrdersClick; private handleBack; protected render(): string; private renderList; private renderDetail; private renderOrders; protected styles(): string; private _clickBound; protected afterRender(): void; } /** 注册自定义元素 */ export declare function registerExchangeStore(): void; //# sourceMappingURL=ExchangeStore.d.ts.map