Skip to content

informat.app 应用信息相关函数

概述

使用informat.app对象执行和应用相关的全局操作。

callAutomatic

调用自动化

javascript
informat.app.callAutomatic({ automaticId, args })
参数类型描述
appIdString调用的自动化归属应用ID,不传递则默认为当前应用
automaticIdString自动化的标识符
argsArray自动化传递的参数
withoutTimeoutLoadingbool是否展示系统的执行loading

返回值 自动化调用结果

javascript
//调用系统自动化
informat.app.callAutomatic({
    // appId: 'msucfeq7305cn',
    automaticId: 'a1',
    args: ['123', 1]
}).then((result) => {
    console.log(result);
})

setAppData

在客户端设置App的数据

javascript
informat.app.setAppData(key, value)
参数类型描述
keyString设置的数据键
valueObject设置的数据值
javascript
informat.app.setAppData('count', 1000).then(res => {
    console.log('setAppData success');
});

getAppData

在客户端获取指定key的App数据

javascript
informat.app.getAppData(key)
参数类型描述
keyString设置的数据键

返回值 类型为 Object

javascript
informat.app.getAppData('count').then(res => {
    console.log('getAppData success', res); // getAppData success 1000
});

getApp

获取当前的应用信息

javascript
informat.app.getApp()

返回值 类型为 Promise<Application>

javascript
informat.app.getApp().then(app => {
    console.log(app);
});

getAppEnv

获取当前的应用环境变量信息

javascript
informat.app.getAppEnv()

返回值 类型为 Promise<Any>

javascript
informat.app.getAppEnv().then(env => {
    console.log(env);
});

getAppEnvByKey

通过Key获取当前的应用环境变量的值

javascript
informat.app.getAppEnvByKey(key)
参数类型描述
keyString应用环境变量的键

返回值 类型为 Promise<Any>

javascript
informat.app.getAppEnvByKey('baseUrl').then(value => {
    console.log(value);
});

getUser

获取当前应用用户信息

javascript
informat.app.getUser()

返回值 类型为 Promise<User>

javascript
informat.app.getUser().then(user => {
    console.log(user);
});

attachmentUrl

获取数据表附件字段文件链接

javascript
informat.app.attachmentUrl(tableKey, fieldKey, fileId)
参数类型描述
tableKeyString模块标识符
fieldKeyString字段标识符
fileIdString文件ID

返回值 类型为 String

javascript
const attachmentUrl = informat.app.attachmentUrl('testTable', 'testField', 'xxxx.png');
console.log(attachmentUrl); // https://next.informat.cn/web0/file/fieldkey/gx6wpgysmthb1/testTable/testField/xxxx.png?token=xxxxxxx

baseURL

获取网站模块根节点链接

javascript
informat.app.baseURL(websiteModuleKey)
参数类型描述
websiteModuleKeyString网站模块标识符

返回值 类型为 String

javascript
const websiteBaseUrl = informat.app.baseURL('testWebsiteModule');
console.log(websiteBaseUrl); // https://next.informat.cn/web0/website/gx6wpgysmthb1/testWebsiteModule

getRefKeys

获取已绑定的平台组件标识符列表

javascript
informat.app.getRefKeys()

返回值 类型为 Array<string>

getRef

通过refKey获取平台内的组件

javascript
informat.app.getRef(refKey)
参数类型描述
refKeyString组件ref标识符

返回值 类型为 Compoent

javascript
const recordSelectDialog = informat.app.getRef('informatAutomaticRecordSelect');
console.log(recordSelectDialog);
if (recordSelectDialog) {
    recordSelectDialog.reloadData();
}

AutomaticRecordSelectComponent

打开数据表记录列表弹窗

refKey计算规则

来自于打开数据表记录列表弹窗中设置的对话框标识符

typescript
interface AutomaticRecordSelectComponent extends Component {
    /**
     * 重新加载数据
     */
    reloadData(): void;

    /**
     * 关闭弹窗
     */
    close(): void;
}

TableViewComponent

数据表视图模块

refKey计算规则

来自于模块设置的模块标识符

