表单校验
说明
什么是表单校验
表单校验是指对表单字段的校验。
表单校验脚本
表单校验脚本分为,校验脚本,保存前校验脚本,保存后校验脚本,可以在界面配置的的表单设置中配置:
触发表单校验脚本
编辑事项时实时校验:
保存事项时校验:
Script Params
能够在脚本中直接使用以下参数:
名称 | 类型 | 说明 |
---|---|---|
formVal | Object | 表单的value值 |
originalFormVal | Object | 表单保存前的value值 |
ancestors | String[] | 父事项的id数组 |
createdAt | String | 创建时间 |
user | User | 创建人信息 |
Api Reference
judgeAncestorsStatus
表单验证时,判断当前子卡片父卡片状态,是否在状态之后
参数定义:
名称 | 类型 | 必填 | 说明 |
---|---|---|---|
ancestorOption | Object | 是 | 参数集合 |
ancestorOption.ancestors | String[] | 是 | 父事项的id数组 |
ancestorOption.statusId | String | 是 | 状态id |
返回:
JudgeResult - 判断结果
interface JudgeResult {
resultFlag: boolean
}
用法:
const ancestorOption = {
ancestors,
statusId: '1',
}
const {resultFlag} = await apis.judgeAncestorsStatus(ancestorOption);
if(resultFlag) {
throw new Error('这是一个错误信息')
}
getRolesByUserId
获取用户角色
参数定义:
名称 | 类型 | 必填 | 说明 |
---|---|---|---|
userId | String | 是 | 用户Id |
返回:
Role[] - 用户系统角色
用法:
const roles = await apis.getRolesByUserId(user.objectId);
const notMatch = !roles.find(role => role.name === 'QA' );
if(notMatch){
throw new Error('这是一个错误信息')
}
getItem
获取卡片信息
参数定义:
名称 | 类型 | 必填 | 说明 |
---|---|---|---|
itemId | String | 是 | 事项id |
返回:
ItemJSONObject - 事项数据
用法:
const data = await apis.getItem(itemId);
if(data.name !== '事项名称'){
throw new Error('这是一个错误信息')
}
getWorkspaceNames
获取全部空间名称
参数定义:
名称 | 类型 | 必填 | 说明 |
---|---|---|---|
workspaceName | String | 是 | 空间名称 |
返回:
string[] - 空间名称列表
用法:
const workspaceNames = await apis.getWorkspaceNames();
if(workspaceNames.length<=0) {
throw new Error('这是一个错误信息')
}
checkWorkspaceName
检查空间名称是否存在
参数定义:
名称 | 类型 | 必填 | 说明 |
---|---|---|---|
workspaceName | String | 是 | 空间名称 |
返回:
CheckResult - 校验的结果
interface {
isExist: boolean;
}
用法:
const {isExist} = await apis.checkWorkspaceName(formVal.workspace.name);
if(isExist){
throw new Error('空间名称已存在')
}
requestCoreApi
对外提供直接调用 core 接口能力,对外暴露 GET/POST/PUT/PATCH 方法
参数定义:
名称 | 类型 | 必填 | 说明 |
---|---|---|---|
method | String | 是 | GET/POST/PUT/PATCH |
url | String | 是 | 请求的url |
data | Object | 否 | 请求的数据 |
用法:
const result = await apis.requestCoreApi('POST', '/parse/api/search/structure', data);
console.log(result)