Appearance
前端脚本
前端脚本在 Web 浏览器运行,由平台注入全局对象 App。它适合控制列表、表单、树、弹窗和消息提示,也可以通过 App.Services 调用平台 API。
运行语法
运行时会把脚本放入异步函数,并只把 App 作为参数传入,等价于:
javascript
const run = new Function('App', `
return (async () => {
// 这里是设计器中填写的脚本
})();
`)
await run(App)因此脚本遵循浏览器 JavaScript 语法,并具有以下约定:
- 可以使用
const、let、对象、数组、可选链和async / await。 - 直接编写脚本正文,不要再包一层
<script>、函数或立即执行函数。 - 不能使用
import、export、Vue 模板语法或 Node.js 模块。 - 平台能力统一从
App访问;不要依赖未记录的页面全局变量。 show_command是同步表达式脚本,必须return布尔值,不能使用await。
最小示例:
javascript
const row = App.Body.Table?.CurrentRow
if (!row) {
App.Components.Message.Warning('请先选择一条数据')
return
}
await App.Body.Table?.Refresh?.()脚本事件
| 配置字段 | 触发时机 | 常用上下文 |
|---|---|---|
front_init_command | 表单初始化完成后 | App.Body.Form.Data、Fields |
front_before_submit_command | 表单校验通过、写入前 | App.Body.Form.Data |
front_close_form_command | 表单关闭时 | App.Body.Form |
front_change_command | 控件值发生变化时 | TriggerValue、Fields |
front_blur_command | 控件失去焦点时 | App.Body.Form.Data |
front_agent_command | 智能体返回且处理方式为脚本时 | 当前表单上下文 |
front_start_command | 工作流节点开始时 | App.Body.Form |
front_end_command | 工作流节点结束时 | App.Body.Form |
按钮 command | 列表或工具栏按钮点击时 | Table.CurrentRow、SelectedRows |
按钮 show_command | 计算按钮是否显示时 | Table.CurrentRow,必须返回布尔值 |
App.Body 运行上下文
列表上下文
javascript
const table = App.Body.Table
const rows = table?.Data || []
const current = table?.CurrentRow
const selected = table?.SelectedRows || []
const query = table?.Query || {}
await table?.Load?.({ keyword: '设备', status: 1 })
await table?.Refresh?.()常用成员:
| 成员 | 类型 | 说明 |
|---|---|---|
Data | Record<string, unknown>[] | 当前页数据 |
Total | number | 数据总数 |
CurrentPage | number | 当前页码 |
PageSize | number | 每页数量 |
CurrentRow | object | null | 当前操作行 |
SelectedRows | object[] | 当前多选行 |
Query | object | 最后一次加载使用的查询参数 |
Load(params) | Promise<void> | 合并参数并重新加载 |
Refresh() | Promise<void> | 使用上次参数刷新 |
表单上下文
javascript
const form = App.Body.Form
const data = form?.Data || {}
data.customer_name = '成都白泽'
data.status = 1
const saved = await form?.Submit?.({ closeAfter: false })
if (saved) {
App.Components.Message.Success('保存成功')
}| 成员 | 说明 |
|---|---|
FormId | 当前表单 ID |
Mode | create、edit 或 view |
Data | 当前响应式表单数据,键为控件 key |
OriginalData | 编辑前的原始数据 |
RowId | 当前数据行 ID |
InstId | 当前弹窗、抽屉或整页表单实例 ID |
Submit(options) | 触发表单校验与保存 |
Close() | 关闭当前表单 |
Fields | 按控件 key 索引的字段访问器 |
控件访问器
控件脚本通过 App.Body.Form.Fields[key] 控制值、显示状态和选项:
javascript
const form = App.Body.Form
const type = form?.Data?.customer_type
const taxField = form?.Fields?.tax_number
taxField?.setHide(type !== 'company')
taxField?.setRequired(type === 'company')
taxField?.setPlaceholder('请输入统一社会信用代码')常用方法:
| 方法 | 作用 |
|---|---|
setValue(value) | 设置字段值并同步表单数据 |
setHide(boolean) | 设置是否隐藏 |
show() / hideField() | 显示或隐藏 |
setRequired(boolean) | 设置是否必填 |
setDisabled(boolean) | 设置是否禁用 |
setReadonly(boolean) | 设置是否只读 |
setPlaceholder(text) | 设置占位提示 |
setLabel(text) | 设置字段标签 |
addItem(item, parentValue?) | 增加平铺或树形选项 |
removeItem(value) | 删除指定选项 |
clearItems() | 清空选项 |
refreshOptions() | 重新加载动态选项 |
值变化脚本还可以读取触发信息:
javascript
const form = App.Body.Form
App.Helpers.Logger.Debug('字段', form?.TriggerComponentKey)
App.Helpers.Logger.Debug('新值', form?.TriggerValue)
if (form?.TriggerComponentKey === 'province') {
form.Fields?.city?.clearItems()
await form.Fields?.city?.refreshOptions()
}树与按钮上下文
javascript
const tree = App.Body.Tree
const selectedNodeId = tree?.SelectedNodeId
const checkedIds = tree?.CheckedNodeIds || []
if (selectedNodeId) {
await tree?.Select?.(selectedNodeId)
}
const button = App.Body.Button
const source = App.Body.SourceApp.Components 界面能力
打开表单
javascript
// 新建
App.Components.Form.Create('form-id', {
title: '新建客户',
rowData: { status: 1 }
})
// 编辑
const rowId = String(App.Body.Table?.CurrentRow?.id || '')
if (rowId) {
await App.Components.Form.Update('form-id', rowId, {
title: '编辑客户'
})
}
// 查看
await App.Components.Form.View('form-id', rowId)
// 通用打开:create / edit / view,dialog / drawer / window
const instance = await App.Components.Form.Open('form-id', {
mode: 'create',
openDisplay: 'drawer',
rowData: { source: 'manual' }
})
App.Components.Form.Close(instance.id)消息、通知与确认
javascript
App.Components.Message.Success('操作成功')
App.Components.Message.Warning('请选择数据')
App.Components.Notification.Info('任务已进入队列', '处理提示')
const confirmed = await App.Components.Confirm('确定删除当前记录吗?')
if (!confirmed) returnApp.Services 服务调用
前端服务均返回 Promise,调用时使用 await:
javascript
// 调用站内 HTTP API
const result = await App.Services.HttpService.post(
'/api/site/v1/order/approve',
{ id: App.Body.Table?.CurrentRow?.id }
)
// 读取表单元数据
const form = await App.Services.FormService.Get('form-id')
// 新建表单数据
await App.Services.FormDataService.Create('form-id', {
customer_name: '示例客户',
status: 1
})常用服务包括 HttpService、FormService、FormDataService、WorkflowService、UserService、DepartmentService、RoleService、UploadService 和 PermissionService。以代码编辑器中的实时类型提示为当前版本准确信息。
完整示例
列表按钮:编辑当前行并刷新
javascript
const row = App.Body.Table?.CurrentRow
if (!row?.id) {
App.Components.Message.Warning('请选择要编辑的数据')
return
}
await App.Components.Form.Update('customer-form-id', String(row.id), {
title: '编辑客户'
})
await App.Body.Table?.Refresh?.()表单联动:企业客户显示税号
javascript
const form = App.Body.Form
const isCompany = form?.Data?.customer_type === 'company'
const taxField = form?.Fields?.tax_number
taxField?.setHide(!isCompany)
taxField?.setRequired(isCompany)
if (!isCompany) {
taxField?.setValue(null)
}按钮显示条件
show_command 使用同步语法,并显式返回布尔值:
javascript
const row = App.Body.Table?.CurrentRow
return row?.status === 'draft' && row?.creator_id === App.Body.User?.Id限制与安全
- 密钥、数据库密码和第三方凭据不得写入前端脚本。
- 不要直接操作 DOM;页面状态应通过
App.Body和App.Components修改。 - 批量调用 API 时控制并发,避免在循环中无上限地发送请求。
- 表单提交前脚本抛出异常会中断当前脚本;需要用户可理解的提示时先显示错误消息。
show_command会频繁执行,应保持纯粹、同步且无副作用。
API 全量参考
App.Body 运行方法
| 方法 | 参数 | 返回值 | 说明 |
|---|---|---|---|
App.Body.Table.Refresh() | 无 | Promise<void> | 使用上一次查询参数刷新当前表格。 |
App.Body.Table.Load(params) | 查询参数对象 | Promise<void> | 合并参数并重新加载当前表格。 |
App.Body.Table.Breadcrumb.Push(item) | { id?, name? } | void | 向表格面包屑末尾追加节点。 |
App.Body.Table.Breadcrumb.Select(id) | 节点 ID | void | 定位节点并移除其后的面包屑。 |
App.Body.Tree.Select(id) | 节点 ID | Promise<void> | void | 选择树节点并触发表格联动。 |
App.Body.Form.Submit(options?) | { closeAfter?: boolean } | Promise<boolean> | 校验并保存当前运行态表单。 |
App.Body.Form.Close() | 无 | void | 关闭当前表单实例。 |
表单字段 Fields
字段对象通过 App.Body.Form.Fields[key] 获取。
| 方法 | 参数 | 返回值 | 说明 |
|---|---|---|---|
setValue(value) | 任意字段值 | void | 更新字段值并同步 Form.Data。 |
setHide(hide) | boolean | void | 设置字段是否隐藏。 |
show() | 无 | void | 显示字段。 |
hideField() | 无 | void | 隐藏字段。 |
setIsActive(active) | boolean | void | 设置字段激活状态。 |
setRequired(required) | boolean | void | 设置是否必填。 |
setDisabled(disabled) | boolean | void | 设置是否禁用。 |
setReadonly(readonly) | boolean | void | 设置是否只读。 |
setPlaceholder(text) | string | null | void | 设置占位提示。 |
setLabel(text) | string | null | void | 设置字段标签。 |
setLimitText(text) | string | null | void | 设置字数限制提示。 |
setClearable(clearable) | boolean | void | 设置是否允许清空。 |
addItem(item, parentValue?) | 选项、可选父值 | void | 增加平铺或树形选项。 |
removeItem(value) | 选项值 | void | 删除指定选项。 |
clearItems() | 无 | void | 清空全部选项。 |
refreshOptions() | 无 | Promise<void> | 重新加载动态选项。 |
App.Components.Form
| 方法 | 参数 | 返回值 | 说明 |
|---|---|---|---|
Open(formId, options?) | 表单 ID、打开选项 | Promise<{ id, close }> | 按指定模式打开表单。 |
Open(options) | 含 formId 的完整选项 | Promise<{ id, close }> | 使用单对象参数打开表单。 |
Create(formId, options?) | 表单 ID、动作选项 | void | 以新建模式打开表单。 |
Update(formId, rowId, options?) | 表单 ID、行 ID、选项 | Promise<void> | 加载数据并以编辑模式打开。 |
View(formId, rowId, options?) | 表单 ID、行 ID、选项 | Promise<void> | 以只读模式打开。 |
Delete(formId, rowId) | 表单 ID、行 ID | Promise<void> | 删除指定表单数据。 |
Design(rowId?) | 可选表单 ID | Promise<void> | 打开表单设计器。 |
Close(instanceId?) | 可选实例 ID | void | 关闭指定或最近打开的表单。 |
Submit(instanceId?, options?) | 实例 ID、保存选项 | Promise<boolean> | 触发表单校验和保存。 |
App.Components.Workflow
| 方法 | 参数 | 返回值 | 说明 |
|---|---|---|---|
Design(workflowId?) | 工作流 ID | void | 打开工作流设计器。 |
Start(payload) | 启动参数 | Promise<unknown> | 启动流程实例。 |
Approve(payload) | 实例、节点与意见 | Promise<unknown> | 审批通过当前节点。 |
Reject(payload) | 实例、节点、退回节点与意见 | Promise<unknown> | 驳回当前节点。 |
Revoke(payload) | 实例、节点与意见 | Promise<unknown> | 撤回流程。 |
Cancel(payload) | 实例与意见 | Promise<unknown> | 取消流程实例。 |
Transfer(payload) | 实例、节点、接收用户与意见 | Promise<unknown> | 转交当前审批任务。 |
ViewFlowChart(options) | 流程与实例参数 | void | 打开流程图。 |
OpenApproval(payload) | 审批弹窗参数 | { id, close } | 打开左侧表单、右侧审批的弹窗。 |
其他 App.Components
| 方法 | 参数 | 返回值 | 说明 |
|---|---|---|---|
CodeEdit.Show(code, options?) | 代码文本、标题、语言和回调 | void | 打开全局代码编辑器。 |
CodeEdit.Show(options) | 完整编辑器选项 | void | 使用单对象参数打开代码编辑器。 |
Interface.Open(options?) | URL、方法、请求头和正文 | void | 打开接口调试器。 |
Engine.Open(id, props?) | 组件 ID、属性 | unknown | 打开引擎组件。 |
Engine.Open(options) | 组件与显示选项 | unknown | 以对象参数打开引擎组件。 |
Component.Open(payload) | 组件 ID、数据与显示样式 | Promise<string> | 打开弹窗或抽屉引擎组件。 |
Component.Close(id?) | 可选实例 ID | void | 关闭指定或最近的引擎组件。 |
SidebarComponent.Open(payload) | 组件、数据和宽度 | Promise<void> | 在列表右侧打开组件。 |
SidebarComponent.Close() | 无 | void | 关闭右侧组件。 |
SplitScreen.Open(payload) | 左右组件与布局 | Promise<string> | 打开分屏抽屉并返回实例 ID。 |
SplitScreen.Close(id?) | 可选实例 ID | void | 关闭分屏抽屉。 |
AgentWorkflow.Design(id?) | Agent 工作流 ID | void | 打开 Agent 工作流设计器。 |
AgentWorkflow.ViewFlowChart(options) | Agent 工作流 ID | void | 查看 Agent 工作流图。 |
Report.Design(id?) | 报表 ID | void | 打开报表设计器。 |
DatabaseYog.Open(options?) | 数据库 ID、SQL 与关闭回调 | void | 打开数据库查询工具。 |
Department.Open(options?) | 已选 ID、多选与回调 | Promise<Array> | 打开部门选择器。 |
User.Open(options?) | 已选 ID、多选与回调 | Promise<Array> | 打开用户选择器。 |
Role.Open(options?) | 已选 ID、多选与回调 | Promise<Array> | 打开角色选择器。 |
File.View(options) | 文件 ID 或 URL | void | 预览文件。 |
File.Download(options) | 文件 ID 或 URL | Promise<void> | 下载文件。 |
Message、Notification 与 Confirm
| 方法 | 参数 | 返回值 | 说明 |
|---|---|---|---|
Message.Show(options) | 字符串或消息选项 | void | 显示普通消息。 |
Message.Success(message, options?) | 文本、选项 | void | 显示成功消息。 |
Message.Warning(message, options?) | 文本、选项 | void | 显示警告消息。 |
Message.Info(message, options?) | 文本、选项 | void | 显示提示消息。 |
Message.Error(message, options?) | 文本、选项 | void | 显示错误消息。 |
Message.CloseAll() | 无 | void | 关闭全部消息。 |
Notification.Show(options) | 字符串或通知选项 | void | 显示普通通知。 |
Notification.Success(message, title?, options?) | 内容、标题、选项 | void | 显示成功通知。 |
Notification.Warning(message, title?, options?) | 内容、标题、选项 | void | 显示警告通知。 |
Notification.Info(message, title?, options?) | 内容、标题、选项 | void | 显示提示通知。 |
Notification.Error(message, title?, options?) | 内容、标题、选项 | void | 显示错误通知。 |
Notification.CloseAll() | 无 | void | 关闭全部通知。 |
Confirm(message, title?, options?) | 内容、标题、按钮和类型 | Promise<boolean> | 确认返回 true,取消返回 false。 |
Confirm(options) | 完整确认框选项 | Promise<boolean> | 使用单对象参数显示确认框。 |
App.Router 与 Console
| 方法 | 参数 | 返回值 | 说明 |
|---|---|---|---|
Router.push(to) | 路径或路由对象 | Promise<unknown> | 导航并增加历史记录。 |
Router.replace(to) | 路径或路由对象 | Promise<unknown> | 替换当前历史记录。 |
Router.back() | 无 | void | 返回上一页。 |
Router.go(delta) | 历史步数 | void | 在历史记录中前进或后退。 |
Console.Log(...args) | 任意日志参数 | void | 输出到脚本运行日志面板。 |
Inbox.Open(item) | 消息行与动作载荷 | Promise<void> | 执行站内消息的路由、命令或审批动作。 |
App.Design 设计器方法
设计器方法主要用于平台设计态页面,普通业务脚本通常不需要调用。
| 方法 | 参数 | 返回值 | 说明 |
|---|---|---|---|
Design.Field(options) | 字段设计参数 | void | 打开字段设计器。 |
Design.Button(options) | 按钮设计参数 | void | 打开按钮设计器。 |
Design.List(options) | 列表设计参数 | void | 打开列表设计器。 |
Design.Tree(options) | 树设计参数 | void | 打开树设计器。 |
Design.Page(options) | 页面设置参数 | void | 打开页面设置。 |
Design.Filter(options) | 数据过滤参数 | void | 打开过滤设计器。 |
Design.Search(options) | 搜索设计参数 | void | 打开搜索设计器。 |
Design.Sort(options) | 排序参数 | void | 打开排序设计器。 |
Design.ButtonEdit(options) | 按钮编辑参数 | void | 打开按钮编辑器。 |
Design.FieldHeader(options) | 字段头部参数 | void | 打开字段头部设置。 |
Design.Tab(options) | Tab 设计参数 | void | 打开 Tab 设计器。 |
Design.TabEdit(options) | Tab 编辑参数 | void | 打开 Tab 编辑器。 |
App.Services.HttpService
| 方法 | 参数 | 返回值 | 说明 |
|---|---|---|---|
get(url, config?) | URL、请求配置 | Promise<T> | 发送 GET 请求。 |
post(url, data?, config?) | URL、正文、配置 | Promise<T> | 发送 POST 请求。 |
put(url, data?, config?) | URL、正文、配置 | Promise<T> | 发送 PUT 请求。 |
patch(url, data?, config?) | URL、正文、配置 | Promise<T> | 发送 PATCH 请求;以当前服务实现为准。 |
delete(url, config?) | URL、请求配置 | Promise<T> | 发送 DELETE 请求。 |
站点、认证、菜单与页面服务
| 方法 | 参数 | 返回值 | 说明 |
|---|---|---|---|
SiteService.Get() | 无 | Promise<Site> | 获取当前站点。 |
SiteService.Update(request) | 站点更新对象 | Promise<Site> | 按站点 ID 更新。 |
SiteService.UpdateCurrent(request) | 当前站点字段 | Promise<Site> | 按访问域名更新当前站点。 |
AuthService.Login(body) | 用户名与密码 | Promise<LoginResponse> | 登录并保存访问令牌。 |
AuthService.Logout() | 无 | void | 退出并清理用户状态。 |
AuthenticationService.GetByType(type) | 认证类型 | Promise<Authentication> | 获取指定认证配置。 |
MenuService.Tree() | 无 | Promise<Menu[]> | 获取菜单树。 |
MenuService.List() | 无 | Promise<Menu[]> | 获取菜单列表。 |
MenuService.GetById(id) | 菜单 ID | Promise<Menu> | 获取单个菜单。 |
MenuService.GetByCode() | 无 | Promise<Menu[]> | 获取当前激活菜单。 |
MenuService.UpdateTemplateType(id, type) | 菜单 ID、0 | 1 | Promise<void> | 切换 PageView 或 DataView。 |
PageService.BuildPageUrlById(id) | 页面 ID | string | 生成页面接口地址。 |
PageService.GetById(id) | 页面 ID | Promise<Page> | 获取页面定义。 |
PageService.GetByMenuId(id) | 菜单 ID | Promise<Page> | 获取菜单绑定页面。 |
PageService.Update(payload) | 页面更新对象 | Promise<Page> | 更新页面代码或配置。 |
Template、Database 与 Table 服务
| 方法 | 参数 | 返回值 | 说明 |
|---|---|---|---|
TemplateService.List(menuId?) | 可选菜单 ID | Promise<Template[]> | 获取模板列表。 |
TemplateService.GetById(id) | 模板 ID | Promise<Template> | 获取模板基础信息。 |
TemplateService.GetContext(id) | 模板 ID | Promise<Template> | 获取完整模板上下文。 |
TemplateService.GetContextByMenuId(id) | 菜单 ID | Promise<Template> | 获取菜单模板上下文。 |
TemplateService.GetTableData(id, params?) | 模板表 ID、查询参数 | Promise<object[]> | 获取模板表数据。 |
TemplateService.GetTableTreeData(id, params?) | 模板表 ID、查询参数 | Promise<object[]> | 获取树形表格数据。 |
TemplateService.GetTableCount(id, params?) | 模板表 ID、查询参数 | Promise<number> | 获取数据总数。 |
TemplateService.GetTreeData(id) | 模板树 ID | Promise<unknown> | 获取模板树数据。 |
TemplateService.GetTreeNodes() | 无 | Promise<unknown[]> | 获取模板树节点集合。 |
TemplateService.Create(payload) | 模板数据 | Promise<Template> | 创建模板。 |
TemplateService.Update(id, payload) | 模板 ID、字段 | Promise<Template> | 更新模板基础信息。 |
TemplateService.Save(id, payload) | 模板 ID、完整数据 | Promise<Template> | 保存基础信息与上下文。 |
TemplateService.SaveContext(id, payload) | 模板 ID、上下文 | Promise<Template> | 保存模板上下文。 |
TemplateService.Delete(id) | 模板 ID | Promise<void> | 删除模板。 |
DatabaseService.List() | 无 | Promise<object[]> | 获取数据库配置。 |
DatabaseService.GetById(id) | 数据库 ID | Promise<object> | 获取数据库配置详情。 |
DatabaseService.Sync(id) | 数据库 ID | Promise<object[]> | 同步数据库结构。 |
TableService.List(databaseId, fromDatabase?) | 数据库 ID、是否读取物理库 | Promise<object[]> | 获取数据库表。 |
TableService.Sync(databaseId, tableName) | 数据库 ID、表名 | Promise<void> | 同步指定表结构。 |
TableService.GetById(id) | 表 ID | Promise<object> | 获取表基础信息。 |
TableService.GetContext(id, force?) | 表 ID、是否强制刷新 | Promise<object> | 获取表与字段上下文。 |
Form 与 FormData 服务
| 方法 | 参数 | 返回值 | 说明 |
|---|---|---|---|
FormService.List(name?) | 可选名称 | Promise<Form[]> | 查询表单列表。 |
FormService.Get(id) | 表单 ID | Promise<Form> | 获取表单定义。 |
FormService.Create(payload) | { name } 等字段 | Promise<Form> | 创建表单。 |
FormService.Update(id, payload) | 表单 ID、定义 | Promise<Form> | 更新表单。 |
FormService.Delete(id) | 表单 ID | Promise<void> | 删除表单。 |
FormService.ProvisionSubtableTemplate(formId, payload?) | 表单 ID、数据库/表/标签参数 | Promise<object> | 为表单预置子表模板。 |
FormDataService.List(formId) | 表单 ID | Promise<object[]> | 获取表单数据列表。 |
FormDataService.Get(formId, rowId) | 表单 ID、行 ID | Promise<object> | 获取单条表单数据。 |
FormDataService.GetFirst(formId) | 表单 ID | Promise<object | null> | 获取第一条表单数据。 |
FormDataService.Create(formId, data) | 表单 ID、数据 | Promise<object> | 新增表单数据。 |
FormDataService.AllocateKey(formId) | 表单 ID | Promise<{ key, value }> | 为新数据分配平台键值。 |
FormDataService.Update(formId, rowId, data) | 表单 ID、行 ID、数据 | Promise<object> | 更新表单数据。 |
FormDataService.Delete(formId, rowId) | 表单 ID、行 ID | Promise<unknown> | 删除表单数据。 |
FormDataService.Count(formId) | 表单 ID | Promise<number> | 获取表单数据总数。 |
FormDataService.GetTree(formId) | 表单 ID | Promise<object[]> | 获取树形表单数据。 |
FormDataService.MoveSort(formId, sortColumnId, direction, movedId, targetId) | 表单、排序列、方向和行 ID | Promise<object> | 调整树形或排序数据的位置。 |
FormDataService.GetComponentOptions(formId, componentId) | 表单和组件 ID | Promise<object[]> | 获取组件动态选项。 |
FormPageService.GetByMenuId(menuId) | 菜单 ID | Promise<FormPage> | 获取菜单绑定的整页表单。 |
FormPageService.CreateOrUpdate(menuId, formId) | 菜单和表单 ID | Promise<FormPage> | 创建或更新整页表单绑定。 |
WorkflowService
| 方法 | 参数 | 返回值 | 说明 |
|---|---|---|---|
Start(payload) | 工作流、名称、表单、行等 | Promise<object> | 启动工作流。 |
Approve(payload) | 实例与节点 | Promise<object> | 审批通过。 |
Reject(payload) | 实例、节点与退回节点 | Promise<object> | 驳回流程。 |
Revoke(payload) | 实例与节点 | Promise<object> | 撤回流程。 |
Cancel(payload) | 实例与意见 | Promise<object> | 取消流程。 |
Transfer(payload) | 实例、节点和接收用户 | Promise<object> | 转交审批任务。 |
GetByFormAndRow(formId, rowId) | 表单 ID、行 ID | Promise<object | null> | 查询数据关联的流程。 |
GetCurrentNode(payload) | 工作流与实例 ID | Promise<object | null> | 获取当前节点。 |
GetNextNode(payload) | 流程、实例、审批结果与数据 | Promise<unknown> | 计算下一节点。 |
GetProcessTypes() | 无 | Promise<Array> | 获取流程类型枚举。 |
GetRecipients(instanceId) | 流程实例 ID | Promise<Array> | 获取流程接收人。 |
GetCcs(instanceId) | 流程实例 ID | Promise<Array> | 获取流程抄送记录。 |
ReadCc(payload) | 抄送读取参数 | Promise<unknown> | 标记抄送为已读。 |
GetComments(instanceId) | 流程实例 ID | Promise<Array> | 获取流程意见与评论。 |
Get(instanceId) | 流程实例 ID | Promise<object> | 获取实例详情。 |
MCP、代码版本与上传服务
| 方法 | 参数 | 返回值 | 说明 |
|---|---|---|---|
McpService.Create(request) | MCP 配置 | Promise<object> | 创建 MCP。 |
McpService.Update(request) | MCP 配置 | Promise<object> | 更新 MCP。 |
McpService.GetById(id) | MCP ID | Promise<object> | 获取 MCP。 |
McpService.List() | 无 | Promise<object[]> | 获取 MCP 列表。 |
McpService.Delete(id) | MCP ID | Promise<void> | 删除 MCP。 |
McpService.AssignToAgent(agentId, mcpId) | Agent 与 MCP ID | Promise<void> | 为 Agent 分配 MCP。 |
McpService.UnassignFromAgent(agentId, mcpId) | Agent 与 MCP ID | Promise<void> | 取消分配。 |
McpService.GetAgentMcps(agentId) | Agent ID | Promise<object[]> | 获取 Agent 的 MCP。 |
CodeVersionService.GetCodeVersions(columnId, rowId, page?, size?) | 列、行、分页 | Promise<Page> | 按列和行获取代码版本。 |
CodeVersionService.GetCodeVersionById(id) | 版本 ID | Promise<object> | 获取单个版本。 |
CodeVersionService.GetCodeVersionsByRowId(rowId, page?, size?) | 行 ID、分页 | Promise<Page> | 按行获取版本。 |
CodeVersionService.DeleteCodeVersion(id) | 版本 ID | Promise<void> | 删除版本。 |
UploadService.Upload(file, options?) | 文件、名称和匿名策略 | Promise<FileInfo> | 上传文件。 |
UploadService.UploadPublic(file, options?) | 文件和公开上传选项 | Promise<FileInfo> | 上传允许匿名访问的文件。 |
UploadService.GetFile(fileId) | 文件 ID | Promise<FileInfo> | 获取文件元数据。 |
UploadService.GetFileUrl(fileId, fileName?, storageType?) | 文件 ID、名称、存储类型 | Promise<string> | 获取访问地址。 |
UploadService.GetThumbnailFileUrl(fileId, fileName?) | 文件 ID、名称 | Promise<string> | 获取缩略图地址。 |
UploadService.GetThumbFileUrl(fileId, fileName?) | 文件 ID、名称 | Promise<string> | 获取缩略图地址的兼容方法。 |
UploadService.CreateTask(storageId) | 存储 ID | Promise<Task> | 创建文件处理任务。 |
UploadService.GetTask(taskId) | 任务 ID | Promise<Task> | 查询任务状态。 |
用户、部门、角色、接口与权限
| 方法 | 参数 | 返回值 | 说明 |
|---|---|---|---|
InterfaceService.GetList() | 无 | Promise<Interface[]> | 获取接口定义列表。 |
InterfaceService.Get(id) | 接口 ID | Promise<Interface> | 获取接口定义。 |
InterfaceService.Execute(id, data?, requestOptions?) | 接口 ID、调用参数、认证选项 | Promise<unknown> | 执行接口引擎定义。 |
UserService.GetCurrent() | 无 | Promise<User> | 获取当前用户。 |
UserService.GetById(id) | 用户 ID | Promise<User> | 获取单个用户。 |
UserService.GetByIds(ids) | 用户 ID 数组 | Promise<User[]> | 批量获取用户。 |
UserService.List(options?) | 关键词与分页 | Promise<Page<User>> | 分页查询用户。 |
UserService.GetByDepartment(id?) | 部门 ID | Promise<User[]> | 获取部门用户。 |
UserService.GetByRole(id) | 角色 ID | Promise<User[]> | 获取角色用户。 |
UserService.VerifyPassword(password) | 当前用户密码 | Promise<{ valid, message? }> | 验证当前用户密码。 |
DepartmentService.GetContext() | 无 | Promise<OrganizationContext> | 获取组织树和用户。 |
DepartmentService.GetDepartmentContext() | 无 | Promise<OrganizationContext> | GetContext 的兼容名称。 |
DepartmentService.GetTree() | 无 | Promise<Department[]> | 获取部门树。 |
DepartmentService.GetById(id) | 部门 ID | Promise<Department> | 获取部门。 |
DepartmentService.GetByUser(id?) | 可选用户 ID | Promise<Department[]> | 获取用户所属部门。 |
RoleService.GetList() | 无 | Promise<Role[]> | 获取角色列表。 |
RoleService.GetRoles() | 无 | Promise<Role[]> | GetList 的兼容名称。 |
RoleService.GetById(id) | 角色 ID | Promise<Role> | 获取角色。 |
RoleService.GetByUser(id?) | 可选用户 ID | Promise<Role[]> | 获取用户角色。 |
PermissionService.CheckButtonPermission(menuId, buttonId) | 菜单和按钮 ID | Promise<boolean> | 检查按钮权限。 |
PermissionService.GetButtonPermissions(menuId, buttonIds?) | 菜单和按钮数组 | Promise<Record<string, boolean>> | 批量获取按钮权限。 |
PermissionService.CheckMenuPermission(menuId) | 菜单 ID | Promise<boolean> | 检查菜单访问权限。 |
PermissionService.CheckFormPermission(menuId, formId, buttonType?) | 菜单、表单、动作类型 | Promise<boolean> | 检查表单动作权限。 |
PermissionService.GetMenuButtons(menuId) | 菜单 ID | Promise<number[]> | 获取当前用户可用按钮 ID。 |
PermissionService.GetButtonInfo(buttonId) | 按钮 ID | Promise<object> | 获取按钮权限与元数据。 |
SsoService.List(options?) | 可选 401 恢复策略 | Promise<Sso[]> | 获取 SSO 配置。 |
HeaderService 与 ComponentService
| 方法 | 参数 | 返回值 | 说明 |
|---|---|---|---|
HeaderService.List() | 无 | Promise<Header[]> | 获取页头配置列表。 |
HeaderService.GetById(id) | 页头 ID | Promise<Header> | 获取页头配置。 |
HeaderService.Create(header) | 页头配置 | Promise<Header> | 创建页头。 |
HeaderService.Update(id, header) | 页头 ID、更新字段 | Promise<Header> | 更新页头。 |
HeaderService.Delete(id) | 页头 ID | Promise<void> | 删除页头。 |
ComponentService.GetById(id) | 组件 ID | Promise<Component> | 获取引擎组件。 |
ComponentService.GetByCode(code) | 组件编码 | Promise<Component> | 按编码获取组件。 |
ComponentService.Update(payload) | 组件更新对象 | Promise<Component> | 更新组件。 |
ComponentService.GetList(page?, size?, search?) | 分页与关键词 | Promise<Component[]> | 分页查询组件。 |
App.Helpers
| 方法 | 参数 | 返回值 | 说明 |
|---|---|---|---|
Logger.Debug(...args) | 任意参数 | void | 输出调试日志。 |
Logger.Info(...args) | 任意参数 | void | 输出信息日志。 |
Logger.Warn(...args) | 任意参数 | void | 输出警告日志。 |
Logger.Error(...args) | 任意参数 | void | 输出错误日志。 |
Env.Get(key) | 配置键 | string | null | 读取前端环境配置。 |
Env.GetApiBase() | 无 | string | 获取 API 基础地址。 |
Json.Serialize(value) | 任意值 | string | 序列化 JSON。 |
Json.Deserialize(json) | JSON 字符串 | T | null | 反序列化 JSON。 |
Crypto.Md5(value) | 字符串 | string | 计算 MD5。 |
Crypto.Md5Guid(value) | 字符串 | string | null | 生成 GUID 形态 MD5。 |
Crypto.GenerateBearerToken(length?, key?) | 长度、可选键 | string | 生成随机令牌。 |
Crypto.Base64Encode(value) | 字符串 | string | null | Base64 编码。 |
Crypto.Base64Decode(value) | Base64 字符串 | string | null | Base64 解码。 |
Crypto.AesEncrypt(input, iv, key) | 明文、IV、密钥 | Promise<string | null> | AES 加密。 |
Crypto.AesDecrypt(input, iv, key) | 密文、IV、密钥 | Promise<string | null> | AES 解密。 |
Crypto.GenerateAesKey(size?) | 可选密钥位数 | Promise<string> | 生成 AES 密钥。 |
Crypto.GenerateAesIv() | 无 | string | 生成 AES IV。 |
Crypto.GenerateRsaKeyPair() | 无 | Promise<{ privateKey, publicKey }> | 生成 RSA 密钥对。 |
Crypto.RsaEncrypt(input, publicKey) | 明文、公钥 | Promise<string | null> | RSA 加密。 |
Crypto.RsaDecrypt(input, privateKey) | 密文、私钥 | Promise<string | null> | RSA 解密。 |
Crypto.RsaSign(input, privateKey) | 内容、私钥 | Promise<string | null> | RSA 签名。 |
Crypto.RsaVerify(input, signature, publicKey) | 内容、签名、公钥 | Promise<boolean> | 验证签名。 |
Id.IsGuid(value) | 字符串 | boolean | 判断 GUID。 |
Id.GetGuid() | 无 | string | 生成 GUID。 |
Id.GetSnowflake() | 无 | Promise<string> | 生成雪花 ID。 |
Validation.IsEmail(value) | 字符串 | boolean | 校验邮箱。 |
Dictionary.AddOrSet(dict, key, value) | 对象、键、值 | T | 新增或覆盖字典项。 |
Dictionary.Remove(dict, key) | 对象、键 | T | 删除字典项。 |
IO.SelectFile(options?) | 类型与多选配置 | Promise<File[]> | 打开文件选择器。 |
IO.SelectFolder() | 无 | Promise<File[]> | 打开文件夹选择器。 |
使用约定
- 编辑器仍标记为
any且本页未列出的方法不属于稳定脚本契约;使用前必须查看当前版本代码提示。 - 本页以 Web 代码编辑器类型定义为准;服务升级后应同步更新此参考。
常见问题
脚本不执行
确认宿主字段已保存(按钮 command、表单 front_*、菜单 command);列表按钮需挂在正确 position。
取不到当前行
在列表按钮中用 App.Body.Table.CurrentRow;先选中行再点按钮。
