前端
为前端开发提供统一的全局组件、公共模块、工具函数和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;
时间相关变量
变量名 | 类型 | 功能描述 |
---|---|---|
currentTime | Datetime | 当前时间 |
today | DateRange | 今天时间范围 |
yesterday | DateRange | 昨天时间范围 |
tomorrow | DateRange | 明天时间范围 |
thisWeek | DateRange | 本周时间范围 |
lastWeek | DateRange | 上周时间范围 |
nextWeek | DateRange | 下周时间范围 |
thisMonth | DateRange | 本月时间范围 |
lastMonth | DateRange | 上月时间范围 |
nextMonth | DateRange | 下月时间范围 |
thisQuarter | DateRange | 本季度时间范围 |
lastQuarter | DateRange | 上季度时间范围 |
nextQuarter | DateRange | 下季度时间范围 |
thisYear | DateRange | 今年时间范围 |
lastYear | DateRange | 去年时间范围 |
nextYear | DateRange | 明年时间范围 |
动态天数范围变量
变量名 | 类型 | 功能描述 |
---|---|---|
last24Hours | DateRange | 近24小时 |
last2Days | DateRange | 近2天 |
last3Days | DateRange | 近3天 |
last7Days | DateRange | 近7天 |
last15Days | DateRange | 近15天 |
last30Days | DateRange | 近30天 |
last60Days | DateRange | 近60天 |
last90Days | DateRange | 近90天 |
用户相关变量
变量名 | 类型 | 功能描述 |
---|---|---|
currentUser | Member | 当前登录用户信息 |
数据处理
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执行 |