# AICard 结构化数据配置指南

本指南旨在指导如何通过规范的 JSON 结构配置 aicard 组件。

# 1. 核心数据结构概览 (JSON Tree)

<aicard> (根节点)
----- data (业务数据层) 
      ├---- cardType (卡片类型标识)
      ├---- businessType (业务分类标识)
      └---- businessData (业务核心内容)
            ├---- title (标题)
            ├---- desc (描述信息)
            ├---- cm (颜色模式: card-solid / background-solid)
            ├---- ha (横向对齐: left/center/right)
            ├---- lm (布局模式: single/double)
            ├---- items (卡片内容列表)
            │     ├---- content (支持 Markdown/HTML 渲染:支持加粗、颜色、链接)
            │     └---- evts (交互事件: {type, content})
            └---- btns (底部按钮列表)
                  ├---- text (按钮显示文本)
                  ├---- type (操作类型)
                  └---- content (回填逻辑/业务属性)
</aicard>                  

# 2. 核心功能说明

# 2.1 Markdown 内容渲染

卡片 items 中的 content 字段支持 Markdown 语法。

  • 富文本演示: 可使用 **加粗**[链接](url)<span style="color: red;">红色文字</span> 等。
  • 适用场景: 审批结论高亮、复杂业务描述的排版。

# 2.2 字段回填优先级规则

evts 或按钮交互中,字段标识支持 field00x(系统自动编码)或 字段名称;匹配优先级为: field00x > 数据域字段名称


# 3. 业务场景配置示例

# 3.1 卡片布局(基础样式)

演示不同背景模式及对齐方式。

  • 关键属性: cm (ColorMode), ha (HorizontalAlign)
  • 示例代码:

xml

<aicard>
{'code':'0','message':'','data':{'cardType':'9','businessType':'4','businessData':{data:{title:'有背景颜色+居中',cm:'background-solid',ha:'center',lm:'double',items:[{content:'本周潜在风险',evts:{type:'formFieldScroll',content:'本周潜在风险'}},{content:'上周总结',evts:{type:'formFieldScroll',content:'上周总结'}}],btns:[]}}}}
</aicard>
<aicard>
{'code':'0','message':'','data':{'cardType':'9','businessType':'4','businessData':{data:{title:'无背景颜色+左对齐',cm:'card-solid',ha:'left',lm:'single',items:[{content:'本周潜在风险',evts:{type:'formFieldScroll',content:'本周潜在风险'}},{content:'上周总结',evts:{type:'formFieldScroll',content:'上周总结'}}],btns:[]}}}}
</aicard>
<aicard>
{'code':'0','message':'','data':{'cardType':'9','businessType':'4','businessData':{data:{title:'无背景颜色+右对齐',cm:'card-solid',ha:'right',lm:'single',items:[{content:'本周潜在风险',evts:{type:'formFieldScroll',content:'本周潜在风险'}},{content:'上周总结',evts:{type:'formFieldScroll',content:'上周总结'}}],btns:[]}}}}
</aicard>

1773284404243.png


# 3.2 意见回填(意见交互)

用于审批场景,将态度值回填至意见区。

  • 关键属性: btns.type: 'opinion'content: { comment: '...', attitude: 'agree/disagree' }
  • 示例代码:

xml

<aicard>
{'code':'0','message':'','data':{'cardType':'9','businessType':'4','businessData':{data:{title:'办公报销审批',cm:'background-solid',lm:'single',items:[{content:'报销事由:差旅费'}, {content:'金额:5000元'}, {content:'附件:发票扫描件'}],btns:[{text:'同意报销',type:'opinion',content:{comment:'费用合理,予以批准',attitude:'agree'}}]}}}}
</aicard>

1773284496294.png


# 3.3 表单回填(联动交互)

实现卡片内容触发页面表单区域自动跳转或内容回填。

  • 关键属性: btns.type: 'formFillback'evts.type: 'formFieldScroll'
  • 示例代码:

示例代码:

<aicard>
{'code':'0','message':'','data':{'cardType':'9','businessType':'4','businessData':{data:{title:'办公周计划回填',cm:'card-solid',lm:'single',items:[{content:'上周总结:本周完成项目A需求开发,进度正常。'}, {content:'上周问题分析:测试环境偶发延迟,已协调运维优化。'}, {content:'本周潜在风险:第三方接口可能延期,需提前沟通备选方案。'}],btns:[{text:'一键回填周计划',type:'formFillback',content:'上周总结,field0001,上周问题分析,field0002,本周潜在风险,field0003'}]}}}}
</aicard>

1773284934613.png 1773284962334.png


# 3.4 消息发送(通知提醒)

用于系统通知,重点在于简练的标题与描述信息。

  • 关键属性: title (简洁明确), desc (背景信息)
  • 示例代码:

示例:

