import { SelectOption } from 'star-horse-lowcode'; /** * 数据适配器配置选项 */ export interface DataAdapterOptions { /** 响应数据路径,默认 'data.data' */ dataPath?: string; /** 成功码路径,默认 'data.code' */ codePath?: string; /** 成功码值,默认 0 */ successCode?: number | string; /** 错误消息路径,默认 'data.message' */ messagePath?: string; } /** * 字段映射配置 * 支持两种形式: * 1. 对象属性名映射:{ name: 'dictName', value: 'dictCode' } * 2. 自定义函数映射:{ name: (item) => item.label, value: (item) => item.id } * 可选 children 字段映射,用于树形数据 */ export type FieldMapping = { name: keyof T | ((item: T) => string); value: keyof T | ((item: T) => string | number); /** 子节点字段名,默认 'children',设为 null 可禁用递归 */ children?: keyof T | null; }; /** * 创建无参数数据适配器 * * 用于 loadAppList、loadRolesList、loadDbList 等不需要参数的回调场景。 * 自动处理:Promise 包装、响应码校验、数据提取、字段映射。 * * @example * ```ts * loadAppList: createDataAdapter( * () => loadSystemInfo(params, url), * { name: 'sysName', value: 'idInformations' }, * ), * * loadRolesList: createDataAdapter( * () => loadRolesInfo([]), * { name: 'roleName', value: 'idRolesinfo' }, * ), * ``` */ export declare function createDataAdapter( /** 发起请求的函数,返回任意 Promise */ request: () => Promise, /** 字段映射配置 */ mapping: FieldMapping, /** 可选的响应解析配置 */ options?: DataAdapterOptions): () => Promise; /** * 创建带参数的数据适配器 * * 用于 loadDicts、loadMenuList、loadTableColumns 等需要参数的回调场景。 * 自动处理:参数透传、Promise 包装、响应码校验、数据提取、字段映射。 * * @example * ```ts * loadDicts: createParamDataAdapter( * (dictName) => postRequest('/api/dict', { fieldList: [{ propertyName: 'dictType', value: dictName }] }), * { name: 'dictName', value: 'dictCode' }, * ), * * loadTableColumns: createParamDataAdapter( * (tableName) => getRequest(`/api/columns/${dsId}/${tableName}`), * { name: 'comment', value: 'fieldName' }, * ), * * loadMenuList: createParamDataAdapter( * (appId) => permissionMenus({}, appId), * { name: 'menuName', value: 'idMenusinfo' }, * { dataPath: 'data.data' }, * ), * ``` */ export declare function createParamDataAdapter( /** 发起请求的函数,接收一个字符串参数 */ request: (param: string) => Promise, /** 字段映射配置 */ mapping: FieldMapping, /** 可选的响应解析配置 */ options?: DataAdapterOptions): (param: string) => Promise; /** * 创建双参数数据适配器 * * 用于 loadTableColumns 等需要两个参数的回调场景。 * 自动处理:参数透传、Promise 包装、响应码校验、数据提取、字段映射。 * * @example * ```ts * loadTableColumns: createBiParamDataAdapter( * (dataSourceId, tableName) => getRequest(`/api/columns/${dataSourceId}/${tableName}`), * { name: 'comment', value: 'fieldName' }, * ), * ``` */ export declare function createBiParamDataAdapter( /** 发起请求的函数,接收两个字符串参数 */ request: (param1: string, param2: string) => Promise, /** 字段映射配置 */ mapping: FieldMapping, /** 可选的响应解析配置 */ options?: DataAdapterOptions): (param1: string, param2: string) => Promise;