Skip to content

前端脚本 ​

前端脚本在 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?.()

常用成员:

成员类型说明
DataRecord<string, unknown>[]当前页数据
Totalnumber数据总数
CurrentPagenumber当前页码
PageSizenumber每页数量
CurrentRowobject | null当前操作行
SelectedRowsobject[]当前多选行
Queryobject最后一次加载使用的查询参数
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
Modecreate、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.Source

App.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) return

App.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)节点 IDvoid定位节点并移除其后的面包屑。
App.Body.Tree.Select(id)节点 IDPromise<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)booleanvoid设置字段是否隐藏。
show()无void显示字段。
hideField()无void隐藏字段。
setIsActive(active)booleanvoid设置字段激活状态。
setRequired(required)booleanvoid设置是否必填。
setDisabled(disabled)booleanvoid设置是否禁用。
setReadonly(readonly)booleanvoid设置是否只读。
setPlaceholder(text)string | nullvoid设置占位提示。
setLabel(text)string | nullvoid设置字段标签。
setLimitText(text)string | nullvoid设置字数限制提示。
setClearable(clearable)booleanvoid设置是否允许清空。
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、行 IDPromise<void>删除指定表单数据。
Design(rowId?)可选表单 IDPromise<void>打开表单设计器。
Close(instanceId?)可选实例 IDvoid关闭指定或最近打开的表单。
Submit(instanceId?, options?)实例 ID、保存选项Promise<boolean>触发表单校验和保存。

App.Components.Workflow ​

方法参数返回值说明
Design(workflowId?)工作流 IDvoid打开工作流设计器。
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?)可选实例 IDvoid关闭指定或最近的引擎组件。
SidebarComponent.Open(payload)组件、数据和宽度Promise<void>在列表右侧打开组件。
SidebarComponent.Close()无void关闭右侧组件。
SplitScreen.Open(payload)左右组件与布局Promise<string>打开分屏抽屉并返回实例 ID。
SplitScreen.Close(id?)可选实例 IDvoid关闭分屏抽屉。
AgentWorkflow.Design(id?)Agent 工作流 IDvoid打开 Agent 工作流设计器。
AgentWorkflow.ViewFlowChart(options)Agent 工作流 IDvoid查看 Agent 工作流图。
Report.Design(id?)报表 IDvoid打开报表设计器。
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 或 URLvoid预览文件。
File.Download(options)文件 ID 或 URLPromise<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)菜单 IDPromise<Menu>获取单个菜单。
MenuService.GetByCode()无Promise<Menu[]>获取当前激活菜单。
MenuService.UpdateTemplateType(id, type)菜单 ID、0 | 1Promise<void>切换 PageView 或 DataView。
PageService.BuildPageUrlById(id)页面 IDstring生成页面接口地址。
PageService.GetById(id)页面 IDPromise<Page>获取页面定义。
PageService.GetByMenuId(id)菜单 IDPromise<Page>获取菜单绑定页面。
PageService.Update(payload)页面更新对象Promise<Page>更新页面代码或配置。

Template、Database 与 Table 服务 ​

方法参数返回值说明
TemplateService.List(menuId?)可选菜单 IDPromise<Template[]>获取模板列表。
TemplateService.GetById(id)模板 IDPromise<Template>获取模板基础信息。
TemplateService.GetContext(id)模板 IDPromise<Template>获取完整模板上下文。
TemplateService.GetContextByMenuId(id)菜单 IDPromise<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)模板树 IDPromise<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)模板 IDPromise<void>删除模板。
DatabaseService.List()无Promise<object[]>获取数据库配置。
DatabaseService.GetById(id)数据库 IDPromise<object>获取数据库配置详情。
DatabaseService.Sync(id)数据库 IDPromise<object[]>同步数据库结构。
TableService.List(databaseId, fromDatabase?)数据库 ID、是否读取物理库Promise<object[]>获取数据库表。
TableService.Sync(databaseId, tableName)数据库 ID、表名Promise<void>同步指定表结构。
TableService.GetById(id)表 IDPromise<object>获取表基础信息。
TableService.GetContext(id, force?)表 ID、是否强制刷新Promise<object>获取表与字段上下文。

