企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
# 表单操作相关接口 csdk.core里面封装了对表单数据操作的各种常用接口 > ## csdk.core.getFieldData | 说明 | 参数 | 返回值 | 支持详情 | | :--- | :--- | :--- | :--- | | 获取表单指定字段的数据,如果只主表只需要传入fieldId 参数,如果是明细表,还需要传入tableName和recordId<br>**[注]必须在表单事件、钩子内使用** | {fieldId,tableName,recordId} <br> **fieldId** { string } 字段id,如field0001 <br> **tableName** { string } 明细表名<br>**recordId** { string } 明细表行记录id | data { object } | v7.1SP1+ [CAP4、CAP3] | 示例 ```javascript //获取主表字段为field0001的数据 var opts = {fieldId: 'field0001'}; var data = csdk.core.getFieldData(opts); //获取明细表formson_0001,明细行记录号为987654321,并且字段为field0001的数据 opts = { fieldId: 'field0001', tableName:'formson_0001', recordId:'123456789' }; var data = csdk.core.getFieldData(opts); ``` <br> > ## csdk.core.getFormData | 说明 | 参数 | 返回值 | 支持详情 | | ------------------ | ---- | --------------- | -------- | | 获取整个表单的数据 | 空 | data { object } | v7.1SP1+ [CAP4、CAP3] | 示例 ```javascript var data = csdk.core.getFormData(); //注意,此接口涉及到大量数据克隆,使用时千万不要高频次调用 ``` <br> > ## csdk.core.getMetaData | 说明 | 参数 | 返回值 | 支持详情 | | ------------------ | ---- | --------------- | -------- | | 获取表单,affairId,templateId,moduleId以及视图权限等信息 | 空 | metaData { object } | v7.1SP1+ [CAP4、CAP3] | 示例 ```javascript var metaData = csdk.core.getMetaData(); //metaData格式如下 { rightId, //权限id moduleId, //有流程的时候为summaryId,无流程中为主数据Id,即contentDataId moduleType, //值为'1','42'等 contentDataId, //表单主数据Id contentTemplateId, //表单定义信息id,后台form bean的id,即模板id moduleTemplateId, //应用绑定id //affairId属性只在有流程中存在 affairId //个人待办Id } ``` <br> > ## csdk.core.getSubmitData | 说明 | 参数 | 返回值 | 支持详情 | | ------------------ | ---- | --------------- | -------- | | 获取需要提交到后台的表单数据,此数据是经过瘦身的数据,key,value的格式 | 空 | data { object } | v7.1SP1+ [CAP4、CAP3] | 示例 ```javascript var submitData = csdk.core.getSubmitData(); ``` <br> > ## csdk.core.setFieldData - **参数:**<font color=#34495e>csdk.core.setFieldData(data) data={fieldId, fieldData, tableName?, recordId?}或[{fieldId, fieldData, tableName?, recordId?}]</font> <font color=#e96900>@param data { object |Array } 需要设置的字段对象值,格式为数组或对象,如果传入的是数组,即同时对多个字段进行值的设置,如果传入的单个对象,即值设置一个字段的值</font> <font color=#e96900> data.fieldId { string } 字段id,如field0001</font> <font color=#e96900> data.fieldData { object } 设置的字段数据,对象格式,可以设置value、display、auth等属性,下述例子有说明</font> <font color=#e96900> data.tableName { string } 明细表名,主表不需要传入此参数</font> <font color=#e96900> data.recordId { string } 明细表行记录id,主表不需要传入此参数</font> - **返回值:**<font color=#e96900>undefined</font> - **说明:**<font color=#34495e>设置表单字段数据,可以是一个字段或者多个字段一起设置。fieldData仅支持的字段属性为“value”, “display”, “placeHolder”, “auth”, “atts”,详细说明参照下述示例</font> - **支持版本:**<font color=#34495e>v7.1SP1+&nbsp;&nbsp;&nbsp;&nbsp;[CAP4、CAP3] </font> - **示例:** ```javascript var data = { fieldId: 'field0001', fieldData: { value: '2019-05-01', //数据值,存入数据库中的value值 display: '2019年5月1日', //字段渲染在页面上的显示值,通常是经过format后的值 placeHolder: '请选择日期', //input或其它控件输入提示语 auth: 'browse', //字段权限,只能修改为browse(浏览)或hide(隐藏), //如果被设置字段是必填且为空时,不能修改字段权限 atts:[] //图片、文档、附件等附件类型字段的附件信息 } }; //设置单个主表字段值 csdk.core.setFieldData(data); //设置单个明细表字段值 var data = { fieldId: 'field0010', tableName: 'formson_0001', recordId: '123456789', fieldData: {...} }; var data = [ { fieldId: 'field0001', fieldData: {...} }, { fieldId: 'field0010', tableName: 'formson_0001', recordId: '123456789', fieldData: {...} } ]; //同时设置多个字段值 csdk.core.setFieldData(data); ``` <br> > ## csdk.core.patchData | 说明 | 参数 | 返回值 | 支持详情 | | ------------------ | ---- | --------------- | -------- | | 根据后台接口返回的data数据,更新表单前端渲染视图,注意,此接口使用的数据一定是经过后台接口返回的格式,并且格式不能随意修改 | data { object } 参照后台接口返回的数据格式 | undefined | v7.1SP1+ [CAP4、CAP3] | 示例 ```javascript $.ajax({ url, ..., success(res) { //这里通过后台接口拿到数据,直接将原始数据格式传入patchData csdk.core.patchData(res.data); } }); //后台接口返回的数据格式 { "code": 0, "data": { "code": "2000", "data": { "tableData": { "formmain_0039": { "update": { "field0008": { "showValue": "11", "showValue2": "11", "relationData": { "imgShow": "1", "viewThrough": "1", "toMasterDataId": "5349687614034585905" }, "relationInfo": { "toFormType": "42", "fillInRow": "0", "buttonName": "插入文本1", "pcView": "2955061720904059008.-7526562575306899268", "relationShipId": "-4677381009382161664", "phoneView": "-3291413942012787928.-79988990681201604", "mainSelector": "field0008", "fieldInfo": "field0008", "mainSelectorDisplay": "文本1", "toVersion": "default_form" }, "value": "11" } } } } }, "message": "the operation is success!!!" }, "message": "" } ``` <br> > ## csdk.core.preSave | 说明 | 参数 | 返回值 | 支持详情 | | ------------------ | ---- | --------------- | -------- | | 预提交接口,调用此接口时,表单会向后台请求预提交数据接口,待后台响应完成后再通过回调通知使 用者,无论是成功或失败都会进入回调 | callback { Function } 调用预提交时传入的回调函数,无论成功与否都进入此回调,接收两个参数err和data,第一个参数err为null时表示成功,如果err不为null表示失败 | undefined | v7.1SP1+ [CAP4、CAP3] | 示例 ```javascript csdk.core.preSave(function(err, data){ if (err) { //调用失败 return; } //调用成功 //do something }); ``` <br> > ## csdk.core.getSelectedRecord | 说明 | 参数 | 返回值 | 支持详情 | | ------------------ | ---- | --------------- | -------- | | 获取指定明细表当前选中行记录,如果没有选中的记录返回null | tableName { string } 明细表表名 | record { object } | v7.1SP1+ [CAP4、CAP3] | 示例 ```javascript var tableName = 'formson_001'; //获取明细表formson_001当前选中行 var curRecord = csdk.core.getSelectedRecord(tableName); ``` <br> > ## csdk.core.deleteRecord | 说明 | 参数 | 返回值 | 支持详情 | | ------------------ | ---- | --------------- | -------- | | 删除目标明细表指定行记录,如果records为true表示删除所有行。此API涉及到后台接口调用,因此在调用过程中会弹出遮罩,调用完成进入回调后遮罩关闭 | csdk.core.deleteRecord(options, callback) <br>**options={ tableName, records}** <br>options { object } 第一个参数为options对象格式 <br> **tableName** { string } 明细表表名 <br>**records** { Array或Boolean } 待删除的明细行记录id集合,如果records为Boolean,并且为true,则表示删除所有行,否则为 Array,如['123456789'] <br>**callback** { Function } 删除记录成功或失败的回调<br>callback接收参数:callback(err)<br>err { null 或 object}:错误信息 | undefined | v7.1SP1+ [CAP4、CAP3] | 示例 ```javascript var tableName = 'formson_001'; //删除明细表formson_001所有行记录 csdk.core.deleteRecord({tableName: tableName, records: true}, function(err){ if (err) { //删除失败 return; } //删除成功 //do something }); //删除明细表formson_001当前选中行 var curRecord = csdk.core.getSelectedRecord(tableName); var curRecordId = curRecord ? (curRecord.id || curRecord.recordId): null; csdk.core.deleteRecord({tableName: tableName, records: [curRecordId]}, function(err){ if (err) { //删除失败 return; } //删除成功 //do something }); ``` <br> > ## csdk.core.addRecord | 说明 | 参数 | 返回值 | 支持详情 | | ------------------ | ---- | --------------- | -------- | | 添加一行空记录到目标明细表指定位置,如果posRecordId为null表示添加到明细表末尾,如果posRecordId有效,则添加到目标行的下一行位置。此API涉及到后台接口调用,因此在调用过程中会弹出遮罩,调用完成进入回调后遮罩关闭。 | **opts** :{ <br/>tableName,<br/>posRecoedId,<br/>records: {}<br/>}<br/>**callback**(err,newRecord) err { null 或 object} 错误信息 <br>newRecord {object } 返回新增的行记录,newRecord.id是后台接口分配的行id号 | undefined | v7.1SP1+ [CAP4、CAP3] <br/>支持多行插入:v8.0+(或v7.1SP1 930+补丁包) | 示例 ```javascript var tableName = 'formson_001'; //在明细表formson_001末尾添加一行空行 var opts = { tableName: tableName, posRecordId: null }; csdk.core.addRecord(opts, function(err, newRecord){ if (err) { //添加失败 return; } //添加成功,取得新记录的id var newRecordId = newRecord.id || newRecord.recordId; //do something }); //添加一行空行到到明细表formson_001当前选中行后面 var curRecord = csdk.core.getSelectedRecord(tableName); var curRecordId = curRecord ? (curRecord.id || curRecord.recordId) : null; opts = { tableName: tableName, posRecordId: curRecordId, }; csdk.core.addRecord(opts, function(err, newRecord){ if (err) { //添加失败 return; } //添加成功,取得新记录的id var newRecordId = newRecord.id || newRecord.recordId; //do something }); ``` <br> > ## csdk.core.copyRecord | 说明 | 参数 | 返回值 | 支持详情 | | ------------------ | ---- | --------------- | -------- | | 复制一行记录到目标明细表指定位置,copyRecordId是被复制的行记录号,copyRecordId在记录中找不到或非法,则提示找不到被复制的行记录。posRecordId的作用同接口csdk.core.addRecord一致。此API涉及到后台接口调用,因此在调用过程中会弹出遮罩,调用完成进入回调后遮罩关闭。 | csdk.core.copyRecord(options, callback) <br>**options={ tableName, copyRecordId, posRecordId}** <br>options { object } 第一个参数为options对象格式 <br>**tableName** { string } 明细表表名 <br>**copyRecordId** { string } 被复制的行记录号 <br>**posRecordId** { string 或 null } 新增的明细行插入的 位置,posRecordId为空,则插入到明细表末尾,否则插入到目标位置的下一行 <br>**callback** { Function } 复制行记录成功或失败的回调 | undefined | v7.1SP1+ [CAP4、CAP3] | 示例 ```javascript var tableName = 'formson_001'; var curRecord = csdk.core.getSelectedRecord(tableName); var curRecordId = curRecord ? (curRecord.id || curRecord.recordId) : null; var opts = { tableName: tableName, copyRecordId: curRecordId, posRecordId: null, }; //拷贝明细表formson_001当前选中的行并添加到明细表末尾 csdk.core.copyRecord(opts, function(err, newRecord){ if (err) { //拷贝失败 return; } //拷贝成功,取得新记录的id var newRecordId = newRecord.id || newRecord.recordId; //do something }); //拷贝明细表formson_001当前选中的行并添加到当前选中行后面 opts = { tableName: tableName, copyRecordId: curRecordId, posRecordId: curRecordId, }; csdk.core.copyRecord(opts, function(err, newRecord){ if (err) { //拷贝失败 return; } //拷贝成功,取得新记录的id var newRecordId = newRecord.id || newRecord.recordId; //do something }); ```