import { HttpClient } from '@angular/common/http'; import { NgxExcelModelColumnRules, NgxExcelModelColumnRule, NgxExcelSelectOption } from '../models/models'; import { NgxExcelHelper, NgxExcelUploadService } from './ngx-excel-helper'; import { Observable } from 'rxjs'; import { INgxExcelDataSource } from './ngx-excel-data-source'; export declare abstract class NgxExcelService extends INgxExcelDataSource { protected httpClient: HttpClient; protected helper: NgxExcelHelper; protected abstract resourceUri: string; protected abstract resourceName: string; protected abstract rules: { [name in keyof T]: NgxExcelModelColumnRule; }; protected additionalRules: { [name in keyof T]?: NgxExcelModelColumnRule; }; protected metas: { [name: string]: any; }; constructor(httpClient: HttpClient, helper: NgxExcelHelper); /** * 获得所有字段的模型规则 */ getRules(): NgxExcelModelColumnRules; /** * 获得指定字段的模型规则(服务穿透) * @param name 字段名 */ getRule(name: string): NgxExcelModelColumnRule; /** * 获得模型主键值 * @param model 模型 */ getPrimaryKey(model: T): string; /** * 创建模型 * @param attributes 待转化的模型属性值 * @param o 服务器返回的字段列表 */ createModel(attributes?: Partial, o?: any): T; /** * 获得服务器响应最后一次响应的元数据 */ getResponseMetas(): { [name: string]: any; }; /** * 获得模型列表的资源响应 * @param filters 请求列表筛选参数 * @param page 页码 * @param pageSize 页面长度 */ getList(filters?: { [name: string]: string | string[]; }, page?: number, pageSize?: number): Observable; /** * 获得模型实例的资源响应 * @param primaryKey 模型主键 * @param filters 请求筛选参数 */ getModel(primaryKey: string, filters?: { [name: string]: string | string[]; }): Observable; /** * 更新或创建实例模型 * @param payload 请求参数或模型对象 * @param primaryKey 模型主键(如提供主键代表更新模型, 否则创建模型) */ save(payload: { [name: string]: any; }, primaryKey?: string): Observable; /** * 更新模型 * @param payload 请求参数或模型对象 * @param primaryKey 模型主键 */ update(payload: { [name: string]: any; }, primaryKey: string): Observable; /** * 删除模型实例 * @param model 模型或模型主键 * @param payload 删除时可传递参数 */ destroy(model: T | string, payload?: { [name: string]: string | string[]; }): Observable; /** * 批量增加 * @param payload 批量增加时需要传递的参数 */ batchSave(payload: { [name: string]: any; }): Observable; /** * 批量更新 * @param payload 批量更新时需要传递的参数 */ batchUpdate(payload: { [name: string]: any; }): Observable; /** * 批量删除 * @param payload 批量参数时需要传递的参数 */ batchDestroy(payload?: { [name: string]: any; }): Observable; /** * 根据自定义参数获得文件上传服务对象 * @param payload 自定义参数 */ getUploadService(payload: { [name: string]: string | Blob; }): NgxExcelUploadService; /** * 处理服务器相关错误 * @param e 错误信息 */ protected sendResponseError(e: any): Observable; /** * 获得实际的资源URI * @param primaryKey 模型主键(不传递返回资源集合URI否则返回资源详情URI) * @param resourceParams 请求参数 */ protected getResourceUri(primaryKey?: string, payload?: { [name: string]: any; }): { resourceUri: string; resourceParams: { [name: string]: any; }; }; /** * 平铺查询参数 * @param params 查询参数 */ protected getQueryParams(payload: { [name: string]: any; }): { [name: string]: string | string[]; }; /** * 根据 name 获得选项列表 * @param name 枚举标识 */ protected getSelectOptions(name: string): NgxExcelSelectOption[]; /** * 将服务器响应转化为对应的模型 * @param o 服务器返回的消息对象 */ protected resolve(o: any): T; /** * 解析提交参数 * @param payload 需要提交的消息体 */ protected resolveBody(payload: { [name: string]: any; }): { [name: string]: any; }; /** * 获得属性的默认值 * @param rule 属性规则 */ protected getDefaultAttributeValue(rule: NgxExcelModelColumnRule): any; /** * 获得默认模型 */ protected getDefaultModel(): T; }