Form 与 FormData 服务 ​

方法参数返回值说明
FormService.List(name?)可选名称Promise<Form[]>查询表单列表。
FormService.Get(id)表单 IDPromise<Form>获取表单定义。
FormService.Create(payload){ name } 等字段Promise<Form>创建表单。
FormService.Update(id, payload)表单 ID、定义Promise<Form>更新表单。
FormService.Delete(id)表单 IDPromise<void>删除表单。
FormService.ProvisionSubtableTemplate(formId, payload?)表单 ID、数据库/表/标签参数Promise<object>为表单预置子表模板。
FormDataService.List(formId)表单 IDPromise<object[]>获取表单数据列表。
FormDataService.Get(formId, rowId)表单 ID、行 IDPromise<object>获取单条表单数据。
FormDataService.GetFirst(formId)表单 IDPromise<object | null>获取第一条表单数据。
FormDataService.Create(formId, data)表单 ID、数据Promise<object>新增表单数据。
FormDataService.AllocateKey(formId)表单 IDPromise<{ key, value }>为新数据分配平台键值。
FormDataService.Update(formId, rowId, data)表单 ID、行 ID、数据Promise<object>更新表单数据。
FormDataService.Delete(formId, rowId)表单 ID、行 IDPromise<unknown>删除表单数据。
FormDataService.Count(formId)表单 IDPromise<number>获取表单数据总数。
FormDataService.GetTree(formId)表单 IDPromise<object[]>获取树形表单数据。
FormDataService.MoveSort(formId, sortColumnId, direction, movedId, targetId)表单、排序列、方向和行 IDPromise<object>调整树形或排序数据的位置。
FormDataService.GetComponentOptions(formId, componentId)表单和组件 IDPromise<object[]>获取组件动态选项。
FormPageService.GetByMenuId(menuId)菜单 IDPromise<FormPage>获取菜单绑定的整页表单。
FormPageService.CreateOrUpdate(menuId, formId)菜单和表单 IDPromise<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、行 IDPromise<object | null>查询数据关联的流程。
GetCurrentNode(payload)工作流与实例 IDPromise<object | null>获取当前节点。
GetNextNode(payload)流程、实例、审批结果与数据Promise<unknown>计算下一节点。
GetProcessTypes()无Promise<Array>获取流程类型枚举。
GetRecipients(instanceId)流程实例 IDPromise<Array>获取流程接收人。
GetCcs(instanceId)流程实例 IDPromise<Array>获取流程抄送记录。
ReadCc(payload)抄送读取参数Promise<unknown>标记抄送为已读。
GetComments(instanceId)流程实例 IDPromise<Array>获取流程意见与评论。
Get(instanceId)流程实例 IDPromise<object>获取实例详情。

MCP、代码版本与上传服务 ​

方法参数返回值说明
McpService.Create(request)MCP 配置Promise<object>创建 MCP。
McpService.Update(request)MCP 配置Promise<object>更新 MCP。
McpService.GetById(id)MCP IDPromise<object>获取 MCP。
McpService.List()无Promise<object[]>获取 MCP 列表。
McpService.Delete(id)MCP IDPromise<void>删除 MCP。
McpService.AssignToAgent(agentId, mcpId)Agent 与 MCP IDPromise<void>为 Agent 分配 MCP。
McpService.UnassignFromAgent(agentId, mcpId)Agent 与 MCP IDPromise<void>取消分配。
McpService.GetAgentMcps(agentId)Agent IDPromise<object[]>获取 Agent 的 MCP。
CodeVersionService.GetCodeVersions(columnId, rowId, page?, size?)列、行、分页Promise<Page>按列和行获取代码版本。
CodeVersionService.GetCodeVersionById(id)版本 IDPromise<object>获取单个版本。
CodeVersionService.GetCodeVersionsByRowId(rowId, page?, size?)行 ID、分页Promise<Page>按行获取版本。
CodeVersionService.DeleteCodeVersion(id)版本 IDPromise<void>删除版本。
UploadService.Upload(file, options?)文件、名称和匿名策略Promise<FileInfo>上传文件。
UploadService.UploadPublic(file, options?)文件和公开上传选项Promise<FileInfo>上传允许匿名访问的文件。
UploadService.GetFile(fileId)文件 IDPromise<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)存储 IDPromise<Task>创建文件处理任务。
UploadService.GetTask(taskId)任务 IDPromise<Task>查询任务状态。