typescript
interface TableViewComponent extends Component {
    /**
     * 加载数据,
     * @param {Number} [pageIndex] 不传递则默认为重新加载当前页数据
     */
    _loadData(pageIndex?: number): void;

    /**
     * 设置分页大小,此操作仅会设置分页数量,不会主动加载数据。加载数据请调用{@link _loadData}
     * @param {Number} pageSize 分页数据量大小
     */
    _setPageSize(pageSize?: number): void;

    /**
     * 打开记录详情页
     * @param recordId
     */
    _openRecord(recordId: string): void;

    /**
     * 重置视图过滤条件,并将页码重置为1后,重新加载数据
     */
    _resetQueryFilterConditions(): void;

    /**
     * 设置视图过滤条件项的值,
     * @param {string} key  字段标识符
     * @param {any} value   字段值
     */
    _setQueryFilterConditionValue(key: string, value: any): void;

    /**
     * 设置视图过滤条件项的值计算函数,
     * @param {string} key  字段标识符
     * @param {any} func   计算函数
     */
    _setQueryFilterConditionFunc(key: string, func: any): void;

    /**
     * 设置视图过滤条件项的值比较方式
     * @param {string} key  字段标识符
     * @param {any} opt   比较方式
     */
    _setQueryFilterConditionOpt(key: string, opt: any): void;

    /**
     * 设置视图中选中的记录
     * @param {Array<string>} idList 记录ID列表
     * @param {string} mode          设置选中的模式,支持replace:重置,add:追加,remove:移除,toggle:翻转选中
     */
    _setSelectionIdList(idList: Array<string>, mode: 'replace' | 'add' | 'remove' | 'toggle' | string): void;

    /**
     * 获取视图中选中的记录ID列表
     * @returns Array<string>
     */
    _getSelectionIdList(): Array<string>;

    /**
     * 获取视图中的数据信息
     * @returns Object
     */
    _getTableData(): {
        /**
         * 数据表原始纪录列表
         */
        tableRawRecordList: Array<Record<string, any>>,
        /**
         * 数据表标识符字段纪录列表
         */
        tableRecordList: Array<Record<string, any>>,
        /**
         * 视图数据总数
         */
        tableRecordPageTotal: number,
        /**
         * 视图当前分页页码
         */
        tableRecordPageIndex: number,
        /**
         * 视图当前分页大小
         */
        tableRecordPageSize: number,
    };

    /**
     * 获得表格视图数据信息
     */
    _getTableGridData():{
        /**
         * 获取已激活的行数据
         */
        activeEditRecord: {
            row: any
            rowIndex: number
            column: Record<string, any>
            columnIndex: number
        } | undefined,
        editableColumnList: {
            edit: boolean,
            icon: string,
            id: string,
            name: string,
            type: string,
            width: string,
        }[]
    }

    /**
     * 激活下一个可编辑的单元格
     * @param cellActiveType 激活下一个单元格的方式
     * @param nextActiveCellEditInfoHandler  自定义激活的可编辑单元格信息。不传递则系统自动计算,默认从第一行第一个可编辑的单元格开始
     */
    _activeGridNextCellEdit(cellActiveType: 'column' | 'row', nextActiveCellEditInfoHandler?: (data: {
        /**
         * 获取已激活的行数据
         */
        activeEditRecord: {
            row: any
            rowIndex: number
            column: Record<string, any>
            columnIndex: number
        } | undefined,
        /**
         * 激活下一个单元格的方式
         */
        cellActiveType: string,
        /**
         * 可编辑的列数据
         */
        editableColumnList: {
            edit: boolean,
            icon: string,
            id: string,
            name: string,
            type: string,
            width: string,
        }[]
    }) => {
        editRowIndex: number,
        editColumnIndex: number,
    }): Promise<any>;

    /**
     * 激活指定的单元格
     * @param recordId  记录ID
     * @param columnIndex   列ID,不传递则默认为0
     */
    _activeGridCellEdit(recordId: string, columnIndex?: number): Promise<any>;
}

DashboardModuleComponent

仪表盘模块

refKey计算规则

