跳到主要内容

前端

为前端开发提供统一的全局组件、公共模块、工具函数和Web Workers支持。

globals.Calc是官方内置的公共模块Type元素,提供数学、逻辑、文本和日期时间计算功能。globals.Calc元素层级结构为Meta(globals.Meta) → Type(globals.Calc),开发者可以使用app.getElement("globals.Calc")获取并直接使用。

modules.xxx系列是官方提供的前端数据处理、用户界面反馈、文件与工具、消息通信等功能的实例元素,元素层级结构为Meta(modules.Meta) → Type(modules.FrontType) → 实例,开发者可以使用app.getElement("modules.xxx")获取并直接使用。

当然,开发者也可以创建自己的公共模块以及modules.xxx系列元素,或者在自己的App中改写JitAi官方提供的元素,以实现自己的封装。

计算组件

globals.Calc

全局计算组件,提供数学、逻辑、文本和日期时间计算功能。

基本用法

计算组件基本使用
import { app } from 'jit';

// 获取计算组件
const CALC = await app.getElement('globals.Calc');

// 使用计算函数
const result = CALC.SUM(10, 20, 30);
const text = CALC.CONCAT("Hello", "World");
const now = CALC.NOW();

数学计算函数

函数名参数返回值功能描述
SUM(...numbers: number[])number求和多个数字
AVG(...numbers: number[])number计算平均值
MAX(...numbers: number[])number获取最大值
MIN(...numbers: number[])number获取最小值
ABS(number: number)number获取绝对值
ROUND(number: number, digits: number)number四舍五入到指定小数位
TRUNCATE(number: number, digits: number)number截取小数位不四舍五入
POWER(base: number, exponent: number)number幂运算 base^exponent
MOD(dividend: number, divisor: number)number取余运算
RANDOM(min: number, max: number, decimal: number)number生成指定范围和小数位的随机数
CHINESEUPPER(number: number)string数字转中文大写金额
ENGLISHUPPER(number: number)string数字转英文大写金额
TOSTRING(value: any)string | null转换为字符串,失败返回null
TONUMBER(value: any)number | null转换为数字,失败返回null

文本处理函数

函数名参数返回值功能描述
CONCAT(...texts: any[])string连接多个值为文本
LEN(text: string)number获取文本长度
LEFT(text: string, length: number)string从左侧截取指定长度文本
RIGHT(text: string, length: number)string从右侧截取指定长度文本
MID(text: string, start: number, length: number)string从指定位置截取指定长度文本
TRIM(text: string)string去除首尾空格
REPLACE(text: string, oldText: string, newText: string)string全局替换文本
INSERT(sourceText: string, start: number, length: number, replaceText: string)string在指定位置替换文本
LOCATE(searchText: string, sourceText: string)boolean判断是否包含指定文本
IDCARDSEX(idCard: string)string根据身份证号获取性别('男'/'女'/'')
IDCARDBIRTHDAY(idCard: string)string根据身份证号获取生日(YYYY-MM-DD格式)

日期时间函数

函数名参数返回值功能描述
NOW()string获取当前时间(YYYY-MM-DD HH:mm:ss格式)
TODAY()string获取今天日期(YYYY-MM-DD格式)
DATEADD(date: string, number: number, unit?: string)string | null日期加减运算,unit可选:'Y'/'y'(年)、'M'/'m'(月)、'D'/'d'(日)、'H'/'h'(时)、'I'/'i'(分)、'S'/'s'(秒),默认为天
DATEDELTA(date1: string, date2: string, unit?: string)number | null计算日期差值,unit同DATEADD,返回date1-date2的差值
EXTRACT(date: string, unit?: string)number | null提取日期部分,unit可选:'Y'/'y'(年)、'M'/'m'(月)、'D'/'d'(日)、'H'/'h'(时)、'I'/'i'(分)、'S'/'s'(秒)、'Q'/'q'(季度),默认返回年
TIMESTAMPFORMAT(timestamp: number)string时间戳转日期时间字符串
DATESTR(date: string)string日期转YYYYMMDD格式字符串
DATE(year: number, month: number, day: number)string构造日期字符串(YYYY-MM-DD格式)
MONTHDAYS(date: string)number | null获取指定日期所在月份的天数
DAYOFYEAR(date: string)number | null获取指定日期是当年第几天
WEEKOFYEAR(date: string)number获取指定日期是当年第几周
WEEKDAYNUM(date: string)number | null获取星期数字(1-7,周一到周日)
WEEKDAYSTR(date: string)string获取星期文本(星期一到星期日)
MONTHSTART(date: string)string | null获取指定日期所在月份的第一天
MONTHEND(date: string)string | null获取指定日期所在月份的最后一天
NETWORKDAYS(startDate: string, endDate: string)number | null计算两个日期间的工作日天数(排除周末和节假日)
WORKDAY(date: string, days: number, holidays?: any[])string从指定日期开始计算指定工作日后的日期