<aicard>
{'code':'0','message':'','data':{'cardType':'9','businessType':'4','businessData':{data:{title:'订单确认消息',cm:'card-solid',lm:'single',items:[{content:'订单号:FY20260312001,商品:智能办公套装,金额:¥1,299.00'}],btns:[{text:'发送确认消息',type:'sendMessageToBot',content:'请确认订单FY20260312001,商品为智能办公套装,金额1299元。'}]}}}}
</aicard>

1773285140379.png


# 3.5 表单滚动 (联动交互)

此场景通过 evts 触发,点击卡片项或全卡片时,页面自动滚动定位至对应字段位置。

  • 配置: 在 itemsboxEvts 中设置 type: 'formFieldScroll'
  • 优先级: 优先识别 field00x 编码,若无则匹配对应表单字段名称。

示例:

<aicard>{'code':'0','message':'','data':{'cardType':'9','businessType':'4','businessData':{data:{title:'滚动分析卡片',cm:'background-solid',lm:'single',items:[{content:'本周潜在风险'}, {content:'上周问题分析'}],btns:[{text:'查看详情',type:'formFieldScroll',content:'本周潜在风险,上周问题分析'}]}}}}
</aicard>

1773286074550.png

# 3.6. 附件预览滚动 (联动交互)

实现点击卡片内容即可定位并高亮原文附件。

  1. 前置步骤:先渲染一个 span 标签提供 fileId

    <span tag="seeyon-action-tag"   data='{"type": "dispatchSdkAction","action": "openFile","content": {"value":[{"fileName":"BUG报告单.doc","fileType":"application/msword","fileUrl":"/seeyon/mv/comi/office/preview?method=index&fileId=3991411971557443721&isFromComi=true"}]}}'>查看附件内容</span> 
    

    注意:目的是为了提供一个附件预览容器,其中/seeyon/mv/comi/office/preview?method=index&fileId=3991411971557443721&isFromComi=true是固定支持了滚动机制的访问地址,提供window.comiOfficeReadonlySearchTextHighlight({text:keywords},callbackFn)搜索高亮并滚动。

    支持控件:文档通编辑、金山编辑 (采用编辑预览模式打开,原厂jsapi能力)

    支持文件类型:word/pdf (不支持图片滚动)

  2. 交互逻辑:点击卡片 items 时,通过 officeTextScroll 匹配 content 关键字,在移动端 Office 预览中同步滚动并高亮段落。

示例数据

<span tag="seeyon-action-tag"   data='{"type": "dispatchSdkAction","action": "openFile","content": {"value":[{"fileName":"BUG报告单.doc","fileType":"application/msword","fileUrl":"/seeyon/mv/comi/office/preview?method=index&fileId=3991411971557443721&isFromComi=true"}]}}'>查看附件内容</span> 
<aicard>
{"code":"0","message":"","data":{"cardType":"9","businessType":"5","businessData":{"data":{"title":"BUG报告单填写规范总结","items":[{"content":"BUG回显步骤需明确登录角色用户,按顺序描述在特定模块的操作动作及数据,并附带结果描述或截图;同时需根据问题类型提供相应日志、出错公文单或表单模板。","evts":{"type":"officeTextScroll","content":"BUG回显步骤撰写要求"}},{"content":"涉及性能或平台问题时,必须补充服务器配置信息(CPU、内存、杀毒软件等)、并发数据、系统上线时间、远程访问权限、配置文件参数及进程性能截图等详细环境数据。","evts":{"type":"officeTextScroll","content":"第二部分 *涉及到性能问题、平台问题"}}]}}}}
</aicard>

1773294844649.png

# 4. 常见问题 (FAQ)

  • Q: 多个字段如何同时跳转?
    • A: 使用半角逗号分隔即可,如 'field0001,field0012'
  • Q: 如果没有标题和描述怎么办?
    • A: 直接在 businessData 对象中省略 titledesc 字段,卡片容器会自动收缩布局。

# 5. 参考提示词

  • 卡片布局&表单滚动&意见回填&表单回填&消息发送
# Role
你是一个智能卡片配置工程师。你的任务是根据用户的需求描述,生成符合前端协议标准的结构化数据。

# Core Rule
1. 所有输出必须包裹在 `&lt;aicard>{json}&lt;/aicard>` 标签中。
2. 每个输出对象必须包含 `code: '0'`, `cardType: '9'`, `businessType: '4'`。
3. 当用户输入凌乱、缺失参数或描述模糊时,请根据文档默认规则自动补全,确保 JSON 结构合法。
4. 若用户要求生成多个场景,请在同一回答中分段输出多个 `&lt;aicard>...&lt;/aicard>`。
5. content里面多字段分隔符统一使用英文逗号[,] 格式是:**字段1,字段2,字段3**, 绝对不要增加空格或者更改分割符

# Data Documentation (参数映射表)
## 关键布局参数:
- `cm` (ColorMode): `card-solid` (背景透明/卡片实色), `background-solid` (背景实色/卡片透明)
- `ha` (HorizontalAlign): `left` / `center` / `right`
- `lm` (LayoutMode): `single` (单列), `double` (双列)

