0.2.1 • Published 6 months ago

@zjlab-fe/util v0.2.1

Weekly downloads
-
License
ISC
Repository
-
Last release
6 months ago

API

下载文件

支持多个文件同时下载

/**
 * 下载文件
 * @param url {string} 文件url
 * @param openWindow {bool} 可选,是否是新开标签页下载
 * @param message {object} 可选,如果传入,需要传入antd或者antdv的message
 */
function downloadFile(url: string, openWindow?: boolean, message?: any): void;

提取文件类型

/**
 * 提取文件类型
 * @param filePath {string} 文件路径 or 文件url
 * @returns ext {string} 文件类型
 */
function getFileExt(filePath: string): string;

对object或者array进行trim操作

/**
 * 深度遍历,对于类型是字符串的value进行trim操作
 * @param obj 原始的数据
 * @returns newObj trim操作后的数据
 */
function trimObj<T>(obj: T): T;

iframe通信相关

通信类

/**
 * iframe通信类
 */
class IfmChannel {
    onMessageCallback: Record<string, any>;
    /**
     * 向iframe发送消息
     * @param ifmDom
     * @param type
     * @param data
     * @param callback
     */
    postMessageToIfm(ifmDom: HTMLIFrameElement, type: string, data?: any, callback?: (data: any) => void): void;
    /**
     * 向父窗口发送消息
     * @param type {string} 消息类型
     * @param data {any} 可选,发送的数据
     * @param callback {function} 可选,如果传入,表示等待消息回应,等同于onMessage(type, callback, true)
     */
    postMessage(type: string, data?: any, callback?: (data: any) => void): void;
    /**
     * 监听来自父窗口的消息 or 父窗口监听来自iframe的消息
     * @param type {string} 消息类型
     * @param callback {function} 消息处理函数
     * @param isOnce {boolean} 可选,表示消息处理函数是否是一次性的
     */
    onMessage(type: string, callback: (data: any) => void, isOnce?: boolean): void;
    /**
     * 销毁事件监听
     */
    destroy(): void;
}

// 使用
const ifmChannel = new IfmChannel();
// 给父窗口发送消息
ifmChannel.postMessage('messageType', {
  name: 'xxx',
  projectId: 'xxx'
});
// 监听来自父窗口的消息
ifmChannel.onMessage('messageType', (data: any) => {
  // ...
});

iframe嵌入,主应用相关api

/**
 * 主应用初始化,监听路由
 */
function mainAppInit(): void;

/**
 * 获取iframe的最终url
 * @param initUrl {string} iframe初始url
 * @returns
 */
function getIframeUrl(initUrl: string): string;

iframe嵌入,子应用相关api

interface SubAppInitData {
    token: string | undefined;
    userInfo: IUserInfo | null;
}


/**
 * 子应用初始化配置对象类型
 */
interface ISubAppInitConfig {
    /** 账号信息数据会存放在window[namespace]下,默认值是_subApp,默认会将账号信息数据同步到window._subApp下 */
    namespace: string;
}
/**
 * 子应用初始化
 * @param callback (data: SubAppInitData) => void) 可选,回调函数中会传回来自父窗口的账号信息
 * @param config {ISubAppInitConfig} 可选
 *
 */
function subAppInit(callback?: (data: SubAppInitData) => void, config?: ISubAppInitConfig): void;

interface IConfig {
    /** 账号关联的token存放在了window[authTokenNamespace]下,authTokenNamespace的默认值是_subApp,同subAppInit中的namespace */
    authTokenNamespace: string;
}
/**
 * 获取经过配置的axios实例
 * @param instanceConfig {IConfig} 实例化配置
 * @returns axios实例
 */
function getAxiosInstanceWithAuth(instanceConfig?: IConfig): import("axios").AxiosInstance;

账号信息类型定义

interface IUserInfo {
    /** 用户id */
    userId: string;
    /** 用户名 */
    userName: string;
    /** 邮箱 */
    email: string;
    /** 昵称 */
    nickName: string;
    /** 头像 */
    avatar: string;
    /** 所在组织名 */
    orgName: string;
    /** 所在组织code */
    orgCode: string;
    /** 所在组织id */
    orgId: string;
    /** 账号状态 */
    status: number;
    /** 用于组织内部的用户名称 */
    realName?: string;
    /** 根组织id,只有当前登录用户的用户信息才包含 */
    rootOrgId?: string;
}
0.2.1

6 months ago

0.2.0

7 months ago

0.1.0

9 months ago

0.0.9

9 months ago

0.0.8

11 months ago

0.0.7

11 months ago

0.0.6

12 months ago

0.0.3

12 months ago

0.0.5

12 months ago

0.0.4

12 months ago

0.0.2

1 year ago

0.0.1

1 year ago