Field
model/field.Field
表格列操作和信息。
操作表格列,可以使用 useField(单个列信息)、useFields(多个列信息)。
配件
id
• get
id(): string
字段 id, 列的唯一标识
返回值
string
示例
console.log(myField.id);
// => 'fld1234567'
name
• get
name(): string
列名称, 不同列名称为不重复值
返回值
string
示例
console.log(myField.name);
// => 'Name'
type
• get
type(): FieldType
列类型,列类型为枚举值,具体可参阅 FieldType
返回值
示例
console.log(myField.type);
// => 'SingleLineText'
description
• get
description(): null
| string
返回当前字段的描述
返回值
null
| string
示例
console.log(myField.description);
// => 'This is my field'
property
• get
property(): FieldType
返回字段的属性配置,不同类型的字段有不同的属性配置。 返回 null 则代表这个字段没有属性配置。 具体可参阅 FieldType
返回值
any
示例
import { FieldType } from '@apitable/widget-sdk';
if (myField.type === FieldType.Currency) {
console.log(myField.options.symbol);
// => '¥'
}
isComputed
• get
isComputed(): boolean
判断当前字段是否是“计算字段” “计算字段”的意思是,不允许用户主动写入值的字段类型。(比如:自增数字、公式、神奇引用、修改时间、创建时间、修改人、创建人)
返回值
boolean
示例
console.log(mySingleLineTextField.isComputed);
// => false
console.log(myAutoNumberField.isComputed);
// => true
isPrimary
• get
isPrimary(): boolean
返回当前字段是否属于主字段,在维格表中,主字段永远是第一列所在的字段。
返回值
boolean
required
• get
required(): null
| boolean
神奇表单是否必填
返回值
null
| boolean
方法
getPropertyInView
▸ getPropertyInView(viewId
): null
| IPropertyInView
获取当前视图特征属性,如该字段在某个视图中是否被隐藏
参数
Name | Type | Description |
---|---|---|
viewId | string | 视图ID |
返回值
null
| IPropertyInView
示例
const propertyInView = field.getPropertyInView('viwxxxxx');
console.log(propertyInView?.hidden)
updateDescription
▸ updateDescription(description
): Promise
<void
>
更新字段的描述。
如果没有写入权限,该 API 会抛出异常信息。
参数
Name | Type | Description |
---|---|---|
description | null | string | 字段描述 |
返回值
Promise
<void
>
示例
field.updateDescription('this is a new description')
updateProperty
▸ updateProperty(property
, options?
): Promise
<void
>
Beta API, 未来有可能变更。
更新字段的属性配置,注意,更新属性配置必须全量覆盖。
如果配置格式不正确,或者没有写入权限,该 API 会抛出异常信息。
请先阅读 FieldType【字段属性配置文档】来确定不同字段的写入格式。
参数
Name | Type | Description |
---|---|---|
property | any | 字段的新属性配置 |
options? | IEffectOption | 允许会产生副作用的property |
返回值
Promise
<void
>
示例
function addOptionToSelectField(selectField, nameForNewOption) {
const updatedOptions = {
options: [
...selectField.options,
{name: nameForNewOption},
]
};
if (selectField.hasPermissionToUpdateOptions(updatedOptions)) {
selectField.updateProperty(updatedOptions);
}
}
hasPermissionForUpdateDescription
▸ hasPermissionForUpdateDescription(description?
): boolean
检查是否有权限更新字段描述
参数
Name | Type | Description |
---|---|---|
description? | string | 字段描述 最长限制 200 |
返回值
boolean
示例
const canUpdateFieldDescription = field.hasPermissionForUpdateDescription();
if (!canUpdateFieldDescription) {
alert('not allowed!');
}
hasPermissionForUpdateProperty
▸ hasPermissionForUpdateProperty(property?
): boolean
检查是否有权限更新字段属性配置
property 有关更新写入格式,请参阅 FieldType
参数
Name | Type | Description |
---|---|---|
property? | any | 要检查的字段属性,如果不传则不检查格式 |
返回值
boolean
示例
const canUpdateFieldProperty = field.hasPermissionForUpdateProperty();
if (!canUpdateFieldProperty) {
alert('not allowed!');
}
checkPermissionForUpdateProperty
▸ checkPermissionForUpdateProperty(property?
): IPermissionResult
校验用户是否有权限更新字段属性
参数
Name | Type | Description |
---|---|---|
property? | any | 要检查的字段属性,如果不传则不检查格式 |
返回值
描述
接受一个可选的 valuesMap 输入,valuesMap 是 key 为 fieldId, value 为单元格内容的 object
property 有关更新写入格式,请参阅 FieldType
如果有权限操作则返回 {acceptable: true}
如果无权限操作则返回 {acceptable: false, message: string}
,message 为显示给用户的失败原因解释
示例
// 校验用户是否有更新字段的权限,当更新的同时也有写入值的话,也可以一并进行校验
const updatePropertyCheckResult = field.checkPermissionForUpdateProperty({
defaultValue: '1',
});
if (!updatePropertyCheckResult.acceptable) {
alert(updatePropertyCheckResult.message);
}
// 校验用户是否有更新字段的权限,但并不校验具体的值(示例:可以用来在 UI 控制创建按钮可用状态)
const updatePropertyCheckResult =
field.checkPermissionForUpdateProperty();