用户、部门、角色、接口与权限 ​

方法参数返回值说明
InterfaceService.GetList()无Promise<Interface[]>获取接口定义列表。
InterfaceService.Get(id)接口 IDPromise<Interface>获取接口定义。
InterfaceService.Execute(id, data?, requestOptions?)接口 ID、调用参数、认证选项Promise<unknown>执行接口引擎定义。
UserService.GetCurrent()无Promise<User>获取当前用户。
UserService.GetById(id)用户 IDPromise<User>获取单个用户。
UserService.GetByIds(ids)用户 ID 数组Promise<User[]>批量获取用户。
UserService.List(options?)关键词与分页Promise<Page<User>>分页查询用户。
UserService.GetByDepartment(id?)部门 IDPromise<User[]>获取部门用户。
UserService.GetByRole(id)角色 IDPromise<User[]>获取角色用户。
UserService.VerifyPassword(password)当前用户密码Promise<{ valid, message? }>验证当前用户密码。
DepartmentService.GetContext()无Promise<OrganizationContext>获取组织树和用户。
DepartmentService.GetDepartmentContext()无Promise<OrganizationContext>GetContext 的兼容名称。
DepartmentService.GetTree()无Promise<Department[]>获取部门树。
DepartmentService.GetById(id)部门 IDPromise<Department>获取部门。
DepartmentService.GetByUser(id?)可选用户 IDPromise<Department[]>获取用户所属部门。
RoleService.GetList()无Promise<Role[]>获取角色列表。
RoleService.GetRoles()无Promise<Role[]>GetList 的兼容名称。
RoleService.GetById(id)角色 IDPromise<Role>获取角色。
RoleService.GetByUser(id?)可选用户 IDPromise<Role[]>获取用户角色。
PermissionService.CheckButtonPermission(menuId, buttonId)菜单和按钮 IDPromise<boolean>检查按钮权限。
PermissionService.GetButtonPermissions(menuId, buttonIds?)菜单和按钮数组Promise<Record<string, boolean>>批量获取按钮权限。
PermissionService.CheckMenuPermission(menuId)菜单 IDPromise<boolean>检查菜单访问权限。
PermissionService.CheckFormPermission(menuId, formId, buttonType?)菜单、表单、动作类型Promise<boolean>检查表单动作权限。
PermissionService.GetMenuButtons(menuId)菜单 IDPromise<number[]>获取当前用户可用按钮 ID。
PermissionService.GetButtonInfo(buttonId)按钮 IDPromise<object>获取按钮权限与元数据。
SsoService.List(options?)可选 401 恢复策略Promise<Sso[]>获取 SSO 配置。

HeaderService 与 ComponentService ​

方法参数返回值说明
HeaderService.List()无Promise<Header[]>获取页头配置列表。
HeaderService.GetById(id)页头 IDPromise<Header>获取页头配置。
HeaderService.Create(header)页头配置Promise<Header>创建页头。
HeaderService.Update(id, header)页头 ID、更新字段Promise<Header>更新页头。
HeaderService.Delete(id)页头 IDPromise<void>删除页头。
ComponentService.GetById(id)组件 IDPromise<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 | nullBase64 编码。
Crypto.Base64Decode(value)Base64 字符串string | nullBase64 解码。
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;先选中行再点按钮。

相关文档 ​

白泽 ProCode 开发者文档