功能说明:用户可通过该接口创建修改表单属性、表单字段等配置项,由于暂不支持接口创建流程节点,审批单则采用自由流程。
{
"deptIds": [
"部门全称1",
"部门全称2"
],
"detailDeptIds": [
"部门全称1",
"部门全称2"
],
"detailTagIds": [
"标签id1",
"标签id2"
],
"detailUserIds": [
"通讯录账号1",
"通讯录账号2"
],
"downloadMxDeptIds": [
"部门全称1",
"部门全称2"
],
"downloadMxTagIds": [
"标签id1",
"标签id2"
],
"downloadMxUserIds": [
"通讯录账号1",
"通讯录账号2"
],
"formControl": {
"actorTime": 1,
"actorTimeRate": 2,
"canSeeDataReport": 2,
"daySubmitNum": 2,
"detailViewLevel": 2,
"endSendMsgTime": 5,
"formPhotoSet": "0",
"isAnonymous": 1,
"isBuildSort": 1,
"isBuildTitle": "2",
"isCanAt": 1,
"isCanDel": "0",
"isCanUpdate": "0",
"isDisableRelatives": "0",
"isDisableRelevants": "0",
"isForceAnonymous": 1,
"isOpenDraft": 1,
"isOpenPrint": 1,
"isRelatives": "1",
"isRelevants": "1",
"isRemind": "1",
"isSaveOrbit": 1,
"isSendMsg": "0",
"isTask": "2",
"isUpdaeTitle": 1,
"isWriterRemind": "1",
"isWxDownloadMx": 2,
"limitTimeRate": 2,
"limitTimes": "07:00-09:00",
"relativesMaxNum": 10,
"sendRelevantStatus": "3",
"startSendMsgTime": 5,
"startTime": "2022-01-01 00:00:00",
"stopTime": "2022-12-31 23:59:59",
"submitTime": 100,
"timeRateNum": "0,6",
"titleTemplate": "API创建表单{create_user_name}_{yyyyMMdd}",
"typeName": "API创建表单分组"
},
"formCustomRemind": [
{
"addressBookItemIds": [
"fo通讯录成员字段id"
],
"endItemKey": "CUSTOM_TIME()",
"endTime": "2022-12-31 12:59:59",
"formConditionJson": [
{
"compareVal": "单行文字值",
"fieldKey": "fo单行文字字段id",
"operator": 1
}
],
"holidayRemind": 0,
"personnelControl": 1,
"remindAroundDay": 5,
"remindAroundType": 2,
"remindConditions": 1,
"remindInterval": 2,
"remindItemKey": "fo日期字段id",
"remindNumber": 10,
"remindStatus": 1,
"remindTime": "12:00:00",
"remindType": 1,
"remindUserIds": "通讯录账号1|通讯录账号2",
"repeatType": 1,
"specificMember": 1,
"weekendRemind": 0
}
],
"formDetails": {
"content": "API创建表单示例,此处支持富文本标签<\/p>",
"creatorDepartmentDisplayOrder": 2,
"creatorDepartmentLevel": 3,
"customIcon": {
"iconColor": "rgba(128,0,0,1)",
"iconName": "baobiao"
},
"customLogo": {
"iconType": 1,
"url": "自定义logo相对路径"
},
"definitionVersionsId": "表单id",
"departmentFieldDisplayOrder": 1,
"departmentLevel": 3,
"formName": "API创建表单",
"formStyle": {
"background": "#f7f8fa",
"backgroundRepeat": "no-repeat",
"backgroundType": 0,
"fieldStyle": {
"color": "#383838",
"fontFamily": "PingFangSC-Regular,'Microsoft YaHei','宋体', Tahoma, Arial, sans-serif",
"fontSize": "14px",
"fontWeight": "normal",
"space": 0
},
"headerImg": "背景图片相对路径",
"themeColor": "#fff",
"titleStyle": {
"color": "#383838",
"fontFamily": "PingFangSC-Regular,'Microsoft YaHei','宋体', Tahoma, Arial, sans-serif",
"fontSize": "18px",
"fontWeight": "normal",
"textAlign": "left"
}
},
"isBuildSerialNumber": 1,
"isCustomRemind": 1,
"isFormValidators": 1,
"isInitPage": 1,
"style": 1,
"thumbnail": "表单缩略图",
"title": "API创建表单"
},
"formField": [
{
"_id": "fo单行文字字段id",
"_type": "TextField",
"customPrompt": "请输入正确的单行文字",
"label": "单行文字",
"maximum_length": 10,
"minimum_length": 2,
"notes": "请输入单行文字",
"notesHtml": "
请输入单行文字<\/p>",
"predefinedCache": 0,
"predefinedType": 0,
"unique": false,
"validations": [
"presence"
]
},
{
"_id": "fo手机号码字段id",
"_type": "MobileField",
"label": "手机号码",
"messageVerification": 1,
"openPhoneCheck": 1,
"predefinedCache": 0,
"predefinedType": 3,
"unique": false
},
{
"_id": "fo电话字段id",
"_type": "TelephoneField",
"label": "电话",
"predefinedCache": 0,
"predefinedType": 0,
"unique": false
},
{
"_id": "fo邮箱字段id",
"_type": "EmailField",
"label": "邮箱",
"predefinedCache": 0,
"predefinedType": 0,
"unique": false
},
{
"_id": "fo单项选择字段id",
"_type": "RadioButton",
"choices": [
{
"_id": "fo选项1id",
"relate_show_ids": [
"fo下拉框字段id"
],
"selected": true,
"value": "选项1"
},
{
"_id": "fo选项2id",
"selected": false,
"value": "选项2"
},
{
"_id": "fo选项3id",
"others": 1,
"selected": false,
"value": "其他"
}
],
"label": "单项选择",
"line_row": 3,
"predefinedCache": 0,
"predefinedType": 0,
"unique": false
},
{
"_id": "fo多项选择字段id",
"_type": "CheckBox",
"choices": [
{
"_id": "fo选项1id",
"selected": true,
"value": "包邮"
},
{
"_id": "fo选项2id",
"selected": false,
"value": "满减"
},
{
"_id": "fo选项3id",
"others": 1,
"selected": false,
"value": "其他"
}
],
"label": "多项选择",
"predefinedCache": 0,
"predefinedType": 0,
"unique": false
},
{
"_id": "fo下拉框字段id",
"_type": "DropDown",
"choices": [
{
"_id": "fo选项1id",
"quota": "100",
"selected": true,
"value": "选项1"
},
{
"_id": "fo选项2id",
"selected": false,
"value": "选项2"
},
{
"_id": "fo选项3id",
"others": 1,
"selected": false,
"value": "其他"
}
],
"isOpenQuota": 1,
"label": "下拉框",
"optionResetType": 0,
"predefinedCache": 0,
"predefinedType": 0,
"quotaConfigVO": {
"cycleNumber": 2,
"cycleRate": 2,
"cycleTime": 3,
"startTime": "06:00"
},
"refOptionQuotaKey": "fo日期字段id",
"unique": false
},
{
"_id": "fo两级下拉框字段id",
"_type": "CascadeDropDown",
"choices": [
{
"_id": "fo选项1id",
"selected": false,
"sub_choices": [
{
"value": "二级选项1"
},
{
"value": "二级选项2"
}
],
"value": "选项1"
},
{
"_id": "fo选项2id",
"selected": false,
"sub_choices": [
{
"value": "二级选项1"
},
{
"value": "二级选项2"
}
],
"value": "选项2"
}
],
"label": "两级下拉框",
"predefinedCache": 0,
"predefinedType": 0,
"unique": false
},
{
"_id": "fo地理位置字段id",
"_type": "GeoField",
"freeGeo": 1,
"geoFieldRule": {
"showCoordinate": 1
},
"label": "地理位置",
"predefinedCache": 0,
"predefinedType": 0,
"unique": false
},
{
"_id": "fo省市区字段id",
"_type": "CityField",
"cityType": 0,
"label": "省市区",
"predefinedCache": 0,
"predefinedType": 0,
"unique": false
},
{
"_id": "fo多行文字id",
"_type": "TextArea",
"label": "多行文本",
"predefinedCache": 0,
"predefinedType": 0,
"unique": false
},
{
"_id": "fo日期字段id",
"_type": "DateField",
"end_date": "2022-12-31",
"label": "日期",
"predefinedCache": 0,
"predefinedType": 0,
"start_date": "2022-01-01",
"unique": false
},
{
"_id": "fo时间字段id",
"_type": "TimeField",
"label": "时间",
"predefinedCache": 0,
"predefinedType": 0,
"unique": false
},
{
"_id": "fo日期时间字段id",
"_type": "DateTimeField",
"label": "日期时间",
"predefinedCache": 0,
"predefinedType": 2,
"predefined_value": "NOW()",
"unique": false
},
{
"_id": "fo评分字段id",
"_type": "RatingField",
"label": "评分",
"maximum_length": 10,
"predefinedCache": 0,
"predefinedType": 0,
"rating_type": "star",
"unique": false
},
{
"_id": "fo图片字段id",
"_type": "ImageField",
"label": "图片",
"predefinedCache": 0,
"predefinedType": 0,
"unique": false
},
{
"_id": "fo说明项字段id",
"_type": "ImageCheckBox",
"label": "请填写子表单",
"notes": "请填写子表单",
"predefinedCache": 0,
"predefinedType": 0,
"unique": false
},
{
"_id": "fo子表单字段id",
"_type": "ChildField",
"children": [
{
"_id": "fo子字段图片字段id",
"_type": "ImageField",
"label": "子字段图片",
"predefinedCache": 0,
"predefinedType": 0,
"unique": false
},
{
"_id": "fo子字段单行文字字段id",
"_type": "TextField",
"label": "子字段单行文字",
"predefinedCache": 0,
"predefinedType": 0,
"unique": false
},
{
"_id": "fo子字段数字字段id",
"_type": "NumberField",
"accurate_num": 2,
"label": "子字段数字",
"predefinedCache": 0,
"predefinedType": 0,
"unique": false
},
{
"_id": "fo子字段数字2字段id",
"_type": "NumberField",
"accurate_num": -1,
"label": "子字段数字2",
"predefinedCache": 0,
"predefinedType": 0,
"unique": false
},
{
"_id": "fo子字段计算式字段id",
"_type": "EquationField",
"accurate_num": 2,
"calculator": "fo子字段数字字段id*fo子字段数字2字段id",
"label": "子字段计算式",
"notes": "子字段数字*子字段数字2",
"predefinedCache": 0,
"predefinedType": 0,
"unique": false
}
],
"label": "子表单",
"predefinedCache": 0,
"predefinedType": 0,
"unique": false
},
{
"_id": "fo统计字段id",
"_type": "StatisticsField",
"accurate_num": 2,
"calculator": "fo子表单字段id|fo子字段计算式字段id",
"label": "统计",
"line_row": 1,
"predefinedCache": 0,
"predefinedType": 0,
"unique": false
},
{
"_id": "fo数字字段id",
"_type": "NumberField",
"accurate_num": 2,
"label": "数字",
"numberFormat": {
"isThousandSplit": 1,
"isUnit": 1,
"numType": 1,
"unitValue": "元"
},
"predefinedCache": 0,
"predefinedType": 0,
"predefined_value": "6.00",
"unique": false
},
{
"_id": "fo计算式字段id",
"_type": "EquationField",
"accurate_num": 2,
"calculator": "fo统计字段id+fo数字字段id",
"label": "计算式",
"notes": "统计+数字",
"predefinedCache": 0,
"predefinedType": 0,
"unique": false
},
{
"_id": "fo表单关联字段id",
"_type": "FORMREFCustomerField",
"label": "表单关联",
"options": [
{
"childKey": "fo表单关联子字段id",
"forbidMinus": false,
"refKey": "fo底单字段2id",
"type": "setEq",
"updateNull": false,
"updateSame": false
}
],
"predefinedCache": 0,
"predefinedType": 0,
"ref_cfg": {
"filter_fields": [
{
"filter_condition": "1",
"filter_field": "fo底单字段2id",
"filter_type": 1,
"filter_value": "fo单行文字字段id"
}
],
"isCanSeeRefForm": 1,
"main_field": "fo底单字段id",
"queryCommit": 1,
"show_fields": [
"fo底单字段id",
"fo底单字段2id",
"fo底单字段3id"
],
"sortField": "fo底单字段2id",
"sortOrder": 1
},
"ref_id": "底单id",
"unique": false
},
{
"_id": "foPlus关联字段id",
"_type": "FORMREFCustomerField",
"applicationId": "Plus应用id",
"label": "Plus关联",
"predefinedCache": 0,
"predefinedType": 0,
"ref_cfg": {
"filter_fields": [
{
"filter_condition": "1",
"filter_field": "key_底单字段2id",
"filter_type": 1,
"filter_value": "fo单行文字字段id"
}
],
"main_field": "key_底单字段id",
"queryCommit": 0,
"show_fields": [
"key_底单字段id",
"key_底单字段2id",
"key_底单字段3id"
],
"sortField": "fo底单字段2id",
"sortOrder": 0
},
"ref_id": "PlusFormModelid",
"ref_title": "Plus表单标题",
"srcType": "QIQIAO_PLUS",
"unique": false
},
{
"_id": "fo生成二维码字段id",
"_type": "QrCodeField",
"label": "生成二维码",
"predefinedCache": 0,
"predefinedType": 0,
"qrCodeFieldCfg": {
"format": "fo单行文字字段1,fo日期字段1",
"scanType": 0,
"showType": 1
},
"unique": false
},
{
"_id": "fo手写签名字段id",
"_type": "HandWrittenField",
"label": "手写签名",
"openedHandwritten": 1,
"predefinedCache": 0,
"predefinedType": 0,
"unique": false
},
{
"_id": "fo数据源字段id",
"_type": "Datasource",
"cascadeLevel": 3,
"label": "数据源",
"line_row": 3,
"predefinedCache": 0,
"predefinedType": 0,
"ref_cfg": {
"datasource_fields": [
{
"field_key": "id",
"field_name": "编号",
"field_type": "Id"
},
{
"field_key": "name",
"field_name": "名称",
"field_type": "MainField"
},
{
"field_key": "parentid",
"field_name": "关联编号",
"field_type": "ParentId"
}
],
"filter_fields": [
{
"filter_condition": "1",
"filter_field": "name",
"filter_type": 1,
"filter_value": "fo单行文字字段id"
}
],
"queryCommit": 0,
"sortOrder": 0
},
"ref_type": "DSCascadeDropDown",
"ref_url": "https://qy.do1.com.cn/qwy/open/openForm/testDatasource.do?selecttop=1",
"unique": false
},
{
"_id": "fo智能识别字段id",
"_type": "OCRInvoiceField",
"label": "智能识别",
"predefinedCache": 0,
"predefinedType": 0,
"ref_cfg": {
"checkTitle": true,
"moneyCollector": "fo数字字段id",
"ocrFieldType": "0",
"queryCommit": 0,
"sortOrder": 0
},
"unique": false
},
{
"_id": "fo通讯录成员字段id",
"_type": "MEMBERCustomerField",
"label": "通讯录成员",
"predefinedCache": 0,
"predefinedType": 0,
"unique": false
},
{
"_id": "fo部门字段id",
"_type": "DEPTCustomerField",
"label": "部门",
"predefinedCache": 0,
"predefinedType": 0,
"unique": false
},
{
"_id": "fo费控关联id",
"_type": "CRMCustomerField",
"label": "费控关联",
"predefinedCache": 0,
"predefinedType": 0,
"srcType": "REIM_PROJ",
"unique": false
},
{
"_id": "fo流水号字段id",
"_type": "SerialNumberField",
"label": "流水号",
"predefinedCache": 0,
"predefinedType": 0,
"serialNumberCfg": {
"autoFill": 1,
"initialValue": 1,
"length": 4,
"resetCycle": 3,
"resetDate": {
"day": 1
}
},
"unique": false
}
],
"formPublicInquiryJson": [
{
"failPrompt": "查询失败提示",
"isNeedPassword": 1,
"password": "password",
"searchAnnouncement": "查询页面公告",
"searchFields": [
"fo单行文字字段id"
],
"showFields": [
"fo单行文字字段id",
"fo表单关联字段id"
],
"successPrompt": "查询成功提示",
"title": "公开查询标题"
}
],
"givenDeptIds": [
"部门全称1",
"部门全称2"
],
"givenTagIds": [
"标签id1",
"标签id2"
],
"givenUserIds": [
"通讯录账号1",
"通讯录账号2"
],
"medias": [
"表单附件相对路径"
],
"relevantDeptIds": [
"部门全称1",
"部门全称2"
],
"relevantTagIds": [
"标签id1",
"标签id2"
],
"relevantUserIds": [
"通讯录账号1",
"通讯录账号2"
],
"reminderTask": {
"content": "提醒内容",
"endTime": "2022-03-01 00:00:00",
"remindCycle": 1,
"remindTime": "2022-02-01 00:00:00"
},
"reportDeptIds": [
"部门全称1",
"部门全称2"
],
"reportTagIds": [
"标签id1",
"标签id2"
],
"reportUserIds": [
"通讯录账号1",
"通讯录账号2"
],
"status": 1,
"tagIds": [
"标签id1",
"标签id2"
],
"tbQyFlowAuditOrderConfigPO": {
"batchApproval": 1,
"isOrderAudit": 1
},
"userIds": [
"通讯录账号1",
"通讯录账号2"
],
"validators": [
{
"calculator": "fo数字字段id > 0",
"message": "数字字段数字字段必须大于0"
}
]
}
| 参数名 | 释义 | 类型 | 是否必须 | 描述 |
|---|---|---|---|---|
|
token |
用于验证 |
String |
是 |
|
| corpId | 公司唯一标识 | String | 是 | |
|
data |
API创建表单json |
ApiFormCreateVO |
是 |
|
| 参数名 | 释义 | 类型 | 是否必须 | 描述 |
|---|---|---|---|---|
| formDetails | 表单详细信息 | FormDetails | 是 | |
| formControl | 表单控制 | TbFormControlPO | 是 | |
| formField | 字段设置 | Fields[] | 是 | |
| reminderTask | 定时提醒 | TbReminderTaskPO | 否 | |
| isAddWatermark | 图片添加水印 | String | 否 | 1:是 |
| formFieldContralJson | 外部单可见字段 | String[] | 否 | ["字段id"] |
| defaultFlowMember | 外部单默认流转成员 | String | 否 | 使用账号 |
| prefillList | 表单预填写 | JSON | 否 |
[{ "字段id": "字段预填写" }] |
| medias | 表单附件 | String[] | 否 | 使用附件相对路径 |
| tbFormCustomPageVO | 提交后提示页面 | TbFormCustomPageVO | 否 | |
| formPublicInquiryJson | 公开查询 | FormPublicInquiryVO[] | 否 | |
| qyFlowNodeCallbackList | 数据接口 | CallbackTreeVO[] | 否 | |
| validators | 提交校验 | TbFormValidators[] | 否 | |
| formCustomRemind | 自定义提醒规则 | FormCustomRemindVO[] | 否 | |
| userIds | 填单范围成员列表 | String[] | 否 | 使用账号 |
| deptIds | 填单范围部门列表 | String[] | 否 | 使用部门全称 |
| tagIds | 填单范围标签列表 | String[] | 否 | 使用标签名称 |
| detailUserIds | 明细查看权限成员列表 | String[] | 否 | 使用账号 |
| detailDeptIds | 明细查看权限部门列表 | String[] | 否 | 使用部门全称 |
| detailTagIds | 明细查看权限标签列表 | String[] | 否 | 使用标签名称 |
| relevantUserIds | 默认相关人成员列表 | String[] | 否 | 使用账号 |
| relevantDeptIds | 默认相关人部门列表 | String[] | 否 | 使用部门全称 |
| relevantTagIds | 默认相关人标签列表 | String[] | 否 | 使用标签名称 |
| givenUserIds | 默认负责人成员列表(外部单为提单后提醒成员) | String[] | 否 | 使用账号 |
| givenDeptIds | 默认负责人部门列表 | String[] | 否 | 使用部门全称 |
| givenTagIds | 默认负责人标签列表 | String[] | 否 | 使用标签名称 |
| spokesManUserIds | 外部用户可见评论的内部成员列表 | String[] | 否 | 使用账号 |
| spokesManDeptIds | 外部用户可见评论的内部部门列表 | String[] | 否 | 使用部门全称 |
| spokesManTagIds | 外部用户可见评论的内部标签列表 | String[] | 否 | 使用标签名称 |
| downloadMxUserIds | 应用端明细下载成员列表 | String[] | 否 | 使用账号 |
| downloadMxDeptIds | 应用端明细下载部门列表 | String[] | 否 | 使用部门全称 |
| downloadMxTagIds | 应用端明细下载标签列表 | String[] | 否 | 使用标签名称 |
| reportUserIds | 可查看应用端数据报表成员列表 | String[] | 否 | 使用账号 |
| reportDeptIds | 可查看应用端数据报表部门列表 | String[] | 否 | 使用部门全称 |
| reportTagIds | 可查看应用端数据报表标签列表 | String[] | 否 | 使用标签名称 |
| status | 状态 | Integer | 否 | 0:草稿,1:发布 |
| tbQyFlowAuditOrderConfigPO | 流程设置 | TbQyFlowAuditOrderConfigPO | 否 |
| 参数名 | 释义 | 类型 | 是否必须 | 描述 |
|---|---|---|---|---|
| definitionVersionsId | 表单id | String | 否 | |
| formName | 表单名称 | String | 是 | |
| title | 表单实例标题 | String | 否 | |
| summary | 表单摘要,暂不使用 | String | 否 | |
| content | 表单内容 | String | 否 | 支持富文本 |
| thumbnail | 表单缩略图 | String | 否 | 使用相对路径,缩略图模式下使用 |
| isBuildSerialNumber | 高级标题是否添加流水号 | Integer | 否 | 0:否,1:是 |
| showRead | 已阅显示 | Integer | 否 | 0:否,1:是 |
| customIcon | 自定义图标属性 | CustomIcon | 否 | |
| departmentLevel | 部门字段显示层级数 | Integer | 否 | |
| departmentFieldDisplayOrder | 部门字段显示层顺序 | Integer | 否 | 1:从左到右,2:从右到左 |
| creatorDepartmentLevel | 提单人部门显示层级数 | Integer | 否 | |
| creatorDepartmentDisplayOrder | 提单人部门字段显示层顺序 | Integer | 否 | 1:从左到右,2:从右到左 |
| style | 表单字段样式 | Integer | 否 | 0:标准版,1:简约版 |
| formStyle | 表单样式配置 | FormStyle | 否 | |
| customLogo | 微信分享图标 | CustomLogo | 否 |
| 参数名 | 释义 | 类型 | 是否必须 | 描述 |
|---|---|---|---|---|
| iconColor | 图标颜色 | String | 否 | |
| iconName | 图标名称 | IconName | 否 | 参考附录5 |
| iconUrl | 图标相对路径 | String | 否 |
| 参数名 | 释义 | 类型 | 是否必须 | 描述 |
|---|---|---|---|---|
| background | 背景图片相对路径 | String | 否 | |
| themeColor | 主题颜色 | String | 否 | 如rgba(255,255,255,1) |
| headerImg | 页眉图片相对路径 | String | 否 | |
| backgroundRepeat | 背景图片重复方式 | String | 否 | 取值:no-repeat(不重复),repeat(重复) |
| backgroundType | 背景类型 | Integer | 否 | 0:底色,1:图片 |
| titleStyle | 标题样式 | TitleStyle | 否 | |
| fieldStyle | 字段样式 | FieldStyle | 否 |
| 参数名 | 释义 | 类型 | 是否必须 | 描述 |
|---|---|---|---|---|
| fontFamily | 表单标题字体 | String | 否 | |
| fontWeight | 表单标题是否加粗 | String | 否 | normal(否),bold(是) |
| color | 表单标题字体颜色 | String | 否 | |
| fontSize | 表单标题字体大小 | String | 否 | |
| textAlign | 表单标题水平对齐方式 | String | 否 |
| 参数名 | 释义 | 类型 | 是否必须 | 描述 |
|---|---|---|---|---|
| fontFamily | 字段标题字体 | String | 否 | |
| fontWeight | 字段标题是否加粗 | String | 否 | normal(否),bold(是) |
| color | 字段标题字体颜色 | String | 否 | |
| fontSize | 字段标题字体大小 | String | 否 | |
| space | 字段标题间距 | Integer | 否 | 0:普通间距,1:紧凑间距,2:宽松间距 |
| 参数名 | 释义 | 类型 | 是否必须 | 描述 |
|---|---|---|---|---|
| iconType | 图标类型 | Integer | 否 | 0:默认图标,1:自定义图标 |
| url | 图标相对路径 | String | 否 | (图标类型为1时使用) |
| 参数名 | 释义 | 类型 | 是否必须 | 描述 |
|---|---|---|---|---|
| typeName | 分组名称 | String | 是 | 必须是后台已存在的分类名称 |
| isTask | 表单类型 | String | 否 | 0:普通单,1:任务单,2:审批单,3:外部单 |
| titleTemplate | 标题模板 | String | 否 |
默认不使用 yyyy_MM_dd_HH_mm_ss_E:年_月_日_时_分_秒_星期X yyyy_MM_dd_HH_mm_ss:年_月_日_时_分_秒 yyyyMMdd HHmmss:年月日 时分秒 yyyyMMddHHmmss:年月日时分秒 yyyy/MM/dd HH:mm:年/月/日 时:分 yyyyMMddHHmm:年月日时分 yyyyMMdd:年月日 _id:嵌入字段id create_user_name:提单人姓名 create_user_dept:提单人部门 以上字符可以用{}括起来得到自定义标题模板 |
| isBuildSort | 是否自动生成标题序号 | Integer | 否 | 0:否,1:是 |
| isBuildTitle | 填单时自动生成标题 | String | 否 | 1:否,2:是 |
| isUpdaeTitle | 是否允许提单人修改标题 | Integer | 否 | 0:否,1:是 |
| isRelatives | 是否启用负责人(外部单为是否启用提单后提醒) | String | 否 | 0:否,1:是 |
| isDisableRelatives | 是否禁用自由选择负责人 | String | 否 | 0:否,1:是(默认启用) |
| relativesMaxNum | 提交表单时最大可选负责人数量 | Integer | 否 | 自由流程时有效,0:不限制 |
| isRelevants | 是否启用相关人 | String | 否 | 1:是 |
| isDisableRelevants | 是否禁用自由选择相关人 | String | 否 | 0:否,1:是(默认启用) |
| flowType | 流程流转类型(外部单) | Integer | 否 | 0:手动流转,1:自动流转 |
| isMatchField | 是否根据表单字段值与内部通讯录匹配流转成员(外部单) | Integer | 否 | 0:否,1:是 |
| fieldToMatch | 待匹配字段(外部单) | String | 否 | 使用字段id |
| addressBookField | 匹配通讯录字段(外部单) | Integer | 否 | 0:根据名称匹配,1:根据手机匹配 |
| isWithdraw | 开启外部人员是否可以撤回外部单(外部单) | Integer | 否 | 0:关闭,1:开启 |
| isShowFlowSerial | 是否允许外部提单人查看内部流转明细(外部单) | Integer | 否 | 0:否,1:是 |
| isSearchForm | 是否启用表单结果查询(外部单) | String | 否 | 0:否,1:是 |
| isSearchComment | 是否允许外部用户查看内部人员评论(外部单) | String | 否 | 0:否,1:是 |
| isOpenSpokesMan | 是否指定外部用户可见的内部人员评论(外部单) | Integer | 否 | 0:否,1:是 |
| detailViewLevel | 明细查看权限 | Integer | 否 | 0:表示不启用,1:表示所有人,2:特定对象 |
| isWxDownloadMx | 是否启用应用端明细下载 | Integer | 否 | 0:否,1:所有人,2:特定对象 |
| canSeeDataReport | 是否启用应用端数据报表 | Integer | 否 | 0:否,1:所有人,2:特定对象 |
| startTime | 有效时间(始) | Date | 否 | yyyy-MM-dd HH:mm:ss |
| stopTime | 有效时间(终) | Date | 否 | yyyy-MM-dd HH:mm:ss |
| lockValidTime | 是否启用表单锁定(外部单) | Integer | 否 | 0:否,1:是 |
| limitTimeRate | 填写时间周期限制 | Integer | 否 | 0:不限制,1:每天,2:每周,3:每月 |
| timeRateNum | 每周或每月的具体日子 | String | 否 |
当周期限制为每周时,0表示周日,1~6分别表示周一至周六 当周期限制为每月时,0表示每月最后一天,1~31表示日期 多个用英文逗号隔开 |
| limitTimes | 限制的时间段 | String | 否 | 格式"07:00-09:00" |
| submitTime | 表单总份数限制 | Integer | 否 | 0表示不限制 |
| actorTime | 每人可提交次数 | Integer | 否 | 0表示不限制 |
| actorTimeRate | 每人可提交次数周期限制 | Integer | 否 | 0:每天,1:每周,2:每月,3:每个时间段 |
| daySubmitNum | 每人在以上周期内可提交次数 | Integer | 否 | 0表示不限制 |
| isOpenDraft | 是否允许保存草稿 | Integer | 否 | 0:不允许,1:允许(默认允许) |
| formPhotoSet | 是否允许通过手机相册上传图片 | String | 否 | 0:允许,1:不允许(默认允许) |
| isCanDel | 允许提单人删除已提交的表单 | String | 否 | 0:允许,1:不允许 |
| isCanUpdate | 允许提单人/负责人重新提交的表单 | String | 否 | 0:允许,1:不允许 |
| isAnonymous | 允许提单人匿名提交表单 | Integer | 否 | 0:不允许,1:允许 |
| isForceAnonymous | 强制提单人匿名提交表单 | Integer | 否 | 0:不允许,1:允许 |
| isWxLogin | 是否只能在微信中打开填写(外部单) | Integer | 否 | 0:否,1:是 |
| isWxAuthorize | 是否开启微信授权(外部单) | Integer | 否 | 0:否,1:是 |
| isQyWxLogin | 是否只能在企业微信中打开填写(外部单) | Integer | 否 | 0:否,1:是 |
| isQyWxAuthorize | 是否开启企业微信授权(外部单) | Integer | 否 | 0:否,1:是 |
| isOpenComment | 允许外部成员评论 | Integer | 否 | 0:否,1:是 |
| isPassword | 是否开启凭密码填写表单(外部单) | String | 否 | 0:否,1:是 |
| password | 密码值(外部单) | String | 否 | 密码长度范围3~16位 |
| isControlOpenField | 是否开启外部用户可见字段 | Integer | 否 | 0:否,1:是 |
| isOpenPrint | 是否开启应用端打印预览(默认开启) | Integer | 否 | 0:否,1:是 |
| isSendMsg | 表单发布或修改后通知填单范围人员 | String | 否 | 1:否,2:是 |
| sendRelevantStatus | 何时通知相关人 | String | 否 | 0:都不推送,1:提单时,2:审核通过或任务完成时,3:都推送 |
| isRemind | 是否开启时效提醒 | String | 否 | 1:否,2:是 |
| startSendMsgTime | 表单开始前多少分钟提醒 | Integer | 否 | |
| endSendMsgTime | 表单结束前多少分钟提醒 | Integer | 否 | |
| isWriterRemind | 是否开启定时提醒 | String | 否 | 0:否,1:是(此时reminderTask不能为空) |
| isCanAt | 允许通过评论@人的方式添加相关人 | Integer | 否 | 0:否,1:是(默认开启) |
| isSaveOrbit | 是否启用可记录审批修改轨迹,可在应用端查看 | Integer | 否 | 0:否,1:是 |
| isCallback | 是否启用数据接口 | Integer | 否 | 0:否,1:是 |
| isPic | 启用图片上传(停用) | String | 否 | 1:是 |
| isFile | 允许提单人上传附件 | String | 否 | 1:是 |
| 参数名 | 释义 | 类型 | 是否必须 | 描述 |
|---|---|---|---|---|
| _id | 字段id | String | 否 | 不超过36字符,注意不能用数字开头,建议"fo"加上uuid32 |
| _type | 字段类型 | String | 是 | 参考附录2 |
| label | 字段标题 | String | 是 | 除分节字段以外为必填,不超过2000字符 |
| predefined_value | 默认值 | Object | 否 | 可选值:today:填写当天,yesterday:填写前一天,tomorrow:填写后一天,{"hour": "07","minute": "04"}:默认时间 |
| predefinedType | 默认值类型 | Integer | 否 | 0:自定义,2:高级函数,3:数据联动 |
| predefinedCache | 是否启用优先默认加载上次填写的值 | Integer | 否 | 0:否,1:是 |
| notes | 填写提示 | String | 否 | 0:否,1:是 |
| customPrompt | 自定义提示文案 | String | 否 | 不超过50字符 |
| notesHtml | 富文本提示 | String | 否 | |
| validations | 验证条件 | String[] | 否 | isCard:身份证,presence:必填,uniqueness:只读,iscapital:金额大写 |
| numberFormat | 数字字段格式 | NumberFormatVO | 否 | 只对3种数字字段有效 |
| srcType | 数据来源 | SrcType | 否 |
REIM_PROJ:成本中心,字段类型请使用CRMCustomerField REIM_SUBJ:科目,字段类型请使用CRMCustomerField KINGDEE_SETTLE:结算方式,字段类型请使用CRMCustomerField CRM_CLIENT:CRM客户,字段类型请使用CRMCustomerField CRM_CONTRACT:CRM合同,字段类型请使用CRMCustomerField CRM_BUSINESS:CRM商机,字段类型请使用CRMCustomerField CRM_VISIT:CRM拜访,字段类型请使用CRMCustomerField CRM_CLUE:CRM线索,字段类型请使用CRMCustomerField CRM_CONTACT_PERSON:CRM联系人,字段类型请使用CRMCustomerField CRM_COMPETITOR:CRM竞争对手,字段类型请使用CRMCustomerField QIQIAO_PLUS:Plus表单关联,字段类型请使用FORMREFCustomerField AIRPORT_CITY:机场城市,字段类型请使用CRMCustomerField CITY:城市,字段类型请使用CRMCustomerField |
| choices | 选项配置 | Choices[] | 否 | 只对选项字段有效,其他字段请留空 |
| linkage | 数据联动配置 | FormItemWithConditionsVO | 否 | 只对选项字段有效,其他字段请留空 |
| openAddImage | 是否开启图片选项功能 | Integer | 否 | 0:否,1:是,只对选项字段有效 |
| isOpenQuota | 是否开启选项名额周期 | Integer | 否 | 0:否,1:是,只对选项字段有效 |
| optionResetType | 选项周期重置规则 | Integer | 否 | 0:按日期字段,1:按周期,只对选项字段有效 |
| refOptionQuotaKey | 按哪个日期字段重置 | String | 否 | 字段id |
| quotaConfigVO | 选项周期重置规则 | QuotaConfigVO | 否 | 只对选项字段有效 |
| minimum_length | 最少填多少个字符 | Integer | 否 | |
| maximum_length | 最多填多少个字符 | Integer | 否 | |
| freeGeo | 地理位置字段定位设置 | Integer | 否 | 0:基于GPS自动填充位置,1:允许手动选择地理位置,2:基于GPS自动填充地理位置,并开启定位校验功能 |
| geoFieldRule | 地理位置字段校验规则 | GeoFieldRuleVO | 否 | |
| start_date | 起始日期 | String | 否 | 只对日期字段有效,所填日期不能晚于此值,格式yyyy-MM-dd |
| end_date | 结束日期 | String | 否 | 只对日期字段有效,所填日期不能晚于此值,格式yyyy-MM-dd |
| range_min | 最小值 | String | 否 | 只对数字字段有效,所填数字不能小于此值 |
| range_max | 最大值 | String | 否 | 只对数字字段有效,所填数字不能大于此值 |
| accurate_num | 精确小数位数 | Integer | 否 | 只对数字字段有效,0:不精确,-1:整数,1~20:精确位数 |
| rating_type | 评分字段显示类型 | String | 否 | star:星,heart:心形 |
| line_row | 单选/多选字段的布局方式/统计字段的统计方式 | Integer | 否 |
单选/多选:一行几列 统计字段:1:和,2:最大值,3:最小值,4:平均 |
| children | 子表单子字段列表 | Fields[] | 否 | |
| crm_types | 数据范围 | String[] | 否 | 只对CRM关联字段有效:0:全部,1:仅自己创建的,2:仅自己负责的,3:仅自己相关的 |
| dataypes | 数据范围 | String[] | 否 | 只对表单关联字段有效:0:被关联表单中的 “可查看明细” 权限,1:仅作为创建人的,2:仅作为负责人的,3:仅作为相关人的 |
| ref_id | 关联表单id | String | 否 | |
| ref_cfg | 表单关联配置 | RefCfg | 否 | 使用字段有:表单关联,数据源,智能拍票 |
| options | 关联运算配置 | OptionVO[] | 否 | |
| unique | 是否开启数据唯一性 | Boolean | 否 | |
| calculator | 计算式 | String | 否 | 使用字段id、运算符拼接公式 |
| ref_type | 数据源类型 | String | 否 |
DSRadio:单选 DSSelect:下拉框 DSCheckBox:多选 DSCascadeDropDown:多级联动下拉 DSDatasource:数据源(数据选择) |
| cascadeLevel | 级数 | Integer | 否 | 数据源字段(类型为多级联动下拉)的级数 |
| ref_url | 数据源地址 | String | 否 | 使用绝对路径,参考数据源 |
| cityType | 省市区字段格式 | Integer | 否 | 0:省市区,1:仅选择城市 |
| serialNumberCfg | 流水号规则配置 | SerialNumberCfg | 否 | 只对流水号字段有效 |
| openPhoneCheck | 是否开启手机号格式校验 | Integer | 否 | 0:否,1:是,只对手机字段有效 |
| messageVerification | 是否开启验证码校验 | Integer | 否 | 0:否,1:是,只对手机字段有效 |
| qrCodeFieldCfg | 二维码配置 | QrCodeFieldCfg | 否 | 只对二维码字段有效 |
| openedHandwritten | 是否允许使用存档签名 | Integer | 否 | 只对手写签名字段有效 |
| fieldEventType | 是否使用电子签署字段 | Integer | 否 | 0:普通附件,1:电子合同附件 |
| applicationId | 应用id | String | 否 | plus关联的表单所属应用id |
| 参数名 | 释义 | 类型 | 是否必须 | 描述 |
|---|---|---|---|---|
| numType | 格式类型 | Integer | 否 | 0:数值,1:百分比 |
| isThousandSplit | 是否显示千分符 | Integer | 否 | 0:否,1:是 |
| isUnit | 是否显示单位 | Integer | 否 | 0:否,1:是 |
| unitValue | 单位值 | String | 否 | 如:个、台、张 |
| 参数名 | 释义 | 类型 | 是否必须 | 描述 |
|---|---|---|---|---|
| _id | 字段id | String | 是 | 不超过36字符,注意不能用数字开头,建议"fo"加上uuid32 |
| selected | 是否默认选择 | Boolean | 否 | |
| value | 选项名称 | String | 否 | 不超过200字符 |
| quota | 选项名额 | String | 否 | |
| sub_choices | 子选项 | SubChoices[] | 否 | |
| relate_show_ids | 关联显示的字段id | String[] | 否 | 只支持顺序比当前字段靠后的字段 |
| others | 是否其他选项 | Integer | 否 | 0:否,1:是 |
| imageUrl | 选项图片地址 | String | 否 | 使用相对路径,图片单选和图片多选字段必填 |
| optionDescription | 图片选项说明 | String | 否 |
| 参数名 | 释义 | 类型 | 是否必须 | 描述 |
|---|---|---|---|---|
| value | 选项名称 | String | 否 | 不超过200字符 |
| 参数名 | 释义 | 类型 | 是否必须 | 描述 |
|---|---|---|---|---|
| refFormId | 联动底单id | String | 否 | |
| refShowKey | 联动底单字段id | String | 否 | |
| condition | 数据联动条件 | ItemConditionVO[] | 否 | 目前只支持1个 |
| queryNotCommit | 是否允许联动未归档数据 | Boolean | 否 |
| 参数名 | 释义 | 类型 | 是否必须 | 描述 |
|---|---|---|---|---|
| curItemKey | 当前表单字段id | String | 否 | |
| refItemKey | 联动底单条件字段id | String | 否 |
| 参数名 | 释义 | 类型 | 是否必须 | 描述 |
|---|---|---|---|---|
| cycleRate | 循环周期 | Integer | 否 | 1:天,2:周,3:月 |
| cycleNumber | 每多少天/周/月 | Integer | 否 | |
| startTime | 重置时间 | String | 否 | HH:mm |
| cycleTime | 周几/几日 | Integer | 否 |
按周时1~6:周一至周六,7:周日 按月时1~31 |
| 参数名 | 释义 | 类型 | 是否必须 | 描述 |
|---|---|---|---|---|
| showCoordinate | 是否显示经纬度 | Integer | 否 | 0:否,1:是 |
| locationCenters | 定位中心 | LocationCenterVO[] | 否 |
| 参数名 | 释义 | 类型 | 是否必须 | 描述 |
|---|---|---|---|---|
| area | 定位区域 | String | 否 | |
| address | 定位地址 | String | 否 | |
| longitude | 经度 | Double | 否 | |
| latitude | 纬度 | Double | 否 | |
| validDistance | 定位范围 | Double | 否 |
| 参数名 | 释义 | 类型 | 是否必须 | 描述 |
|---|---|---|---|---|
| main_field | 主字段 | String | 否 | 关联时值不能为空,作用相当于标题,使用字段id |
| show_fields | 显示字段 | String[] | 否 | 会一起显示在当前表单中的底表字段,使用字段id |
| filter_fields | 数据可选择范围(按字段过滤) | FilterField[] | 否 | |
| queryCommit | 是否开启未归档表单 | Integer | 否 | 0:否,1:是 |
| sortField | 排序字段 | String | 否 | 底表字段排序,使用字段id |
| sortOrder | 升降序 | Integer | 否 | 0:升序,1:降序 |
| isCanSeeRefForm | 是否开启可查看关联表单的详情 | Integer | 否 | 0:否,1:是 |
| datasource_fields | 数据源字段配置 | DatasourceField[] | 否 | |
| moneyCollector | 金额统计字段 | String | 否 | 使用数字字段id |
| checkTitle | 是否开启开票信息校验 | Boolean | 否 | |
| ocrFieldType | 识别类型 | String | 否 |
0:所有 10100:增值税专用发票 10101:增值税普通发票 10102:增值税电子普通发票 10103:增值税普通发票(卷票) 10104:机动车销售统一发票 10105:二手车销售统一发票 10200:定额发票 10400:机打发票 10500:出租车发票 10503:火车票 10505:客运汽车 10506:航空运输电子客票行程单 10507:过路费发票 10900:可报销其他发票 10902:完税证明 20105:滴滴出行行程单 10505a:船票 20100:国际小票 |
| 参数名 | 释义 | 类型 | 是否必须 | 描述 |
|---|---|---|---|---|
| filter_field | 被关联字段 | String | 否 | |
| filter_condition | 条件 | String | 否 | 1:等于,2:不等于,3:大于,4:大于等于,5:小于等于,6:小于,9:包含,10:属于,11:不包含 |
| filter_type | 类型 | Integer | 否 | 0:常量,1:变量 |
| filter_value | 数据值 | String | 否 | 类型为变量时使用字段id |
| 参数名 | 释义 | 类型 | 是否必须 | 描述 |
|---|---|---|---|---|
| field_name | 字段名称 | String | 否 | |
| field_key | 字段键值 | String | 否 | |
| field_type | 字段类型 | String | 否 | Id:主键,IdShow:主键(在应用段显示),MainField:主字段,ShowField:显示字段,ImageField:图片字段,ParentId:关联主键 |
| 参数名 | 释义 | 类型 | 是否必须 | 描述 |
|---|---|---|---|---|
| type | 运算符号 | String | 否 |
plusEq:增加 minusEq:减少 setEq:更新为 |
| refKey | 关联表单字段 | String | 否 | 底单字段id |
| childKey | 子字段 | String | 否 | 子字段id |
| updateSame | "更新"运算是否允许更新相同值 | Boolean | 否 |
| 参数名 | 释义 | 类型 | 是否必须 | 描述 |
|---|---|---|---|---|
| initialValue | 初始值 | Long | 否 | |
| length | 编号位数 | Integer | 否 | |
| autoFill | 是否开启自动填充位数 | Integer | 否 | 0:否,1:是 |
| autoIncrease | 是否开启编号达到最大值时,位数自动增大 | Integer | 否 | 0:否,1:是 |
| resetCycle | 重置周期 | Integer | 否 | 0:不自动重置,1:每日重置,2:每周重置,3:每月重置,4:每年重置 |
| resetDate | 重置时间 | ResetDateVO | 否 |
| 参数名 | 释义 | 类型 | 是否必须 | 描述 |
|---|---|---|---|---|
| dayOfWeek | 星期几 | Integer | 否 | 1~6:周一至周六,7:周日 |
| month | 几月 | Integer | 否 | 1~12 |
| day | 几日 | Integer | 否 | 1~31 |
| 参数名 | 释义 | 类型 | 是否必须 | 描述 |
|---|---|---|---|---|
| scanType | 扫码设置 | Integer | 否 | 0:多次扫码查看,1:一次性扫码核销 |
| showType | 显示设置 | Integer | 否 | 0:全部显示,1:自定义字段显示 |
| format | 自定义字段显示 | String | 否 | 字段id,多个用英文","隔开 |
| 参数名 | 释义 | 类型 | 是否必须 | 描述 |
|---|---|---|---|---|
| remindTime | 提醒时间 | Date | 是 | yyyy-MM-dd HH:mm:ss |
| remindCycle | 重复提醒 | Integer | 是 | 0:不自动重置,1:每日重置,3:每月重置,6:每年重置 |
| endTime | 结束提醒时间(重复提醒时需要传递) | Date | 否 | yyyy-MM-dd HH:mm:ss |
| content | 提醒内容 | String | 否 | 默认为:请填写表单[标题],如已填写无需理会 |
| 参数名 | 释义 | 类型 | 是否必须 | 描述 |
|---|---|---|---|---|
| flowId | 流程id | String | 否 | 第一层级留空 |
| nodeId | 节点id | String | 否 | 【填写节点】或【提单发起】固定为"start_node",第一层级留空 |
| nodeName | 节点名称 | String | 否 | 第一层级留空 |
| url | 追加地址 | String | 否 | 通过${fo字段id}增加字段占位符 |
| children | 所选节点列表 | CallbackTreeVO[] | 否 |
| 参数名 | 释义 | 类型 | 是否必须 | 描述 |
|---|---|---|---|---|
| jumpPage | 跳转页面 | Integer | 否 | 0:系统默认页,1:自定义提示页面,2:其它网页 |
| jumpType | 系统页面类型 | Integer | 否 | 1:首页,2:待办,3:我提交,4:快速发起,5:填单页,6:表单详情 |
| pageContent | 自定义页面内容 | String | 否 | 支持富文本以及插入字段 |
| url | 其他网页地址 | String | 否 | 提交后要跳转的“网页地址”,jumpPage为2时必填 |
| fillInAgain | 是否勾选“再次填写” | String | 否 | 0:未勾选,1:勾选 |
| viewFillResult | 是否勾选“查看填单结果” | String | 否 | 0:未勾选,1:勾选 |
| 参数名 | 释义 | 类型 | 是否必须 | 描述 |
|---|---|---|---|---|
| title | 名称 | String | 否 | |
| queryUrl | 查询链接 | String | 否 | |
| showFields | 查询条件 | String[] | 否 | 使用字段id |
| searchFields | 显示内容 | String[] | 否 | 使用字段id |
| isNeedPassword | 凭密码查询 | Integer | 否 | 0:否,1:是 |
| password | 查询密码 | String | 否 | 1-16字符,区分大小写 |
| searchAnnouncement | 查询页面公告 | String | 否 | |
| successPrompt | 查询成功提示 | String | 否 | |
| failPrompt | 查询失败提示 | String | 否 |
| 参数名 | 释义 | 类型 | 是否必须 | 描述 |
|---|---|---|---|---|
| calculator | 校验公式 | String | 否 | 使用字段id、运算符和高级函数拼接公式 |
| message | 提示文字 | String | 否 | 不满足校验规则时的提示文字 |
| 参数名 | 释义 | 类型 | 是否必须 | 描述 |
|---|---|---|---|---|
| remindType | 提醒类型 | Integer | 是 | 0:自定义时间,1:根据日期时间字段提醒 |
| remindStatus | 提醒规则状态 | Integer | 否 | 0:关闭,1:开启 |
| remindItemKey | 提醒日期时间字段id | String | 否 | "CREATE_TIME()"函数表示提单时间,其余用日期时间字段id |
| startTime | 提醒时间 | String | 否 | yyyy-MM-dd HH:mm:ss |
| remindAroundType | 提醒时间前后类型 | Integer | 否 | 0:当天,1:之前,2:之后 |
| remindAroundDay | 提醒时间的前后天数 | Integer | 否 | |
| remindTime | 提醒时间的具体时间(日期字段) | String | 否 | HH:mm:ss |
| weekendRemind | 周末是否提醒 | Integer | 否 | 0:否,1:是 |
| holidayRemind | 法定节假日是否提醒 | Integer | 否 | 0:否,1:是 |
| repeatType | 重复周期 | Integer | 否 | 0:不重复,1:每天,2:每周,3:每月,6:每年,8:自定义重复 |
| remindNumber | 提醒次数 | Integer | 否 | 自定义重复的提醒次数 |
| remindInterval | 提醒间隔 | Integer | 否 | 自定义重复的提醒间隔 |
| remindIntervalUnit | 间隔单位 | Integer | 否 | 0:分钟,1:小时,2:天 |
| remindConditions | 是否开启条件 | Integer | 否 | 0:否,1:是 |
| formConditionJson | 提醒条件 | FormConditionVO[] | 否 | 多个条件为且关系 |
| content | 提醒内容 | String | 否 | 使用"{字段id}"的形式插入字段 |
| remindUserIds | 特定人员 | String | 否 | 使用账号,多个使用英文"|"隔开 |
| remindDeptIds | 特定人员部门 | String | 否 | 使用部门全称,多个使用英文"|"隔开 |
| remindTagIds | 特定人员标签 | String | 否 | 使用标签名称,多个使用英文"|"隔开 |
| endTime | 结束提醒时间 | String | 否 | yyyy-MM-dd HH:mm:ss |
| endItemKey | 结束提醒时间字段id | String | 否 | CUSTOM_TIME():自定义时间 CREATE_TIME():提单时间或者使用字段id |
| endAroundType | 结束提醒时间前后类型 | Integer | 否 | 0:当天,1:之前,2:之后 |
| endAroundDay | 结束提醒时间前后天数 | Integer | 否 | |
| endRemindTime | 结束提醒时间的具体时间(日期字段) | String | 否 | HH:mm:ss |
| addressBookItemIds | 被提醒人人员控件的字段id列表 | String[] | 否 | |
| specificMember | 是否开启特定人员 | Integer | 否 | 0:否,1:是 |
| personnelControl | 是否开启人员控件 | Integer | 否 | 0:否,1:是 |
| 参数名 | 释义 | 类型 | 是否必须 | 描述 |
|---|---|---|---|---|
| fieldType | 字段类型 | String | 否 | |
| fieldKey | 字段id | String | 否 | 自定义字段使用字段id,提单人为:creatorUserIds,提单人部门:creatorDpIds,提单人职位:createPosition |
| operator | 比较符号 | Integer | 否 | 1:等于(文本),2:不等于(文本),3:大于,4:大于等于,5:等于(数字),6:不等于(数字),7: 小于等于,8:小于,9:包含,10:不包含,11:超额,12:部门包含 |
| compareVal | 比较值 | String | 否 | |
| pid | 两级下拉框的一级选项id | String | 否 |
| 参数名 | 释义 | 类型 | 是否必须 | 描述 |
|---|---|---|---|---|
| isOrderAudit | 是否启用顺序审批 | Integer | 否 | 0:否,1:是 |
| batchApproval | 是否启用批量处理 | Integer | 否 | 0:否,1:是 |
ApiFormCreateVO vo = new ApiFormCreateVO();
// 控制设置 --- START
TbFormControlPO formControl = new TbFormControlPO();
/**
* 基础设置 --------------------------------------------------------------------------------
*/
// 表单分组
formControl.setTypeName("API创建表单分组");
// 表单类型 0普通单 1任务单 2审批单 3外部单
formControl.setIsTask("2");
// 标题模板
formControl.setTitleTemplate("API创建表单{create_user_name}_{yyyyMMdd}");
// 自动生成标题序号
formControl.setIsBuildSort(1);
// 自动生成标题
formControl.setIsBuildTitle("2");
// 允许提单人修改标题
formControl.setIsUpdaeTitle(1);
/**
* 人员权限 --------------------------------------------------------------------------------
*/
// 填单范围
vo.setUserIds(new String[]{"通讯录账号1","通讯录账号2"});
vo.setDeptIds(new String[]{"部门全称1","部门全称2"});
vo.setTagIds(new String[]{"标签id1","标签id2"});
// 支持相关人
formControl.setIsRelevants("1");
// 默认相关人
vo.setRelevantUserIds(new String[]{"通讯录账号1","通讯录账号2"});
vo.setRelevantDeptIds(new String[]{"部门全称1","部门全称2"});
vo.setRelevantTagIds(new String[]{"标签id1","标签id2"});
// 自由选择相关人
formControl.setIsDisableRelevants("0");
// 支持负责人
formControl.setIsRelatives("1");
// 默认负责人
vo.setGivenUserIds(new String[]{"通讯录账号1","通讯录账号2"});
vo.setGivenDeptIds(new String[]{"部门全称1","部门全称2"});
vo.setGivenTagIds(new String[]{"标签id1","标签id2"});
// 自由选择负责人
formControl.setIsDisableRelatives("0");
// 提交表单时最大可选负责人数量
formControl.setRelativesMaxNum(10);
// 特定对象能查看所有数据
formControl.setDetailViewLevel(2);
vo.setDetailUserIds(new String[]{"通讯录账号1","通讯录账号2"});
vo.setDetailDeptIds(new String[]{"部门全称1","部门全称2"});
vo.setDetailTagIds(new String[]{"标签id1","标签id2"});
// 应用端明细下载
formControl.setIsWxDownloadMx(2);
vo.setDownloadMxUserIds(new String[]{"通讯录账号1","通讯录账号2"});
vo.setDownloadMxDeptIds(new String[]{"部门全称1","部门全称2"});
vo.setDownloadMxTagIds(new String[]{"标签id1","标签id2"});
// 能查看数据报表
formControl.setCanSeeDataReport(2);
vo.setReportUserIds(new String[]{"通讯录账号1","通讯录账号2"});
vo.setReportDeptIds(new String[]{"部门全称1","部门全称2"});
vo.setReportTagIds(new String[]{"标签id1","标签id2"});
/**
* 填写设置 --------------------------------------------------------------------------------
*/
// 有效时间(始)
formControl.setStartTime("2022-01-01 00:00:00");
// 有效时间(终)
formControl.setStopTime("2022-12-31 23:59:59");
// 填写时间周期限制(每周)
formControl.setLimitTimeRate(2);
// 每周或每月的具体日子(周日和周六)
formControl.setTimeRateNum("0,6");
// 限制的时间段
formControl.setLimitTimes("07:00-09:00");
// 表单总份数限制
formControl.setSubmitTime(100);
// 每人可提交次数
formControl.setActorTime(1);
// 每人可提交次数周期限制(每周)
formControl.setActorTimeRate(2);
// 每人在以上周期内可提交次数
formControl.setDaySubmitNum(2);
/**
* 填写限制 --------------------------------------------------------------------------------
*/
// 允许保存草稿
formControl.setIsOpenDraft(1);
// 允许通过手机相册上传图片
formControl.setFormPhotoSet("0");
// 允许提单人删除已提交的表单
formControl.setIsCanDel("0");
// 允许提单人/负责人重新提交的表单
formControl.setIsCanUpdate("0");
// 允许提单人匿名提交表单
formControl.setIsAnonymous(1);
// 强制提单人匿名提交表单
formControl.setIsForceAnonymous(1);
/**
* 打印设置 --------------------------------------------------------------------------------
*/
// 开启应用端打印预览
formControl.setIsOpenPrint(1);
/**
* 提醒设置 --------------------------------------------------------------------------------
*/
// 表单发布或修改后不通知填单范围人员
formControl.setIsSendMsg("0");
// 何时通知相关人
formControl.setSendRelevantStatus("3");
// 开启时效提醒
formControl.setIsRemind("1");
// 表单开始前多少分钟提醒
formControl.setStartSendMsgTime(5);
// 表单结束前多少分钟提醒
formControl.setEndSendMsgTime(5);
// 开启定时提醒
formControl.setIsWriterRemind("1");
TbReminderTaskPO reminderTask = new TbReminderTaskPO();
// 每天重复提醒
reminderTask.setRemindCycle(1);
// 开始提醒时间
reminderTask.setRemindTime("2022-02-01 00:00:00");
// 结束重复时间
reminderTask.setEndTime("2022-03-01 00:00:00");
// 提醒内容
reminderTask.setContent("提醒内容");
/**
* 高级设置 --------------------------------------------------------------------------------
*/
// 允许通过评论@人的方式添加相关人
formControl.setIsCanAt(1);
// 启用可记录审批修改轨迹,可在应用端查看
formControl.setIsSaveOrbit(1);
vo.setReminderTask(reminderTask);
vo.setFormControl(formControl);
// 控制设置 --- END
// 表单详细信息 --- START
TbFormDetailsPO formDetails = new TbFormDetailsPO();
// 表单id,推荐form+uuid32,此处仅用作示例(新增时可以不填)
// formDetails.setDefinitionVersionsId("form" + UUID.randomUUID().toString().replaceAll("-", ""));
formDetails.setDefinitionVersionsId("表单id");
formDetails.setTitle("API创建表单");
formDetails.setFormName("API创建表单");
formDetails.setContent("<p>API创建表单示例,此处支持富文本标签</p>");
// 表单缩略图,使用相对路径,缩略图模式下使用,结合"图片附件上传"接口使用
formDetails.setThumbnail("表单缩略图");
// 高级标题添加流水号
formDetails.setIsBuildSerialNumber(1);
// 自定义图标
CustomIcon customIcon = new CustomIcon("rgba(128,0,0,1)",IconName.baobiao.name(),null);
formDetails.setCustomIcon(customIcon);
// 部门字段显示层级数
formDetails.setDepartmentLevel(3);
// 部门字段显示层顺序,1:从左到右,2:从右到左
formDetails.setDepartmentFieldDisplayOrder(1);
// 提单人部门显示层级数
formDetails.setCreatorDepartmentLevel(3);
//提单人部门字段显示层顺序,1:从左到右,2:从右到左
formDetails.setCreatorDepartmentDisplayOrder(2);
// 表单字段样式 0:标准版,1:简约版
formDetails.setStyle(1);
// 表单样式
FormStyle formStyle = new FormStyle();
formStyle.setBackground("#f7f8fa");
// 表单背景图片,使用相对路径,缩略图模式下使用,结合"图片附件上传"接口使用
formStyle.setHeaderImg("背景图片相对路径");
formStyle.setThemeColor("#fff");
formStyle.setBackgroundRepeat("no-repeat");
formStyle.setBackgroundType(0);
formStyle.setTitleStyle(new TitleStyle("PingFangSC-Regular,'Microsoft YaHei','宋体', Tahoma, Arial, sans-serif",
"normal",
"#383838",
"18px",
"left"));
formStyle.setFieldStyle(new FieldStyle("PingFangSC-Regular,'Microsoft YaHei','宋体', Tahoma, Arial, sans-serif",
"normal",
"#383838",
"14px",
0));
formDetails.setFormStyle(formStyle);
// 自定义logo图片,使用相对路径,缩略图模式下使用,结合"图片附件上传"接口使用
CustomLogo customLogo = new CustomLogo(1,"自定义logo相对路径");
formDetails.setCustomLogo(customLogo);
// 开启提交校验
formDetails.setIsFormValidators(1);
TbFormValidators tbFormValidators = new TbFormValidators();
tbFormValidators.setCalculator("fo数字字段id > 0");
tbFormValidators.setMessage("数字字段数字字段必须大于0");
vo.setValidators(Arrays.asList(tbFormValidators));
// 数据提交跳转页面
formDetails.setIsInitPage(1);
TbFormCustomPageVO customPage = new TbFormCustomPageVO();
// 跳转页面:0:系统默认页,1:自定义提示页面,2:自其它网页
customPage.setJumpPage(2);
// 系统页面类型:1:首页,2:待办,3:我提交呃,4:快速发起,5:填单页,6:表单详情
customPage.setJumpType(1);
//自定义页面内容 支持富文本以及插入字段
customPage.setPageContent("<p>您的表单以<label class=\"customPage-field\" data-id=\"createaTime\" data-label=\"提单时间\">${提单时间}</label>提交成功," +
"单行文字为:<label class=\"customPage-field\" data-id=\"fo单行文字id\" data-label=\"单行文字\">${单行文字}</label></p>");
// 其他网页地址
customPage.setUrl("https://其他网页地址");
// 开启自定义提醒
formDetails.setIsCustomRemind(1);
FormCustomRemindVO formCustomRemind = new FormCustomRemindVO();
// 提醒类型 0:自定义时间,1:根据日期时间字段提醒
formCustomRemind.setRemindType(1);
// 提醒规则状态 0:关闭,1:开启
formCustomRemind.setRemindStatus(1);
// 提醒日期时间字段id "CREATE_TIME()"函数表示提单时间,其余用日期时间字段id
formCustomRemind.setRemindItemKey("fo日期字段id");
// 提醒时间前后类型 0:当天,1:之前,2:之后
formCustomRemind.setRemindAroundType(2);
// 提醒时间的前后天数
formCustomRemind.setRemindAroundDay(5);
// 日期字段的具体时间
formCustomRemind.setRemindTime("12:00:00");
// 周末是否提醒
formCustomRemind.setWeekendRemind(0);
// 法定节假日是否提醒
formCustomRemind.setHolidayRemind(0);
// 重复周期 0:不重复,1:每天,2:每周,3:每月,6:每年,8:自定义重复
formCustomRemind.setRepeatType(1);
// 结束提醒时间 CUSTOM_TIME():自定义时间 CREATE_TIME():提单时间
formCustomRemind.setEndItemKey("CUSTOM_TIME()");
formCustomRemind.setEndTime("2022-12-31 12:59:59");
// 提醒次数
formCustomRemind.setRemindNumber(10);
// 提醒间隔
formCustomRemind.setRemindInterval(10);
// 间隔单位 0:分钟,1:小时,2:天
formCustomRemind.setRemindInterval(2);
// 是否开启条件
formCustomRemind.setRemindConditions(1);
// 特定人员
formCustomRemind.setSpecificMember(1);
formCustomRemind.setRemindUserIds("通讯录账号1|通讯录账号2");
// 开启人员空间
formCustomRemind.setPersonnelControl(1);
formCustomRemind.setAddressBookItemIds(Arrays.asList("fo通讯录成员字段id"));
FormConditionVO formCondition = new FormConditionVO();
formCondition.setFieldKey("fo单行文字字段id");
// 比较符号 1:等于(文本),2:不等于(文本),3:大于,4:大于等于,5:等于(数字),6:不等于(数字),7: 小于等于,8:小于,9:包含,10:不包含,11:超额,12:部门包含
formCondition.setOperator(1);
// 比较值
formCondition.setCompareVal("单行文字值");
formCustomRemind.setFormConditionJson(Arrays.asList(formCondition));
vo.setFormCustomRemind(Arrays.asList(formCustomRemind));
// 开启数据提交跳转页面
vo.setFormDetails(formDetails);
// 表单详细信息 --- END
// 字段设计 --- START
List<Fields> list = new ArrayList<Fields>();
// 单行文本
Fields f = new Fields();
f.set_id("fo单行文字字段id");
f.set_type(FormFieldTypeUtil.TEXTFIELD);
f.setLabel("单行文字");
// 最大长度
f.setMaximum_length(10);
// 最小长度
f.setMinimum_length(2);
// 必填
f.setValidations(new String[] { "presence" });
// 提示
f.setNotes("请输入单行文字");
// 自定义提示文案
f.setCustomPrompt("请输入正确的单行文字");
// 富文本提示
f.setNotesHtml("<p style='color:red;'>请输入单行文字</p>");
list.add(f);
// 手机
f = new Fields();
f.set_id("fo手机号码字段id");
f.set_type(FormFieldTypeUtil.MOBILEFIELD);
f.setLabel("手机号码");
// 开启手机号格式校验
f.setOpenPhoneCheck(1);
// 启用短信验证
f.setMessageVerification(1);
// 数据联动配置
f.setPredefinedType(3);
list.add(f);
// 电话
f = new Fields();
f.set_id("fo电话字段id");
f.set_type(FormFieldTypeUtil.TELEPHONEFIELD);
f.setLabel("电话");
list.add(f);
// 邮箱
f = new Fields();
f.set_id("fo邮箱字段id");
f.set_type(FormFieldTypeUtil.EMAILFIELD);
f.setLabel("邮箱");
list.add(f);
// 单项选择
f = new Fields();
f.set_id("fo单项选择字段id");
f.set_type(FormFieldTypeUtil.RADIOBUTTON);
f.setLabel("单项选择");
// 一行三列
f.setLine_row(3);
list.add(f);
Choices c1 = new Choices();
c1.set_id("fo选项1id");
c1.setSelected(true);
c1.setValue("选项1");
// 关联显示的字段id 只支持顺序比当前字段靠后的字段
c1.setRelate_show_ids(new String[]{"fo多项选择字段id"});
Choices c2 = new Choices();
c2.set_id("fo选项2id");
c2.setValue("选项2");
// 关联显示的字段id 只支持顺序比当前字段靠后的字段
c1.setRelate_show_ids(new String[]{"fo下拉框字段id"});
Choices c3 = new Choices();
c3.set_id("fo选项3id");
// 其他选项
c3.setOthers(1);
c3.setValue("其他");
f.setChoices(new Choices[] { c1, c2, c3 });
// 多项选择
f = new Fields();
f.set_id("fo多项选择字段id");
f.set_type(FormFieldTypeUtil.CHECKBOX);
f.setLabel("多项选择");
c1 = new Choices();
c1.set_id("fo选项1id");
c1.setSelected(true);
c1.setValue("包邮");
c2 = new Choices();
c2.set_id("fo选项2id");
c2.setValue("满减");
c3 = new Choices();
c3.set_id("fo选项3id");
// 其他选项
c3.setOthers(1);
c3.setValue("其他");
f.setChoices(new Choices[] { c1, c2, c3 });
list.add(f);
// 下拉框
f = new Fields();
f.set_id("fo下拉框字段id");
f.set_type(FormFieldTypeUtil.DROPDOWN);
f.setLabel("下拉框");
c1 = new Choices();
c1.set_id("fo选项1id");
c1.setSelected(true);
c1.setValue("选项1");
// 选项名额
c1.setQuota("100");
c2 = new Choices();
c2.set_id("fo选项2id");
c2.setValue("选项2");
c3 = new Choices();
c3.set_id("fo选项3id");
// 其他选项
c3.setOthers(1);
c3.setValue("其他");
// 开启选项名额周期(0:未开启 1:开启)
f.setIsOpenQuota(1);
// 选项周期重置规则 0:按日期字段,1:按周期
f.setOptionResetType(0);
// 按哪个日期字段重置
f.setRefOptionQuotaKey("fo日期字段id");
// 选项名额周期配置
QuotaConfigVO quotaConfigVO = new QuotaConfigVO();
// 循环周期 1:天,2:周,3:月
quotaConfigVO.setCycleRate(2);
// 每多少天/周/月
quotaConfigVO.setCycleNumber(2);
// 重置时间
quotaConfigVO.setStartTime("06:00");
// 周几/几日
quotaConfigVO.setCycleTime(3);
f.setQuotaConfigVO(quotaConfigVO);
f.setChoices(new Choices[] { c1, c2, c3 });
list.add(f);
// 两级下拉框
f = new Fields();
f.set_id("fo两级下拉框字段id");
f.set_type(FormFieldTypeUtil.CASCADEDROPDOWN);
f.setLabel("两级下拉框");
c1 = new Choices();
c1.set_id("fo选项1id");
c1.setValue("选项1");
c1.setSub_choices(new SubChoices[] { new SubChoices("二级选项1"),
new SubChoices("二级选项2")});
c2 = new Choices();
c2.set_id("fo选项2id");
c2.setValue("选项2");
c2.setSub_choices(new SubChoices[]{new SubChoices("二级选项1"),new SubChoices("二级选项2")});
f.setChoices(new Choices[] { c1, c2});
list.add(f);
// 地理位置
f = new Fields();
f.set_id("fo地理位置字段id");
f.set_type(FormFieldTypeUtil.GEOFIELD);
f.setLabel("地理位置");
// 地理位置字段定位设置 0:基于GPS自动填充位置,1:允许手动选择地理位置,2:基于GPS自动填充地理位置,并开启定位校验功能
f.setFreeGeo(1);
GeoFieldRuleVO geoFieldRule = new GeoFieldRuleVO();
// 显示经纬度
geoFieldRule.setShowCoordinate(1);
LocationCenterVO locationCenter = new LocationCenterVO();
// 地址
locationCenter.setAddress("中国广东省广州市天河区");
// 省市区
locationCenter.setArea("广东省,广州市,天河区");
// 定位中心经度
locationCenter.setLongitude(113.338394);
// 定位中心纬度
locationCenter.setLatitude(23.120402);
// 定位范围:米
locationCenter.setValidDistance(800d);
f.setGeoFieldRule(geoFieldRule);
list.add(f);
// 省市区
f = new Fields();
f.set_id("fo省市区字段id");
f.set_type(FormFieldTypeUtil.CITYFIELD);
f.setLabel("省市区");
// 省市区字段格式 0:省市区,1:仅选择城市
f.setCityType(0);
list.add(f);
// 多行文本
f = new Fields();
f.set_id("fo多行文字id");
f.set_type(FormFieldTypeUtil.TEXTAREA);
f.setLabel("多行文本");
list.add(f);
// 日期
f = new Fields();
f.set_id("fo日期字段id");
f.set_type(FormFieldTypeUtil.DATEFIELD);
f.setLabel("日期");
f.setStart_date("2022-01-01");
f.setEnd_date("2022-12-31");
list.add(f);
// 时间
f = new Fields();
f.set_id("fo时间字段id");
f.set_type(FormFieldTypeUtil.TIMEFIELD);
f.setLabel("时间");
list.add(f);
// 日期时间
f = new Fields();
f.set_id("fo日期时间字段id");
f.set_type(FormFieldTypeUtil.DATETIMEFIELD);
// 高级函数默认值
f.setPredefined_value("NOW()");
f.setPredefinedType(2);
f.setLabel("日期时间");
list.add(f);
// 评分
f = new Fields();
f.set_id("fo评分字段id");
f.set_type(FormFieldTypeUtil.RATINGFIELD);
f.setLabel("评分");
// 评分样式
f.setRating_type(FormFieldTypeUtil.STAR);
// 最多10分
f.setMaximum_length(10);
list.add(f);
// 图片
f = new Fields();
f.set_id("fo图片字段id");
f.set_type(FormFieldTypeUtil.IMAGEFIELD);
f.setLabel("图片");
list.add(f);
// 说明项
f = new Fields();
f.set_id("fo说明项字段id");
f.set_type(FormFieldTypeUtil.IMAGECHECKBOX);
f.setLabel("请填写子表单");
f.setNotes("请填写子表单");
list.add(f);
// 子表单的设计 --- START
{
Fields childF = new Fields();
childF.set_id("fo子表单字段id");
childF.set_type(FormFieldTypeUtil.CHILDFIELD);
childF.setLabel("子表单");
childF.setChildren(new Fields[5]);
list.add(childF);
f = new Fields();
f.set_id("fo子字段图片字段id");
f.set_type(FormFieldTypeUtil.IMAGEFIELD);
f.setLabel("子字段图片");
childF.getChildren()[0] = f;
f = new Fields();
f.set_id("fo子字段单行文字字段id");
f.set_type(FormFieldTypeUtil.TEXTFIELD);
f.setLabel("子字段单行文字");
childF.getChildren()[1] = f;
f = new Fields();
f.set_id("fo子字段数字字段id");
f.set_type(FormFieldTypeUtil.NUMBERFIELD);
f.setLabel("子字段数字");
// 精度
f.setAccurate_num(2);
childF.getChildren()[2] = f;
f = new Fields();
f.set_id("fo子字段数字2字段id");
f.set_type(FormFieldTypeUtil.NUMBERFIELD);
f.setLabel("子字段数字2");
// 精度
f.setAccurate_num(-1);
childF.getChildren()[3] = f;
// 计算式
f = new Fields();
f.set_id("fo子字段计算式字段id");
f.set_type(FormFieldTypeUtil.EQUATIONFIELD);
f.setLabel("子字段计算式");
// 计算公式
f.setCalculator("fo子字段数字字段id*fo子字段数字2字段id");
f.setNotes("子字段数字*子字段数字2");
// 精度
f.setAccurate_num(2);
childF.getChildren()[4] = f;
}
// 子表单的设计 --- END
// 统计式
f = new Fields();
f.set_id("fo统计字段id");
f.set_type(FormFieldTypeUtil.STATISTICSFIELD);
f.setLabel("统计");
// 求和
f.setLine_row(FormFieldTypeUtil.STATISTICSFIELD_SUM);
// 统计公式
f.setCalculator("fo子表单字段id|fo子字段计算式字段id");
// 精度
f.setAccurate_num(2);
list.add(f);
f = new Fields();
f.set_id("fo数字字段id");
f.set_type(FormFieldTypeUtil.NUMBERFIELD);
f.setLabel("数字");
// 默认值
f.setPredefined_value("6.00");
// 精度
f.setAccurate_num(2);
// 数字格式
NumberFormatVO numberFormat = new NumberFormatVO();
// 显示千分符
numberFormat.setIsThousandSplit(1);
// 百分比
numberFormat.setNumType(1);
// 显示单位
numberFormat.setIsUnit(1);
// 单位值
numberFormat.setUnitValue("元");
f.setNumberFormat(numberFormat);
list.add(f);
// 计算式
f = new Fields();
f.set_id("fo计算式字段id");
f.set_type(FormFieldTypeUtil.EQUATIONFIELD);
f.setLabel("计算式");
f.setNotes("统计+数字");
// 计算公式
f.setCalculator("fo统计字段id+fo数字字段id");
// 精度
f.setAccurate_num(2);
list.add(f);
// 表单关联
f = new Fields();
f.set_id("fo表单关联字段id");
f.set_type(FormFieldTypeUtil.FORMREFCUSTOMERFIELD);
f.setLabel("表单关联");
f.setRef_id("底单id");
// 数据范围
f.setDataypes(new String[]{"0","1","2","3"});
// 表单关联配置
RefCfg refCfg = new RefCfg();
// 主字段
refCfg.setMain_field("fo底单字段id");
refCfg.setShow_fields(new String[]{"fo底单字段id","fo底单字段2id","fo底单字段3id"});
// 排序字段
refCfg.setSortField("fo底单字段2id");
// 0:升序,1:降序
refCfg.setSortOrder(1);
// 是否允许选择所有已提交的
refCfg.setQueryCommit(1);
// 是否开启可查看关联表单的详情
refCfg.setIsCanSeeRefForm(1);
FilterField filterField = new FilterField();
filterField.setFilter_field("fo底单字段2id");
// 类型 0:常量,1:变量
filterField.setFilter_type(1);
// 条件 1:等于,2:不等于,3:大于,4:大于等于,5:小于等于,6:小于,9:包含,10:属于,11:不包含
filterField.setFilter_condition("1");
// 过滤值
filterField.setFilter_value("fo单行文字字段id");
refCfg.setFilter_fields(new FilterField[]{filterField});
// 关联更新配置
OptionVO optionVO = new OptionVO();
optionVO.setType("setEq");
optionVO.setRefKey("fo底单字段2id");
optionVO.setChildKey("fo表单关联子字段id");
f.setOptions(new OptionVO[]{optionVO});
f.setRef_cfg(refCfg);
// 表单关联支持子字段参考子表单即可,此处省略
list.add(f);
// Plus关联
f = new Fields();
f.set_id("foPlus关联字段id");
f.set_type(FormFieldTypeUtil.FORMREFCUSTOMERFIELD);
f.setLabel("Plus关联");
// Plus应用id 必填
f.setApplicationId("Plus应用id");
f.setRef_id("PlusFormModelid");
f.setRef_title("Plus表单标题");
// 重要,必须设置为QIQIAO_PLUS,否则无法区分是表单关联还是Plus关联
f.setSrcType(SrcType.QIQIAO_PLUS);
// 表单关联配置
refCfg = new RefCfg();
// 主字段
refCfg.setMain_field("key_底单字段id");
refCfg.setShow_fields(new String[]{"key_底单字段id","key_底单字段2id","key_底单字段3id"});
// 排序字段
refCfg.setSortField("fo底单字段2id");
filterField = new FilterField();
filterField.setFilter_field("key_底单字段2id");
// 类型 0:常量,1:变量
filterField.setFilter_type(1);
// 条件 1:等于,2:不等于,3:大于,4:大于等于,5:小于等于,6:小于,9:包含,10:属于,11:不包含
filterField.setFilter_condition("1");
// 过滤值
filterField.setFilter_value("fo单行文字字段id");
refCfg.setFilter_fields(new FilterField[]{filterField});
f.setRef_cfg(refCfg);
list.add(f);
// 二维码字段
f = new Fields();
f.set_id("fo生成二维码字段id");
f.set_type(FormFieldTypeUtil.QRCODEFIELD);
f.setLabel("生成二维码");
QrCodeFieldCfg qrCodeFieldCfg = new QrCodeFieldCfg();
// 扫码设置 "0:多次扫码查看,1:一次性扫码核销
qrCodeFieldCfg.setScanType(0);
// 0:全部显示,1:自定义字段显示
qrCodeFieldCfg.setShowType(1);
// 自定义字段显示
qrCodeFieldCfg.setFormat("fo单行文字字段1,fo日期字段1");
f.setQrCodeFieldCfg(qrCodeFieldCfg);
list.add(f);
// 手写签名
f = new Fields();
f.set_id("fo手写签名字段id");
f.set_type(FormFieldTypeUtil.HANDWRITTEN);
// 允许使用存档签名
f.setOpenedHandwritten(1);
f.setLabel("手写签名");
list.add(f);
// 数据源字段
f = new Fields();
f.set_id("fo数据源字段id");
f.set_type(FormFieldTypeUtil.DATASOURCE);
f.setLabel("数据源");
// 链接地址
f.setRef_url("https://qy.do1.com.cn/qwy/open/openForm/testDatasource.do?selecttop=1");
// 类型
f.setRef_type(RefType.DSCascadeDropDown);
// 级数
f.setCascadeLevel(3);
// 布局方式
f.setLine_row(3);
// 关联配置
refCfg = new RefCfg();
// 配置字段
// field_name:字段名称 field_key:字段键值(严格填写接口能提供的字段名) field_type:字段属性
refCfg.setDatasource_fields(new DatasourceField[]{
new DatasourceField("编号", "id", "Id"),
new DatasourceField("名称", "name", "MainField"),
new DatasourceField("关联编号", "parentid", "ParentId")
});
filterField = new FilterField();
filterField.setFilter_field("name");
// 类型 0:常量,1:变量
filterField.setFilter_type(1);
// 条件 1:等于,2:不等于,3:大于,4:大于等于,5:小于等于,6:小于,9:包含,10:属于,11:不包含
filterField.setFilter_condition("1");
// 过滤值
filterField.setFilter_value("fo单行文字字段id");
refCfg.setFilter_fields(new FilterField[]{filterField});
f.setRef_cfg(refCfg);
list.add(f);
// 智能识别字段
f = new Fields();
f.set_id("fo智能识别字段id");
f.set_type(FormFieldTypeUtil.OCRINVOICEFIELD);
f.setLabel("智能识别");
// 关联配置
refCfg = new RefCfg();
// 是否校验发票抬头
refCfg.setCheckTitle(true);
// 金额统计字段
refCfg.setMoneyCollector("fo数字字段id");
// 识别类型
refCfg.setOcrFieldType("0");
f.setRef_cfg(refCfg);
list.add(f);
// 通讯录成员字段
f = new Fields();
f.set_id("fo通讯录成员字段id");
f.set_type(FormFieldTypeUtil.MEMBERCUSTOMERFIELD);
f.setLabel("通讯录成员");
refCfg = new RefCfg();
// 导出字段
refCfg.setShow_fields(new String[]{FormFieldTypeUtil.USER_PERSON_NAME
,FormFieldTypeUtil.USER_WX_USERID});
list.add(f);
// 部门字段
f = new Fields();
f.set_id("fo部门字段id");
f.set_type(FormFieldTypeUtil.DEPTCUSTOMERFIELD);
f.setLabel("部门");
refCfg = new RefCfg();
// 导出字段
refCfg.setShow_fields(new String[]{FormFieldTypeUtil.DEPART_FULL_NAME});
list.add(f);
// 费控关联字段
f = new Fields();
f.set_id("fo费控关联id");
f.set_type(FormFieldTypeUtil.CRMCUSTOMERFIELD);
f.setLabel("费控关联");
// 数据来源:成本中心
f.setSrcType(SrcType.REIM_PROJ);
list.add(f);
// 流水号字段
f = new Fields();
f.set_id("fo流水号字段id");
f.set_type(FormFieldTypeUtil.SERIALNUMBER);
f.setLabel("流水号");
// 流水号规则配置
SerialNumberCfg serialNumberCfg = new SerialNumberCfg();
// 初始值
serialNumberCfg.setInitialValue(1L);
// 编号位数
serialNumberCfg.setLength(4);
// 开启自动填充位数
serialNumberCfg.setAutoFill(1);
// 重置周期 0:不自动重置;1:每日重置,2:每周重置,3:每月重置,4:每年重置
serialNumberCfg.setResetCycle(3);
// 流水号规则
serialNumberCfg.setFormat("{serialNumber}");
// 重置时间
ResetDateVO resetDate = new ResetDateVO();
// 几号
resetDate.setDay(1);
serialNumberCfg.setResetDate(resetDate);
f.setSerialNumberCfg(serialNumberCfg);
list.add(f);
vo.setFormField(list.toArray(new Fields[0]));
// 字段设计 --- END
// 流程配置,仅自由流程支持
TbQyFlowAuditOrderConfigPO tbQyFlowAuditOrderConfigPO = new TbQyFlowAuditOrderConfigPO();
// 支持批量审批
tbQyFlowAuditOrderConfigPO.setBatchApproval(1);
// 按选择顺序审批
tbQyFlowAuditOrderConfigPO.setIsOrderAudit(1);
vo.setTbQyFlowAuditOrderConfigPO(tbQyFlowAuditOrderConfigPO);
// 公开查询
List<FormPublicInquiryVO> formPublicInquiryJson = new ArrayList<FormPublicInquiryVO>();
FormPublicInquiryVO formPublicInquiry = new FormPublicInquiryVO();
formPublicInquiry.setTitle("公开查询标题");
formPublicInquiry.setShowFields(new String[]{"fo单行文字字段id","fo表单关联字段id"});
formPublicInquiry.setSearchFields(new String[]{"fo单行文字字段id"});
formPublicInquiry.setSearchAnnouncement("查询页面公告");
formPublicInquiry.setSuccessPrompt("查询成功提示");
formPublicInquiry.setFailPrompt("查询失败提示");
// 需要密码
formPublicInquiry.setIsNeedPassword(1);
formPublicInquiry.setPassword("password");
formPublicInquiryJson.add(formPublicInquiry);
vo.setFormPublicInquiryJson(formPublicInquiryJson);
// 状态 0:草稿,1:发布
vo.setStatus(1);
// 自定义logo图片,使用相对路径,缩略图模式下使用,结合"图片附件上传"接口使用
vo.setMedias(new String[]{"表单附件相对路径"});
System.out.println(JSONUtil.objectToString(vo));
FormApi api = QwSdkUtil.getInter(FormApi.class);
// 调用接口
ApiFormCreateResult re = api.createForm(QwSdkUtil.getCacheToken(), vo);
// 表单id
System.out.println(re.getDefinitionVersionsId());
// 版本号
System.out.println(re.getVersions());
// 版本id
System.out.println(re.getDefinitionId());
// 填单地址
System.out.println(re.getUrl());
{
"code": "0",
"desc": "成功",
"data": {
"formPublicInquiryVO": [
{
"failPrompt": "查询失败提示",
"id": "02a0af38db3dc000",
"isNeedPassword": 1,
"password": "password",
"queryUrl": "公开查询短地址",
"searchAnnouncement": "查询页面公告",
"searchFields": [
"fo单行文字字段id"
],
"showFields": [
"fo单行文字字段id",
"fo表单关联字段id"
],
"sort": "0",
"successPrompt": "查询成功提示",
"title": "公开查询标题"
}
],
"prefillList": [
{
"definitionVersionsId": "form表单id",
"itemMap": {
"fo数字字段id": "100"
},
"orgId": "b17efb43-292e-4cc9-ac5d-0b46bce059c4",
"prefillId": "02a0af38d1fdc000",
"shortUrl": "预填写短地址",
"sort": 1,
"url": "预填写长地址"
}
],
"definitionVersionsId": "form表单id",
"definitionId": "defn表单版本id",
"versions": 1,
"url": "填单地址"
}
}
| 参数 | 说明 | 类型 |
|---|---|---|
| definitionVersionsId | form表单id | String |
| definitionId | defn表单版本id | String |
| versions | 版本编号 | Integer |
| url | 提单地址 | String |
| formPublicInquiryVO | 公开查询,用于返回地址 | FormPublicInquiryVO[] |
| prefillList | 预填写地址,用于返回地址 | TbFormItemPrefillPO[] |