@pisell/pisellos
Version:
一个可扩展的前端模块化SDK框架,支持插件系统
83 lines (82 loc) • 2.21 kB
TypeScript
import { Module, PisellCore, ModuleOptions } from '../../../types';
import { BaseModule } from '../../../modules/BaseModule';
import type { RouteDefinition } from '../../types';
import { MenuData } from './types';
/**
* 餐牌模块 - 用于管理餐牌数据和根据餐牌过滤商品
*/
export declare class MenuModule extends BaseModule implements Module {
protected defaultName: string;
protected defaultVersion: string;
private request;
private store;
private dbManager;
private logger;
constructor(name?: string, version?: string);
initialize(core: PisellCore, options?: ModuleOptions): Promise<void>;
/**
* 加载餐牌列表(从服务器)
*/
loadMenuList(): Promise<MenuData[]>;
/**
* 设置餐牌列表
*/
setMenuList(menuList: MenuData[]): Promise<void>;
/**
* 获取餐牌列表
*/
getMenuList(): MenuData[];
/**
* 根据 form_record_id 数组获取餐牌详情
* 使用 Map 快速查询,时间复杂度 O(m),m 为 ids 数量
*/
getMenuByIds(ids: number[]): MenuData[];
/**
* 同步更新餐牌 Map 缓存
* 将 menuList 中的餐牌同步到 map,以 form_record_id 为 key
* @private
*/
private syncMenuMap;
/**
* 清空缓存
*/
clear(): Promise<void>;
/**
* 从 IndexDB 加载餐牌数据
* @private
*/
private loadMenuFromIndexDB;
/**
* 保存餐牌数据到 IndexDB
* @private
*/
private saveMenuToIndexDB;
/**
* 预加载模块数据(统一接口)
* 在模块注册后自动调用
*/
preload(): Promise<void>;
/**
* 获取模块的路由定义
* 返回该模块需要注册的 API 路由
*/
getRoutes(): RouteDefinition[];
/**
* 记录信息日志
* @param title 日志标题
* @param metadata 日志元数据
*/
private logInfo;
/**
* 记录警告日志
* @param title 日志标题
* @param metadata 日志元数据
*/
private logWarning;
/**
* 记录错误日志
* @param title 日志标题
* @param metadata 日志元数据
*/
private logError;
}