跳到主要内容

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

返回值

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

FieldType

示例

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

获取当前视图特征属性,如该字段在某个视图中是否被隐藏

参数

NameTypeDescription
viewIdstring视图ID

返回值

null | IPropertyInView

示例

const propertyInView = field.getPropertyInView('viwxxxxx');
console.log(propertyInView?.hidden)

updateDescription

updateDescription(description): Promise<void>

更新字段的描述。

如果没有写入权限,该 API 会抛出异常信息。

参数

NameTypeDescription
descriptionnull | string字段描述

返回值

Promise<void>

示例

 field.updateDescription('this is a new description')

updateProperty

updateProperty(property, options?): Promise<void>

Beta API, 未来有可能变更。

更新字段的属性配置,注意,更新属性配置必须全量覆盖。

如果配置格式不正确,或者没有写入权限,该 API 会抛出异常信息。

请先阅读 FieldType【字段属性配置文档】来确定不同字段的写入格式。

参数

NameTypeDescription
propertyany字段的新属性配置
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

检查是否有权限更新字段描述

参数

NameTypeDescription
description?string字段描述 最长限制 200

返回值

boolean

示例

const canUpdateFieldDescription = field.hasPermissionForUpdateDescription();
if (!canUpdateFieldDescription) {
alert('not allowed!');
}

hasPermissionForUpdateProperty

hasPermissionForUpdateProperty(property?): boolean

检查是否有权限更新字段属性配置

property 有关更新写入格式,请参阅 FieldType

参数

NameTypeDescription
property?any要检查的字段属性,如果不传则不检查格式

返回值

boolean

示例

const canUpdateFieldProperty = field.hasPermissionForUpdateProperty();
if (!canUpdateFieldProperty) {
alert('not allowed!');
}

checkPermissionForUpdateProperty

checkPermissionForUpdateProperty(property?): IPermissionResult

校验用户是否有权限更新字段属性

参数

NameTypeDescription
property?any要检查的字段属性,如果不传则不检查格式

返回值

IPermissionResult

描述

接受一个可选的 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();