Yida Canvas Table Form

SKILL前端设计
前端设计 未标注权限 许可证不明确

自定义页面表格批量录入技能。使用 `YidaCodeCanvas` 组件和 antd Table、Input、Select、DatePicker、React hooks 实现草稿、行级校验、分批并发提交和行级错误保留。`YidaCodeCanvas` 组件内不能直接调用 this.utils.yida.*;写入默认消费发布层注入的 window.__OPENYIDA_YIDA_API__,提示、跳转等根级工具消费 window.__OPENYIDA_UTILS__,也可走已验证连接器或同源业务桥,未验证时不得声称提交闭环。

一句话选型结论

按资料字段整理

Yida Canvas Table Form是前端设计类的 Agent Skill,安装方式:GitHub 仓库,权限级别未标注,许可证不明确,没有现成安装命令,需按说明手动放置 SKILL.md。技能本质是给模型读的说明书,效果取决于模型与客户端;装完先用一个小任务验证,再放进正式流程。

分类前端设计 安装方式GitHub 仓库 权限级别未标注权限 许可证许可证不明确
累计安装 未标注 本周 未标注
GitHub 星标 未标注 仓库 openyida
下载量 未标注 技能市场下载数
权限级别 未标注权限 安装前请确认风险范围
许可证 许可证不明确 未说明

安装

GitHub 仓库
在支持 Skills 的客户端里执行,装完问一句「你有哪些技能」验证
  1. 1
    确认客户端支持

    确认你的客户端支持 Skills(Claude、Codex、Cursor 等),并升级到较新的版本。

  2. 2
    拿到技能文件

    按安装说明或仓库 README,把 SKILL.md 放到客户端的 skills 目录(一般一个技能一个文件夹)。

  3. 3
    刷新技能列表

    重新打开客户端,或刷新技能列表,让新放进来的技能被加载。

  4. 4
    验证是否生效

    问一句「你有哪些技能」,确认列表里出现它,再拿一个小任务试跑。

技能档案

前端设计
字段来自技能仓库与公开索引,中文说明由本站标注
作者 / 维护方openyida仓库 openyida · 版本 未标注
宿主客户端未标注技能可被这些客户端加载
安装方式GitHub 仓库安装包 openyida/openyida
权限级别未标注权限安装前请确认风险范围
许可证未说明许可证不明确,商用前请自行确认条款
仓库可用性available技能仓库当前是否可访问
最近核验未标注上游最后核验时间 · 数据更新 2026-09-12
正文体量8.1 KBSKILL.md 原文大小,越大说明说明书写得越细

典型使用场景

3 类
按分类整理的常见用法,具体以 SKILL.md 为准
出页面与组件

按描述生成页面结构和组件草稿。

调整样式与布局

改间距、配色与响应式布局。

生成设计说明

把设计稿整理成开发能接的说明。

选择建议

装之前先看这几条
按条目字段给出的判断,不替你决定用不用

值得选的地方

  • 基础信息齐全,可以先按说明装一个试试。

先想清楚的地方

  • 没有标注权限级别,实际能做什么要装好后确认。
  • 许可证不明确,商用或二次分发前先到仓库确认条款。
  • 没有现成安装命令,要按安装说明或仓库 README 手动放置。
  • 没有做站内核验,内容以作者仓库为准。
  • 技能只是说明书,实际效果取决于模型与客户端,装完先用小任务试一遍。

更适合

  • 需要在前端设计场景里给模型补一套做法的人。
  • 愿意先读一遍 SKILL.md、确认它会让模型做什么的人。

不太适合

  • 对许可证要求很严、必须明确可商用的人。
  • 只想装完就自动变强、不打算看说明书的人。

同类对比

6 个同类
同分类里挑最接近的几条,字段以各自详情页为准
技能权限级别安装方式累计安装宿主客户端安装命令
Yida Canvas Table Form当前 未标注权限 GitHub 仓库 未标注 未标注 无
前端设计 只读 GitHub 仓库 882.3 万 Codex、Claude、Cursor 有
Vercel 组合模式 联网访问 GitHub 仓库 385.9 万 Codex、Claude、Cursor 有
Vercel React native skills 前端 只读 GitHub 仓库 246.9 万 Codex、Claude、Cursor 有
adapt 搜索 浏览器控制 GitHub 仓库 202.7 万 Codex、Claude、Cursor 有
使用我的浏览器 浏览器控制 GitHub 仓库 184.8 万 Codex、Claude、Cursor 有

SKILL.md 全文

