Appearance
informat.app 应用信息相关函数
概述
使用informat.app
对象执行和应用相关的全局操作。
callAutomatic
调用自动化
javascript
informat.app.callAutomatic({ automaticId, args })
参数 | 类型 | 描述 |
---|---|---|
appId | String | 调用的自动化归属应用ID,不传递则默认为当前应用 |
automaticId | String | 自动化的标识符 |
args | Array | 自动化传递的参数 |
withoutTimeoutLoading | bool | 是否展示系统的执行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)
参数 | 类型 | 描述 |
---|---|---|
key | String | 设置的数据键 |
value | Object | 设置的数据值 |
javascript
informat.app.setAppData('count', 1000).then(res => {
console.log('setAppData success');
});
getAppData
在客户端获取指定key的App数据
javascript
informat.app.getAppData(key)
参数 | 类型 | 描述 |
---|---|---|
key | String | 设置的数据键 |
返回值 类型为 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)
参数 | 类型 | 描述 |
---|---|---|
key | String | 应用环境变量的键 |
返回值 类型为 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)
参数 | 类型 | 描述 |
---|---|---|
tableKey | String | 模块标识符 |
fieldKey | String | 字段标识符 |
fileId | String | 文件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)
参数 | 类型 | 描述 |
---|---|---|
websiteModuleKey | String | 网站模块标识符 |
返回值 类型为 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)
参数 | 类型 | 描述 |
---|---|---|
refKey | String | 组件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);
});