功能说明:用户可通过该接口创建修改表单属性、表单字段等配置项,由于暂不支持接口创建流程节点,审批单则采用自由流程。
{ "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[] |