# 表单操作相关接口
csdk.core里面封装了对表单数据操作的各种常用接口
# csdk.core.getFieldData
说明 | 参数 | 返回值 | 支持详情 |
---|---|---|---|
获取表单指定字段的数据,如果只主表只需要传入fieldId 参数,如果是明细表,还需要传入tableName和recordId | |||
[注]必须在表单事件、钩子内使用 | {fieldId,tableName,recordId} |
fieldId { string } 字段id,如field0001
tableName { string } 明细表名
recordId { string } 明细表行记录id | data { object } | v7.1SP1+ [CAP4、CAP3] |
示例
//获取主表字段为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);
# csdk.core.getFormData
说明 | 参数 | 返回值 | 支持详情 |
---|---|---|---|
获取整个表单的数据 | 空 | data { object } | v7.1SP1+ [CAP4、CAP3] |
示例
var data = csdk.core.getFormData();
//注意,此接口涉及到大量数据克隆,使用时千万不要高频次调用
# csdk.core.getMetaData
说明 | 参数 | 返回值 | 支持详情 |
---|---|---|---|
获取表单,affairId,templateId,moduleId以及视图权限等信息 | 空 | metaData { object } | v7.1SP1+ [CAP4、CAP3] |
示例
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
}
# csdk.core.getSubmitData
说明 | 参数 | 返回值 | 支持详情 |
---|---|---|---|
获取需要提交到后台的表单数据,此数据是经过瘦身的数据,key,value的格式 | 空 | data { object } | v7.1SP1+ [CAP4、CAP3] |
示例
var submitData = csdk.core.getSubmitData();
# csdk.core.setFieldData
- **参数:**csdk.core.setFieldData(data) data={fieldId, fieldData, tableName?, recordId?}或[{fieldId, fieldData, tableName?, recordId?}] @param data { object |Array } 需要设置的字段对象值,格式为数组或对象,如果传入的是数组,即同时对多个字段进行值的设置,如果传入的单个对象,即值设置一个字段的值 data.fieldId { string } 字段id,如field0001 data.fieldData { object } 设置的字段数据,对象格式,可以设置value、display、auth等属性,下述例子有说明 data.tableName { string } 明细表名,主表不需要传入此参数 data.recordId { string } 明细表行记录id,主表不需要传入此参数
- **返回值:**undefined
- **说明:**设置表单字段数据,可以是一个字段或者多个字段一起设置。fieldData仅支持的字段属性为“value”, “display”, “placeHolder”, “auth”, “atts”,详细说明参照下述示例
- **支持版本:**v7.1SP1+ [CAP4、CAP3]
- 示例:
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);
# csdk.core.patchData
说明 | 参数 | 返回值 | 支持详情 |
---|---|---|---|
根据后台接口返回的data数据,更新表单前端渲染视图,注意,此接口使用的数据一定是经过后台接口返回的格式,并且格式不能随意修改 | data { object } 参照后台接口返回的数据格式 | undefined | v7.1SP1+ [CAP4、CAP3] |
示例
$.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": ""
}
//后台接口返回的回填明细表的数据格式
{
"code": 0,
"data": {
"code": "2000",
"data": {
"tableData": {
"formson_0064": {
"update": {
"-2826325192640280451": {
"field0021": {
"showValue": "11",
"showValue2": "11",
"value": "11"
}
}
}
}
}
},
"message": "the operation is success!!!"
},
"message": ""
}
# csdk.core.preSave
说明 | 参数 | 返回值 | 支持详情 |
---|---|---|---|
预提交接口,调用此接口时,表单会向后台请求预提交数据接口,待后台响应完成后再通过回调通知使 用者,无论是成功或失败都会进入回调 | callback { Function } 调用预提交时传入的回调函数,无论成功与否都进入此回调,接收两个参数err和data,第一个参数err为null时表示成功,如果err不为null表示失败 | undefined | v7.1SP1+ [CAP4、CAP3] |
示例
csdk.core.preSave(function(err, data){
if (err) {
//调用失败
return;
}
//调用成功
//do something
});
# csdk.core.getSelectedRecord
说明 | 参数 | 返回值 | 支持详情 |
---|---|---|---|
获取指定明细表当前选中行记录,如果没有选中的记录返回null | tableName { string } 明细表表名 | record { object } | v7.1SP1+ [CAP4、CAP3] |
示例
var tableName = 'formson_001';
//获取明细表formson_001当前选中行
var curRecord = csdk.core.getSelectedRecord(tableName);
# csdk.core.deleteRecord
说明 | 参数 | 返回值 | 支持详情 |
---|---|---|---|
删除目标明细表指定行记录,如果records为true表示删除所有行。此API涉及到后台接口调用,因此在调用过程中会弹出遮罩,调用完成进入回调后遮罩关闭 | csdk.core.deleteRecord(options, callback) |
options={ tableName, records}
options { object } 第一个参数为options对象格式
tableName { string } 明细表表名
records { Array或Boolean } 待删除的明细行记录id集合,如果records为Boolean,并且为true,则表示删除所有行,否则为 Array,如['123456789']
callback { Function } 删除记录成功或失败的回调
callback接收参数:callback(err)
err { null 或 object}:错误信息 | undefined | v7.1SP1+ [CAP4、CAP3] |
示例
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
});
# csdk.core.addRecord
说明 | 参数 | 返回值 | 支持详情 |
---|---|---|---|
添加一行空记录到目标明细表指定位置,如果posRecordId为null表示添加到明细表末尾,如果posRecordId有效,则添加到目标行的下一行位置。此API涉及到后台接口调用,因此在调用过程中会弹出遮罩,调用完成进入回调后遮罩关闭。 | opts :{ |
tableName,
posRecoedId,
records: {}
}
callback(err,newRecord) err { null 或 object} 错误信息
newRecord {object } 返回新增的行记录,newRecord.id是后台接口分配的行id号 | undefined | v7.1SP1+ [CAP4、CAP3]
支持多行插入:v8.0+(或v7.1SP1 930+补丁包) |
示例
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
});
# csdk.core.copyRecord
说明 | 参数 | 返回值 | 支持详情 |
---|---|---|---|
复制一行记录到目标明细表指定位置,copyRecordId是被复制的行记录号,copyRecordId在记录中找不到或非法,则提示找不到被复制的行记录。posRecordId的作用同接口csdk.core.addRecord一致。此API涉及到后台接口调用,因此在调用过程中会弹出遮罩,调用完成进入回调后遮罩关闭。 | csdk.core.copyRecord(options, callback) |
options={ tableName, copyRecordId, posRecordId}
options { object } 第一个参数为options对象格式
tableName { string } 明细表表名
copyRecordId { string } 被复制的行记录号
posRecordId { string 或 null } 新增的明细行插入的 位置,posRecordId为空,则插入到明细表末尾,否则插入到目标位置的下一行
callback { Function } 复制行记录成功或失败的回调 | undefined | v7.1SP1+ [CAP4、CAP3] |
示例
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
});
快速跳转