逻辑判断函数

函数名参数返回值功能描述
IF(condition: any, trueValue: any, falseValue: any)any条件判断,condition为真返回trueValue,否则返回falseValue
IFS(...args: any[])any多条件判断,按条件值对依次判断,返回第一个满足条件的值,最后一个参数作为默认值
AND(...conditions: any[])boolean逻辑与运算,所有条件都为真才返回true
OR(...conditions: any[])boolean逻辑或运算,任一条件为真就返回true
ISEMPTY(value: any)boolean判断值是否为空(null、undefined、空字符串、空数组、空对象)
ISNOTEMPTY(value: any)boolean判断值是否非空
EMPTY()null返回空值null
EMPTYSTR()string返回空字符串""
DEFAULTVALUE(value: T, defaultValue: T)T如果value为空则返回defaultValue,否则返回value

常用示例

计算函数常用示例
const CALC = await app.getElement('globals.Calc');

// 数学计算
const total = CALC.SUM(10, 20, 30); // 60
const avg = CALC.AVG(1, 2, 3, 4, 5); // 3
const rounded = CALC.ROUND(3.14159, 2); // 3.14
const random = CALC.RANDOM(1, 100, 0); // 1-100随机整数

// 文本处理
const fullName = CALC.CONCAT("张", "三"); // "张三"
const length = CALC.LEN("Hello World"); // 11
const left3 = CALC.LEFT("Hello", 3); // "Hel"
const gender = CALC.IDCARDSEX("110101199001011234"); // "男"

// 日期时间
const now = CALC.NOW(); // "2024-01-15 14:30:25"
const today = CALC.TODAY(); // "2024-01-15"
const nextWeek = CALC.DATEADD(today, 7, "D"); // "2024-01-22"
const year = CALC.EXTRACT(today, "Y"); // 2024

// 逻辑判断
const result = CALC.IF(total > 50, "及格", "不及格"); // "及格"
const isEmpty = CALC.ISEMPTY(""); // true
const defaultName = CALC.DEFAULTVALUE(null, "匿名"); // "匿名"

变量管理

globals.AppVar

应用变量配置组件,提供前端应用级别的变量配置框架。

基本用法

应用变量基本使用
import { app } from 'jit';

// 获取应用变量配置
const appVar = await app.getElement('globals.AppVar');

// 应用变量配置是一个JSON对象
console.log(appVar); // 输出变量配置

组件特性

特性说明
配置格式JSON对象格式的变量配置
作用域前端应用级别
用途提供变量定义框架和配置基础

globals.GlobalVar

全局变量组件,提供预定义的时间相关变量和用户信息。

基本用法

全局变量基本使用
import { app } from 'jit';

const globalVar = await app.getElement('globals.GlobalVar');

// 使用时间变量
const now = globalVar.currentTime;
const today = globalVar.today;
const currentUser = globalVar.currentUser;

时间相关变量

变量名类型功能描述
currentTimeDatetime当前时间
todayDateRange今天时间范围
yesterdayDateRange昨天时间范围
tomorrowDateRange明天时间范围
thisWeekDateRange本周时间范围
lastWeekDateRange上周时间范围
nextWeekDateRange下周时间范围
thisMonthDateRange本月时间范围
lastMonthDateRange上月时间范围
nextMonthDateRange下月时间范围
thisQuarterDateRange本季度时间范围
lastQuarterDateRange上季度时间范围
nextQuarterDateRange下季度时间范围
thisYearDateRange今年时间范围
lastYearDateRange去年时间范围
nextYearDateRange明年时间范围

