跳到主要内容
版本:1.6.x

前端

为前端开发提供统一的全局组件、公共模块、工具函数和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执行