Agent skill

Yida Dev

by LeoYeAI in LeoYeAI/openclaw-master-skills

钉钉宜搭低代码开发助手。用于创建表单和自定义页面、编写 JS 动作面板、使用 JS-API、配置数据源、设计流程自动化。适用于宜搭表单开发、JS 代码调试、API 集成等场景。

MITAuto-check passed

Install Yida Dev

skills CLI
$ npx skills add LeoYeAI/openclaw-master-skills --skill yida-dev -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install LeoYeAI/openclaw-master-skills yida-dev --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/LeoYeAI/openclaw-master-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/yida-dev .claude/skills/yida-dev && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
yida-dev
GitHub stars
2.2k
Token cost
~5k tokens
SKILL.md length
896 words
Files
13 (incl. scripts, references)
Skills in repo
1,215
Repo updated
First seen
Licence
MIT

At a glance

钉钉宜搭低代码开发助手。用于创建表单和自定义页面、编写 JS 动作面板、使用 JS-API、配置数据源、设计流程自动化。适用于宜搭表单开发、JS 代码调试、API 集成等场景。

  • Works in 4 steps: 页面不是代码写的 - 页面通过宜搭可视化拖拽创建,不是 JSX/HTML 声明 → 不要写组件声明代码 - ❌ 禁止 import Button、❌ 禁止… → 只有 JS 动作面板 - 宜搭的 JS 代码是"动作面板",只能写函数,不能写组件 → …
  • SKILL.md covers ⚠️ 重要:宜搭开发模式, 组件 fieldId 命名规范, 常见开发模式 and 组件属性参考
  • Runs JavaScript scripts from its folder; reaches g.alicdn.com

What it does

Yida Dev is an agent skill from LeoYeAI/openclaw-master-skills. 钉钉宜搭低代码开发助手。用于创建表单和自定义页面、编写 JS 动作面板、使用 JS-API、配置数据源、设计流程自动化。适用于宜搭表单开发、JS 代码调试、API 集成等场景。

Its SKILL.md is about 5k tokens, which your agent loads only when the skill is triggered. The skill folder holds 14 other files, including scripts and reference files (for example `_meta.json`, `references/formulas.md` and `references/integrations.md`).

The repository describes itself as: 🧠 Curated collection of 1209+ best OpenClaw skills — weekly updated by MyClaw.ai. The licence is MIT.

Example prompts

  • “/yida-dev”

Requirements

  • Node.js

Workflow steps

4 steps, taken from the first numbered list in SKILL.md.

  1. 页面不是代码写的 - 页面通过宜搭可视化拖拽创建,不是 JSX/HTML 声明
  2. 不要写组件声明代码 - ❌ 禁止 import Button、❌ 禁止 const Page = () => {...}
  3. 只有 JS 动作面板 - 宜搭的 JS 代码是"动作面板",只能写函数,不能写组件
  4. 组件通过 fieldId 引用 - 使用 this.$('textField_xxx') 操作已存在的组件

What it can do on your machine

Read from SKILL.md and the folder at commit e5199b5. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Ships 4 files in scripts/ (JavaScript), which the agent can run.

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Hosts in commands or code, which the agent is likely to contact:

    • g.alicdn.com

    Also links to:

    • docs.aliwork.com
    • developers.aliwork.com
    • open.dingtalk.com
    • aliwork.com

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Yida Dev loads about 5k tokens when it runs, and up to ~13k if it reads all its reference files. Until then it costs about 24 tokens; SKILL.md has 896 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~24
When it runs · the whole SKILL.md, loaded when a task matches
~5k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~13k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.

SKILL.md

The full file from LeoYeAI/openclaw-master-skills at commit e5199b5, republished under its MIT licence (© LeoYeAI). 896 words, ~4,986 tokens.

