@pisell/pisellos
Version:
一个可扩展的前端模块化SDK框架,支持插件系统
201 lines (200 loc) • 5.95 kB
TypeScript
import { Module, PisellCore } from '../../types';
import { BaseModule } from '../../modules/BaseModule';
import { RequestPlugin, WindowPlugin } from '../../plugins';
import { IGetCustomerListParams, ICustomer, ILoadProductsParams, IScanResult } from './types';
import { ProductData } from '../../modules';
export declare class BookingTicketImpl extends BaseModule implements Module {
protected defaultName: string;
protected defaultVersion: string;
isSolution: boolean;
request: RequestPlugin;
window: WindowPlugin;
private shopStore;
private store;
private otherParams;
private cacheId;
private platform;
private scan;
initialize(core: PisellCore, options: any): Promise<void>;
/**
* 获取商品列表
* @param params 包含 schedule_date 的参数
* @returns 商品列表
*/
loadProducts(params?: ILoadProductsParams, options?: {
callback?: (result: any) => void;
subscriberId?: string;
}): Promise<any>;
/**
* 取消商品查询订阅
* @param subscriberId 订阅时传入的 subscriberId
*/
unsubscribeProductQuery(subscriberId?: string): void;
/**
* 初始化外设扫码结果监听
*/
initPeripheralsListener(): void;
/**
* 获取商品列表(不加载到模块中)
* @returns 商品列表
*/
getProducts(): Promise<ProductData[]>;
/**
* 获取日程时间段点
* @param params 参数
* @returns 日程时间段点
*/
getScheduleTimePoints(params: {
menu_list_ids: number[];
}): Promise<any>;
/**
* 获取客户列表
* @param params 查询参数
* @returns 客户列表响应
*/
getCustomerList(params?: IGetCustomerListParams): Promise<import("../../modules").ICustomerListResponse>;
/**
* 设置活跃客户
* @param customer 客户信息
*/
setActiveCustomer(customer: ICustomer): void;
/**
* 获取当前活跃客户
* @returns 当前活跃客户
*/
getActiveCustomer(): ICustomer | null;
/**
* 根据ID设置选中的客户
* @param customerId 客户ID
*/
setSelectedCustomerById(customerId: string | number): void;
/**
* 获取所有客户
* @returns 客户列表
*/
getCustomers(): ICustomer[];
/**
* 根据ID获取客户
* @param customerId 客户ID
* @returns 客户信息
*/
getCustomerById(customerId: string | number): ICustomer | null;
/**
* 清空客户列表
*/
clearCustomers(): void;
/**
* 添加客户到列表第一位
* @param customer 要添加的客户信息
*/
addCustomerToFirst(customer: ICustomer): void;
/**
* 获取客户分页信息
* @returns 分页信息
*/
getCustomerPaginationInfo(): import("../../modules").IPaginationInfo;
/**
* 获取客户列表总数
* @returns 总数
*/
getCustomerTotal(): number;
/**
* 设置客户分页信息
* @param page 页码
* @param pageSize 每页数量
*/
setCustomerPaginationInfo(page: number, pageSize: number): void;
/**
* 便捷方法:切换客户分页并自动获取数据
* @param page 页码
* @param pageSize 每页数量(可选)
* @returns 客户列表响应
*/
changeCustomerPage(page: number, pageSize?: number): Promise<import("../../modules").ICustomerListResponse>;
/**
* 滚动加载更多客户数据 - 数据会追加到现有列表中
* @returns 客户列表响应
*/
loadMoreCustomers(): Promise<import("../../modules").ICustomerListResponse>;
/**
* 重置并重新开始滚动加载客户数据
* @param params 查询参数
* @returns 客户列表响应
*/
resetAndLoadCustomers(params?: IGetCustomerListParams): Promise<import("../../modules").ICustomerListResponse>;
/**
* 检查是否还有更多客户数据可以加载
* @returns 是否还有更多数据
*/
hasMoreCustomers(): boolean;
/**
* 获取当前的客户搜索条件
* @returns 当前搜索条件
*/
getCurrentCustomerSearchParams(): Omit<import("../../modules").ShopGetCustomerListParams, "skip" | "num">;
/**
* 获取客户列表状态(包含滚动加载相关状态)
* @returns 客户状态
*/
getCustomerState(): import("../../modules").CustomerState;
/**
* 全局扫描监听
* @param callback 回调
*/
scanGlobalListener(callback: (data: IScanResult) => void): {
remove: () => void;
};
/**
* 客户扫描监听
* @param callback 回调
*/
scanCustomerListener(callback: (data: IScanResult) => void): {
remove: () => void;
};
/**
* @title 通用扫描监听
* @description 直接将扫描结果返回给调用方
* @param callback 回调
*/
scanUniversalListener(callback: (data: IScanResult) => void, key: string): {
remove: () => void;
};
/**
* 调用摄像头
* @param data 用户自定义数据
*/
activateCamera(data?: {
[key: string]: any;
}): void;
/**
* 禁用所有扫描监听
*/
disableAllScanListeners(): void;
/**
* 启用所有扫描监听
*/
enableAllScanListeners(): void;
/**
* 清空所有扫描监听对应的任务执行队列
*/
clearAllScanListenersTaskQueue(): void;
/**
* 设置其他参数
* @param params 参数
* @param options 选项
*/
setOtherParams(params: Record<string, any>, { cover }?: {
cover?: boolean;
}): Promise<void>;
/**
* 获取其他参数
* @returns 其他参数
*/
getOtherParams(): Promise<Record<string, any>>;
/**
* 销毁模块
*/
destroy(): void;
}
export * from './types';
export { BookingTicketImpl as BookingTicket };