8.1 KB
模型实际读到的说明书原文,来自技能仓库

自定义页面表格批量录入

核心定位

本技能是“批量录入 / 表格填写 / Excel 式多行编辑”的默认实现链路:

  • .canvas.jsx / .canvas.tsx + YidaComp。
  • React hooks 管理行状态、草稿和提交流程。
  • antd Table、Input、Select、DatePicker 构建行内编辑。
  • 分批并发写入,每行独立记录成功或失败。
  • 写入能力由显式、已验证的数据桥提供。

yida-table-form 保留给已检测到的平台 JSX 组件页面或 native 页面:仅当目标页面已确认依赖平台实例桥,或存量平台源码已确认直接使用实例 this.utils.yida.saveFormData 时使用。新建或默认 YidaCodeCanvas 批量录入即使需要 saveFormData,也走本技能和 window.__OPENYIDA_YIDA_API__.saveFormData。

路由边界

用户意图 选择
默认批量录入、表格填写、多行编辑 yida-canvas-table-form
YidaCodeCanvas 组件 + antd Table yida-canvas-table-form
已检测到平台 JSX 组件页面/native 页面 yida-table-form
新建 Canvas 页面里需要保存/更新表单数据 yida-canvas-table-form,消费 window.__OPENYIDA_YIDA_API__.saveFormData/updateFormData
存量平台 JSX/native 源码直接要求实例 this.utils.yida.saveFormData yida-table-form
只需 CLI 批量写入数据,不开发页面 yida-data-management
需要创建或调整表单字段 yida-create-form-page

