UNPKG

@tanshenghu/web-utils

Version:

web公共方法

223 lines (186 loc) 5.9 kB
import { $ajax } from ".."; type AjaxOpts = { /** * 接口请求url路径 */ url: string, /** * 接口调用方式 * @default get */ type?: 'get' | 'post' | 'put' | 'patch' | 'delete' | 'head', /** * 接口所需传参对象 */ data?: any, /** * 接口调用请求头(报文) */ headers?: {[K: string]: string}, /** * 接口数据返回类型 * @default json */ dataType?: 'json' | 'text' | 'blob', /** * 其它个性化配置 */ special?: object, /** * 接口调用之前触发 */ beforeSend?: Function, /** * 接口调用成功时触发 */ success?: Function, /** * 接口调用失败时触发 */ error?: Function, /** * 接口调用完成后触发 */ complete?: Function, /** * fetch其它剩余的配置项 */ option?: object, } declare function $ajax(options: AjaxOpts): Promise<any>; /** * 接口GET调用方式 * @param {string} url - 接口地址 * @param {object} data - 接口参数 * @param {function} success - 接口调用成功回调 * @param {string} dataType - 响应数据类型 */ declare function $get(url: string, data?: any, success?: (data, resModel) => void, dataType?: 'json' | 'text' | 'blob'): Promise<any>; /** * 接口POST调用方式 * @param {string} url - 接口地址 * @param {object} data - 接口参数 * @param {function} success - 接口调用成功回调 * @param {string} dataType - 响应数据类型 */ declare function $post(url: string, data?: any, success?: (data, resModel) => void, dataType?: 'json' | 'text' | 'blob'): Promise<any>; /** * 接口PUT调用方式 * @param {string} url - 接口地址 * @param {object} data - 接口参数 * @param {function} success - 接口调用成功回调 * @param {string} dataType - 响应数据类型 */ declare function $put(url: string, data?: any, success?: (data, resModel) => void, dataType?: 'json' | 'text' | 'blob'): Promise<any>; /** * 接口PATCH调用方式 * @param {string} url - 接口地址 * @param {object} data - 接口参数 * @param {function} success - 接口调用成功回调 * @param {string} dataType - 响应数据类型 */ declare function $patch(url: string, data?: any, success?: (data, resModel) => void, dataType?: 'json' | 'text' | 'blob'): Promise<any>; /** * 接口DELETE调用方式 * @param {string} url - 接口地址 * @param {object} data - 接口参数 * @param {function} success - 接口调用成功回调 * @param {string} dataType - 响应数据类型 */ declare function $delete(url: string, data?: any, success?: (data, resModel) => void, dataType?: 'json' | 'text' | 'blob'): Promise<any>; /** * 接口HEAD调用方式 * @param {string} url - 接口地址 * @param {object} data - 接口参数 * @param {function} success - 接口调用成功回调 * @param {string} dataType - 响应数据类型 */ declare function $head(url: string, data?: any, success?: (data, resModel) => void, dataType?: 'json' | 'text' | 'blob'): Promise<any>; /** * 辅助方法 */ declare namespace $ajax { /** * 接口返回的业务主体字段名称 */ var bodyField: string /** * 设置接口统一域名 */ var setBaseUrl: (ajaxBaseUrl: string, alone?: {test: string, host: string}[]) => void; /** * 获取接口统一域名 */ var getBaseUrl: () => string; /** * 接口请求之前公共拦截器 */ var injectBeforeSend: (callback: Function) => void; /** * 注入项目公用headers * @param {object} headers - 注入接口请求报文header */ var injectHeaders: (headers: {[K: string]: string}) => void; /** * 取消项目公用headers */ var uninjectHeaders: () => void; /** * 注入共性事务处理方法 偏业务类型 * @param {function} callback - 回调事务处理 * @param {function} [errorCallback] - 接口服务异常回调事务处理 */ var injectResponse: (callback: Function, errorCallback?: Function) => void; /** * 设置配置参数 */ var set: (key: string, value: any, value2?: any) => void; /** * 设置样式 */ var appendStyle: (colors: string) => void; /** * 提供内部某些常用的辅助方法 */ var querystring: (params: {[K: string]: any}) => string; } /** * 加载远程CSS,JS资源文件 * @param {string | array} attachSrc - js或者css服务端或cdn远程地址 * @param {function} [cb] - 加载成功之后回调 * @param {boolean} [remove = true] - 是否移除 */ declare function $getScript(attachSrc: string | Array<string>, cb?: Function, remove?: boolean): Promise<any>; /** * jsonp实现方案 * @param {string} url - 接口地址 * @param {object} [params] - 接口参数 * @param {string} [callbackName="callback"] - callback名称,一般情况下不需要特定,用默认值即可 */ declare function $jsonp(url: string, params?: {[K: string]: any}, callbackName?: 'string'): Promise<any>; /** * 提供一个简易版 ajax 方法,防止一些特殊情况需要 * @param {object} options.url - 接口路径url * @param {object} options.type - 接口请求方式 * @param {object} options.name - 字段名称 * @param {object} options.data - 接口入参数据 * @param {object} options.withCredentials - 是否带上cookie待授权字段 * @param {object} options.headers - 请求头报文 * @param {object} options.success - 接口请求成功 * @param {object} options.error - 接口请求失败 * @param {object} options.complete - 接口请求完成 */ declare function Ajax(options: AjaxOpts & {name?: string, withCredentials?: boolean}): XMLHttpRequest; declare namespace Ajax { var wrapper: (options: AjaxOpts) => Promise<any>; } export default $ajax; export { $get } export { $post } export { $put } export { $patch } export { $delete } export { $head } export { Ajax } export { $getScript } export { $jsonp }