## 核心业务场景与类型映射 (Type Mapping):
- **`formFieldScroll` (滚动联动)**: 场景:点击卡片项或按钮,页面自动滚动定位到具体表单字段。
  - 参数 `content`: 字段 名称/id 列表,如 `field0001,field0002,合同名称`,字段里面不要加空格,比如: [AI 按钮 控件] 应该是[AI按钮控件] 。
- **`opinion` (意见回填)**: 场景:审批通过/驳回。 
  - `attitude` 可选:`agree` (同意), `disagree` (驳回), `haveRead` (已阅)。
- **`formFillback` (表单回填)**: 场景:自动将预设内容填入指定输入框。
- **`sendMessageToBot` (机器人交互)**: 场景:向业务助手发送咨询或报错信息。

# Examples
## 场景1:含有复杂滚动交互的驳回审批卡片
输入:生成一个审批驳回卡片,背景采用背景实色,包含3个滚动项,按钮显示“驳回意见”且态度为驳回。
输出:
&lt;aicard>{'code':'0','message':'','data':{'cardType':'9','businessType':'4','businessData':{data:{title:'审批意见',cm:'background-solid',lm:'single',items:[{content:'驳回理由:折扣过低',evts:{type:'formFieldScroll',content:'field0001'}},{content:'审批记录',evts:{type:'formFieldScroll',content:'field0070'}},{content:'附件预览',evts:{type:'formFieldScroll',content:'field0016'}}],btns:[{text:'驳回意见',type:'opinion',content:{comment:'折扣不合规',attitude:'disagree'}}]}}}}&lt;/aicard>

## 场景2:多功能组合(回填+机器人)
输入:生成一个双列布局卡片,包含表单回填按钮和机器人发送按钮。
输出:
&lt;aicard>{'code':'0','message':'','data':{'cardType':'9','businessType':'4','businessData':{data:{title:'多功能操作盘',cm:'card-solid',ha:'center',lm:'double',items:[{content:'字段001修正'}],btns:[{text:'自动填充',type:'formFillback',content:'field0001'},{text:'咨询AI',type:'sendMessageToBot',content:'这个字段怎么填?'}]}}}}&lt;/aicard>

# Instruction
请根据用户接下来的要求,生成符合上述协议的 JSON 数据。
  • 附件滚动
# 角色
你是附件内容总结助手,能够先对用户首次输入的数据进行精准总结。

## 技能

仔细分析用户首次输入的数据,提取关键信息段落信息,用简洁、准确的语言进行总结。总结内容应涵盖数据的核心要点。最终按照特定格式的AICard来返回。

##输出格式:
- 使用例子里面指定格式的span作为首行
- 使用AICard格式作为段落,注意文字内换行请使用斜杠n斜杠r(\r\n):
&lt;aicard>
{
  "code": "0",
  "message": "",
  "data": {
    "cardType": "9", //固定值
    "businessType": "5", //固定值
    "businessData": {
      "data": {
        "title": "{段落的标题}",
        "items": [
          {
            "content": "{总结的**段落1**}",
            "evts": {
              "type": "officeTextScroll", //固定文字
              "content": "{提取原始文字的一个关键词语,必须来自用户输入}" 
            }
          },
          {
            "content": "{总结的**段落2**}",
            "evts": {
              "type": "officeTextScroll", //固定文字
              "content": "{提取原始文字的一个关键词语,必须来自用户输入}}" 
            }
          }
        ]
      }
    }
  }
}
&lt;/aicard>
例:
&lt;span tag="seeyon-action-tag"   data='{"type": "dispatchSdkAction","action": "openFile","content": {"value":[{"fileName":"人工智能研究.doc","fileType":"application/msword","fileUrl":"/seeyon/mv/comi/office/preview?method=index&amp;fileId=3991411971557443721&amp;isFromComi=true"}]}}'>查看附件内容&lt;/span> 
{ "code": "0", "message": "", "data": { "cardType": "9", "businessType": "5", "businessData": { "data": { "title": "人工智能技术及其应用概述", "items": [ { "content": "人工智能是一种通过计算机模拟人类智能行为的技术,具备学习、推理和自我纠错等能力,并随着算力和数据的发展迅速进步。", "evts": { "type": "officeTextScroll", "content": "计算机系统模拟人类智能的技术" } }, { "content": "人工智能已在医疗、金融和制造等行业广泛应用,如医疗影像识别、金融风控与客服、以及制造业生产流程优化。", "evts": { "type": "officeTextScroll", "content": "AI可以辅助医生进行影像识别和疾病预测" } } ] } } } }


## 限制
- span内容不要做任何修改,原封不动显示
- 必须严格按照先总结首次数据,再结合总结回答后续问题的流程进行操作。
- 回答内容需基于用户首次输入的数据总结以及后续问题,不得引入无关信息。
- 总结部分要简洁明了,突出重点,避免冗长复杂的表述。
- 回答语言应通俗易懂,符合正常交流习惯。
编撰人:ranpf、het