Download SKILL.mdSave it as .claude/skills/yida-dev/SKILL.md (or your agent's skills folder). This skill also uses 12 other files; get the full folder from GitHub.
name
yida-dev
description
钉钉宜搭低代码开发助手。用于创建表单和自定义页面、编写 JS 动作面板、使用 JS-API、配置数据源、设计流程自动化。适用于宜搭表单开发、JS 代码调试、API 集成等场景。
trigger_phrases
宜搭, yida, 钉钉表单, 低代码开发, 宜搭JS, 宜搭开发

⚠️ 重要:宜搭开发模式

与传统前端不同,宜搭有独特的开发模式:

  1. 页面不是代码写的 - 页面通过宜搭可视化拖拽创建,不是 JSX/HTML 声明
  2. 不要写组件声明代码 - ❌ 禁止 import Button、❌ 禁止 const Page = () => {...}
  3. 只有 JS 动作面板 - 宜搭的 JS 代码是"动作面板",只能写函数,不能写组件
  4. 组件通过 fieldId 引用 - 使用 this.$('textField_xxx') 操作已存在的组件

组件 fieldId 命名规范

宜搭组件的 fieldId 格式为:组件类型_随机后缀

组件类型fieldId 示例
单行文本textField_m2iqeyip
多行文本/文本域textareaField_lu7rqky5
单选radioField_m2l8tqxr
流水号serialNumberField_lr76bpi4
数字numberField_mbhl6h58
下拉选择selectField_mbhjt4zb
日期dateField_ll0bcdf1
附件attachmentField_mbhjt4zd
图片imageField_mbhjt4zl
人员选择employeeField_mbhjt4zr
人员多选employeeField_xxx + multiple: true
部门选择departmentSelectField_lu7qx4i5
子表单/明细表tableField_mbhjt4zy
地址addressField_mbhjt508
关联表单associationFormField_mbhjt50s
区块pageSection_m2vthls5
按钮button_invoiceAdd
发票组件ccInvoiceFieldComponentView_m2vv4aux
多列布局columnsLayout_m2k6t8hx
标签页tabsLayout_lkcfmpjv

常见开发模式

条件显示
  • 组件属性 → 高级 → 是否渲染 → 绑定变量 state.sta
  • 或 JS 设置:this.$('fieldId').setBehavior('HIDDEN')
事件函数命名
  • export function onChange({ value }) { } - 值变化事件
  • export function didMount() { } - 页面加载完成
setTimeout 延迟

宜搭组件 onChange 事件中修改状态需要延迟:

js
export function onChange({ value }) {
  setTimeout(() => {
    this.setState({ sta: value === '价款合同' })
  }, 200)
}
隐藏字段

组件属性中设置 behavior: "HIDDEN" 可隐藏字段(可用于数据传递)

只读字段

组件属性中设置 behavior: "READONLY" 可设为只读

公式字段

在组件属性中设置 valueType: "formula" + formula: "#{textField_xxx}"

json
{
  "valueType": "formula",
  "formula": "CONCATENATE(\"XMBH\",TEXT(TODAY(),\"yyMMdd\"),MID(TEXT(TIMESTAMP(NOW())),9,5))"
}
TableField 事件

新增行时获取行数:

js
export function onAddClick(newGroupId) {
  const count = this.$('tableField_xxx').getValue().length
  this.$('textField_count').setValue(count + '条')
}
TableField onChange 计算不重复值

遍历子表单行,计算某列的不重复值数量:

js
export function onChange({ value, extra }) {
  const subFormInst = this.$('tableField_xxx')
  const items = subFormInst.getItems()
  let distinctNum = []
  items.forEach(item => {
    const rowData = subFormInst.getItemValue(item)
    if (rowData['textField_col'] && !distinctNum.includes(rowData['textField_col'])) {
      distinctNum.push(rowData['textField_col'])
    }
  })
  this.$('numberField_count').setValue(distinctNum.length)
}
EmployeeField onChange

人员选择变化时获取人员信息:

js
export function onChange({ value }) {
  // value 是人员对象 { name, userId, ... }
  this.$('textField_name').setValue(value.name)
}
PageSection 区块

用于分组显示,有标题头:

json
{
  "componentName": "PageSection",
  "props": {
    "title": { "zh_CN": "基本信息" },
    "behavior": "NORMAL",  // 或 "HIDDEN" 隐藏整个区块
    "showHeader": true
  }
}
关联表单数据填充

选择关联表单时自动填充其他字段:

json
{
  "dataFillingRules": [
    { "sourceType": "SelectField", "targetType": "TextField", "source": "selectField_src", "target": "textField_target" }
  ]
}
联动字段

设置 valueType: "linkage" + linkage 属性从其他表单获取数据

SUM 汇总公式

汇总子表单某列:

json
{
  "valueType": "formula",
  "formula": "SUM(#{numberField_column})"
}
RadioField 联动

单选切换时显示/隐藏字段(配置选项的联动规则)

onBlur 事件

失焦时执行校验(如手机号验证):

js
export function onBlur() {
  let phone = this.$('textField_xxx').getValue()
  if (!phone) return
  if (!this.isPhoneNumber(phone)) {
    this.utils.toast({ title: '请输入正确的手机号', type: 'warning' })
    this.$('textField_xxx').setValue('')
  }
}

export function isPhoneNumber(input) {
  return /^1\d{10}$/.test(input.replace(/\D/g, ''))
}
NumberField 校验

设置 minValue 最小值:

json
{ "validation": [{ "type": "minValue", "param": "0" }] }

组件属性参考

SelectField 下拉选择
属性说明类型默认值
dataSource选项数据DataSource[][]
onChange值变化事件(value: string) => void-
showSearch展开后能搜索booleantrue
filterLocal本地过滤boolean-
modesingle/multistringsingle
hasClear清除按钮booleantrue
autoWidth菜单对齐booleantrue
TableField 明细表
属性说明类型默认值
onChange值变化事件({value, extra}) => void-
onAddClick新增行事件(newGroupId) => void-
onDelClick删除行事件(groupId, item) => void-
maxItems最大条数number50
addButtonPosition新增位置'top' | 'bottom'bottom
layoutSetting.layout排列方式'TILED' | 'TABLE'TABLE
layoutSetting.theme主题'zebra' | 'split' | 'border'split
showIndex显示序号booleantrue
TableField JS 操作
js
const table = this.$('tableField_xxx')
table.getValue()           // 获取所有行数据
table.getItems()           // 获取行实例数组
table.getItemValue(item)   // 获取某行数据
table.addItem()            // 新增一行
table.removeItem(item)    // 删除一行
NumberField
属性说明类型默认值
precision小数位数 (0-20)number0
thousandsSeparators千分位booleanfalse
innerAfter单位string-
innerBefore前缀string-
RadioField
属性说明类型默认值
dataSource选项DataSource[][]
onChange值变化(value) => void-
shape形状'default' | 'button'default
itemDirection排列'hoz' | 'ver'hoz
supportInverse反选booleanfalse
ColumnsLayout 多列布局
属性说明类型默认值
layout分栏配置string'6:6'
columnGap列间距number0
rowGap行间距number0
display手机排列'VERTICAL' | 'HORIZONTAL'VERTICAL

布局格式: 2:2:2:2:4 (总和=12), 多行: 4:4:4\|6:6

Button 按钮
属性说明类型默认值
type按钮类型'primary'|'normal'|'secondary'primary
content按钮文案string按钮
size尺寸'small'|'medium'|'large'medium
behavior显示状态'NORMAL'|'DISABLED'|'HIDDEN'NORMAL
loading加载状态booleanfalse
Icon 图标
属性说明类型默认值
baseType基础图标stringsmile
size尺寸'xxs'|'xs'|'small'|'medium'|'large'medium
useType使用自定义booleanfalse
EmployeeField 人员选择
属性说明类型默认值
multiple多选booleanfalse
showEmplId显示工号booleanfalse
showAvater显示头像booleantrue
closeOnSelect选中后关闭booleanfalse
onChange值变化({value}) => void-
DateField 日期选择
属性说明类型默认值
format日期格式stringYYYY-MM-DD
type限制范围'none'|'beforeToday'|'afterToday'none
hasClear清除按钮booleantrue
returnType返回类型'timestamp'|'string'|'moment'timestamp
onChange值变化({value}) => void-
TextField 单行输入
属性说明类型默认值
validationType格式'text'|'mobile'|'email'|'chineseID'text
maxLength字数上限number200
hasClear清除按钮booleantrue
hasLimitHint计数器booleanfalse
trim去空格booleanfalse
onChange值变化({value}) => void-
TextareaField 多行输入
属性说明类型默认值
rows行数number4
autoHeight自动高度booleanfalse
maxLength字数上限number-
USER() 公式

人员字段自动填充当前登录人:

json
{ "valueType": "formula", "formula": "USER()" }
关联表单数据过滤

设置 dataFilterRules 过滤可选数据

页面级校验器

在页面属性 → 数据校验 中配置,检测重复数据:

json
{
  "displayRule": "EXIST(角色名称)",
  "rule": "EXIST(#{formUuid}, \"textField_lenz6y7q\", #{textField_lenz6y7q})",
  "message": "角色名称不能重复"
}

## 核心概念

### 全局变量 (State)
类似 React state,用于页面全局状态管理:
- 创建:在数据源面板 → 添加变量
- 读取:`this.state.name` 或 `state.name`(变量绑定时)
- 更改:`this.setState({ name: 'Jack' })`
- 特殊变量:`urlParams` - 获取 URL 参数

⚠️ 注意:setState 后可立即获取新值(不同于 React),但无回调函数

### 远程数据源
配置远程 API 进行异步请求:
```js
// 手动加载
this.dataSourceMap.apiName.load({ params }).then(res => {})

// 重新加载所有自动加载的数据源
this.reloadDataSource()

数据处理函数:

  • willFetch - 请求发送前修改参数
  • fit - 响应数据适配
  • didFetch - 请求成功后的数据处理
  • onError - 错误处理
生命周期
js
export function didMount() { }    // 页面加载完成
export function willUnmount() { } // 页面卸载前
事件处理

给组件绑定动作事件,在动作面板实现处理逻辑:

js
export function onClick() {
  const { name, age } = this.params  // 获取绑定时设置的参数
}
表单校验

内置规则 + 自定义校验函数:

js
function validateRule(value) {
  if (/^杭州/.test(value)) return true
  return false
}

手动触发校验:

js
this.$('textField_xxx').validate((errors, values) => {})

常用校验示例:

  • 银行卡号(Luhn算法):16或19位数字
  • 身份证号:18位,末尾校验码
循环渲染

循环数据要求是数组,绑定变量获取循环数据:

  • this.item - 获取当前行数据
  • this.index - 获取当前行索引

容器组件绑定循环数据后可遍历渲染,内部组件通过变量绑定访问数据。

条件渲染

组件高级属性 → 是否渲染 → 绑定变量控制显隐

js
// 绑定 state.xxx 控制显示
state.urlParams.showName  // 根据URL参数控制
自定义样式

两种方式:

  1. 基础样式配置 - 可视化配置布局、文字、背景等
  2. 手工编码模式 - CSS 选择器、伪类等

名词解释

术语说明
全局变量类似 React state,页面状态管理
远程 APIHTTP 接口配置,包含请求地址、参数、数据处理函数
Schema低代码协议,描述页面/组件结构,类似 HTML
组件唯一标识组件的 fieldId,宜搭全局唯一标识
页面独立展示界面(表单、报表、自定义页面)
物料可沉淀的前端能力(组件、区块、模板)
业务组件基于基础组件的业务领域组件
低代码业务组件通过低代码编辑器搭建的业务组件
区块组合多个组件/布局,可复制复用
模板垂直业务领域的页面模板
Show full SKILL.md (363 more words)Show less

集成自动化(连接器)

触发类型:

  • 表单事件触发 - 提交/流程状态更新
  • 定时触发 - 周期循环
  • 应用事件触发 - 钉钉生态事件
  • Webhook 触发

节点类型:

  • 触发器
  • 一方连接器(钉钉消息、待办等)
  • 自定义连接器
  • 数据节点(新增/更新/获取/删除)
  • 分支节点(条件分支/并行分支)
  • 发起审批
  • 消息节点
  • 开发者节点(Groovy 脚本)

自定义组件

⚠️ 仅限专属版

概念
  • 普通组件 - 展示型,无数据存储
  • 表单组件 - 可提交数据(暂未开放)
开发流程
  1. 创建组件 - 应用设置 → 组件管理 → 新增组件
  2. 开发调试 - 定义属性 + 搭建视图 + 编写逻辑
  3. 发布版本 - 开发版(0.1.0) / 正式版(1.x.x)
  4. 安装使用 - 选择页面类型安装
组件属性 (propTypes)
  • 属性类型:文本、布尔、数字、对象、数组、函数、元素
  • 设置器:TextSetter、BoolSetter、NumberSetter、JsonSetter、OptionsSetter、ActionSetter、SlotSetter 等
组件生命周期
js
export function componentDidMount() { }   // 渲染完成
export function componentDidUpdate() { }  // 更新完成
export function componentDidCatch() { }   // 错误捕获
export function componentWillUnmount() { } // 销毁前
组件内获取属性
js
this.props.xxx  // 获取传入的属性
页面中操作自定义组件
js
this.$('fieldId').get('propName')  // 获取属性
this.$('fieldId').set('propName', value)  // 设置属性
组件联动

添加 function 类型属性作为事件回调,在组件内通过 this.props.xxx() 触发

注意事项
  • fieldId 不能随意修改,会影响公式和存储
  • 线上应用请安装正式版本 (1.x.x)
  • 不支持删除/卸载组件

调试方法

  • debugger 断点调试
  • 浏览器控制台 cmd/ctrl + p → page.js 添加断点
  • URL 加 ?__showDevtools 打开调试面板
  • URL 加 ?__debug 查看/编辑 Schema
  • 移动端调试:引入 vConsole
js
const vConsole = 'https://g.alicdn.com/code/lib/vConsole/3.11.2/vconsole.min.js';
const js = document.createElement('script');
js.src = vConsole;
document.body.append(js);
js.onload = function() { window.vConsole = new window.VConsole(); };

API 体系

宜搭 JS-API

前端页面调用,包括:

  • 全局变量:this.state.xxx / this.setState()
  • 远程数据:this.dataSourceMap.xxx.load() / this.reloadDataSource()
  • 组件操作:this.$(fieldId).getValue() / this.$(fieldId).setValue()
  • 工具类:this.utils.toast() / this.utils.dialog() / this.utils.router.push()
  • 校验:this.$(fieldId).validate() / this.$(fieldId).setValidation()
跨应用数据源 API (OpenAPI)

远程数据源配置中调用,用于表单数据操作:

  • 新建:POST /v1/form/saveFormData.json
  • 更新:POST /v1/form/updateFormData.json
  • 删除:POST /v1/form/deleteFormData.json
  • 查询:GET /v1/form/searchFormDatas.json
  • 流程发起:POST /v1/process/startInstance.json
钉钉 JS-API

需手动加载:https://g.alicdn.com/dingding/dingtalk-jsapi/2.10.3/dingtalk.open.js

  • 弹框:device.notification.alert/confirm/prompt
  • 扫码:biz.util.scan
  • 地图:biz.map.locate/view
  • 通讯录:biz.contact.choose/complexPicker
服务端 OpenAPI

需通过钉钉开放平台调用,需要鉴权:

  • 创建钉钉应用 → 添加权限 → 获取 access_token
  • 调用服务端接口

2026 年新功能

2026.02.03 集成自动化升级
  • 异常日志支持批量重试
  • 日志实例ID交互优化
  • 数据节点过滤条件增加"父级条件"
  • 新增 AI 节点
2026.01.20 新功能
  • 宜搭表单新增「钉钉文档」选择组件
  • 富文本支持钉钉文档链接自动识别
  • 附件/图片支持批量下载
  • 关联表单/关联列表支持自定义显示字段
2026.01.05 新功能
  • 贴一贴:附件上传快捷黏贴(Ctrl+V)
  • 实例标题支持变量动态更新
  • 数据管理文本筛选动态匹配
  • 关联表单数据搜索升级(大小写自动匹配)

快速参考

组件操作
js
// ✅ 正确:操作已存在的组件(通过 fieldId)
this.$('textField_m2iqeyip').getValue()
this.$('textField_m2iqeyip').setValue('hello')

// ❌ 错误:不要声明/导入组件
// const MyButton = () => {...}  // 禁止!
状态管理
js
this.setState({ key: 'value' })
const value = this.state.key

// URL 参数(默认全局变量)
const param = this.state.urlParams.xxx
生命周期
js
export function didMount() { }   // 页面加载完成
export function willUnmount() { } // 页面卸载前
远程数据源
js
this.dataSourceMap.api.load(params).then(res => { })
this.reloadDataSource()
常用工具
js
this.utils.toast({ title: '成功', type: 'success' })
this.utils.router.push('/pageId')
this.utils.getLoginUserId()

详细文档

调试方法

  • URL 加 ?__showDevtools 打开调试面板
  • URL 加 ?__debug 查看 Schema
  • 代码加 debugger 断点
  • 使用 console.log 输出调试信息

参考资源

服务端 OpenAPI (open.dingtalk.com)

需通过钉钉开放平台调用,需要创建应用并获取授权。

流程 API
接口路径说明
发起审批POST /yida/v1/process/startInstance.jsonprocessCode, formUuid, formDataJson
删除流程POST /yida/v1/process/delete.jsonprocessInstanceId
终止流程POST /yida/v1/process/terminate.jsonprocessInstanceId
查询实例GET /yida/v1/process/getById.jsonprocessInstanceId
查询实例列表GET /yida/v1/process/getInstanceIds.jsonformUuid, instanceStatus
表单 API (V2)
接口路径说明
保存数据POST /yida/v1/forms/saveData.jsonformUuid, formDataJson
更新数据POST /yida/v1/forms/updateData.jsonformInstId, formDataJson
查询数据GET /yida/v1/forms/listData.jsonformUuid, searchFieldJson
获取子表数据GET /yida/v1/forms/listSubTableData.jsonformUuid, formInstId, tableFieldId
请求示例
js
// 发起流程
const params = {
  processCode: "TPROC--CFYJ5HYUN89NJ1JW3IXBI7A95RXM3652O9MKK3",
  formUuid: "FORM-CFYJ5HYUN89NJ1JW3IXBI7A95RXM3552O9MKK2",
  formDataJson: JSON.stringify({ textField_kkm9o5cd: "123" })
};
this.dataSourceMap.myDatasource.load(params);
更多 API
  • 批量操作、子表数据、审批记录等详见开放平台文档

场景案例专题

表单专题

常见表单开发场景:

  • 数据权限:只允许查看自己的数据(表单权限设置)
  • 子表单:获取子表单值赋值给主表、子表单序号生成、子表单批量导入
  • 数据联动:数据源获取主表数据在子表展示、下拉框赋值、关联表单填充
  • 校验:子表单重复校验、组件实时校验唯一性、自定义校验
  • 高级:图片裁剪上传、扫码识别、地址组件动态类型、公历转农历
自定义页面专题
  • 页面搭建、组件使用、事件处理
连接器专题
  • 集成自动化、钉钉消息、待办通知
实用工具专题
  • 常用工具组件使用
报表专题
  • 数据可视化、图表配置
公式专题
  • 公式函数使用、计算逻辑
方案专题
  • 行业解决方案、业务场景案例

Schema 生成

宜搭页面使用 JSON Schema 定义,可以直接粘贴到设计器中。

基础结构
json
{
  "type": "nodeSchema",
  "componentsMap": {},
  "componentsTree": [
    {
      "componentName": "PageSection",
      "props": { ... },
      "children": [ ... ]
    }
  ]
}
常用组件 Schema
TextField (单行文本)
json
{
  "componentName": "TextField",
  "props": {
    "fieldId": "textField_xxxxx",
    "label": { "type": "i18n", "zh_CN": "字段名称", "en_US": "字段名称" },
    "behavior": "NORMAL",
    "valueType": "custom",
    "validation": [{ "type": "required" }],
    "placeholder": { "type": "i18n", "zh_CN": "请输入", "en_US": "请输入" },
    "maxLength": 200,
    "visibility": ["PC", "MOBILE"]
  }
}
NumberField (数字)
json
{
  "componentName": "NumberField",
  "props": {
    "fieldId": "numberField_xxxxx",
    "label": { "type": "i18n", "zh_CN": "金额", "en_US": "金额" },
    "precision": 2,
    "step": 1,
    "behavior": "NORMAL",
    "valueType": "custom",
    "validation": [
      { "type": "required" },
      { "type": "minValue", "param": 0 },
      { "type": "maxLength", "param": 25 }
    ]
  }
}
DateField (日期)
json
{
  "componentName": "DateField",
  "props": {
    "fieldId": "dateField_xxxxx",
    "label": { "type": "i18n", "zh_CN": "日期", "en_US": "日期" },
    "format": "YYYY-MM-DD",
    "behavior": "NORMAL",
    "valueType": "custom",
    "validation": [{ "type": "required" }]
  }
}
SelectField (下拉选择)
json
{
  "componentName": "SelectField",
  "props": {
    "fieldId": "selectField_xxxxx",
    "label": { "type": "i18n", "zh_CN": "选项", "en_US": "选项" },
    "mode": "single",
    "showSearch": true,
    "behavior": "NORMAL",
    "valueType": "custom",
    "defaultDataSource": {
      "customStashOptions": [
        { "text": { "zh_CN": "选项一", "en_US": "选项一" }, "value": "选项一", "sid": "serial_xxx" }
      ]
    }
  }
}
RadioField (单选)
json
{
  "componentName": "RadioField",
  "props": {
    "fieldId": "radioField_xxxxx",
    "label": { "type": "i18n", "zh_CN": "类型", "en_US": "类型" },
    "itemDirection": "hoz",
    "behavior": "NORMAL",
    "valueType": "custom",
    "dataSource": [
      { "text": { "zh_CN": "选项A", "en_US": "选项A" }, "value": "A", "sid": "serial_a" },
      { "text": { "zh_CN": "选项B", "en_US": "选项B" }, "value": "B", "sid": "serial_b" }
    ]
  }
}
EmployeeField (人员选择)
json
{
  "componentName": "EmployeeField",
  "props": {
    "fieldId": "employeeField_xxxxx",
    "label": { "type": "i18n", "zh_CN": "申请人", "en_US": "申请人" },
    "multiple": false,
    "behavior": "NORMAL",
    "valueType": "custom",
    "userRangeType": "ALL",
    "validation": [{ "type": "required" }]
  }
}
AssociationFormField (关联表单)
json
{
  "componentName": "AssociationFormField",
  "props": {
    "fieldId": "associationFormField_xxxxx",
    "label": { "type": "i18n", "zh_CN": "关联数据", "en_US": "关联数据" },
    "behavior": "NORMAL",
    "multiple": false,
    "associationForm": {
      "formUuid": "FORM-XXXXXXXX",
      "appType": "APP_XXXXXXXX"
    },
    "validation": [{ "type": "required" }]
  }
}
Image (图片)
json
{
  "componentName": "Image",
  "props": {
    "fieldId": "image_xxxxx",
    "src": "https://example.com/image.jpg",
    "width": 100,
    "height": 100,
    "fit": "cover"
  }
}
Text (文本)
json
{
  "componentName": "Text",
  "props": {
    "fieldId": "text_xxxxx",
    "content": { "type": "i18n", "zh_CN": "文本内容", "en_US": "文本内容" },
    "__style__": ":root { font-size: 16px; font-weight: 600; }"
  }
}
LinkBlock (链接块)
json
{
  "componentName": "LinkBlock",
  "props": {
    "fieldId": "linkBlock_xxxxx",
    "link": { "type": "url", "url": "https://example.com", "isBlank": true },
    "__style__": ":root { margin: 10px; }"
  }
}
Div (容器)
json
{
  "componentName": "Div",
  "props": {
    "fieldId": "div_xxxxx",
    "__style__": ":root { padding: 20px; background: #fff; }"
  }
}
布局组件
PageSection (区块)
json
{
  "componentName": "PageSection",
  "props": {
    "fieldId": "pageSection_xxxxx",
    "title": { "type": "i18n", "zh_CN": "基本信息", "en_US": "基本信息" },
    "showHeader": true,
    "behavior": "NORMAL"
  }
}
ColumnsLayout + Column (多列布局)
json
{
  "componentName": "ColumnsLayout",
  "props": {
    "fieldId": "columnsLayout_xxxxx",
    "layout": "4:4:4"
  },
  "children": [
    { "componentName": "Column", "props": { "fieldId": "column_1" } },
    { "componentName": "Column", "props": { "fieldId": "column_2" } },
    { "componentName": "Column", "props": { "fieldId": "column_3" } }
  ]
}
常用属性
属性说明值
behavior组件状态NORMAL, READONLY, HIDDEN, DISABLED
valueType值类型custom, formula, linkage
validation校验规则required, minValue, maxLength, customValidate
formula公式CONCATENATE, TODAY, TIMESTAMP, USER, SUM 等
format日期格式YYYY-MM-DD, YYYY-MM-DD HH:mm:ss
生成字段 ID

字段 ID 格式:组件类型_随机后缀,例如:

  • textField_abc123
  • numberField_def456
  • selectField_ghi789
示例 App ID

当前应用:APP_F22M8EK6I2HZTBIYV3U5

© LeoYeAI, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 12 other files (scripts, references) in skills/yida-dev of LeoYeAI/openclaw-master-skills.

  • SKILL.md
  • _meta.json
  • references/formulas.md
  • references/integrations.md
  • references/js-api.md
  • references/jsx.md
  • references/server-api.md
  • references/todomvc.md
  • references/troubleshooting.md
  • scripts/client_api_example.js
  • scripts/integration_example.js
  • scripts/server_api_example.js
  • scripts/todomvc.md

Open the folder on GitHubat commit e5199b5

Compare with similar skills

Yida Dev next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Yida Dev compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Yida Dev this skillLeoYeAI/openclaw-master-skills2.2k—~5kAutomated safety check: PassMIT
Yida Dashboardopenyida/openyida220—~1.4kAutomated safety check: PassMIT
Yida Appopenyida/openyida220—~2.2kAutomated safety check: PassMIT
Yida I18nopenyida/openyida220—~909Automated safety check: PassMIT
Yida Tingjiopenyida/openyida220—~283Automated safety check: PassMIT
Yida Chartopenyida/openyida220—~1.7kAutomated safety check: PassMIT

Similar skills

  • Yida Dashboard

    openyida/openyida

    经营分析看板/驾驶舱/数据大屏产品化交付;用于指标判断、趋势分析或投屏监控,不用于普通待办工作台和办事门户。含真实数据、筛选联动、卡片截图、组织内短链和钉钉待办闭环。常规图表使用 yida-rechart;明确 ECharts、复杂 ECharts option 或维护旧图表时使用 yida-chart。普通统计优先 yida-report。

    220 GitHub stars~1.4k tokensUpdated 7 days ago
    Frontend & DesignAuto-check passed
  • Yida App

    openyida/openyida

    创建完整宜搭应用,或补齐已有应用时使用。先确认核心功能和实际用法;Fast 直接搭建,Plan 先确认方案。由 yida-prd 和 yida-design 同时准备业务与基础视觉,校验后创建或复用资源;表单/流程先于自定义页面。页面 UI 按已确认设计实现,代码示例按需参考;前后台都规划菜单顺序与默认页面,发布后分别验收实际入口。

    220 GitHub stars~2.2k tokensUpdated 7 days ago
    Product & Project ManagementAuto-check passed
  • Yida I18n

    openyida/openyida

    应用多语言管理。查询和维护宜搭应用的语言配置、文案词条、翻译状态、一键翻译和多语言升级。适用于全球化设置 / 多语言管理页面;需要应用已开通国际化能力包,或运行在 Global YiDA 环境(默认入口为 www.yidaapps.com,且支持客户自定义二级域名)。

    220 GitHub stars~909 tokensUpdated 7 days ago
    Frontend & DesignAuto-check passed
  • Yida Tingji

    openyida/openyida

    按 taskUuid 获取钉钉听记、会议录音转写、会议纪要或 AI 听记的完整详情;只负责读取内容。若用户要求转 PRD,先用本技能取内容,再交给 yida-flash-note-to-prd。

    220 GitHub stars~283 tokensUpdated 7 days ago
    Product & Project ManagementAuto-check passed
  • Yida Chart

    openyida/openyida

    ECharts 高级可视化报表。依赖宜搭原生报表 getDataAsync.json 接口获取聚合数据,禁止前端聚合。触发词:「更美观」「ECharts」「大屏」「定制化」。普通「报表」「统计」需求默认由 yida-report 处理。

    220 GitHub stars~1.7k tokensUpdated 7 days ago
    Auto-check passed
  • Yida Rechart

    openyida/openyida

    自定义页面 Recharts 高级图表技能。使用 YidaCodeCanvas 组件和 Recharts 实现可视化、看板图表、趋势图、组合图等现代 React 图表页面;聚合数据必须来自宜搭原生报表或已聚合接口,不在前端拉全量明细自行聚合。明确要求 ECharts、维护旧 ECharts 页面或 Recharts 无法覆盖的复杂 option 时改用 yida-chart。

    220 GitHub stars~970 tokensUpdated 7 days ago
    Frontend & DesignAuto-check passed

More from LeoYeAI/openclaw-master-skills

All 1,215 skills in this repo
  • DevOps Pipeline Management

    LeoYeAI/openclaw-master-skills

    Manages pipelines on a DevOps quality and efficiency platform through its OpenAPI: list workspaces and templates, create, update, run and cancel pipelines, and read run records.

    2.2k GitHub stars~4.2k tokensUpdated 2 mo ago
    Auto-check: notes
  • Feishu Document Collaboration

    LeoYeAI/openclaw-master-skills

    Patches OpenClaw's Feishu extension so an edited document triggers an isolated agent session that reads the doc and replies inline, turning it into a live chat space.

    2.2k GitHub stars~2k tokensUpdated 2 mo ago
    Auto-check passed
  • Files Memory System

    LeoYeAI/openclaw-master-skills

    Multi-context memory management system for OpenClaw agents with group-isolated storage, global shared memory, workspace organization, and group-specific skills isolation.

    2.2k GitHub stars~3.8k tokensUpdated 2 mo ago
    Auto-check passed
  • GEO-Claw AI Visibility Agent

    LeoYeAI/openclaw-master-skills

    Runs a brand's AI-search visibility work end to end: diagnosing how AI platforms represent it, repositioning it, producing AI-optimized content and monitoring ongoing mentions.

    2.2k GitHub stars~4.7k tokensUpdated 2 mo ago
    Auto-check passed
  • Google Workspace CLI

    LeoYeAI/openclaw-master-skills

    Installs and authenticates the gws CLI, then automates Gmail, Drive, Sheets, Calendar, Docs, Chat and Tasks with ready-made recipes, persona bundles and security audits.

    2.2k GitHub stars~2.6k tokensUpdated 2 mo ago
    Auto-check: notes
  • HealthFit Health Advisors

    LeoYeAI/openclaw-master-skills

    Runs four advisor roles, a fitness coach, nutritionist, data analyst and TCM practitioner, to build a health profile and track workouts, diet and wellness over time.

    2.2k GitHub stars~4.4k tokensUpdated 2 mo ago
    Auto-check passed

Questions about Yida Dev

What does Yida Dev do?

钉钉宜搭低代码开发助手。用于创建表单和自定义页面、编写 JS 动作面板、使用 JS-API、配置数据源、设计流程自动化。适用于宜搭表单开发、JS 代码调试、API 集成等场景。. Yida Dev is an agent skill from LeoYeAI/openclaw-master-skills.

How do I install Yida Dev in Claude Code?

Run `npx skills add LeoYeAI/openclaw-master-skills --skill yida-dev -a claude-code`. Or copy the skill folder (skills/yida-dev in LeoYeAI/openclaw-master-skills) into .claude/skills/yida-dev in your project. Claude Code loads it when a task matches its description.

How do I install Yida Dev in Codex?

Run `npx skills add LeoYeAI/openclaw-master-skills --skill yida-dev -a codex`. Or copy the skill folder (skills/yida-dev in LeoYeAI/openclaw-master-skills) into .agents/skills/yida-dev in your project. Codex loads it when a task matches its description.

Can I use Yida Dev in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add LeoYeAI/openclaw-master-skills --skill yida-dev -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/yida-dev, .gemini/skills/yida-dev, .github/skills/yida-dev and .opencode/skills/yida-dev in your project.

What does Yida Dev need to run?

Going by SKILL.md and its folder, Yida Dev needs JavaScript for the scripts in its folder. Our summary lists: Node.js.

Does Yida Dev access the network?

SKILL.md names 5 domains. In commands or code: g.alicdn.com; the agent is likely to contact it when it follows the instructions. As links in the text: docs.aliwork.com, developers.aliwork.com, open.dingtalk.com and aliwork.com. This is read from the text; nothing was executed.

Is Yida Dev safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.

What licence does Yida Dev use?

Yida Dev is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Yida Dev use?

About 5k tokens (SKILL.md is roughly 20k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 8k tokens, read only when the agent opens those files.

What are the alternatives to Yida Dev?

Skills that share tags, products or a category with Yida Dev: Yida Dashboard (openyida/openyida, 220 stars), Yida App (openyida/openyida, 220 stars), Yida I18n (openyida/openyida, 220 stars) and Yida Tingji (openyida/openyida, 220 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Yida Dev?

LeoYeAI (a GitHub user) maintains it in LeoYeAI/openclaw-master-skills, which has 2,158 GitHub stars. The repository holds 1,215 skills in this directory. The repository was last updated on July 20, 2026.

Source: LeoYeAI/openclaw-master-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.