动态天数范围变量

变量名类型功能描述
last24HoursDateRange近24小时
last2DaysDateRange近2天
last3DaysDateRange近3天
last7DaysDateRange近7天
last15DaysDateRange近15天
last30DaysDateRange近30天
last60DaysDateRange近60天
last90DaysDateRange近90天

用户相关变量

变量名类型功能描述
currentUserMember当前登录用户信息

数据处理

modules.DataHandler

数据处理模块,提供数据转换、过滤器转换等功能。

基本用法

数据处理基本使用
import { app } from 'jit';

const { convertRowData, convertRowList, convertFilter, tableSet } = await app.getElement('modules.DataHandler');

// 使用数据转换
const rowData = convertRowData(mappingDict, sourceVal, targetModelName, sourceModelName);
const filter = convertFilter(mappingDict, sourceVal);
const table = tableSet(tqlConfig);

可用方法

方法名参数返回值功能描述
convertRowData(mappingDict: Record<string, any>, sourceVal: any, targetModelName: string, sourceModelName: string)Record<string, any> | undefined转换单行数据格式
convertRowList(mappingDict: Record<string, any>, sourceVal: any, targetModelName: string, sourceModelName: string)Record<string, any>[] | undefined转换多行数据格式
convertFilter(mappingDict: Record<string, any>, sourceVal?: string)string | null转换筛选条件
tableSet(tqlConfig: ITqlInitConfig)TableSet创建表数据集对象

用户界面反馈

modules.FeedBack

反馈组件模块,提供消息提示、确认对话框、加载状态等UI反馈。

基本用法

反馈组件基本使用
import { app } from 'jit';

const { globalMessage, globalConfirm, openLoading, closeLoading } = await app.getElement('modules.FeedBack');

// 使用反馈功能
globalMessage('success', '操作成功!');
const confirmed = await globalConfirm('确定删除吗?');
const loadingId = openLoading('处理中...');

消息提示方法

方法名参数返回值功能描述
globalMessage(type: string, content: string | object)void显示消息提示,type可选:'success'、'error'、'warn'、'info'

对话框方法

方法名参数返回值功能描述
globalConfirm(content: string | Record<string, any>)Promise<string>显示确认对话框,返回Promise<'true'|'false'>

加载状态方法

方法名参数返回值功能描述
openLoading(text?: string)string显示加载状态,返回唯一的loadingId
closeLoading(loadingId: string)void关闭指定ID的加载状态

文件与工具

modules.Util

工具模块,提供文件处理、导出、打印等常用功能。

基本用法

工具模块基本使用
import { app } from 'jit';

const { exportExcel, uploadFile, printQrCode, generateJitList } = await app.getElement('modules.Util');

// 使用工具功能
await exportExcel(exportConfig);
await uploadFile(file);
await printQrCode(qrConfig);

// 生成数字列表
const numberList = await generateJitList(5); // 生成 [1,2,3,4,5] 的JitList

文件处理方法

方法名参数返回值功能描述
uploadFile(file: Record<string, any>, ...args: any[])Promise<any>文件上传到默认存储
generateFile()File生成文件数据类型实例
fileTmpls.download(templateId: string)Promise<any>下载文件模板

数据生成方法

方法名参数返回值功能描述
generateJitList(len: number)Promise<JitList>根据传入的长度生成连续的数字数组列表,返回从1到len的JitList类型数据

导出功能方法

方法名参数返回值功能描述
exportExcel(exportExcelConfig: ExportConfig)Promise<void>导出Excel文件
exportExcelType(data: any, type: string)void按指定类型导出Excel

打印功能方法

方法名参数返回值功能描述
printQrCode(data: QrCodeConfig)Promise<void>打印二维码
printAttachmentsInBulk(tmplName: Record<string, any>)Promise<void>批量打印附件