来自于模块设置的模块标识符

typescript
interface DashboardModuleComponent extends Component {
    /**
     * 重新加载仪表盘数据
     */
    _loadData(): void;

    /**
     * 设置仪表盘过滤条件值
     * @param {string} key  字段标识符
     * @param {any} value   字段值
     */
    _setFilterConditionValue(key: string, value: any): void;

    /**
     * 获取卡片列表
     */
    _getCardList(): Array<{
        /**
         * 卡片ID
         */
        id: string
        /**
         * 卡片名称
         */
        name: string,
        /**
         * 卡片类型
         */
        type: string,
        /**
         * 是否在卡片内部(标签页卡片、卡片容器、折叠面板)
         */
        isInTab: boolean,
    }>;

    /**
     * 刷新卡片
     * @param {string} cardId
     */
    _loadCardData(cardId: string): void;

    /**
     * 设置仪表盘卡片过滤条件值
     * @param {string} cardId
     * @param {string} key
     * @param {string} value
     */
    _setCardFilterConditionValue(cardId: string, key: string, value: any): void;
}

RecordFormComponent

数据表单

refKey计算规则

TableForm-{模块标识符}-{记录ID}

当记录不存在时,则记录ID使用空字符串替代。

例如:

假设存在员工表模块标识符为staff

记录详情页(记录ID为:zhangsan): TableForm-staff-zhangsan记录创建页: TableForm-staff-

typescript
interface RecordFormComponent extends Component {
    /**
     * 获取表单数据信息
     */
    _getFormData(): {
        /**
         * 应用信息
         */
        app: Record<string, any>,
        /**
         * 用户信息
         */
        user: User,
        /**
         * 表单记录数据
         */
        formRecord: Record<string, any>,
        /**
         * 表单模块标识符
         */
        formModuleKey: string
    };

    /**
     * 设置字段值
     * @param {string} key  字段标识符
     * @param {any} value   字段值
     * @param {string} setType 设置方式,仅在子表字段生效.reset:覆盖,append:追加尾部,insert:追加头部
     * @private
     */
    _setFieldValue(key: string, value: any, setType?: 'reset' | 'append' | 'insert' | string): void;

    /**
     * 关闭当前表单
     */
    _close(): void;

    /**
     * 重新加载表单
     * @private
     */
    _reload(): void;

    /**
     * 校验表单
     * @param callback 校验后回调函数并传入表单校验结果
     */
    _validate(callback?: (valid: boolean) => {}): void;
}

RecordFormFieldComponent

数据表单字段

refKey计算规则

TableForm-{模块标识符}-{记录ID}-Field-{字段标识符}

当记录不存在时,则记录ID使用空字符串替代。

例如:

假设存在员工表模块标识符为staff,履历列表字段resumeLookup

记录详情页(记录ID为:zhangsan): TableForm-staff-zhangsan-Field-resumeLookup记录创建页: TableForm-staff--Field-resumeLookup

typescript

/**
 * 数据表字段
 */
interface RecordFormFieldComponent extends Component {
    /**
     * 获得表单关联列表、子对象、查找列表字段数据信息
     */
    _getTableFormData():{
        /**
         * 获取已激活的行数据
         */
        activeEditRecord: {
            row: any
            rowIndex: number
            column: Record<string, any>
            columnIndex: number
        } | undefined,
        editableColumnList: {
            edit: boolean,
            icon: string,
            id: string,
            name: string,
            type: string,
            width: string,
        }[]
    }

    /**
     * 激活表单关联列表、子对象、查找列表下一个可编辑的单元格
     * @param cellActiveType 激活下一个单元格的方式
     * @param nextActiveCellEditInfoHandler  自定义激活的可编辑单元格信息。不传递则系统自动计算,默认从第一行第一个可编辑的单元格开始
     */
    _activeTableNextCellEdit(cellActiveType: 'column' | 'row', nextActiveCellEditInfoHandler?: (data: {
        /**
         * 获取已激活的行数据
         */
        activeEditRecord: {
            row: any
            rowIndex: number
            column: Record<string, any>
            columnIndex: number
        } | undefined,
        /**
         * 激活下一个单元格的方式
         */
        cellActiveType: string,
        /**
         * 可编辑的列数据
         */
        editableColumnList: {
            edit: boolean,
            icon: string,
            id: string,
            name: string,
            type: string,
            width: string,
        }[]
    }) => {
        editRowIndex: number,
        editColumnIndex: number,
    }): Promise<any>;

