跳到主要内容

字段行为

说明

什么是字段行为

字段行为是指在表单中赋予字段(必填、只读、隐藏)的属性

字段行为脚本

字段行为脚本可以让字段行为拥有更强大的配置。字段行为脚本可以在字段行为的配置中添加:

触发字段行为

配置完字段行为可以在以下表单中生效:

Script Params

能够在脚本中直接使用以下参数:

名称类型说明
itemIdString事项 id
itemItemJSONObject事项的数据
transitionString工作流动作
currentStateString当前状态
userUser用户信息
screenString界面类型,view,create,edit
workspaceString空间Id
workspaceKeyString空间key
itemTypeIdString事项类型id
rolesRole[]系统角色
workspaceRolesWorkspaceRole[]空间角色

根据提供的参数,配合系统提供的函数能力, 然后最终返回出相应的字段行为(requiredreadonlyhidden)

Api Reference

getScreen

获取界面数据

参数定义:

名称类型必填说明
screenIdString界面的id

返回:

ScreenObject - 界面数据

interface ScreenObject {
objectId: ObjectId;
name: string;
customFieldKeys: string[];
}

用法:

const screenData = await apis.getScreen(screenId);

return {
required: screenData.name === '空间名称',
readonly: false,
hidden: false
}

getUsers

通过用户名查询用户

参数定义:

名称类型必填说明
usersString[]用户名数组

返回:

SimpleUser[] - 简单的用户数据

interface SimpleUser {
id: string;
username: string;
}

用法:

const users = await apis.getUsers(['milo', 'onion', 'osc-admin']);
const isMatch = !!users.find(u => u.username === user.username );
return {
required: isMatch,
readonly: false,
hidden: false
}

getItem

获取卡片信息

参数定义:

名称类型必填说明
itemIdString事项id

返回:

ItemObjectProps - 事项数据

用法:

const itemData = await apis.getItem(itemId);
return {
required: itemData?.statusName === '已关闭',
readonly: false,
hidden: false
}

getWorkflowIdByItemId

根据事项id获取工作流

参数定义:

名称类型必填说明
itemIdString事项id

返回:

Workflow - 工作流数据

用法:

const workflow = await apis.getWorkflowIdByItemId(itemId));
return {
required: workflow?.name === '系统默认工作流',
readonly: false,
hidden: false
}

getRolesByUserId

获取用户角色

参数定义:

名称类型必填说明
userIdString用户Id

返回:

Role[] - 用户系统角色

用法:

const roles = await apis.getRolesByUserId(user.objectId);
const notMatch = !roles.find(role => role.name === 'QA' );
return {
required: false,
readonly: notMatch,
hidden: false
}