致命规则(FATAL)

  1. YidaCodeCanvas 组件内没有平台 JSX 组件实例桥:禁止在 YidaComp 源码中直接调用 this.utils.yida.*、this.$(...) 或 this.dataSourceMap;需要宜搭表单写入时消费发布层注入的 window.__OPENYIDA_YIDA_API__,提示、跳转、移动端判断等根级工具消费 window.__OPENYIDA_UTILS__。
  2. 写入桥必须先验证:默认使用 window.__OPENYIDA_YIDA_API__.saveFormData/updateFormData,也可使用已验证连接器代理或同源业务桥。必须确认目标 appType/formUuid、请求体、返回体和错误码;window.__OPENYIDA_UTILS__.yida 与 yida API 桥必须指向同一对象。
  3. 未验证不得伪装闭环:桥未配置或未验证时,提交按钮禁用或进入清晰的“待接入”状态;不得模拟成功、生成假 formInstId 或宣称数据已写入宜搭。
  4. 提交前先验证并确认:先完成行级校验,再向用户展示待提交行数和关键字段摘要,获得确认后发起写入。
  5. 分批并发而非无限并发:按固定批次切分,批次内使用 Promise.all 并发,批次间顺序推进;不得逐行串行,也不得一次性无限并发。
  6. 失败行必须保留:每行保存 _status、_errors 和 _submitError;部分失败后只重试失败行,成功行不能重复提交。
  7. 真实交付要发布证据:创建或修改 .canvas.jsx / .canvas.tsx 页面源码后,只有 openyida publish <source> <appType> <displayPageFormUuid> 成功才能声明页面已发布。
  8. 页面表面跟随应用主题:YidaCodeCanvas 下生成页面的根画布使用 min-height: 100vh,背景使用 var(--pod-page-bg-color, var(--color-white, #fff));表格面板使用当前应用主题中的 --pod-card-bg-color、--pod-card-border 和 --pod-card-border-radius,antd 主色读取 --color-brand1-6。

数据桥契约

推荐让运行环境、连接器适配层或页面装配代码显式注入:

const writeBridge = {
  verified: true,
  name: 'same-origin-form-write-v1',
  async saveRow(payload, context) {
    // context: { rowId, idempotencyKey }
    // 调用已验证的同源接口或连接器代理
    return { formInstId: '真实接口返回值' };
  },
};

页面只在满足以下条件时允许提交:

  • writeBridge.verified === true。
  • typeof writeBridge.saveRow === 'function'。
  • 目标表单字段 ID 已由 yida-get-schema 取证。
  • 写入返回值能确定该行成功,失败会抛出带可展示信息的错误。
  • 重试策略有幂等键,或后端能防止重复记录。

不要把 access token、密钥或连接器凭据写入页面源码。它们应保留在宜搭同源会话、连接器或后端服务侧。

行状态

{
  _rowId: 'row_...',
  _status: 'draft', // draft | invalid | submitting | submitted | failed
  _errors: {},
  _submitError: '',
  fieldId_name: '',
  selectField_status: '',
  dateField_dueAt: ''
}
  • 修改单元格后清除该字段错误,并把 failed / invalid 行恢复为 draft。
  • 草稿使用 localStorage,key 至少包含目标 formUuid,避免不同表单串稿。
  • 保存草稿时排除敏感字段;页面明确告知草稿只保存在当前浏览器。
  • 全部成功后清除草稿;部分失败时保留失败行和错误,成功行标记为 submitted。

分批并发模板

async function submitInBatches(rows, writeBridge, batchSize) {
  const results = [];
  for (let index = 0; index < rows.length; index += batchSize) {
    const batch = rows.slice(index, index + batchSize);
    const batchResults = await Promise.all(batch.map(async (row) => {
      try {
        const value = await writeBridge.saveRow(toPayload(row), {
          rowId: row._rowId,
          idempotencyKey: 'canvas-table:' + row._rowId,
        });
        return { rowId: row._rowId, ok: true, value };
      } catch (error) {
        return { rowId: row._rowId, ok: false, error: error.message || '提交失败' };
      }
    }));
    results.push(...batchResults);
  }
  return results;
}

每批建议 5-20 行,具体以已验证接口限流为准。不要对失败行自动无限重试。

开发流程

下面命令以仓库根为视角;如果 cwd 已是 <workspace>/project,把 project/pages/src/... 改成 pages/src/...。

# 1. 取得真实字段 ID
openyida get-schema <appType> <formUuid> --field-map-json

# 2. 编写表格批量录入页面

# 3. 接入并验证 window.__OPENYIDA_YIDA_API__ / 连接器 / 数据桥
# 未验证前保持 writeBridge.verified !== true

# 4. 本地快检
openyida compile project/pages/src/table-form-batch-submit.canvas.jsx --json

# 5. 真实交付时发布
openyida publish project/pages/src/table-form-batch-submit.canvas.jsx <appType> <displayPageFormUuid>

验收清单

  • [ ] 使用 .canvas.jsx / .canvas.tsx、YidaComp、hooks 和 antd 表格控件。
  • [ ] 源码不含 this.utils.yida.*、this.$、this.dataSourceMap。
  • [ ] 字段 ID 来自真实 Schema,不按 label 猜测。
  • [ ] 刷新可恢复草稿,全部成功后草稿被清除。
  • [ ] 必填、类型、范围等错误显示在对应行和单元格。
  • [ ] 提交前显示行数与关键字段摘要并要求确认。
  • [ ] 分批并发受控,成功/失败数量可见。
  • [ ] 部分失败后失败行可编辑、可单独重试,成功行不会重复写入。
  • [ ] 未验证写入桥时按钮禁用并显示未闭环原因。
  • [ ] 页面根画布使用 min-height: 100vh 并绑定 --pod-page-bg-color,与原生页面共用基础底色,隐藏导航不自动透明,表格面板和 antd 主色直接使用当前应用主题变量。
  • [ ] 真实接口验证与页面发布都有证据后,才声明完整交付。

完成证据

  • 本地样例:compileCanvasLocal 成功,依赖清单包含 react、antd、dayjs。
  • 写入闭环:已验证数据桥真实返回逐行写入结果,部分失败与重试路径经过验证。
  • 页面交付:目标 .canvas.jsx 已成功发布。
  • 缺少任一远程证据时,明确报告“本地页面已完成,写入桥/远程发布尚未验证”。

常见问题

5 问
答案由本站依据条目字段整理
Yida Canvas Table Form怎么安装?

没有现成安装命令:按安装说明或仓库 README,把 SKILL.md 放进客户端的 skills 目录(一般一个技能一个文件夹)。

Yida Canvas Table Form支持哪些客户端?

资料没有标注宿主客户端,但只要客户端支持 Skills(Claude、Codex、Cursor 等),一般都能加载。

Yida Canvas Table Form权限高吗,安全吗?

权限级别为未标注权限。安装前先看它会读取或写入哪些内容。

Yida Canvas Table Form收费吗?

本站不代收费用,也没有标注具体价格。是否收费取决于技能本身和所用的模型或客户端,正式使用前按作者说明确认。

Yida Canvas Table Form用什么许可证?

许可证标注为 未说明(许可证不明确)。商用或二次分发前请到仓库确认条款原文。

热门专题

按场景挑技能
全部专题 →

技能内容以作者仓库为准;分类、权限级别与许可证状态的中文说明为中文整理,最近核验 未标注。