    /**
     * 激活表单关联列表、子对象、查找列表指定的单元格
     * @param recordId  记录ID
     * @param columnIndex   列ID,不传递则默认为0
     */
    _activeTableCellEdit(recordId: string, columnIndex?: number): Promise<any>;
}

onAnyRefMounted

监听任一组件实例挂载

typescript
informat.app.onAnyRefMounted(handler);
js
informat.app.onAnyRefMounted((data) => {
    console.log('[' + data.refKey + '] onAnyRefMounted', data.data);
});

onceAnyRefMounted

单次监听任一组件实例挂载

typescript
informat.app.onceAnyRefMounted(handler);
js
informat.app.onceAnyRefMounted((data) => {
    console.log('[' + data.refKey + '] onceAnyRefMounted', data.data);
});

offAnyRefMounted

移除任一组件实例挂载监听

typescript
informat.app.offAnyRefMounted(handler);
js
informat.app.onceAnyRefMounted((data) => {
    console.log('[' + data.refKey + '] offAnyRefMounted', data.data);
});

onRefMounted

监听组件实例挂载

typescript
informat.app.onRefMounted(refKey,handler);
js
// 假设存在`员工表`模块标识符为**staff**
informat.app.onRefMounted('staff',(data) => {
    console.log('[' + data.refKey + '] onRefMounted', data.data);
});

onceRefMounted

单次监听组件实例挂载

typescript
informat.app.onceRefMounted(refKey,handler);
js
// 假设存在`员工表`模块标识符为**staff**
informat.app.onceRefMounted('staff',(data) => {
    console.log('[' + data.refKey + '] onceRefMounted', data.data);
});

offRefMounted

移除监听组件实例挂载

typescript
informat.app.offRefMounted(refKey,handler);
js
// 假设存在`员工表`模块标识符为**staff**
informat.app.offRefMounted('staff',(data) => {
    console.log('[' + data.refKey + '] offRefMounted', data.data);
});

onAnyRefDestroy

监听任一组件实例销毁

typescript
informat.app.onAnyRefDestroy(handler);
js
informat.app.onAnyRefDestroy((data) => {
    console.log('[' + data.refKey + '] onAnyRefDestroy', data.data);
});

onceAnyRefDestroy

单次监听任一组件实例销毁

typescript
informat.app.onceAnyRefDestroy(handler);
js
informat.app.onceAnyRefDestroy((data) => {
    console.log('[' + data.refKey + '] onceAnyRefDestroy', data.data);
});

offAnyRefDestroy

移除监听任一组件实例销毁

typescript
informat.app.offAnyRefDestroy(handler);
js
informat.app.offAnyRefDestroy((data) => {
    console.log('[' + data.refKey + '] offAnyRefDestroy', data.data);
});

onRefDestroy

移除监听任一组件实例销毁

typescript
informat.app.onRefDestroy(refKey,handler);
js
// 假设存在`员工表`模块标识符为**staff**
informat.app.onRefDestroy('staff',(data) => {
    console.log('[' + data.refKey + '] onRefDestroy', data.data);
});

onceRefDestroy

单次监听组件实例销毁

typescript
informat.app.onceRefDestroy(refKey,handler);
js
// 假设存在`员工表`模块标识符为**staff**
informat.app.onceRefDestroy('staff',(data) => {
    console.log('[' + data.refKey + '] onceRefDestroy', data.data);
});

offRefDestroy

移除监听组件实例销毁

typescript
informat.app.offRefDestroy(refKey,handler);
js
// 假设存在`员工表`模块标识符为**staff**
informat.app.offRefDestroy('staff',(data) => {
    console.log('[' + data.refKey + '] offRefDestroy', data.data);
});