易企办开发者 / 自定义代码

自定义代码快速入门

了解 CodeInApplication 的入口结构、配置参数、字段值和 React 渲染模式。

创建控件入口

导出 CodeInApplication,实现宿主需要的方法。以下代码示范读取当前记录标题,以及只读时的展示。

import React from "react";

export class CodeInApplication implements CodeInComp {
  description() {
    return "显示当前记录的标题";
  }

  requiredFields() {
    return ["Title"];
  }

  inputParameters(): InputParameter[] {
    return [];
  }

  render(context: CodeInContext, fieldsValues: Record<string, unknown>, readonly: boolean) {
    const title = fieldsValues?.Title ?? context.getFieldValue?.("Title");
    return <section aria-label="记录概览">
      <strong>{typeof title === "string" && title.trim() ? title : "未填写标题"}</strong>
      {readonly && <p>只读</p>}
    </section>;
  }
}

分清入口方法的用途

方法用途实现要点
description()返回设计时可读的简述用一句话说明控件用途
requiredFields(params?)声明当前表单字段依赖依赖字段变化时由宿主触发重新渲染,按目标版本确认参数签名
inputParameters()定义设计者可配置的参数声明参数 ID、中文名称、类型和说明
render(context, fieldsValues, readonly)返回控件界面保持渲染过程可重复,异步查询放在组件生命周期或交互逻辑中
execute(context, fieldsValues)执行自定义代码动作完成后返回结果或 Promise,并传递执行异常
requiredModules()声明宿主需要注入的模块以目标运行时的模块名称和可用方法为准

读取参数与字段值

数据来源内容处理方式
context.params通过 inputParameters 配置的运行时值检查是否缺失,并按参数的用途处理表达式结果
fieldsValuesrequiredFields 声明的当前字段值保留 0 和 false,检查数组、对象和 JSON 字符串
context.getFieldValue(fieldName)读取已知字段的当前值先检查方法可用,再为缺失值提供默认值
context.modules.yeeSDKClient宿主提供的数据查询等接口调用前确认模块和目标方法已提供

组织组件与样式

交互复杂的控件可以使用 React.Component 管理加载、错误和选中状态,并把配置、字段值和 readonly 传入组件。需要引用 DOM 时,使用目标运行时支持的回调 ref。

在宿主支持的环境中可使用 Ant Design 的表格、提醒和按钮。较小的控件可以直接使用 HTML 和 CSS。独立模板的样式应限定在组件自身的类名范围内。

在设计器里检查真实状态

用已有记录、空记录和只读视图预览组件。根据宿主提供的参数类型处理缺失值,使用平台支持的样式和组件。

为查询增加加载、无结果和失败反馈。记录选中值后,通过表单正常保存入口提交,再重新打开记录核对持久化结果。

查看模板与中国版示例

本页对照国际站文档整理为中文。示例的宿主接口与保存行为需在目标易企办环境中验证。

查看国际站原文查看易企办官方代码示例
继续阅读 控件与动作