页面操作方法

方法名参数返回值功能描述
openPage(data: OpenPageConfig)void打开新页面
log(type: 'log' | 'warn' | 'error', content: string)void控制台日志记录

消息通信

modules.MessageHandler

消息处理模块,提供短信发送和消息通知功能。

基本用法

消息处理基本使用
import { app } from 'jit';

const { sendMsg, sendSms } = await app.getElement('modules.MessageHandler');

// 使用消息功能
await sendSms(smsFullName, smsConfig, receiver, params);
await sendMsg(receiver, msgData);

可用方法

方法名参数返回值功能描述
sendSms(smsFullName: string, smsConfig: Record<string, any>, receiver: {receiverDict: ReceiverDict}, params: Record<string, any>)Promise<void>发送短信通知
sendMsg(receiver: {receiverDict: ReceiverDict}, msgData: {msg: MsgData})Promise<void>发送消息通知

审批处理

modules.ApproveHandle

审批处理模块,提供审批任务相关功能。

基本用法

审批处理基本使用
import { app } from 'jit';

const { applyTask } = await app.getElement('modules.ApproveHandle');

// 使用审批功能
await applyTask(approveDict, workflowName, rowDataDict, modelName);

可用方法

方法名参数返回值功能描述
applyTask(approveDict: Record<string, any>, workflowName: string, rowDataDict: Record<string, any>, modelName: string)Promise<void>发起审批流程

外部集成

modules.ExternalApiHandle

外部API调用模块,提供统一的外部API访问接口。

基本用法

外部API基本使用
import { app } from 'jit';

const { callExternalApi } = await app.getElement('modules.ExternalApiHandle');

// 使用外部API
await callExternalApi(fullName, apiName, headers, params, body);

可用方法

方法名参数返回值功能描述
callExternalApi(fullName: string, apiName: string, headers: Record<string, any>, params: Record<string, any>, body: Record<string, any>)Promise<void>调用外部API接口

公共工具

modules.common

公共工具模块,提供通用的工具函数和组件。

基本用法

公共工具基本使用
import { app } from 'jit';

const { downloadFile, FilePreviewer } = await app.getElement('modules.common');

// 使用公共工具
downloadFile(url);
FilePreviewer({ file: { url: 'fileUrl', type: 'application/pdf' } });

工具函数

函数名参数返回值功能描述
downloadFile(url: string)void下载指定URL的文件

可用组件

组件名参数返回值功能描述
FilePreviewer({file: PreviewFile, fileList?: PreviewFile[], mode?: PLATFORM})void文件预览功能(直接调用,不返回组件)

异常处理

modules.ExceptionHandler

异常处理模块,提供统一的错误提示和控制台输出功能。

基本用法

异常处理基本使用
import { app } from 'jit';

const { promptError, promptWarn, promptInfo, consoleError } = await app.getElement('modules.ExceptionHandler');

// 使用异常处理
promptError('操作失败');
promptWarn('警告信息');
consoleError('错误信息');

可用方法

方法名参数返回值功能描述
promptError(message: string)void显示错误提示
promptWarn(message: string)void显示警告提示
promptInfo(message: string)void显示信息提示
consoleError(message: string, responseData?: Record<string, any>)void控制台错误输出

多线程支持

workers.WebWorker

Web Worker支持模块,提供多线程计算能力的基础封装。

基本用法

WebWorker基本使用
import { app } from 'jit';

// 获取WebWorker配置
const webWorkerConfig = await app.getElement('workers.WebWorker');

// 使用原生Web Worker API
const worker = new Worker('/workers/calculation.js');
worker.postMessage(data);
worker.terminate();

原生API使用

API参数返回值功能描述
new Worker(scriptURL)(scriptURL: string)Worker创建Web Worker实例
worker.postMessage(data)(data: any)void向Worker发送消息
worker.onmessage= (event: MessageEvent) => void-监听Worker返回消息的事件处理器
worker.onerror= (event: ErrorEvent) => void-监听Worker错误的事件处理器
worker.terminate()()void终止Worker执行