拟稿环节多行文本框element组件内容组件名elcommon;在流转到第二环节审批时需要将组件内容填写到审批环节原生文本框文本框组件名textfield。怎么配置在 O2OA 流程中将上一环节拟稿的 elcommonElement通用组件内容自动带入下一环节审批的 textfield文本框最推荐且最稳定的做法是通过脚本在表单加载时进行数据赋值。 以下是具体的配置步骤 1. 确认组件标识ID 在表单设计器中分别确认这两个组件的唯一标识 拟稿环节的多行文本框elcommon假设标识为 elcommon_1 审批环节的文本框textfield假设标识为 textfield_1 2. 配置赋值脚本 在审批环节的表单中找到 textfield_1 组件为其配置 load加载时事件脚本 5 。当流程流转到审批环节时该脚本会自动执行从流程上下文中获取上一环节填写的数据并赋值。 脚本示例// 1. 从当前流程的业务数据中获取拟稿环节填写的内容var sourceDatathis.data.elcommon_1;// 2. 判断数据是否存在然后赋值给当前的 textfield 组件if(sourceData){this.target.setData(sourceData);// this.target 代表当前触发事件的组件}补充说明如果您在赋值时不确定当前表单上是否一定存在 elcommon_1 这个组件或者想从纯数据层面获取除了 this.data.elcommon_1您还可以使用平台提供的 add 方法来安全地获取或创建数据节点 2 4 。但通常情况下直接通过 this.data.组件标识 读取是最便捷的。2、elcommon 组件Element通用组件如果开启了富文本编辑模式它存储的数据通常会包含 HTML 标签例如内容、加粗等。如果直接赋值给原生的 textfield用户可能会看到一堆代码标签。我们可以通过 JavaScript 的正则表达式来过滤掉这些 HTML 标签只保留纯文本。以下是完整的、包含去除 HTML 标签功能的 load 事件脚本// 1. 从当前流程的业务数据中获取拟稿环节填写的内容var sourceDatathis.data.elcommon_1;// 2. 判断数据是否存在if(sourceData){// 3. 使用正则表达式去除 HTML 标签// 将 ... 和 /... 替换为空字符串并去除首尾多余的空格var pureTextsourceData.replace(/[^]*/g,).trim();// 4. 将处理后的纯文本赋值给当前的 textfield 组件this.target.setData(pureText);}3、实现审批环节的内容“反向回填”到拟稿环节的 elcommon 组件在 O2OA 中通常有两种场景。请根据您的实际业务需求选择最合适的一种场景一审批人修改后直接覆盖拟稿人的原始数据推荐 如果审批人在 textfield 中修改了内容提交后希望直接更新流程数据中的 elcommon 字段使其成为最新内容。 配置位置 审批环节 textfield 组件的 afterChange值改变后事件。脚本代码// 获取审批人填写的文本内容var newTextthis.target.getData();// 直接将新内容写回流程的业务数据中覆盖原 elcommon 的值if(newText!undefinednewText!null){this.data.elcommon_1newText;}说明O2OA 的表单数据是 JSON 格式直接给 this.data.组件标识 赋值在表单提交时就会将修改后的数据保存到数据库中。场景二保留拟稿内容审批内容作为“审批意见”追加 如果拟稿人填写的是“申请事由”而审批人填写的是“审批意见”提交时希望将审批内容追加到拟稿内容后面而不是覆盖。 配置位置 审批环节 textfield 组件的 afterChange值改变后事件。脚本代码// 获取当前审批人填写的内容var newTextthis.target.getData();// 获取上一环节拟稿人填写的原始内容var originalTextthis.data.elcommon_1||;if(newTextnewText.trim()!){// 将审批内容拼接到原始内容后面中间加个换行符和标识方便区分var combinedTextoriginalText\n【审批意见】newText;// 将合并后的内容写回数据this.data.elcommon_1combinedText;}4、. 添加按钮组件 在审批环节的表单设计界面从左侧组件库中拖拽一个 按钮Button 组件到 textfield 附近。 按钮名称可以设置为“清空内容”或“重置”。 按钮标识ID假设设置为 btn_clear方便后续维护。 2. 配置点击事件脚本 选中刚刚添加的按钮在右侧属性面板找到 脚本Script 选项卡点击 click点击时事件输入以下代码// 1. 通过组件标识获取到对应的 textfield 组件// 请将 textfield_1 替换为您实际的文本框组件标识var targetFieldthis.form.get(textfield_1);// 2. 将文本框的内容清空targetField.setData();// 3. 同步清空流程业务数据中的 elcommon 字段// 这样在提交时就不会把旧数据或者审批意见再写回去了this.data.elcommon_1;进阶优化建议为了防止审批人不小心误触导致数据丢失您可以给这个按钮加一个二次确认的弹窗。将上面的脚本替换为以下版本var targetFieldthis.form.get(textfield_1);// 弹出确认提示框if(confirm(确定要清空当前填写的内容吗)){targetField.setData();this.data.elcommon_1;}