UNPKG

@pisell/pisellos

Version:

一个可扩展的前端模块化SDK框架,支持插件系统

201 lines (200 loc) 5.95 kB
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 };